Projects

I've initiated, contributed to, maintained, and discontinued a number of free software projects. Many of these URLs for older projects unfortunately no longer resolve and are left up for historical reasons.

Contributed

Clojars (Clojure)
The community repository for Clojure libraries.
Clojure (Clojure)
A modern functional lisp language with advanced concurrency features.
Clojure Mode (ELisp)
The Emacs mode for the Clojure language. Maintainership has passed to Bozhidar Batsov.
GNU Emacs (ELisp)
The extensible, self-documenting lisp machine and text editor.
ERT (ELisp)
A testing tool for Emacs Lisp libraries. Now part of Emacs.
Fennel (Lua, Fennel)
A lisp programming language which runs on the Lua runtime.
Hpricot (Ruby)
A delicious HTML parser.
JClouds (Clojure)
A cross-provider library for working with remote storage and compute APIs from Java and Clojure.
JRuby (Ruby)
An implementation of Ruby on the JVM.
Logplex (Erlang)
A distributed log routing system.
Magit (Elisp)
A Git frontend for Emacs.
Microscheme (Scheme, C)
A compiler for a subset of Scheme targeting AVR microcontrollers.
Mirah (Ruby, Mirah)
A low-level programming language targeting the JVM.
package.el (ELisp)
The Emacs Lisp Package Archive; a package manager for Emacs. I maintained this for a time before it was merged into Emacs 24.
Pleroma (Elixir)
A social networking server for the Fediverse.
Quil (Clojure)
A graphics library for artistic exploration.
Rack (Ruby)
The web server adapter for Ruby frameworks.
Rackjure (Racket)
A Racket language which brings many of Clojure's conveniences to the Racket platform.
Ruby on Rails (Ruby)
A web framework for Ruby designed to allow quick application development.
RDoc (Ruby)
The documentation tool for Ruby code.
Ruby (Ruby)
An object-oriented dynamic language.
RubyGems (Ruby)
Ruby's Package Manager.
Sonic Pi (Ruby)
Live-coding music synthesizer.
TIC-80 (C)
A fantasy computer for making games.
Vlad the Deployer (Ruby)
Pragmatic deployment automation, without mercy.

Created

Antifennel (Fennel)
A compiler from Fennel to Lua.
Atreus (C, Racket, KiCAD)
An open-source hardware, ergonomic mechanical travel keyboard design and firmware.
Grenchman (OCaml)
Fast-launching CLI client for running Clojure code over nREPL.
Leiningen (Clojure)
Project automation for Clojure designed to not set your hair on fire. Installed millions of times.
fnlfmt (Fennel)
A code formatter for Fennel.
Jeejah (Lua)
An nREPL server for Lua and Fennel.
Polywell (Fennel, Lua)
A fully programmable text editor and repl environment for embedding in games.
Menelaus (Scheme)
A meticulously-documented keyboard firmware.
Slamhound (Clojure)
A tool for reconstructing namespace declarations in Clojure files. Maintainership has passed to Sung Pae.
Smolforth (Lua, Forth)
An implementation of the Forth programming language designed for embedding in games.
Miscellaneous Emacs Libraries
find-file-in-project, better-defaults, scpaste, etc.

Games

For a full list, please see my itch.io profile.

Bussard (Lua)
A space flight simulation adventure with a programmable ship and stations.
Cardinality (Lua)
A game authoring environment inspired by Hypercard and Scratch.
EXO_encounter 667 (Fennel)
A top-down puzzle/adventure game featuring lasers and robots. Winner of the Lisp Game Jam Spring 2018.
This is my Mech, with Emma Bukacek (Fennel)
A short game about a group of mech pilots working together. Winner of the 2019 Lisp Game Jam.
Energize! (Fennel)
A game where you play as the transporter room operator. Winner of the Autumn Lisp Game Jam 2019.
Tremendous Quest IV, with Benaiah Mischenko (Fennel)
A short game about working in the QA department of an MMORPG.
Spilljackers, with Emma Bukacek (Fennel)
A cyberspace revenge heist in retro 3D.
Liquid Runner II (Fennel)
A retro-styled puzzle platformer.
Tower Institute of Linguistics, with Matthew Lyon (Fennel)
A game where you build a tower up to heaven and defy god.

Discontinued

Bus Scheme (Ruby)
A Scheme interpreter written in Ruby, but implemented on the bus! I spoke briefly about this at RubyConf 08.
Conkeror (Javascript)
A no-compromises, keyboard-driven, extensible web browser. Incompatible with newer versions of the Mozilla runtime.
Emacs Starter Kit (ELisp)
A set of dotfiles that provides better defaults and bundles other useful libraries for Emacs users. Used by thousands of developers. Deprecated in favour of better-defaults.
Swank Clojure (Clojure)
An adapter allowing SLIME to be used with Clojure. Deprecated in favour of Monroe.
Clojure HTTP Client (Clojure)
An HTTP client for the Clojure language. Deprecated in favor of clj-http.
Concourse (Ruby)
A web application to help schedule gatherings among participants with varying schedules. My entry for Railsday 06.
Erythrina (OCaml)
A desktop program for choosing among a list of options in a composable manner. New features in dmenu 4.5 obsolete this program, but I recommend rofi instead.
Augment (Ruby)
A framework for gathering metadata from code and displaying it. Featured in my talk from RubyConf 07.
Conspire (Ruby)
A real-time collaborative editing platform using Git as a transport layer. Deprecated in favor of Rudel.
Ebby (ELisp)
An implementation of the Obby collaborative protocol (version 0.3) for Emacs. Deprecated in favor of Rudel.
Gitjour (Ruby)
A tool for sharing git repositories on a local network over ZeroConf. I maintained this project but did not create it. Deprecated in favor of Bananajour.
Orestes (Forth, C)
A Forth implementation for microcontrollers. Deprecated in favor of Menelaus
ElUnit (ELisp)
A testing framework for Emacs Lisp. Deprecated in favor of ERT.
Pindah (Mirah)
A tool for building Android applications with Mirah. Maintainership has passed to Brendan Ribera and Alex Parrott.
Prometheus (Erlang)
An XMPP-driven thermostat system. Deprecated when I moved out of my house which had this heater.
RAV (Ruby)
A plugin for visualizing the data model of Rails applications. Deprecated in favor of Railroad.
Rinari (ELisp)
An Emacs mode for writing Ruby on Rails applications. Maintainership passed to Eric Schulte and Steve Purcell.
RPlanet (Ruby)
A feed aggregator written in Ruby. Deprecated in favor of Mars.
Rubinius (Ruby)
A Smalltalk-inspired Ruby virtual machine and implementation.
Syme (Clojure)
Manages disposable EC2 nodes for collaborating on GitHub projects via ssh and tmux. Maintainership has passed to Chris Bilson. Lost when Heroku's free tier shut down.