You might have spotted a few ads on Developer Fusion recently promoting Cloud Hack 2011. The idea was to bring together a great bunch of developers with access to some great APIs (including National Rail, Bing Maps, PayPal and Huddle) for a day of "hacking the cloud", with some great prizes on offer for the winning team. If you missed the day, don't worry - there's a "Hack from home" competition running until 30 June giving you the chance to win up to £500. The winning team on the hack day itself were from Governor Technology, so we thought we'd leave it to their senior developer Monty to describe how their day went.
Saturday 11th June, early morning and under brooding skies, the Governor Technology team made up of Bjorn, Shukri and Monty (that's me!), head to The Brewery in Moorgate to face our destiny and take part in the 2011 Cloud Hack Challenge.
Here's my personal account of what went down and what we came away with…
The aim of the event, sponsored by Microsoft, is simple: teams of developers work to 'hack' an application using data from popular APIs and then deliver it on the Azure cloud platform. The APIs used for the competition were from Bing Maps, National Rail Enquiries, PayPal and Huddle.
The challenge was that we only had 4 hours to design, build and deploy the App to the cloud!
The space soon filled with around 100 developers and Joel Jefferies (authority on all things Microsoft and MC for the day) introduced the participating companies and their APIs.
Joel told us about the prize money (useful) and gave us our task "Try to build an application, using as many APIs as possible, and deploy on Azure". We had our challenge, and it was time to get coding!
The API which took our fancy belonged to National Rail Enquires.
Our idea was an App, which compares how long it takes to get to a destination by car and by rail.The app would works out the user's current location using HTML 5's geolocation, with the user just entering their destination postcode. The app then shows the different journey times by car and by train. The user would also sees a visual breakdown of the journey both in terms of the roads taken (using Bing Maps) and, for the rail route, the railway stations along the way.
I broke down the App's requirements into manageable development blocks, and we each set out creating our own bit. Bjorn's role was to handle Bing maps integration, Shukri made sure Bjorn had all the data he needed to plot this,and my job was to talk to the National Rail Enquires API, and use it effectively.
Time flew. At 12:30, waiters began shuttling small plates of (delicious) food around which helped immensely and meant we could both eat and code at the same time- a perfect environment! :)
As the development deadline approached, we were confident we had a very good chance of completing a solid App. We even had time to add the Governor logo at the bottom of the page!
The next step was to deploy the app to the Azure cloud. We felt this would go OK as had
spent the day before honing our Azure deployment skills. I hit the "Publish to Windows Azure" button and sat back, watching the progress bars move, and nervously checking it every few seconds. With everyone else in the venue trying to deploy at the same time, the modems begging for mercy and it could have overloaded the wireless connection, but it held out!
Once we had the application deployed, we had to send our IP address to the National Rail Enquires guys, so they could add it to the firewall rules. A few minutes later, we received word the IP address was added, but checked the site and it didn't work! Did we make a fundamental mistake with the service? Did it actually work locally at all? Had we given them the wrong IP Address?
Panic set in…
We frantically tried to debug the App, connecting to Azure to see if there was a problem with the service. Had we missed something when packaging our application? Was there a firewall problem? Long minutes later, Suleiman from National Rail ran over, apologising for having added the wrong IP address and telling us he'd now put the right one in.
Now we all looked at each other, wondering if our app would work.
Would it, or was there a fundamental flaw in the code that could not be rectified in time? This was the 11th hour - it was too late to fix anything. All we could do is refresh the page, cross our fingers and hope. If it would have helped, I would have run to the roof and sacrificed a goat to the internet gods - if only we had had a goat handy.
It worked perfectly, and was lightning fast! We had nothing to worry about and all that was left to do was fill in the form that the organisers gave us, with a description of our app. We had insulted Jeremy Clarkson and had proved that trains were faster than cars!
And still we waited. Everyone around us was having deployment trouble, quite a few people were still tapping away as fast as possible to try to get their application done. The API partners, and the guys from Dot Net Solutions (who were there supporting Azure deployments) were running all over the place, giving everyone a hand. All we could do was attack the raspberry pastries, and drinks. Shukri even had a large can of Relentless, which we told him he would regret later!
After what seemed like forever (in fact, it was only about half an hour), Joel announced the 6 teams that he would like to present their Apps, apologising for the fact that they couldn't pick everyone due to the time constraints. Even without the goat, the internet gods were smiling on us - we were one of the 6! The rest of the team was really shocked, I was horrified and shocked, because I knew, as the senior developer, I would have to present in front of millions of people.
We were ushered into the presentation room, and Joel announced the first team to present was Governor Technology. I didn't want to stand up in front of everyone by myself, so I managed to drag Bjorn against his will, pretty much at gun-point, to drive the computer while I presented the App on the microphone.
I introduced the App, and went through all the features we added. We showed off our full postcode to postcode workflow (going a step further than National Rail which can only provide postcode to station), and showed off the statistics that it will produce and the directions to your nearest station that it can provide. And at the end, we showed our extensive, complex PayPal integration of a single "Donate Now" button at the bottom, which everyone found hilarious.
The five other teams presented their ideas, some of which were impressive, and we knew that this would be a hard fight. A couple of teams had the same idea, such as an iParcel App which involved sending a package to a destination and planning the route by Bing Maps and the National Rail API.
We were ushered out whilst the judges deliberated. The tension in the room was so thick you could cut it with another raspberry pastry, or three.
After the 3 pastries (which translates to 10 minutes or so), we were invited back into the room, where prizes where going to be given.The prizes were given in reverse order, from 3rd to 1st.
We were all very shocked and delighted that they had picked our application as the Best Overall App, as we believed we could do a whole lot more with the application had we been given more time.
On the way out, Jonathan from National Rail Enquires said he was very impressed with our application, and would love for us to develop it further - so watch this space! The App will soon be live for people to play with, so keep coming back for updates. We want to thank all the guys and sponsors at Cloud Hack for organising a great day. See you in 2012…