Category Archives: Development

My Talk at QCon SF 2009 0

The talk I did at QCon SF 2009 is now available at infoq. Only an MP3 download is available, otherwise you’ll have to stream it from the site – but you’ll be missing a lot, as the slides are better than hearing me drone on.

QCon London 0

I’ve been invited to speak on colleague Chris Read’s track at QCon London this March. The track itself is chock full of a number of experienced proffesionals (including two ex-colleagues) so I fully intend to raise my game accordingly. We’re lucky enough to have Michael T. Nygard speaking too, author of perhaps the best [...]

Struggling with Test Driven Clojure 10

I’ve recently been working on a Clojure application that I hope to open source soon. It’s been my first experience of using Clojure, and is almost certainly one of the most thought provking things I’ve done in a long while. One of the things that is still causing me issues is how to go [...]

Clojure on App Engine – my take 0

I’ve been working on a couple of spare time projects, both of which I hope to release more formally in the next few weeks. One of them involves development of a simple web application for deployment on Google App Engine. As part of the development, I had to modify an existing open source Clojure API [...]

Build Pattern: Chained Continuous Build 0

One of the problems quickly encountered when any new team adopts a Continuous Build is that builds become slow. Enforcing a Build Time Limit can help, but ultimately if all of your Continuous Build runs as one big monolithic block, there are limits to what you can do to decrease build times.
One of the [...]

Organisation Antipattern: Chase The Ball 0

Have you ever watched young children play football (of Soccer for our Atlantic cousins)? During the game, you can be certain of one thing – most of the team on both sides will be doing nothing but chasing the ball. There is no thought about the bigger picture, no tactical decision making (let alone anything [...]

Build Pattern: Build Time Limit 2

Anyone who has worked in a team which uses a Continuous Build inevitably starts to learn about the cost of a long running build:

More time between checkin and a report of a failure
Higher chance of Continuous Build containing multiple checkins, increasing the chance of an integration break and complicating rollback
Fixing a build related to [...]

Rewrites and New Year Resolutions 0

The reason so many New Year Resolutions get dropped, is because people start doing something out of the ordinary (for them) in order to institute a change, but never make that change a habit. It’s the reason dieting does not work – you shouldn’t go on a diet, you should change your diet. The former [...]

Clojure editor/IDE options – IntelliJ v Emacs 6

So all the cool Clojure kids keep wanting me to use Emacs. The problem is that I haven’t used Emacs for the last 10 years – since, in fact, I had to support a C application on about 7 different flavours of UNIX. As you can imagine, I’ve since expunged many of those past memories.
My [...]

Build Pattern: Movable Checkin Gate 2

The Checkin Gate defines a set of tests which need to pass before a developer checks in. Typically, the tests are a subset of the total test suite – selected to provide a good level of coverage, whilst running in a short space of time.
There is an inherent trade-off with a Checkin Gate though – [...]