iOS 4

2010-06-23 – 8:25am

I’ve been living with Apple’s new OS for about a day now, and the conclusion I’ve come to is that Apple dropped the ball. There are so many minor frustrations, as well as a few big ones, that the whole experience is at best annoying, and at worst unbearable.

The new iOS isn’t all bad. The animations feel snappier, Springboard is prettier, and it’s got the slick Apple feel which everyone so desperately wants to emulate. The big one, of course, is multitasking, and that I think they got right.

But then there are the problems. Apps crash with neither rhyme nor reason: the iPod app won’t even startup properly for me anymore. Google Sync is kaput (although I think Google should take some of the blame for that). The new folders, whilst useful, are, to be charitable, ugly. It all feels as though it was released without going through proper testing, let alone going through the spit-and-polish phase.

I was looking forward to this update. I thought that, like all the iOS versions before it, it would Just WorkTM. I hope that when they patch iOS 4, they don’t introduce any new features: there’s just too much that needs to be fixed.

Work

2010-05-14 – 7:28pm

I’m a software developer, working for SEQTA Software. We develop software for the education sector; basically, we aim to let teachers just get on with teaching, rather than having to faff around with a myriad different poorly-designed systems. I’m responsible for most of the front-end development of our two flagship products, Teachers’ Assistant and SEQTA Coneqt. Recently, I also redesigned the company website.

Why am I bothering to tell you this? Because I enjoy what I do. I get to develop software that’s genuinely useful, that people actually appreciate, and that has concrete benefits. Oh, and I also get to play with all of the latest and most interesting new browser developments. One of the things I enjoy most about my job is getting out to sites and training people one-on-one. I love seeing people get caught up in what’s possible, and I particularly appreciate it when they come up with new ideas — ideas which can sometimes become central features.

I know, I know, this sounds a lot like I’m just banging on about work to earn brownie points. But the really weird thing is, it’s the truth. Yes, I’m young and idealistic. But then, I think that I’m work in a young and pretty-nearly ideal job.

Generative Music

2010-03-21 – 5:08pm

Continuing my HTML5 and canvas experiments, I’ve put together a generative music system. Essentially, a series of particles move across a field, occasionally triggering sounds — the sound triggered depends on their location in the field.

There is, of course, a little bit more to it than that. Under the hood, I’ve got a series of HTML5 Audio objects that are used to provide polyphonic audio using a simple round-robin algorithm (I encoded the audio in OGG, so you’ll need to use an OGG-friendly browser, like Firefox). The particles are much simpler than those in my previous canvas dalliance, in that they don’t swarm, and their motion is more linear.

Canvas Swarms

2010-03-18 – 9:27am

I’ve been meaning to start playing with the HTML5 <canvas> element for a while now, and yesterday I took the opportunity. I translated a Processing sketch I made a while ago into JavaScript (with a few minor enhancements).

Essentially, 1 to 3 swarms of particles move around the canvas, reproducing when the conditions are just right, and dying of old age. Quite simple, but the patterns produced can be really quite pretty.

One interesting thing that I discovered whilst doing this is that you can’t pass around a canvas’ context at the instantiation of a MooTools class — it complains about wrapped natives. That’s why, if you like in the source JavaScript, you’ll see me pass the actual context around to various functions. I’d be interested in hearing if anyone has a workaround for this, because this is, well, a bit clunky.