Tuesday, June 28, 2011

36 Hours at the Hackathon

imageLast weekend I took part in the Muther of all Hackathons at the Computer History Museum in Mountain View. The goal was to come up with a new mobile app within 24 hours. The apps are then judged in several categories and awarded prizes by the sponsors. They apps can be useful, novel, look nice, or just promote a certain sponsor’s pet technology, to win.

I got to CHM at 8:30am Friday morning with no idea what I'll be doing next. I sat through several sessions on the state of the mobile industry, the various mobile platforms and their disparity and various predictions that Android and Windows Phone 7 will drink Apple’s iOS milkshake by 2015.

But the real fun started after lunch: people divided into 2 groups: people with app ideas looking for developers for their team, and developers looking for a team to join. Every team could consist of no more than 4 people, serving as developers, designers, or product managers – often all at the same time.
I had several app ideas, but decided to shelve them and added my name to the 2nd list. That’s how I found Mark. Mark is a volunteer firefighting pilot and he had an idea for an app that will warn people of their proximity to wildfires, and allow them to communicate with each other and with first responders. The app was pitched as a not-for-profit app, with the sole purpose of saving lives. I was sold immediately.

I met Le, who already helped Mark win an earlier Android competition. We went over the available app categories and decided to develop a cross-platform mobile app and enter in as many we could. This entire hackathon was promoting mobile web development, as a mean to bridge the platform disparity gap. We decided to use PhoneGap as our main library, with jQuery and jQuery Mobile as the UI layer.

We found a corner, opened our laptops and started writing code.
We still needed a UI/UX designer. Those were snatched up fast all around us, but we were lucky and managed to get Marco on our team. He immediately set to work building a UI that will be clear, simple, work on all platforms, but most importantly, be useable to a person who sees fire approaching him. Team DisasterRadio was complete.

Team DisasterRadio at CHM
From right: Mark, Marco, Le and me at the CHM Hall of Fellows
We ran into multiple issues and problems throughout the night: this web solution is still young, and most libraries we used were in either alpha or beta stages. Internet forums are full of bug reports similar to the ones we encountered. But we had a race against the clock, so we cut corners.

Some of our issues were not technological: since our app shows data from a real time feed of fire reports, we had to make sure we can show a real live fire. Since fire conditions changed every several hours, we “froze” a fire into our demo. We took one of the real fires that raged in Arizona, dubbed “Wallow Fire” and saved its data to our server. And while our application uses geo-location to locate the user and fires around him, there were no fire around Mountain View, so we set our demo user in the town of Springerville, AZ – several miles north of the Wallow fire.

Our app allows the user to communicate with people around him through twitter, by using the fire’s name as a hash tag. We assumed that the first person to twit about the fire would create that hash tag and we played with it a bit. But we soon realized fires already have names and tags assigned to them by the fire department, so all the test twits using hash tag #wallowfire went into the real feed of actual people and firefighters around the fire. We stopped that immediately and faked our twits on top of the live twit feed in the app.

We worked all night, stopping once in a while to push coffee and Red Bull into our systems. The only thing I deeply regretted was not bringing a long-sleeved shirt – it got so cold later. The great hall was peppered with small air mattresses, and some people took turns at grabbing a few hours of sleep. But I reasoned that if I take 3-4 hours of sleep, I’ll be even more tired when I get up, so I decided to power through. And I wasn’t alone. The team worked hard all night and when dawn rose, we had a working prototype, with a final design.

wildfire screens

We spent the rest of the morning making sure that the app worked well on an iPhone, an iPod an Android phone and finally, on an HP WebOS TouchPad, that the HP team was kind enough to loan us. We also compiled our app to work with appMobi – a cloud solution for cross-platform mobile development. At this point, we started faltering a bit. Due to tiredness, pressure and inherent issues in the technologies, we ran into issues, regressions and at one time, I merged a file wrong and went back a version. But we kept our eye on the prize (and the other on the clock) and at noon o Saturday, we nearly achieved our goal.

Our last snag, occurring few minutes before noon (the official deadline), was that the TouchPad stopped showing the map. I rushed to the HP expert table and the very helpful dude confirmed they have had problems displaying Google maps and suggested some solutions. We had no time to implement those, so we just took a screenshot of our map and pasted it in WebOS Smile.
There were a couple of presentations after lunch, but frankly, no one was listening. People who had been hacking through the night struggled to stay awake and practiced their presentations. The random order put us 2nd in line to demo. There were supposed to be 45 demoed apps.

Our demo went without a hitch. We had 2 minutes to pitch and we used them fully. We demoed Wildfire on 5 devices at the same time: iPhone, Android, iPod, TouchPad and as a web site on my Mac. All in all, being a recent arrival to the mobile app development arena, I couldn’t believe we accomplished all of this in 24 hours.
Wildfire demo
Demoing the app

We sat through the rest of the demos. Some people decided to present more than one app, and we got 60 demos instead of the 45 scheduled. The judges became lax with the rules: some people took muuuch longer than the allotted 2 minutes per pitch. Some didn’t have their app ready and just used PowerPoint slides – a big no-no. Some just came from home with a readymade app (a pair of developers that demoed an app – I shall not name it here) actually demoed the same app 2 weeks before at an Android app meetup. Basically, at that point I could have whipped out armodello and demoed it, competing for an augmented reality prize, if I wanted.
Team DisasterRadio after our presentation
Waiting for the judges' decision

At around 5pm, after 33 sleepless hours, the demos ended and the judges took some time to render their decisions. We all sat together, waiting for each judge to pick his best 3 candidates.
We won 2nd place from HP (we each got a new Veer 4G phone and a Dr. Dre Beats Studio headphones) and a 2nd place from appMobi ($250 for the team). Joe from appMobi actually whipped out a wad of bills and paid everyone on the spot.
Team DisasterRadio winning the appMobi prize
Winning appMobi prize. Joe from appMobi holding cash

The grand winner was Air Guitar Move – an app that uses a unique piece of hardware, shaped like a guitar pick, to turn your iPhone into an air guitar. I have to admit, it is a very cool app and I enjoyed playing with it during one of the breaks. And it certainly was the most exciting one shown, but (you knew there was a but coming), it was definitely not built during the night or on premises.

Winners of Muther - group shot

I finally left at around 6:30pm and managed the drive home on sheer adrenaline. I hit my bed like a sack of potatoes at 8pm on Saturday – 36 hours after the weekend started. Haven’t done that for a while. Still, it was a great fun. I was taken back to my university days of finishing a project the night before it was due, and my army days, when we hacked at night and fixed really big problems, consuming coffee and stale cookies to stay awake (my record then was 48 hours straight).

And I learned that even though I progressed to “management”, I still “had it” – I can sit down in front of a blank screen, with a ticking clock, and deliver a working solution. And even though I’ve been working on my own for several years now, I still enjoyed working with a team, especially one so talented.

I would like to thank Mark, Le and Marco for turning this weekend into a great experience and I’d very much love to build a for-profit app with you all - any time.
Also, thanks to Tony from appMobi for jumping in at the last minute to assist with some issues we’ve encountered. And thanks to Caroline and Carlo from WIP for putting this even together. Caroline said the next such event will take place in Brazil. Hmm, haven’t been there yet…

For more shots from Muther, go to my album, or fitml’s flickr.
Also, here’s a review of the entire event on WAPReview.

No comments: