Recent Posts

Amazon S3 Authentication With Clojure

Or: how to generate AWS HTTP request signatures with Clojure.

Web DSL's

Why DSL's can be better than the real thing.

For Clarity

Writing clearer code without map and filter.

Clever Capitalisation

A small victory for simple design.

Importing An APNs Certificate Into A Java Keystore

Java (and Clojure) developers sending Apple push notifications often need to do this, and it’s surprisingly under-documented.

Device Drivers Using core.async

A device driver 'DSL' using core.async.

Passwordless Login

Instead of using email just for password resets, why not use it to make passwords obsolete?

Groundhog Day

A few of the interesting mistakes I made in Basis. Part 1: Groundhog Day.

The Basis Story (Part 3)

Whoops, I built a data replication engine (3/3).

The Basis Story (Part 2)

Whoops, I built a data replication engine (2/3).

The Basis Story (Part 1)

Whoops, I built a data replication engine (1/3).

My Own Blog

Building a blogging system is like making your own Jedi lightsaber.