PyCon Open Government Sprint: Free Software for Great Justice

I spent last weekend and the beginning of this week at my first ever PyCon. And while the whole experience was good, there was one part that stood head and shoulders above the rest: The open government code sprint hosted by Sunlight Labs, a two-day intensive coding session aimed at opening up government data. But first, I have a confession to make…

I’m a libertarian. I’m skeptical of concentrations of power, and state power in particular, and the list of things the government does that I find morally repugnant could fill a book (or at least a decent size academic paper). Also yes, I’m aware that was actually four confessions, not one.

But however pessimistic I am about government, I am about ten times as optimistic about the power of technology to make the world a better place.

What I love about technology, and code in particular, is that with nothing more than free software and cheap hardware you can build real things that not only produce tremendous value, but that can change lives. You can build a check against power, expose corruption, and enable unprecedented collaboration across the globe. And, as the Sunlight Foundation has shown, you can bring illumination to formerly dark corners of society.

Which bring us back to the open government sprint. Being in room filled with smart, passionate and dedicated people is an energizing experience. The open government sprint was packed with just such people, all working to make government data more accessible.

Much of the energy was focused on solving a meaty problem that Sunlight has set out to fix: How to make past and present legislation from all fifty states easily accessible. While every state legislature already has a website, and each exposes its bills in some form or another (PDF? Are you kidding me?!), there’s no unified way to get at it. And perhaps most importantly, there’s no API to get the raw data to pull it into mash-up applications.  Imagine a site that compares in real-time the pending state-level legislation on medical marijuana, or contrasts how the various states are responding to the economic downturn. During the 48-hour sprint participants wrote scrapers to pull in the data necessary for such applications and save it in a consistent, machine-readable format for several more states. Check out the Fifty State Project wiki page for a full listing of what states have been done.

In addition to the people coding scripts to scrape sites for the Fifty State project, there were a few other exciting projects in the works. Remy DeCausemaker and Luke Macken were hacking on CIVX, an ambitious effort to create a unified API for everything ranging from lobbyist financial information to records of charitable organizations. It’s a big project, but they’re off to a good start. Check out their dev site.

Anil Makhijani, Doug Mayle and I worked on Purple Voter, a web application and API for finding your districts, representatives and candidates at the federal, state and local levels.  The software also allows editing and adding information to candidates, both to fill out extra details (like adding Twitter accounts or homepages), and so advocacy organizations can annotate politicians with information particularly relevant to their priorities (like links directly to relevant position papers). We just started it, but you can see it at (only New York data so far, and I can’t promise we won’t lose your annotations). For the curious, you can check out our code on BitBucket.

Thanks to James Turk and Josh Ruihley from Sunlight for organizing the sprint. If 25 people can accomplish this much in less than two days of work, I can’t imagine how the world might look in even two years.