Citability Codeathon
Last weekend, 3 Reframe It Engineers (David Kovsky, Ben Taitelbaum, and Chris Runyan) participated in Citability.org’s Citability Codeathon in Washington, DC. We had lots of great conversations with lots of very dedicated people whose goals for the web align very nicely with Reframe It’s. The opportunity to spread the word about Reframe It and learn more about what other passionate people are doing in similar areas made the trip well worth it. We also created some open-source software to make it easier to cite specific data published on government websites.
The Goal
The primary goal of the codeathon was to create open source software and standards so that governments can make their websites easier to cite. In simple terms, here’s an example of the problem we aimed to solve:
A nonprofit publishes a report. The report includes information about government spending published on Recovery.gov, so it includes a link to the page containing the cited information. Then somebody at Recovery.gov realizes the information is incorrect and fixes it. Now the nonprofit looks like a liar. Mayhem ensues. Fingers point all over the place.
If there were an easy way for the nonprofit to link to the version of Recovery.gov as it existed when they wrote their report, making it clear that their report is based on that version of the data, without Recovery.gov having to do a lot of extra work to make this possible, then there’d be a lot more trust to go around for Recovery.gov and the nonprofits that cite it.
This is exactly what the codeathon was meant to create. And obviously it should work just as easily for any website at any level of government.
The Codeathon
The pace of the codeathon was very fast. The entire group met for dinner Friday night for a chance to get to know each other better. Silona Bonewald, the codeathon’s excellent organizer, then led a presentation and brainstorming session to kick off the effort. We went back to our hotel late that night and let the ideas sink in. We all returned early the next morning and after a little bit more group discussion, we broke out into teams and worked feverishly until late that night. And of course we started again early Sunday morning. Finally, at 4pm Sunday each team presented its accomplishments.
The 3 of us worked on the HTML parser team along with Firoze Lafeer and Robert King. We created a simple microformat that publishers can use to specify what part of a web page is or is not citable. Why should any part of a government website not be citable? Because it might be a widget that contains a feed from, say, Reframe It, Twitter, or some other external data. The microformat also allows the publisher to specify the server that is used to store the archived data.
Chris Runyan put this presentation together for our demo.
We were able to demo an IE extension and embeddable JavaScript code that works alongside the IE extension and in all major browsers. Each showed what parts of a page are citable with a small button. Pushing this button sent a request to the archive server, which checked its Bazaar repository to see if the information was already archived or if it had changed since its last archive. Ultimately, the user received a link that uniquely identified the information at that point in time on the archive server. We also wrote the server code, which talked to Bazaar, and a Sinatra facade to let us replace Bazaar with Git or some other tool as soon as the requirement to use Bazaar is dropped.
I should mention here that Ben Taitelbaum wanted me to give a shout out to Test-Driven Development with QUnit. Even in the fast-paced, sleep-deprived codeathon, he had the discipline to use TDD and was rewarded for it with high JavaScript productivity and confidence.
What’s Next?
I would encourage anyone who is interested in this project to check out Citability.org and get involved. I only mentioned the project we were involved in at the codeathon but there were several others. They were all very cool and helpful. I can’t wait to see them in action. We worked hard over the weekend but we knew it wouldn’t end there. As I mentioned before, everything created at the codeathon is open-source. We expect to continue to work on it….