Tag Archives: Application programming interface

I Committed an Act of Civic Hacking

And you can, too!

The weekend of June 1 and 2 will be the Day of Civic Hacking. While helping to organize the Hack Michiana event, I discovered that I committed an act of hacking. Let me share it with you, and then make a case for you to join the hacking on June 2 in South Bend.

Origins

My hacking started with something I found annoying. Every day I drove to work, I passed by any number of houses that must have had municipal code violations. Code violations are things like grass more than nine inches tall, broken windows, those sorts of things; they create major quality of life issues for the city’s residents. It was never clear whether the city knew about the problem, or not, and if anything was happening with the matter.

The Initial Situation

It turns out that the city of South Bend has  a site where you can look up code violations one at a time by doing a “case search.” While this approach is useful if you are trying to look at a single property, it is not that useful for identifying trends, clusters of properties in a certain geography, or identify patterns where single landlords might be responsible for a whole host of houses that are in violation of municipal code.

There had to be a better way!

Search By Case

Eureka Moment

I noticed that as I drilled into individual cases, looking for the status, the URL with case details contained an attribute for “Case Year” and an attribute for “Case Number.” Lo, and behold, the case numbers were largely sequential. Sure, sometimes there were gaps, but for the most part they went up sequentially.

What are computers good at? They’re really good at following patterns.

Requesting Assistance

My software development skills are no longer what they use to be. I knew it should be possible to create a program or script that would crawl the cases and pull out data into a table that would be more useful than looking up individual cases.  I contacted a former coworker of mine, Charlie, and asked for assistance with this project. Before too long, Charlie had written a Python script that could increment the case numbers and pull the interesting data elements off the web page. What we got was a file with information like Owner Name, Street Number, Street Name, Case Type, Case Status, etc.. All of the sudden, we a collection of data and not just individual data points.

Visualizing the Data

The next challenge, now that we had a bunch of data, was to tackle the visualization. Again, asking a favor of a former coworker, Ken. Ken agreed to help out. The Google Maps API was something he had been interested in, and this project was an opportunity to explore it for a particular purpose. After some tinkering with the API, we decided that an interim solution was to use an service called BatchGeo, which would geocode a file and visualize it in Google Maps. It was a crude solution, but adequate for where we were at the time.

Map of South Bend Code ViolationsWhat we ended up with was a map of the code violations in South Bend. The color coding shows the issues that are closed, and those that are open. You can zoom in or out, filter, and search. You can go down to the street level and then click through to the City of South Bend’s web site for additional details. Pretty nifty, I think.

Now What?

I wanted to give one example of some civic hacking that I fell into. There are lots of challenges, and you can help solve one. Join us on June 2 for Hack Michiana, our local participation in the National Day of Civic Hacking.

Civic Hacking isn’t  about technology. While it is interesting to scrape data, geocode it, and then visualize it on a map, the real value comes from being able to foster positive action based on the liberated data. That is where we need a broad range of people to participate in Civic Hacking. You can help turn information into action!

What might one do now that they can see more patterns in the data?

What collaborations between concerned citizens, community organizations, and the government might be possible once people really grasp the situation?

We need your participation. It might not be for this project, but there is a project somewhere that you could become passionate about and make huge contributions to.

More Information on Civic Hacking

This video is a nice introduction to Civic Hacking. Take a few minutes to watch it, and I look forward to seeing you on Sunday, June 2.