Technomancy Projects

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

Contributed

Clojure (Clojure)
A modern functional lisp language with advanced concurrency features.
Conkeror (Javascript)
A no-compromises, keyboard-driven, extensible web browser.
Clip (Ruby)
A no-fuss command-line argument parser.
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.
Gitjour (Ruby)
A tool for sharing git repositories on a local network over ZeroConf. I maintain this project.
Hpricot (Ruby)
A delicious HTML parser.
JClouds
A cross-provider library for working with remote storage and compute APIs from Java and Clojure.
Johnson (Ruby)
A bridge between Javascript and Ruby.
JRuby (Ruby)
An implementation of Ruby on the JVM.
Magit (Elisp)
A Git frontend for Emacs.
Mars (Ruby)
A feed aggregator.
Mirah (Ruby)
A low-level programming language targeting the JVM with type inference and open classes. Formerly known as Duby.
package.el (ELisp)
The Emacs Lisp Package Archive; a package manager for Emacs.
Rack (Ruby)
A web server adapter for Ruby frameworks.
Ruby on Rails (Ruby)
A web framework for Ruby designed to allow quick application development.
Rudel (Elisp)
A collaborative editing client for Emacs.
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.
Clojure HTTP Client (Clojure)
An HTTP client for the Clojure language.
Conspire (Ruby)
A real-time collaborative editing platform using Git as a transport layer.
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.
Harker (Ruby)
A tool to deploy Rails applications using RubyGems.
Leiningen (Clojure)
A build tool for Clojure.
Mire (Clojure)
A multiplayer text adventure engine.
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.
Watcher in the Water (Ruby)
A tool to watch for changes on the Web and alert you.
Miscellaneous Emacs Libraries
find-file-in-project.el, idle-highlight.el, project-local-variables.el, ri.el, scpaste.el, and steersman.el.

Presentations

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 recorded the narration.
Meet Emacs – Peepcode
An hour-long screencast tutorial introducing the GNU Emacs editor. Again, I wrote the script only.
Tightening the Feedback Loop
A presentation given at RubyConf 2007 on measuring and improving programming habits.

Deprecated

Concourse (Ruby)
A web application to help schedule gatherings among participants with varying schedules. My entry for Railsday 06.
Ebby (ELisp)
An implementation of the Obby collaborative protocol (version 0.3) for Emacs. Superseded by Rudel.
ElUnit (ELisp)
A testing framework for Emacs Lisp. Superseded by ERT.
RAV (Ruby)
A plugin for visualizing the data model of Rails applications. Superseded by Railroad.
RPlanet (Ruby)
A feed aggregator written in Ruby. Superseded by Mars.