I've initiated, contributed to, and maintained a number of free
- 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.
- 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
- 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.
- Rubinius (Ruby)
- A Smalltalk-inspired Ruby virtual machine and implementation.
- 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.
the Deployer (Ruby)
- Pragmatic deployment automation, without mercy.
- Atreus (C, Racket, KiCAD)
- An open-source hardware, ergonomic mechanical travel keyboard design and firmware.
- Bus Scheme (Ruby)
- A Scheme interpreter written in Ruby, but implemented on the bus! I
spoke briefly about this at RubyConf 08.
- Bussard (Lua)
- A space flight simulation adventure with a programmable ship and stations.
- Cardinality (Lua)
- A game authoring environment inspired by Hypercard and Scratch.
- 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 hundreds of thousands of times.
- EXO_encounter 667 (Fennel)
- A top-down puzzle/adventure game featuring lasers and robots. Winner of
the Lisp Game Jam
- Mire (Clojure)
- A multiplayer text adventure engine. Used as a sample program
for the PeepCode screencast on Clojure.
- Orestes (Forth, C)
- A Forth implementation for microcontrollers.
- Pindah (Mirah)
- A tool for building Android applications with
Mirah. Maintainership has passed to Brendan Ribera and Alex Parrott.
- Polywell (Fennel, Lua)
- A fully programmable text editor and repl environment for
embedding in games.
- Orb (Lua)
- A mock-unix operating system.
- Prometheus (Erlang)
- An XMPP-driven thermostat system.
- Rinari (ELisp)
- An Emacs mode for writing Ruby on Rails
applications. Maintainership has passed to Eric Schulte and
- Robert Hooke (Clojure)
- A flexible, composable mechanism by which you can extend
behaviour of functions after they've been defined.
- 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.
- Syme (Clojure)
- Manages disposable EC2 nodes for collaborating on GitHub
projects via ssh and tmux. Maintainership has passed to Chris
- Miscellaneous Emacs Libraries
- June 2018, Olympia, WA —
from a Game Jam
- A review of the creation
667 and competing in the the Lisp Game Jam with Fennel.
- November 2012, Raleigh, NC —
Continuing Adventures of Leiningen
- A presentation given at Clojure Conj 2012 under the influence
of a severe flu about the development and features of Leiningen 2.
- March 2012, San Jose, CA —
- A presentation given at Clojure/West 2012 on running group-coding
user group sessions geared towards exploration and learning.
- September 2011, St. Louis, MO —
Cozy with Emacs
- A workshop at Strange Loop
2011 for getting the most out of your Emacs customizations.
- November 2010, Raleigh, NC —
Making Leiningen work for You
- A presentation given at Clojure Conj 2010 on Leiningen, the
project automation tool.
- April 2009 —
Functional Programming with Clojure
- A screencast teaching functional programming with the Clojure
programming language. The first published commercial
documentation released for the language. I wrote the script, but
Geoffrey Grosenbach did the visuals and narration. Watched by
thousands of developers.
- December 2008 —
PeepCode: Meet Emacs
- An hour-long screencast tutorial introducing the GNU Emacs
editor. Again, I wrote the script. Watched by thousands of
developers. Now distributed by PluralSight.
- November 2007, Charlotte, NC —
Tightening the Feedback Loop [video]
- A presentation given at RubyConf 2007 on measuring and
improving programming habits.
- 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
- Swank Clojure (Clojure)
- An adapter allowing SLIME
to be used with Clojure. Deprecated in favour of
- Clojure HTTP Client (Clojure)
- An HTTP client for the Clojure language. Deprecated in favor of
- Concourse (Ruby)
- A web application to help schedule gatherings among participants
with varying schedules. My entry for Railsday
- 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.
- 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.
- ElUnit (ELisp)
- A testing framework for Emacs Lisp. Deprecated in favor
- RAV (Ruby)
- A plugin for visualizing the data model of Rails
applications. Deprecated in favor
- RPlanet (Ruby)
- A feed aggregator written in Ruby. Deprecated in favor