Liveblogging the Development of Defogger

The Apps for America contest put on by the Sunlight Foundation is happening right now, and submissions are due on March 31st. Like any respectable software developer, I’ve put off working on my idea for far too long. With two weeks left to go, I’m finally getting around to working on it, most recently coming up with some mocks of the home page:

mock1.png : Page 1 @ 100% (Bitmap)

Defogger Mock 2

I’ll likely go with the second mock, as the Capitol background is a bit too busy and won’t work well for the interior, information-heavy pages. In the spirit of transparency, I’ve decided to “liveblog” the entire process of creating the app during these next two weeks. I hope to share design decisions I make, problems I run across, and things I learn. Knowing that I have an audience will hopefully spur me on to create something really good, and maybe will encourage others to attempt an app of their own before the contest is over.

So what’s the idea behind Defogger? It’s a simple app that uses OpenCalais to semantically mark up a news article (or a blog post or a press release), and enhances the marked up document with transparency-related APIs. So imagine giving Defogger an article about some member of Congress presiding over the groundbreaking of some multi-million dollar project funded with stimulus money. Defogger would answer some of these questions:

  1. The Politician: Which district does he represent, and for how long? Who are his biggest contributors? Are any of them mentioned in the article? Did this member of Congress put in an earmark or otherwise grease the legislative wheels for this project?
  2. The Construction Company: Does this company employ lobbyists? How much money have they contributed to members of Congress, and are any of those mentioned in this article?

Like any good side project, I’m using Defogger as a means of learning some new tools and techniques:

  • jQuery: I don’t know this Javascript framework nearly well enough, and usually need to defer to other teammates for their expertise. I want to become a jQuery ninja when this is all said and done.
  • Shoulda, Factory Girl, and Mocha for Behavior-Driven Development: I’m comfortable with RSpec, but I know that Shoulda is what the “cool kids” use in the Rails world, and I definitely could do BDD and TDD much better. I hope to build the entire app this way. I employed full BDD with the Sunlight API Gem to great success.
  • New Rails Features With Rails 2.3 just released, it’s been far too long (since maybe Rails 2.0) since I did a $ rails my_new_app on the command line. While Rails has been pretty stable these past two years, there are a lot of goodies that I’ve never learned and tidbits I have yet to pick up. I hope to fill those gaps with this project.
  • Haml + Sass, and Compass: While I don’t have the best web design chops, I like to think I can hold my own. However, the process of skinning a site is always painful, and I’m constantly looking for ways to produce better, more maintainable, front-end code.

37signals likes to tell us to embrace constraints. Hopefully, I’ll learn that lesson and more throughout these next two weeks. Please consider subscribing to my feed if you’d like to come along for the ride.

blog comments powered by Disqus