Software projects
My open source projects are available via my Github profile. See also, blog posts filed under the associated tag.
Curiosities
lifepaths
I wrote this to relearn Prolog—a language I’ve been fascinated with since university—using data from the Burning Wheel RPG's lifepaths.
Retired projects
Manticore
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 used 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, and finally using Svelte 4.
Color.js
A simple color management API for JavaScript from a time before comprehensive color support in CSS.
(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
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.
Rehomed projects
Necessary-evil
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.