I love to write code. This means that over the years I’ve messed around putting various things together for fun. They are, without exception, stupid and pointless. Here are some of them.
Now Form a Band - www.nowformaband.com
A while ago I became frustrated that people the world over were coming across good names for bands in conversation, but that many bands were still forming with terrible names, presumably because they couldn’t think of anything better. To try and remedy the situation I developed a site where names can be dumped and then later adopted by up-and-coming artists—a sort of Battersea Dogs Home for incongruous adjective/noun juxtapositions.
Though I really should have had the presence of mind to research the field a little more thoroughly beforehand, I’m satisfied that it’s had a little takeup nonetheless, and that it’s clearly better than any of the other solutions out there. The overall quality of the submissions isn’t much above that of real-life bands, but I try to limit my editorial culling to the truly awful.
It’s not very technically interesting, but it has a rather smart in-place name editor (shown above, since it’s just for me), and is the first site I’ve ever hosted on the rather exciting Heroku.
A web interface to iTunes
This is a webapp, written to be run on a Mac alongside iTunes. It exposes a library and playlist browser, and basic controls for playing and queuing up tracks. It’s intended for use in an office-like environment, for democratising control of what music is played, or for inciting bitter, hateful infighting.
It’s currently on development hiatus, because I ran across a pretty major stumbling block—specifically, tracks on remote shares can’t be queued locally using an iTunes playlist. This means enabling queuing of remotely shared music would necessitate either some unpleasant hack such as copying it to the local library first, managing the upcoming tracks using some other method than a native iTunes playlist, or some other solution I haven’t yet hit upon. Without this ability, however, it’s no good for my particular use case.
I’ve released it to the world on the offchance that someone else would like to help out and/or adopt it. Some fun features to add would include the standard play/pause/next/previous controls and somehow slurping in iTunes’ graphics to enhance the look-and-feel.
Do-notation in Ruby
I adore the Haskell programming language, for the way its various elements (purity, laziness, currying, Hindley-Milner etc) seem to converge in an aesthetic perfect storm. You know, that sense of beautiful inevitability, where everything complements everything else.
After wrapping one’s head around the concept of monads, a process which in my case took several attempts over several months, the customary way to celebrate is by writing a tutorial blog post that explains them in a completely different manner to all of the others and is no more or less likely to help any given reader.
Instead, I wrote a library to facilitate monad usage in Ruby, because one of my other hobbies is shoehorning inappropriate, foreign concepts into languages which will likely not benefit at all from the effort. It uses ParseTree and ruby2ruby to perform a syntactic rewrite on a block of code, allowing a style of programming very similar to Haskell’s do-notation.


