Open Source Roundup

Posted on 2014-09-19

I realized recently that I’ve never written anything about any of the open
source code I’ve written. Though
I’m by no means a prolific contributer, there are a few repos kicking around
my github profile that may be of general interest. This post is an attempt to
catalogue a few of them, and reflect on how they turned out.

djangbone

My first, and most “successful” project, djangbone
is a REST API library for Django. I was learning Backbone.js at the time (this
was in 2011), and wanted to write some backend APIs that worked with Backbone’s
conventions. Djangbone is intentionally minimalistic, but also pretty extensible
and you can create a pretty useful API very quickly.

I’ve been pleasantly surprised by how much attention Djangbone received. I put it
on Django packages early on, and
that seemed to get it some traction. As of this writing, it’s still the 4th most
popular API library there, ranked by GitHub stars.

backprop

Another project that received a bit of traction, backprop
is a Backbone plugin that helps you use JavaScript’s
properties
on your models.

Even though properties are pretty commonly used in Python, they
don’t seem to have found much uptake in JavaScript-land since being introduced in
ES5.
I always thought that was a shame, and replacing Backbone’s somewhat ugly model.get('name')
for property access seemed like a perfect fit for them. On top of that, backprop lets
you define lightweight schemas (eg. type coercions and default values) along with
your property definitions.

littledom

littledom was a fun pedagogical exercise–
it apes a subset of jQuery’s DOM manipulation API. I learned a lot while
writing this and peeking into the internals of jQuery and Zepto. It’s also come
in handy for a couple of small side-projects where jQuery felt like overkill.

shamus

[shamus] is a project automation/watcher desktop application. It’s a
node-webkit app that runs pre-defined tasks when files in a (recursively) watched
directory change. I’ve found it really useful for running unit tests, linters, and
build tools and receiving near-instant feedback without jumping between apps.
However, since I’m now using tmux pretty
heavily, I haven’t fired shamus up lately. I’d like to try making a curses-based
version to run in a tmux pane at some point, that could be pretty useful too!

openra_chart

d3 is a library that had been on my radar for a long time,
but I’d never sat down and built something with it. Earlier this year I finally
took the plunge and built a little unit visualization for one of my favourite
video games, OpenRA.
I still have reservations about the resulting design, but it was
a fun learning exercise. If you’re familiar with OpenRA, you should check it
out.

canvasulative

A fun little game I made a few
years back. One of my first experiments with <canvas>, this is a clone of
a Flash game that I found incredibly addictive. My nephew seemed to really like
my version and told me he played it a lot, which I thought was
pretty great. If I remember correctly, my high score is around 6300…

Wrapping Up

There are a few other odds and ends on my GitHub profile,
(including my dotfiles and this web
site). I have a stack of open source ideas
I’d like to get to, but finding the time has really been a challenge of late
(for very good reasons).