Callbacks Are An Informal Pipeline

March 7, 2010 Spending some time with Node.js I've begun to realize what a pain callbacks can be when they become sufficiently deep. That said, after sufficient nesting it's pretty easy to see how callbacks become very similar to a pipeline (in the simplest case, anyway).

Filed under javascriptnode-js

Updating Processing.js Graphics via Ajax

May 20, 2008 A look at an example of using Ajax to create synchronized and dynamic graphics. To keep things simple the backend creating the data is a one line php script, but the concept applies equally well to real services.

Filed under javascriptprocessing-js

Slack and Hope for Middle Management

August 25, 2012 Sometimes working in middle management feels like being trapped purgatory between making policy and making software. Tom DeMarco's Slack paints a much rosier picture.

Filed under management

How to Write a Wrapper Library

August 4, 2008 Recently I received a comment wondering how to approach writing a wrapper library on top of an existing library. Although writing wrapper libraries is hardly a lost art of antiquity, developing a new interface to a library can create a lot of added value without too much effort, so it seems like something deserving of a couple hundred words.

Filed under design

Bad Ideas and Regular Expressions in Templates

November 5, 2008 A meandering story about creating a simple if-else derivative template tag that matches arbitrary values against regular expressions instead of matching boolean values.

Filed under djangotemplates

Python Content Scraper for

August 8, 2008 I spent a while today writing a fairly kind content scraper for, which shows how to use Python's httplib2 and BeautifulSoup to scrape data with a flexible api and minimal http connections.

Filed under pythonscreen-scraping

Overview of Using Django on the Google App Engine

June 17, 2008 A look at the advantages and disadvantages of using Django with the Google App Engine. Touches on the GAE platform itself, as well as looking at areas where ported Django projects will have to be adapted to the App Engine's unique environment.

Filed under djangogoogle-app-engine

A Year Later, Home From Japan

August 9, 2008 As many of you (if anyone actually reads these) already know, I am back from Japan. Here are a few thoughts about returning back to America.

Filed under japan

You Only Learn the First Time

November 6, 2008 It's easy to get caught in the cycle of programming language acquisition or library re-implentation circuit. I'm here to propose a better way for spending our programming time to create more useful projects, and to become more versatile programmers.

Filed under writing

Opening Files With Associated App in Cocoa

April 5, 2008 Recently I spent a while trying to figure out how to open files in my Cocoa app. Not just open them, but have the correct application launch with that file as an argument. I knew that Carbon achieved this with LaunchServices, but was unsure about the Cocoa equivalent to LaunchServices. But, it turns out to be quite easy to use. (Hint: its NSWorkspace.)

Filed under objccocoa

A Photo Album with Python and PIL

January 4, 2010 I wanted to do a fairly mindless little scripting project after spending too much time on well documented and maintained code. It's important to let your hair down sometimes. In this project I use Python and the Python Imaging Library to create a simple photo album.

Filed under pythonpil