Software that I use as a developer

Mostly as a reminder to myself when setting up a new laptop.

Leaving Lumi - Joining GDS

Anyone following my life by the continuity of this blog alone may be confused by this title.

Scrobbling Heatmap Calendar

Created by Martin D., one of my ex-colleagues from, this is an amazing visualisation of scrobbling activity by year, month, day of the week and even time of day. Now-Playing information radiator

This is a litte project I started a while back but only finished/cleaned up recently. It’s a simple information radiator that shows you what a user is listening to right now.


8 years of scrobbling, 55,000 tracks and 4 years with the incredible team, it’s been a blast, but it’s time to move on and do something new.

Facebook photo facial recognition

[These are old, but I’m clearing my drafts queue]

Migrating scrobbling authentication to 2.0

I received this email a few months ago, and it made me smile.

Anthony from The Hype Machine here. (

Erlang: For an absolute beginner

Last night I spent 30 minutes having a play with a new (to me) programming language, Erlang.

Tech Hub misrepresents Silicon Roundabout

Yesterday I had a brief conversation on Twitter with Elizabeth Varley of Tech Hub about their claims of 700% startup growth in the Old Street area. I’d suggest reading the original article and the Twitter conversation first. I was convinced to write up some broader thoughts by an excellent post by James Darling, so that is worth reading too.

The importance of virtualised development environments

Gareth Rushgrove just wrote a great blog post entitled Why You Should Be Using Virtualisation, which puts out a great argument for using virtualised development environments.

New Twitter favouritism

Twitter have been slowly rolling out access to it’s new web interface , to much discussion, arguing and complaining - not to mention recent security issues. vs Xbox at DIBI Conference

Last week I had the pleasure of speaking at the Design It, Build It conference in Newcastle, where I gave a talk entitled “ vs Xbox.”

1Bit player update

1Bit is a simple way to let you preview MP3s linked in a web page. It’s a combination of Javascript and (a tiny bit) of flash to automatically pre-pend links to MP3s with a little play icon, allowing you to listen to the track inline. It’s been quite popular, mostly with music blogs. It was built by and myself a year or two ago.

Batch event importing to

Over christmas I sorted out some old boxes from University and found all the paper ticket stubs for gigs from 2002 to 2005. That’s some meaty data I didn’t want to lose, I copied it to a spreadsheet with plans to import it in to the events system (where I track all my current gig habbits).

Music Hackday Boston

A couple of weeks I made a trip to Music Hackday Boston. The 4th in a series of music hackdays, designed to bring together smart and passionate people to hack on music technology.

Jumping out of an aeroplane

About 3 months ago I jumped out of a plane. From about 14,000 feet. It’s something I’ve wanted to do for years now, and i’m glad I finally did. I’m not sure I’d do it again though.

JSON, Octal Numbers & Validation

Now it’s launched in London I’ve been playing around with the Foursquare API. While it’s not the best API i’ve come across it gives you reasonable access to their data, so i’ve been pretty happily building some small tools using their data.

Micro-San Francisco recommendations

A week later I still haven’t written up my SF trip and as a friend asked for tips here’s a micro version!

Using iTunes Mac to rip CDs at good quality

I haven’t had to rip any CDs on my current laptop till now. I didn’t have a decent ripper and I wouldn’t be using the one built in to iTunes (it’s rubbish). It’s such a rare task to setup a good ripper that I have to go searching for all the details again.

Reblogging the past

Thanks to the beauty of the Internet Archive I was able to find copies of all my old posts. An earlier version of this site was powered by a Wordpress install and apparently I didn’t make backups of the database. It’s quite sad losing content, some of it was quite good and it’s left lots of dead links.

I’m now using Tumblr to power the blog part of my site. It allows you to post an entry with _any_ date, which means I can reenter all my old content with it’s original date. An archived version of my site gave me access to all my old blog posts and I’ve now added to Tumblr with it’s original publishing date.

Testing the Tumblr API

Just testing the Tumblr API. I’ve been pulling content in to my personal site ( via the JSON API using the search parameter.

Open Tech 2009

Recently I went to Open Tech 2009an informal, low cost, one-day conference on slightly different approaches to technology, democracy and community. This year’s theme is “Working on Stuff that Matters”. This year it was held at University of London Union, central London.

Using xargs like I mean it, a bash example

Using xargs like I mean it. svn st * | grep “^ C” | cut -c 8- | xargs svn revert

Installing Playdar on OS X 10.4

Congrutulations, you’re on an outdated verison of OS X, but you still want to play with cool things like Playdar. Here’s a hassle filled guide to compiling it from source.

Going public (again)

I started using Twitter a couple of years ago, following the buzz of SXSW ‘07. I started out, as almost everyone did, with my statuses open to everyone. There seemed no reason to be private with my status updates. Twitter was a (relatively) new and tiny service, known only to power-geek types so privacy concerns didn’t really enter in to it.

As I used Twitter more, and Twitter itself became more popular, my updates became more candid - in both opinion and personal information. That’s a good thing, Twitter thrives on open and honest messages. However, around the same time I got a lot more concerned about privacy. There was a variety of reasons behind this, but a big factor was dealing with a handful of… unhappy and not very nice users. Suffice to say the internet is a very serious business to some people, and this shifted my mindset from the hypothetical to a more literal.

I switched my updates to private and was pretty happy with this for some time. But over time the decision irked me, I still feel private updates go against the “spirit” of Twitter. It also caused some technical annoyances, simple things like using is broken if you’re searching your own private updates. It makes API/feed access all the more difficult too.

Tonight I switched my status updates back to public. I’m not sure if it’ll stay like that permanently, but we’ll see. While thinking about that decision I thought about my reasons for going private in the first place;

  1. Opinions - I tend to be pretty forthright about things I don’t like. With the internet every becoming a permanent archive of everything how would future employers feel about crass heat-of-the-moment comments? The solution here? A little restraint on my part, which all things considered is probably a good thing anyway.
  2. Personal Information - “I’m in place X, doing thing Y!”. This one’s trickier, after all, one of the best things about Twitter is someone else responding “Me too”. But they shouldn’t have to be following me for that to work. Two solutions here, share less -or- stop caring. I think i’ve ended up somewhere in the middle. 

So that about brings things full circle. In an ideal world there’s a halfway solution between walled-garden privacy and 100% publicness, but for now the technology just isn’t there and i’m not sure it’s exactly what people want.

Giving XFN more visibility through CSS2.1 Attribute Selectors

As I was redesigning a bit lately and making use of FamFamFam’s very nice Silk icon set (used under the CC Attribution License) and it occurred to me I could use CSS2.1 Attribute Selectors to show the relationships the XFN defines.

If you’re not familiar with XFN this wikipedia article gives a good introduction.

Truck Festival 2007 Lineup

There proper lineup has been announced and is available on the Truck Festival website. Finally!

We can all stop hunting for semi-official rumours, know who’s actually playing and see what they sound like (if you don’t know them). I’ll certainly be glad to stop updating that list.

The official lineup is:

Main Stage Saturday

Panels, gender, confusion and a rant

I was going to include this little rant in my @media round-up post, but thought better of it, lest I get too ranty. So yes, this will be a fairly quickly written up little rant, please treat it as such.

As I mentioned before the only negative I came away from the conference with was the Hot topics panel. This was mainly for two reasons, with only vague relation to each other.

Gender and Variety

The discussion of sexism and the under-representation of women in our industry has been going on for some time, more vocally recently. Until now it’s something I’ve avoided posting about. It’s a tricky situation, but still something that has been blown out of all proportion.

Alas the more we talk about it, arguing back and forth, the gender of a speaker becomes more and more important. Thusly i’ve kept my distance and not agitate the proverbial hive of bees.

@media London 2007

My first @media and it was a lot of fun.


Wednesday evening started with boxes, lots of boxes which contained @media bags to be stuffed, lots of bags. Job done we wandered down to the pub in time for a few pre-event drinks and to show off our dashing orange shirts.

Upgrading to PHP5 on OS X

I’ve been meaning to upgrade PHP on my macbook for a while now, today I finally got around to it with a little help from Marc Liyanage PHP Package.

Download the installer (~50MB), un-tar and run it. You should not have PHP5 installed on your system. However, you might have to do a bit of fiddling to get it working properly.

1 Bit Audio Player

My good friend Mark Wheeler has been puting together a neat little embeded flash/javasript mp3 player called 1 Bit, which i’ve been writing the Javascript for.

Fun with FAMFAMFAM Icons and jQuery

If you not familiar with the FAMFAMFAM Silk icons they’re a set of 1000 beautiful little 16×16px icons that you’re free to use under the CC-Attribution license.

I’ve been using them a little recently for a few things, including this blog and some coding projects. The problem is, with 1000 icons, finding the ones that are suitable for what you’re doing.

The Silk webpage used to have every icon on the page, with a little search box to only show ones matching your search. This was great, you could filter down to the more relevant ones, while still comparing them on the same page.

A tag-cloud generated from XSL

If you use the you can get some pretty interesting statistical data about your musical habits.

Pixel Art Space Invaders

Note: We actually did this a few months ago now – But I lost the ‘making of’ pictures and only found them again recently.

We’ve already got some art up on the walls in our dev room at work, but two walls were boring and mostly white.

I decided to take some inspiration from one of my old Uni house-mates, Mark, who happens to be a great pixel-artist.

ALA “Ruining User Experience”

Out of the three new ALA articles the one that really caught my eye was Ruining User Experience by Aaron Gustafson.

SXSW Day Three (and onwards)

I’ve been back a couple of days now, so of course people have asked how it was, and my response has been ‘Amazing‘. I really do mean that, the entire week was great. It was a fantastic holiday, full of interesting panels, great people, delicious food and excellent parties. I’ve already started hustling friends into coming next year.

My original plan was to make a blog post once a day, which fell by the way side pretty quickly, after two days infact. It turns out SXSW is really quite a lot of fun, and theres not the time for blogging or uploading photos to flickr. I didn’t take long to realise SXSW is as much about parties as it is panels.

In my book this is a good thing, a great thing. A lot of the ideas being discussd in panels aren’t new to me, topics I already know well or could learn somewhere else. There are a lots of great UK conferences, there are community events, there are lots of blog posts, articles and tutorials online that can help with this. So I made a point of going to the more obscure panels I knew little about and the social side of things.

I’m a little glad that the trip was mostly self funded, i’d feel kind of bad if work had funded the whole thing as I missed quite a few panels due to hangovers. It’s not that i’ve come away without learning anything, just that a lot of what I learnt wasn’t directly related to my day-to-day job.

A very brief round up of what I enjoyed would include; Panels: Douglas Coupland, Attack of the ARGs, Learning from Adult Sites, Warren Spector on Storytelling and Will Wright’s Keynote. Parties: Great British Booze-Up, Pure Volume, Frog Design.

SXSW Day Two

SXSW Day Two

So i’ve already fallen a day behind on my plan to throw something up here every day.

I just got in on friday, so my recolection of yesterday is a little hazy.

It turns out we get free breakfast, score! Decided to avoid the geekery and conference stuff a bit and walked down to part of South Congress that a stewardess on our Austin flight recomended to me. Lots of little boutiques, indie stores and thift stores. Pretty cool and very cheap, bought a pretty nifty shirt.

Had some fantastic mexican food at the Rio Grande just round the corner from our hotel, really nice, and so far the only food i’ve not taken food porn pictures of. I’ve been told theres even better mexican resteraunts around so i’ll have to check some of those out over the next few days.

Since the weathers been great Frances and I decided to chill out by the pool and maybe go for a swim. The later part of this plan got abandonded pretty quickly as the pool was colder than the english channel. Unfortunately chilling round the pool in austin sunlight, without sunblock, when you’re pale and british means instant burning. So i’m going to have a pink complection.

In addition to free breakfast, turns out we also get happy hour, 60 minutes of free wine/beer (Delete as applicable). Life is good.

A group of us went out to a Cuban place near 6th, Mojitos all round and some pretty nice food (Photos on flickr). Followed by a lot of drinking, socialising and table football at Buffalo Billiards. Needless to say as a brit with little expirence of foosball, I got my ass wooped. Lucky Stuart and Paul stepped up and recovered our nations pride.

SXSW Day One

Finally arrived in Austin, unpacked, had a shower and feel human again.

Frances and I left hammersmith at the ungodly hour of 5am, this is not a real time, it deosn’t exist for normal people.

Met up with Ben, Fatty and Steve at gatwick for breakfast and got ourselves organised for the 10 hour flight to Houston.

We got stuck there for a few hours due to a delay, but eventually got to austin and to the Hotel.

Recent downtime & upcoming events

Sorry to the (few) people who haven’t been been able to access the site recently. For the past 6 months or so I’ve been hosting this blog on the server at work, so when we switched ISP’s (and thusly IPs) I completely forgot to update my DNS record.

Although it’s handy to host this at work I think it’d be for the best to get some proper hosting. We’ve done quite a lot of internal network reorganising recently, which means availability has been a bit patchy. I’ve been looking at switching to Dreamhost, as they have a pretty nice set of features, but I’m curious if anyone would recomend anything else?

Pub Standards

Tomorrow (Thursday) marks Pub Standards XV, the usual web/booze collision in the middle of London. The sly of you may noticed that the landmark Pub Standards C has been scheduled for March 13, 2014, I think Patrick might be being a little optomistic.

Teaching Bad Practice

I subscribe to the WSG reading list, an entertaining and informative round up of web-standards-related articles and blog posts. The usual IE bugs, interviews and handy tips, but one thing caught my eye this week was a PHP tutorial on handling forms.

Code Golf: Whats your handicap?

Over the holidays I came discovered Code Golf and got quite addicted to one of the challenges, for those unfamiiar with it:

Based on the original perl golf, Code Golf allows you to show off your code-fu by trying to solve coding problems using the least number of keystrokes.

You’re not just limited to Perl either - PHP, Python and Ruby are all available too.

Challenges are always open, and your entries are automatically scored so you can start playing right away!

I spent most of the holidays tweeking and tuning my enrty for the 99 bottles and managed to get my entry down to 209 bytes. Far from a winning score, but for my first attempt - and using PHP - i’m quite pleased.

Dconstruct 2006

I’ve been back from Brighton for almost 24 hours now and I’ve just about caught up on sleep. It was a blast.

Google Code Search

Yesterday Google launched a new search for source code, this is such a great idea that I can’t believe its not happened before. You can search by a variety of languages, licence types and best of all by regular expressions.

There’s already been a lot of interesting, funny, and downright scary things turned up, best summed up By Jason Kottke. Some of the highlights include profanity, frustration and and of course losing all hope.

Programming Quotes

I came across a rather impressive list of ‘Programming Quotes‘ today, some humurous, some insightful, some neither, some both.

Definately worth a quickskim through, my favourites:

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

Brian W. Kernighan

The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.

Tom Cargill

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

Jamie Zawinski

Good code is its own best documentation. As you’re about to add a comment, ask yourself, ‘How can I improve the code so that this comment isn’t needed?’ Improve the code and then document it to make it even clearer.

Steve McConnell