I couldn’t resist working on ecal today. Now that its committed to OpenedHand’s svn server, it’s shameful that it doesn’t work properly – But it does now! As far as I can tell, all show-stopping bugs have now been fixed 🙂 The last two major ones, which have been plaguing me for a good 2 weeks were caused by one missing line ‘priv->type = type;’. An uninitialised variable. Hours of debugging and picking up the smallest of bugs and typos, and I miss an uninitialised variable… Typical! Will see if I can get that committed, along with my ‘let things build against it’ changes on Monday 🙂


Taking DBus

Well, work on all other things has stopped as I join the guys at OpenedHand for the summer 🙂 I’ve been working on porting the evolution calendar back-end to DBus, based on the address-book back-end already completed by Ross Burton (an eployee at OpenedHand). Progress is going well – I’ve learnt more in this last two weeks than I have in the past 2 years (nb: exaggeration), and its been lots of fun so far. I’ve finally made some head-way and the back-end is very close to being functional (with a little faffing, you can view calendars and events in evolution). I hope to make it feature-complete and not *too* buggy this coming week, and hopefully it’ll get committed to the OH svn, and eventually, perhaps, up-stream. It feels good to be working on my first major contribution to open-source, even if it is heavily derivative of someone else’s work 🙂 Punnet did make a fair bit of progress before I started working, however. I don’t feel like releasing the source just yet, there just isn’t enough there… But I ported all the drawing code from gdk to OpenGL (using GtkGLExt) and added support for the 3rd dimension and keyboard input, along with lots of smaller features. I don’t know when I’ll have the time to work on it again, but if I see it dying, I’ll stick the source-code up. On a personal note, I haven’t had the time to catch up with all the people I meant to yet, I must get round to it soon… Also, no regrets about turning down IBM. I’ll probably apply again next year though, the experience was worth it 🙂



Wow, so it’s been a while since my last post… I guess exams do that to a guy. I’ve got lots of catching up to do, e-mails to write, presents to buy (birthdays), work to do, etc. Since the last update, I turned down IBM for OpenedHand (and can’t wait to start!) and started work on a new, small, spare-time project, which has been named ‘punnet’. Originally, I wanted to write an improved version of the excellent game apricots, but as often happens, things expanded. My main two goals were to get an improved, and possibly multiplayer-able version of apricots, and to get a reasonable knowledge of gtk+-2 doing so. I was going to call this ‘peaches’ (because peaches are a superior alternative to apricots). I got to talking with some friends at university, and I was put onto a nifty embeddable language, Lua. That’s when things changed – The idea evolved into a general purpose engine (at the moment, 2d, but very easily extendable to more dimensions) that uses gtk to provide an interface and drawing functions, and gives a small-ish set of c functions to lua scripts to use. A friend quite aptly named this ‘punnet’ (a type of basket, often used for holding fruit). At the moment, it has the ability to load lua scripts, which can then provide functions for the other scripts to use, and/or to be run once on initialisation, and/or to be run on every screen update. I’ve also written a fairly nice (HIG-compliant? Not totally sure…) interface for selecting what scripts you want to activate. To demonstrate the abilities of the engine, and to give myself a little start in Lua, I’ve written two scripts, that when activated together, bounce a ball around the screen 🙂 At the moment, there are many missing feature, most importantly, input and network support… I have some interesting ideas for the network support, but whether things happen or not is yet to be seen. Source will be online as soon as I get input and a slightly better demo sorted. Screenshot



Had the final IBM assessment day today… Was very… interesting. Kinda fun, would’ve been nice if it wasn’t so early in the day though. I think I did ok, I’m certainly more interested in working for them than I was before, having met some IBM employees – Very nice people. Will blog some more later in the week, too busy and tired to do so now… Regretting not taking the day off work.



