Technomancy Projects

I've initiated, contributed to, and maintained a number of free software projects.

Contributed

Clojars (Clojure)
The community repository for Clojure.
Clojure (Clojure)
A modern functional lisp language with advanced concurrency features.
Conkeror (Javascript)
A no-compromises, keyboard-driven, extensible web browser.
Clojure Mode (ELisp)
The Emacs mode for the Clojure language. I maintain this package.
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.
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.
Magit (Elisp)
A Git frontend for Emacs.
Mirah (Ruby, Mirah)
A low-level programming language targeting the JVM with type inference and extensible classes. Formerly known as Duby.
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.
Quil (Clojure)
A graphics library for artistic exploration.
Rack (Ruby)
The web server adapter for Ruby frameworks.
Ruby on Rails (Ruby)
A web framework for Ruby designed to allow quick application development.
RDoc (Ruby)
The documentation tool for Ruby code.
RFeedParser (Ruby)
An ultra-liberal feed parser for Ruby based on the Python Universal Feed Parser.
Rubinius (Ruby)
A Smalltalk-inspired Ruby virtual machine and implementation.
Ruby (Ruby)
An object-oriented dynamic language.
RubyGems (Ruby)
Ruby's Package Manager.
Swank Clojure (Clojure)
An adapter allowing SLIME to be used with Clojure. I maintain this project.
Vlad the Deployer (Ruby)
Pragmatic deployment automation, without mercy.

Created

Augment (Ruby)
A framework for gathering metadata from code and displaying it. Featured in my talk from RubyConf 07.
Bus Scheme (Ruby)
A Scheme interpreter written in Ruby, but implemented on the bus! I spoke briefly about this at RubyConf 08.
Die Roboter (Clojure)
A system for distributing execution over a queue in a straightforward way.
Erythrina (OCaml)
A desktop program for choosing among a list of options in a composable manner.
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.
Ferrante (Mirah)
An Android application allowing two users to navigate towards each other.
Harker (Ruby)
A tool to deploy Rails applications using RubyGems.
Leiningen (Clojure)
A build tool for Clojure designed to not set your hair on fire. Used by tens of thousands of developers.
Mire (Clojure)
A multiplayer text adventure engine.
Pindah (Mirah)
A tool for building Android applications with Mirah.
Relax.el (ELisp)
An Emacs frontend interface to CouchDB.
Rinari (ELisp)
An Emacs mode for writing Ruby on Rails applications. Maintainership has passed to Eric Schulte and Steve Purcell.
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.
Miscellaneous Emacs Libraries
find-file-in-project.el, idle-highlight.el, ri.el, and scpaste.el.

Presentations

Swarm Coding
A presentation given at Clojure/West 2012 on running group-coding sessions geared towards exploration and learning.
Getting Cozy with Emacs
A workshop at Strange Loop 2011 for getting the most out of your Emacs customizations.
Making Leiningen work for You
A presentation given at Clojure Conj 2010 on Leiningen, the project automation tool.

Functional Programming with Clojure – Peepcode
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.
Meet Emacs – Peepcode
An hour-long screencast tutorial introducing the GNU Emacs editor. Again, I wrote the script only. Watched by thousands of developers.
Tightening the Feedback Loop [video]
A presentation given at RubyConf 2007 on measuring and improving programming habits.

Deprecated

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.
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.
ElUnit (ELisp)
A testing framework for Emacs Lisp. Deprecated in favor of ERT.
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.
RAV (Ruby)
A plugin for visualizing the data model of Rails applications. Deprecated in favor of Railroad.
RPlanet (Ruby)
A feed aggregator written in Ruby. Deprecated in favor of Mars.