I blog at The If Works. Topics include my open source projects, Ruby, JavaScript, Scheme and language hacking.
Also there’s a site called Look at the Birdie where photographs occassionally show up.
10 Aug 2010 Faye: an Evented Server-Side App, coming up at the London Ajax User Group. Presents patterns for building and testing event-driven applications in JavaScript.
18 May 2009 Writing a Language in 15 Minutes, given to the London Ruby User Group. Live-coding a Scheme interpreter using Ruby and Treetop.
Sep 2009— Developer at Songkick. Hacking Ruby, Rails, JavaScript and sundry other technologies.
Oct 2007–Sep 2009 JavaScript Lead at theOTHERmedia. Wrote Ojay and Helium.
Oct 2006–Oct 2007 Web developer at Media Analytics, Oxford. Wrote the first version of DesalData, since maintained by Hashrocket.
JS.Class. Ruby’s object model, libraries and a package system for JavaScript.
Faye. Simple pub/sub messaging client and server for Node.js, Rack and web browsers.
Terminus. Browser driver for Capybara, focused on cross-browser testing and remote scripting.
Pathology. Remedial XPath selector engine for Internet Explorer. Written to support Terminus.
Canopy. Self-hosting parser compiler for JavaScript using parsing expression grammars.
Heist. Interpreter for R5RS Scheme, written in Ruby. Has tail calls, continuations and macros.
Bluff. Beautiful graphs in JavaScript using HTML5 Canvas. Based on Gruff.
Sylvester. Vectors, matrices and geometry library for JavaScript, used by game hackers.
Siren. JSON parser and JSONQuery interpreter for JSON docs and arbitrary Ruby objects.
PackR. Ruby version of Dean Edwards’ JavaScript compressor and obfuscator, Packer.
Jake. Extensible build tool for JavaScript projects. Supports code generation and event hooks.