This is a light hearted look at a great weekend of hacking at the Berlin Global Random Hacks of Kindess held at Betahaus, Berlin on the 4th of December 2010

No doubt about it – Berlin has a fantastic tech scene and this weekend it hosted the 2nd Global Random Hacks of Kindness. I had a slow start to the morning so missed out on the introduction to the problem statements. But when I arrived I began looking around for projects to work on.
Having looked over the problem statements I had thought I’d be working on Risk in a Box – a project that we had done some consulting work for in the past. However, upon arrival I had a look at the problems that were proposed by local orgnizers. One that stood out due to its technical challenges was Caritas Germany’s field mapping system .
A team was contemplating taking on this problem and they gladly allowed me to join them, despite the fact I spoke no German. More on that later.
The arguments
Brainstorming the idea further led to the expected friction between team members. But everyone was very civilised – except maybe when I proposed the database – I heard some German words fly around. The words either expressed extreme complements or the opposite :-) NoSql will do that.
1. What are we building?
Our first argument was over what we were building. Was it a web application, was it a database, was it a native mobile app, was it a mobile web app with an HTML5 (local storage)? The argument was resolved with an agreement to build a core API with a database backend and have loosely coupled clients on top that could work in offline mode if needed. For the purpose of the hackathon we would build a mobile client.
2. What mobile platform?
As alluded to above, eyebrows wrinkled and tempers flared (just kidding) with iphone vs. android vs. html5 (local storage). Given that we had an iPhone developer in the team (Engin Kurutepe) we decided the html5 and android client could easily be built later but for the proof of concept we would build an iphone client. This client would update the database via the API in real-time using the REST web service and have a local storage for off-line operations. Another client would be build for the office or operations room of an emergency coordination center. This would show the field updates in real-time using websockets.
3. What database?
Then came the question about what database to use. It had to support some degree of geospatial data and indexing. We could have gone with PostgreSQL+PostGIS or Sqlite+Spatialite or even MySQL but I intervened. As if we hadn’t already exhausted all available buzz words I suggested mongodb. Yes, thats right nosql. After some mumbling we agreed there were advantages to an document storage – especially when the data model was somewhat nebulous.
4. The data model
What were we storing in our database? … hummm … after some fluffing around on what we interpreted from the problem statement, we decided to called Gernot Ritter, the Disaster Relief Coordinator at Caritas. He was really excited to hear about our idea to build the real-time application. He recommended we make the data model as flexible as possible. So for the sake of simplicity we went with storing Events which would have the following attributes:
Event:
tags
description
location
photo attachment
Some more discussion on the finer details of the data model began but we felt this was enough to start writing code. And so we wrote code. Initial commit was a Rails app and by the 3rd commit we had decided Rails was over kill and we would build a light-weight API in Sinatra which anyone could build on. Thus I began work on the Sinatra app with Max, JoJo and Florian, while Klas started to investigate the web client and Engin sat in a corner writing Objective C for an iphone client.
The coding stints were very productive thanks to the great setup by the organisers and sponsors of the event. The food was great. One of the rooms had a XBox 360 + Kenetic set up so we could take a break and get some physical exercise.
Final application
Here is a screen cast of the final application. You can get the code at https://github.com/mschneider/disaster_maps
Photos
Some photos from the weekend: http://www.flickr.com/photos/rhokberlin
Presentation
I gave a quick talk:
Judges
Sadly I didn’t get a chance to meet all the judges but hope to catch up with them while I am in Berlin. Here is a shot of the judges. We were very pleased to have our project judged as the winner – though it took me a second to register we were the winners since the announcement was in German.
Awesomeness
We won some awesome goodies thanks to the generous sponsors 
The winning team :-)
Some more coverage of RHoK Berlin: MSDN Channel 9 Movements.org Frank Krippendorf’s blog gov20.de CIO.de Rest.to


Pingback: rhok di berlino: vincere una applicazione per la segnalazione georiferita di emergenze « de.straba.us
Very nice, very nice…
Pingback: Technology Volunteers from CrisisCamp Support RHoK Events « CrisisCommons
Congratulations to you and your team :)
Hey thanks man, thanks for the comment! How are you doing? We should meetup sometime. Will try to plan a trip to your end of Europe some time :-)