I’m far too lazy a person to handle the amount of work I have on my plate at the moment. Yesterday I worked all day at The Hobbit (the pub where I work) – Live bands were playing all day, so it was a lot more fun than usual, but also very *very* busy :/ A couple of pics: Which leads me onto more relevant information: I bought a new phone! A Sony Ericsson T630, in fact. Before this phone however, I tried the Philips 755, which I must say, was a huge disappointment. The style and design of the phone was nice, the hardware seemed capable, but it was let down by the most shoddy software I’ve ever had the displeasure of using… Primary usability problems with it included a 2-second delay when pressing the shift key (or any other key that altered the keymap) on the on-screen keyboard, not being able to add words to the T9 dictionary, and the worst laid out menus ever conceived (‘Settings’ is the selected option when you enter the main menu, for example). How this phone ever passed any kind of quality test, I’ll never know… If *I* had written the software 😉 The Sony Ericsson T630, however, is the nicest phone I’ve owned to date. Everything about it is perfectly thought out – You can tell a lot of money was spent on quality assurance. Menu layout, shortcuts, automation, everything is just about right, for the price-range, and it has an excellent organiser to boot. An advantage of owning a more common phone is the desktop support under non-Windows platforms. This phone is now acting as my synchronisation conduit between uni and home (where I use a Mac and a PC running Linux, respectively) via bluetooth, as well as providing me access to all my appointments, contacts, etc. on the move. The only fault I could level with this phone is its slight lack of memory (2 megs accessible, compared to the 7 megs of the Philips 755), but it’s just about adequate, and easily offset by the quality of the other features of the phone. I’d recommend this to anyone looking for a cheap-ish phone with camera and organiser abilities. IBM have invited me back for further assessment, however, I’m almost certain that I’ll take the job at OpenedHand instead (that is if they’ll still have me) – As great as the IBM Hursley campus is, and as extensive their facilities are, the whole place just felt… boring. Not to mention that the projects that I’d be working on didn’t sound particularly interesting either, I think I’d find it hard to motivate myself enough to give them my best performance, and that wouldn’t be doing anyone any favours… I’d like to discuss this with my tutor, but once again he seems to have dropped off the face of the Earth and isn’t replying to e-mails. Never mind.


Too much work

My schedule for this week: Monday:
Revise for Theory of Computing test on Tuesday
2pm-4pm: Software Engineering Group project meeting
9pm-2am: Work Tuesday:
9.55am-5.30pm: Lectures (1.5 hours break) + test Wednesday:
9.15am: IBM Extreme Blue recruitment day Thursday:
4pm: Distributed Computing coursework due Friday:
Lectures and SEG project meeting likely Not to mention work I need to catch up on, coursework due in next week, etc. I haven’t started that coursework, so that’ll be a lot of fun, and to top it all off: I seem to be getting ill. Great! Enough self-pity and onto grovelling: Keen observers may have noticed a donations button creep into the side-bar. All donations will be spent towards forwarding development of Linux-based palmtop environments (e.g. Buying new hardware, cables, accessories, books, etc.). I don’t expect anything, but if ever an eccentric millionaire visited my site and wanted to help me out, I’ve made it easy for him/her.



This post contains information about software I’ve written, and is updated as often as need be (whoops, kind of breaking away from the whole ‘blog’ idea with this!). Anyway, what follows is a summary of some of my past and present works. Unless otherwise stated, these works are under a ‘contact-me-if-you-want-to-do-anything-with-them‘ license – i.e. If you want to redistribute, modify, sell, etc. any of this (which is highly doubtful, but still..), you need to contact me first and see what I say. I’d like to think I’m a reasonable guy, so most likely my answer will be ‘sure, do whatever you want, guy!’, but all the same. Contact me. Contacting me can be done via the comments of this post (oh, the wonders of blogs!). Where possible, I’ve included source (if it isn’t included, likelihood is I’ve since lost it). Right, anyway, the software:
gxine-enhanced I wrote a big patch for gxine that vastly improves the interface. This was mostly for my PDA, but it works great on the desktop too. This is, of course, under the GPL. Here’s a quick before and after: Before:
Link to Sourceforge bug, with attached patch
Link to .deb for Ubuntu 5.04 (Hoary)
Operating Systems coursework 1, 2004 We were given a simple operating system and the task was to add structure and design/implement an API. This was a group coursework, which I worked on with Luke Jennings. We added memory management, generic device and file management, some simple API calls and Unicode in the form of UTF-8 encoding support.

