A Lazy Sequence


The Dracula Dossier

First thoughts, and a reading order, for The Dracula Dossier for Night‘s Black Agents

23 October 2015

ANN: Manticore 0.4 released

Manticore 0.4 has been released, with the ability to select specific monsters instead of using the filters.

28 August 2015


On features of enterprise software.

03 November 2014

Introducing Manticore

Announcing Manticore, an web app for generating encounters for the 13th Age roleplaying game.

26 August 2014

Garage Band amp sims

A grab bag of thoughts on using Garage Band for recording guitar direct.

04 March 2014

The Mouse Guard RPG scenario structure

Luke Crane and David Petersen’s Mouse Guard RPG introduces the concept of separate GM and player turns. This article takes a look at the ramifications of these turns in play.

09 September 2013

Modeling union types using only functions

The lambda calculus is the basis for functional programming. Church's encodings in the untyped lambda calculus show an interesting pattern that parallels union types in languages like Haskell. Here I try to show how these discriminated union types can be implemented using only javascript functions.

11 June 2013

ANN: Color.js 1.0

color.js, my color management library for JavaScript, has hit 1.0.

30 April 2013

Summer reading

Brief comments on books read over the summer break.

06 January 2013

Project templates

Leveraging Leiningen templates for great starting out experiences.

06 January 2013


Fuzz is the classic broken up guitar sound. To my ears it can't be beaten.

25 November 2012

Silver screen Cthulhu

An assortment of thoughts about Shadows Over Filmland for the Trail of Cthulhu RPG.

20 November 2012

Templates are functions

An article that looks at templates in web development in the context of pure functions and functional programming.

21 October 2012

Night's Black Agents: Vampires

A worked example of an alien vampire type for the spy-thriller role-playing game Night's Black Agents by Kenneth Hite.

05 July 2012


Some (spoiler filled) thoughts on Ridley Scott's film Prometheus.

13 June 2012

Knife sharpening

A professional knows when to sharpen their tools.

04 March 2012

Configuration middleware

This article looks at how Ring middleware and dynamic binding presents a powerful tool for controlling configuration in Clojure web apps.

20 January 2012

The Apocalypse Machine

A detailed review of The Apocalypse Machine, Graham Walmsley's post apocalypse setting toolkit for Trail of Cthulhu.

31 October 2011

CoffeeScript comprehensions are broken

An examination of List Comprehensions in several languages, how Coffeescript's ‘comprehension’ semantics differ from the common case, and limitations that arise.

12 September 2011

The Book of the Smoke

A review of Pelgrane Press's companion to the campaign frame The Bookhounds of London for players and keepers.

05 September 2011

Parsers generating parsers

Following my introduction to fnparse, this article looks at how more common functional programming tools can be leveraged to make parsers that output new parsers.

07 February 2011

Start parsing in Clojure: fnparse

Parser combinators are a powerful way of expressing complex parsers as first class operations in a language with first class functions. This tutorial introduces one such library, fnparse, for Clojure.

07 February 2011


A stack of books.

05 September 2010

Monads: redux

Thoughts on the appropriateness of monads in Clojure.

14 February 2010

Ghosts in the machine

Following on from looking at state monads in the context of Clojure, this article looks at variations that add different forms of state-m of non-determinism.

11 February 2010

Welcome to the machine

A close look at how the state monad is implemented and used in Clojure.

09 February 2010

On iteration

How Python's view of iteration lead me to Clojure.

04 February 2010


Some problems I have with a lot of fantasy fiction.

10 May 2009

The Haunting: Terms

In my recap of The Haunting I mentioned some terms that were new to people outside small press gaming circles at the time. This post explains some of them.

07 April 2009

The Haunting

Notes on having running the classic Call of Cthulhu scenarion The Haunting.

06 April 2009

A better blog

My thinking on how I could put together a blog that I would actually enjoy maintaining.

23 February 2009