Full-stack web and iOS developer. London.
A talk on functional reactive programming, which I gave at Ruby Manor in April 2013.
Get the expected diversity distribution for a conference line-up, given the number of speakers and population distribution.
Finds and composites the 100 most relevant Flickr photos for any search term you give it.
A friendly and polite alternative to
git pull that fetches and rebases all locally-tracked remote branches.
Little text-based time-rewinding puzzle game.
Tool to find unused CSS selectors by scraping HTML pages. Run it at the command-line against any website, make a Rake task, or integrate it into your acceptance tests.
HTML5 todo app for music you want to listen to, with a fast mobile interface, offline support and multi-device syncing.
I was out last Friday at a bar where they had a “Negroni Tic-Tac-Toe” offer—you could custom-build your drink from a selection of 3 gins, 3 vermouths and 3 amari, and if you got “3 in a row” you’d get £5 off your bill. It’s a laughably stingy deal, but it got me thinking. About programming, I mean.
Non-trivial offline functionality in a web application is more valuable than you might have initially assumed, if you care about the user experience on mobile devices. It’s also not a feature you can easily add after you’ve already built a working product. It has a profound effect on how your app should be designed, and you have to plan for it from the outset if you don’t want to end up rewriting the bulk of your communication logic.
The behaviour of tappable elements in Mobile Safari is unacceptably ugly. Unfortunately, taking control of it is more involved than it perhaps ought to be. jquery.tappable.js does (most of) the hard work for you.