You will almost certainly need a recent Bochs to get this working, and I’ve not tried it under anything but Linux (obviously, that should make no difference, but all the same).

DecaDrop 2© (alpha)

The sequel to DecaDrop©. This was really going somewhere (check out the great graphics, by my lovely girlfriend :)), but I didn’t have the time to finish it. I do plan on re-programming it from scratch some time in the near future. Unfortunately, I also used Python to code this, so it runs pretty slowly. Unfortunately again, I didn’t really get object-oriented programming at the time, so the code’s pretty all-over-the-place too. Oh well, nevermind – still fun! This requires python (>=2.2 I think), pygame, and optionally psyco. If you don’t have psyco, you might have to edit the code and take out the first three lines of code (ignore lines that start with ‘#’). Arrows keys, a, z and space are the controls – They’re obvious when you use them in the game.

DecaDrop©: Christmas Edition One of the larger projects I’ve worked on that I actually finished (or semi-finished). This is the gameboy advance version of my puzzle game DecaDrop©. It runs on the hardware and, as such, all good emulators.
DecaDrop© (alpha) The original first version of DecaDrop©, my beloved puzzle game. You make vertical lines of 4 or more consecutive coloured blocks by shifting rows left and right and rotating the grid. Simple, but fun to play, even if I do say so myself. This version requires Windows.
WinPost-It Something I made when I was bored one day – Stick post-it notes on your screen (if you run Windows). On first run it creates a config file in its directory, fiddle around with it to customise it (it has strict formatting, so don’t be surprised if you start up and it crashes/doesn’t appear/works wrongly).
Paddle Wars Just something I whipped up in a few hours ages ago because I fancied coding something. Nothing special – requires Windows, uses the mouse for control (I think).


Welcome to my new blog!

Wow, isn’t blogger great? Anyone who may have visited my site before can see that its been given quite a face-lift (no offense to Mark’s design though, which was/is excellent). I’ve chosen to go with a blog, because it better caters for what I want to do with this web-space. This blog is more of a technical blog, and I’ll be using it to write about what I’m working on at the moment, my thoughts about tech (well, Linux) related items/news and that sort of thing. If you’re more interested in my personal life (you sicko!), you can check out my other blog, linked at the side of this page. If you want to contact me, do so with the comments – I’ll get back to you. Now, commencing with this whole ‘blog’ business! Recently (as you can see on my software page, linked to the side and directly below this post), I’ve been working on beautifying the interface to gxine. I’d like to think I’ve done a pretty good job, so far, but my work is far from complete. I intend for it to be a replacement for totem, for people who want something a bit more technical, and without all the dependencies – I’ve included some of the things I plan to add to it on the Sourceforge bug I filed (also linked on the software page). I think there’s a real gap for a technical xine front-end – One that allows you to access all the xine options and doesn’t depend on Gnome, but at the same time isn’t… crap (xine-ui). I’ll be moving back to Southampton soon (end of Easter holidays), so work will probably be put on hold for a week or so, as I pack, move and then spend a few days furiously trying to catch up on all the work I neglected to do this holiday… That said, I have another project I want to take on – Modifying Gnome’s AilseRiot Solitaire to not depend on Gnome. This would be great for GPE (link to the side), and for people who want a decent gtk-based Solitaire game. I don’t know when I’ll have time for that though 🙁 I also plan on porting Gnomine with it, but I need to make a few more changes to that to work better with a stylus (remove the need to middle/right click). I was thinking middle-click is unnecessary, just replace that with left-click, and to mark mines, you start holding on the square, then drag the stylus off. When I owned a Clie, a few minesweeper games worked like that and I think it worked rather well. Even more to add to the todo list, I need to get a hold of a Zaurus serial cable to debug the apm bugs in the collie linux kernel, and also add a proc interface for the sharp buzzer. I’m so going to fail my degree.