I’m a huge fan of the LucasArts graphic adventure games. I’ve been reading up on the history of the company in Rogue Leaders: The Story of LucasArts, and I noticed that some of the success of these games was credited to the SCUMM game engine.
Read More →
I don’t like the term cargo cult.
Calling something a cargo cult isn’t usually intelligent or useful. It says “I know best and I don’t care about your opinions”.
Read More →

I did a talk entitled Everything Express at the Async JavaScript meetup in Brighton. I covered almost everything required to get a real Express web app off the ground and deployed.
Read More →
In the time I’ve been a programmer, I’ve seen Apple gain and lose the respect of developers in a cycle of growing predictability. Apple’s fortunes have arguably followed these trends. Reading John Gruber’s response to Readability's open letter to Apple on Apple’s new subscription policy surprised me to say the least:
Readability needs Apple to publish an app in the App Store. Apple doesn’t need Readability.
Without Readability and innovative small businesses like it, the App Store is nothing. What's an App Store without Apps? A way to sell Apple's over-hyped and underused applications like Pages for iPad?
Read More →
“And in practice again, I observe.”
I’ve seen a lot of crime dramas over the last few years. As a Sherlock Holmes fan, it’s easy to spot the homages to Conan Doyle’s influential character. One of the qualities espoused by modern TV crime drama is attention to detail. A famous example, and perhaps the origin of this character trope, is Holmes’ beyond–autistic ability to read deductions from mundane facts.
In this scene, Watson is surprised that Holmes knew he had recently been walking through the rain, even though it was days ago:
Read More →

I’m a big fan of a certain popular to–do list app for Mac OS. But I’ve stopped using it because I’ve made an open source replacement called Wingman. You can download it and install it on your computer or server. Alternatively, try it out on wingman.heroku.com. I can’t promise you won’t lose data on the Heroku instance, so treat it as a demo version.
Read More →

I’m working on an open source project that uses Rails 3, MongoDB, Mongoid, and OpenID. I’ve been using ruby-openid, and whilst it has example code it’s not exactly easy to get to grips with.
Read More →
I attended the dConstruct conference on Friday 3rd September. I’ve never been to one before, but one of my open source and commercial collaborators (@sstarr saw John Gruber on the lineup and demanded we go. I don’t really know much about Gruber, other than he’s an Apple blogger, so my excuse was after party shenanigans.
Marty Neumeier: The Designful Company

Read More →
I use Sphinx and the Thinking Sphinx Rails plugin for a few clients. I originally started using Sphinx itself because one client has hundreds of thousands of fairly large articles, and Sphinx could index them the fastest (in something like 10 minutes on the hardware we use).
The major downside is Thinking Sphinx, which appeared to make Rails incredibly slow in development mode. It was unusably slow, even on fast multicore machines. I thought the problem was mine for a long time (I’ve been using this for nearly 2 years), but I studiously kept Sphinx up to date and occasionally peered at the internals. I added a flag to allow me to turn off Sphinx when I didn’t need it to speed up development mode, after I tried running the project without Sphinx (not loading the gem and stubbing define_index).
Read More →
Learning a new platform or language obviously takes a lot of work. I used to do it like this:
- Assume I’m awesome
- Rush in and make something
- Waste a lot of time getting basics wrong
- Eventually learn how to do things properly the hard way
This isn’t a particularly productive way of working. After learning a few languages we assume we can pick up new ones pretty quickly, but overconfidence can lead to big problems.
Read More →