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.