Swimming in code: recent hacks

Recently I’ve been on a hacking high, touching a lot of code, and in touch with a lot of cool programmers. In retrospect I’m surprised at the variety of stuff I’ve been doing, so I thought I’d write a short list.

Open source

Javascript

Clojure

  • Congomongo - Clojure’s de-facto standard library for accessing MongoDB - had no support for MongoDB’s file GridFS file storage scheme, so I added it.
  • When I’ve only had a few spare minutes, I’ve been filling in a few missing Clojure examples on Rosettacode. It’s a great way to share knowledge, learn new libraries and algorithms, and solve puzzles.
  • I’ve contributed minor patches to Leiningen, the Clojure build tool.

Ruby

Python

  • I’ve agreed to review (but not write) the unit-testing chapter of the PSF’s planned Python book. Although I wrote the unittest module, I’m no longer an active Python user or member of the community.

Emacs lisp

  • My haml-mode patch for colorizing “filter:” blocks in haml files has been committed upstream, so now textile, markdown, javascript and ruby portions of these files are font-locked correctly.
  • Naturally, while I’ve been doing all this diverse hacking, I’ve been tweaking my emacs config quite heavily.

Misc

Closed-source

I have two main closed-source projects on my plate. The first, our site about celebrities and the charities they support, has seen me doing a bunch of Twitter API hacking recently. The second project, currently Top Secret, is a Clojure data-oriented website, using MongoDB and fun stuff like geocoding and data mining.

Thoughts

The programming ecosphere is more diverse than ever, and there are more powerful tools available to programmers than ever before. It’s thrilling to be involved with this, and to aid in the cross-pollination of tricks, skills and idioms between unrelated projects. As a work-from-home entrepreneur, collaborating remotely on open (and closed) source projects with interesting people is a surprisingly good proxy for having real officemates.

Comments