Last weekend, I participated at the Open Data Hackday hosted by Hubert Burda Media in Munich. It was my first hackathon and I had a fantastic time, not least because my team actually won the first price. But let’s start from the beginning.
A hackathon for journalists
The Open Data Hackday is not like other hackathons where the particicpants usually are only developers. Instead, teams are required to be interdisciplinary, mixing up three different roles: designers, coders and journalists. Each team needs to have at least one member for each of these roles.
This might be quite different from usual hackathons, but there is a very steady reason to it. The theme of the Open Data Hackday is to build products with journalistic relevance, making use of public data sets, creating nice visualizations and telling a story with the idea. Hubert Burda Media is one of the biggest publisher companies in Germany, and as other publishers, has a hard time redefining its role in a digitalized world. The Open Data Hackday is one way for Burda to generate ideas about how the future of journalism could look like.
In the hope of finding a team or an idea, I went to the socializing event on Friday evening, only to be confirmed that web developers set the tone and native iOS developers were in rare demand. So, I went home without team or idea, hoping to find one on the last meters on Saturday morning before the hacking would start.
Finding a team…
The schedule for the hackday was well-structured. The location opened at 08:30 h in the morning for coffee and breakfast. During that time, participants without teams still had the chance to get together and find people to work with. At 10 h, the organizers, Natalia Karbasova and Maximilian Gaub, gave a short introduction and explained the rules of the hackday. Afterwards, the teams were free to start.
During breakfast time, I got to know Max, a journalist who didn’t have a team yet either. But Max at least already had something in mind – something that would turn into the winning idea later on. He knew about a PDF document that was recently published by the Munich police department, containing a list of public cameras and their locations. As a journalist, he wondered whether the degree of surveillance by the government is justified and wanted to create awareness for the topic. Another friend of mine, Jascha, at that time was also still looking for a team to work with. After the introduction session had finished, Max, Jascha and I finally decided to form a team and work out Max’s idea.
…and finetuning the idea
It seemed to be clear that we would try to visualize the camera data from the PDF document, but this didn’t necessarily seem like a task that would take a whole weekend. Jascha, taking the designer role in our team, is actually a mix of half designer, half developer. Next to knowing what a great website should look like, he is also capable of creating one within a very short time. So, we also needed to find the right balance between our different skill sets, Jascha as designer/front-end developer, my strength in iOS development and Max the journalist.
We discussed the idea and it became a bit clearer. Next to visualizing the camera data, we wanted to give users the possibility to add cameras to our dataset. That’s what we decided to use an iPhone app for. The app should give users the possibility to take a picture of a camera that they spot in public and submit it to our database. But it was only when we started talking about the relation between crimes and public surveillance when the idea started to turn into its final form. Being able to visualize crimes and correlating them with locations of public cameras seemingly was a very valuable idea, as it would allow to confirm or disconfirm the governmental strategy of increasing public security by means of camera surveillance.
„My brother is a python programmer„
So, the idea was there and actually seemed quite promising. Its realization, however, still was pretty far down the road. We needed a way to obtain crime data in a structured way – all we had were the reports of the Munich police department, which were available only in the form of completely unstructured text without any meta information. So, what we needed was a developer who would be able to extract the information that was contained in the press archive and prepare it so that it could be consumed by Jascha’s visualization. That’s when Max dropped the line that gave the whole project a new direction, delighting us with the information that his brother, Florian, had a major in Computer Science and quite some experience in Python programming. Despite the fact that Florian receveived Max’s call during his Saturday morning breakfast and probably was looking forward to a quiet weekend, he spontaneously decided to give us a chance and after not more than 45 minutes he sat there next to us listening to our plan. Again, special thanks to Florian for his spontaneity to join our team and completing it with his skills!
Munich Watcher – a tool to visualize where public cameras are located in Munich
From this point, everything seemed to be worked out. Max would convert the camera list from the PDF document into JSON format so that it could be properly visualized. Another challenge we faced was that the cameras were associated only with locations, but not with precise addresses or even coordinates, so Max also did the research of going through the list and enriched each camera with its address and coordinates. Meanwhile Jascha started building our website, Florian scraped the crime data and I started building the iPhone app.
After a while we came up with another feature that would be nice to have in the context of camera surveillance. Since we found that the number of public cameras in Munich was actually pretty high, it seemed to be interesting to know how many cameras are located along a certain route from one location to another in Munich. How many public cameras are recording me on my way to work? This functionality seemed like a great addition to our iPhone app, which until then only served the purpose of taking a picture of a public camera and adding it to the data set, so I got busy on this new feature, too.
And the winner is…
After a long Saturday evening, few hours of sleep and a busy Sunday morning, our final product looked a lot like we imagined it. Max and Florian both did great jobs in providing the data in the required format, Jascha built an amazing-looking website with a map showing camera locations and a heatmap of crimes. And we had working iPhone app that also showed camera locations on a map, offered the functionality of adding a camera to the dataset and allowed to calculate a route and the number of cameras placed along it.
At 14 h, the time for development was over and the teams presented their ideas and final products. Despite a very tough competition and a lot of other impressive projects, the first price went to our team. It was a close call between us and another team, who won the second price with their project called Dunkelziffer, the idea of building a simple client to the darknet. The third price went to the project Tweetimizer („spice up your tweets„), a tool to optimize tweets by enriching them with trending and related hashtags.
A lot of luck and the power of a well-working team
Thinking about how my team won the hackathon, the greatest luck seems to be in the fact that every team member fully fit into the scope of the project with his skills. Everyone was working highly productive the whole time, and everyone’s work was visible in the final product. Another factor that was important regarding our performance was that we set a scope that was just perfect for the hackathon distance of two days. We didn’t reach too high and focussed on a limited set of functionality to prototype our idea. The fact that we could show a website and an iPhone app surely also contributed to our victory in the end.
(By the way, the German tech magazin CHIP also published an article about the event.)