Monday, 13 August 2012

Yahoo! Open Hack 2012 - An Experience

Swami Nikhilaananda said:

I was excited when I heard that the Yahoo! Open Hack was around the corner when I received an email and read the tweet - It was time for the mayhem to begin. This was my second Yahoo! hackathon. The first one had been a brilliant experience. There are a lot of things to speak about Yahoo Hackathon. The sheer energy of people around you makes you go wow. Most people have that aura of intelligence on them.

This year, the event was held at Sheraton, Yeshwanthpur. I reached the venue on time, well, about 30 minutes past the actual beginning time. I found that quite a lot of people had gathered before me and had taken their seats inside the smaller room. I was done with my registration quite soon, and I wanted to have some coffee. I had skipped my breakfast at home (as has become my usual practice lately) and then my eyes fell on them - the most coveted item of the Hackathon... No, not the prize, the bean bags. I picked a nice spot next to pillar, the Sheldon spot. It was equidistant from the TV, the coffee counter and the lunch spread,  close enough to the rest room and the main room. So I got myself some coffee and a couple of those delicious cookies and settled down, waiting for Amod, my team mate and partner in crime to arrive. Quite soon, he was there as well, and we settled down with our laptops.

Then of course, there was an issue with internet. I had anticipated this, and had pre-downloaded some of the useful libraries like jQuery, so I was armed and ready to fire at will. We soon had a boisterous group of people around us, full of energy, passing comments periodically - really fun... especially their rants about the lack of internet. In fact, one of the participants actually got frustrated and went home (without a bean-bag!) Eventually they provided cables for us and things were back again.

A point I remembered from my previous Hackathon was that - There is never enough time during the end. If you keep things to finish towards the end, you won't finish it. The reason is not that you can't. The reason is that, your app, most often being unplanned and decided on-spot, won't be fully developed in your mind (and certainly not in real life) and being a timed event, towards the end, people will definitely get nervous. Even the smallest of bugs will seem daunting then. Another thing I learnt from my previous Hackathon at Yahoo! as well as the other at PESIT (Ayana) was that, rather than experimenting with a new technology, it is better to rely on a known one. While I did love the fact that I learnt very rapidly and implemented them on spot, I found that my recall of those technologies was minimal subsequently due to disuse, ergo a waste. Also, it will end up being an impediment when your event is timed. Since you have to learn and fix along the way, you won't be able to finish it on time.

Therefore, I decided to stick to jQuery rather than experimenting with YUI (which I heard is really awesome) because I am very comfortable with jQuery. We began coding as soon as the timer started, and our fingers drummed continuously and tirelessly on the keyboard. A point that I always make about Yahoo! Hackathons is the food spread, what a treat it is! Incredible indeed.

Eventually we were able to finish our hack - We called it Brock. Brock is a platform that is aimed at allowing a layman to develop apps for Android. Let me give you a couple of scenarios before I proceed. Let's assume you are busy in a meeting, and you keep your phone in the silent mode. You want to tell anyone who calls that you will call them later by sending an SMS back automatically. You can easily configure your phone to do that. Or let's assume you don't want your wife to be worried when your phone is not being answered because your phone ran out of battery - You can configure your phone to automatically send an SMS to your wife if the battery level goes below 15% saying that your phone might go out, and to not worry. You can configure your phone to send an SMS as well as turn on Wi-Fi automatically the moment you enter into your office building (location aware) - And remember, all of this without writing a single line of code.

How you ask? We provide a screen for you - that has two panes. Cause and Effect. You choose from among a list of causes (or combination) as to what should trigger the Effect. This could be things like Battery level dipping, getting an incoming call, a particular time period (schedule), your current location (GPS), movement, unlocking the phone, etc. You simply click on the button, and that gets added into the Causes section. Clicking on the Edit (pencil icon) will open up that cause for configuration where you provide information. In the Effect section, you specify what events should happen when triggered. This can be among sending an SMS, controlling Wi-Fi, setting a notification, launching an app, etc. The same process of configuration holds good. Once you are done, you click on Generate.

At this point of time, I want to mention a fantastic platform my Microsoft, called on{x}. Essentially, on{x} is a product written by Microsoft for Android (Don't rub your eyes, you read it correctly) and that allows people to control their phone extremely well doing all of the things mentioned above. However, this requires the person who does it to know how to write code. An average person, who doesn't know to code cannot avail these awesome and very useful features. Enter Brock. By providing a very easy to use interface, a bunch of mouse clicks will generate the code behind the scenes for him. He merely has to copy-paste it into the on{x} code area - and this is because MS hasn't provided a way for us to directly call their services.

So now, anyone can code, without knowing how to code. Have a look at our screenshot below. Click on it to see a bigger image.

The judges seemed to love the idea because it was reminiscent of Yahoo! Pipes to them - the idea of coding without coding, and also that it was an app for mobile phones. We won the grand prize for this year's Hackathon, which made us and all our friends very proud :-)

So why did I call it Brock? In Pokemon, there's a creature called Onix which is controlled by a character called Brock. Since our application controls on{x}, I called it Brock :-)

And by the way, by the time we came down from the stage, some people stole our bean bags :-(


R Pooran Prasad said...

Hey Nikhil.. that was a nice hack :) Congratulations on winning the title with flying colors.. launch it soon :)

Abhay Rana said...

So that was the story about the name.. Cool hack, and congrats for winning.