A Lazy Sequence

Software projects

All these (and some other scraps) are available via my Github profile.


Manticore is a web app for the 13th Age tabletop RPG. It implements the rules for Building Battles on page 186 of core rulebook, in particular the pricing table. This application will automatically produce a set of all – within reason – encounter combinations that are allowed for a given party and selection of monsters.

I frequently use this app as a test bed for ideas and tools I’m experimenting. Over its life it has been implemented in Clojure as a logic program with core.logic, ClojureScript (without core.logic, when I realised how easy it was to make a computationally expensive query), and TypeScript with and without React.

Unmaintained projects

I have effectively abandoned these projects for various reasons. If one of these is something you wish to take over maintainership of, please feel free to get in touch with me.


This implements a fairly simple Color API for use in Javascript applications. Will automatically convert between RGB and HSV as needed. Each operation returns a new object.

This library is largely feature complete and low on defects, and in 2018 you are likely better served just using the various CSS colour syntax directly, as it obviates 90% of the utility of this project.

(inc clojure-brush)

A structure aware Clojure brush for Syntax Highlighter. Syntax Highlighter is a javascript library for in browser highlighting of source code. This brush provides smart highlighting for the Clojure programming language by implementing a full parser.

While I am largely happy with the project, and I still think its one of the best highlighter brushes for Clojure, I can’t recommend it as I wouldn’t recommend Syntax Highlighter these days. Pygments or highlight.js are probably better choices.


Picoparse is a Python parser combinator library. It is very small, very expressive, and not especially fast. It lets you create parsers quickly and in pure Python, no regular expressions or new language to learn.


Undermined is an unfinished but playable and mostly attractive minesweeper game for Apple’s Dashboard.

Rehomed projects

These projects were in the previous list of unmaintained code, but have since been taken over by other developers.


Necessary Evil is a library for writing XML-RPC clients and servers in Clojure. The library is built on top of Ring and from version 2.0.0 supports Clojure 1.2.1 and 1.3.