Ubuntu on an XBox
Old blog post recovered from 2005
Personal

Yay! A few more packages left to upgrade, but it’s already starting to work…

On Monday, I got cut off by my ISP, but I managed to quickly settle my balance to get back on-line. Today the telecoms guys are working down the road, so I’ve been cut off since about 10am, shortly after I’d finished checking my mail. There’s a ladder up the pole about a kilometre down the road, the exchange is open sprouting several unattached wires and there’s not a soul in sight. It’s now mid-afternoon, and I’d really like to upload what I’ve done so far today, as my customers will be starting to wake up soon. It’s a national bank holiday, so there’s no point in calling the telephone company. If the line’s not back in 30 mins, my mate’s just about to try a new windsurf out at the beach, so I’ll go down and watch for a while.

Feeling guilty for having to drag even more money from my dad. He’s not got much left himself, and he’s having to bail me out because it’ll be a while before I get sufficient money from my paid jobs to take care of myself. Still, once I’ve finished a couple more projects, I should be in a position to pay it all back. I guess I’m enjoying the work, I just wish it didn’t take so long, and I’m a little disappointed that my income over the last six months is less than than I’d normally expect to get in one month (you should see my outgoings over the last six months! Thanks, dad!). A couple more months like this and my liabilities will be more than the national debt of Thailand. I try to think of it as ‘at least I’ve got paying work to do, so it can only get better from here’.

Much of the problem is that I’m just given a user interface as a set of images mocked up in Photoshop (or Illustrator or whatever) to look like a web interface, and told to go build it. This means ‘filling in the design gaps’. IMHO, it’s impossible for someone to completely understand the requirements of anything more than a very basic system just by looking at a batch of static 2-dimensional images. I have to analyse the pictures, and articulate my own interpretation of the requirements specification and start thinking about the objects and processes involved etc, and then run it all by the designer with a whole batch of questions (the grey areas), so he can confirm I’ve correctly understood them and try to fill in the gaps. He does his best, but understandably, he’d rather I figure things out myself based on his screen grabs (which in some cases conflict with each other, or are unrealisable without complicating the data model). Eventually, as I start tying the data classes up to the user interface the answers present themselves, but often end up meaning I have wrongly analysed the database schema and have to rework a load of the code in the admin pages I’d already written, tested and committed previously. It’s two steps forward, one step back all the time. Sometimes, I feel like I’m wasting time writing code that’ll need rewriting again in a few days time when a new requirement comes to light. Very frustrating, but that’s how this customer wants to work, so I’ve got to just go with it for now. I think I’m over the worst of the learning curve for working this way. I guess it’ll end up feeling rewarding enough when it’s finished and live and the money’s in the bank :)

Bloody glad I chose to use subversion instead of CVS for projects for my new client. Being able to ‘svn diff’ offline is so handy when you need to work on a project, but you can’t get a network connection.

Bloody glad I’m using a laptop, as the power just went out and I nearly lost this whole blog and a few other bits too. No phone line, no power. Why did I choose to come live in Thailand? Sod this, I’m off to the beach. Maybe I’ll take up windsurfing instead.

Oh, and I got server-side mail filtering set up nicely now, thanks to Sieve, and the ’timsieved’ daemon that comes with the Cyrus IMAP server. I spent a day or two a couple of weeks ago writing a simple managesieve client, but got stuck writing the SASL client. The other day I came to it with a fresh mind, fixed the SASL problem and went to carry on writing the client, when I stumbled across ‘sieveshell’, which already did what I was trying to write something to do. Things have come a long way since I started using Cyrus IMAP five years ago. I’ve converted all my Evolution filters to Sieve rules, except those that do the pretty coloring, ‘cos you can’t do that with Sieve yet!

Update: Tried windsurfing, but I haven’t quite mastered it yet. I tried for about half an hour to get the sail and board in the right position to get up onto it. Apparently the sail I was trying with was too big for beginners. Still, it was good exercise trying.