Last weekend (18-19 July) , I experienced my first ever hackathon. A few
months ago Shan asked me if I was interested to join the CodeXtremeApps
(CXA14) Competition this year. As I had just recently developed a liking for programming
and dabbling with the Arduino and Raspberry Pi, I thought to myself why the
hell not and along with Manu (a colleague of Shan’s), we were registered as
Team Narwhal. We had intermittent ‘discussions’ about the project and even
designated lunches to discuss the project we planned on working on; but it
wasn’t until a few weeks leading to CXA14 that we discussed what we actually
wanted to do.
The plan was to design an image capturing system to let you know what was in your fridge whenever you wanted to know. We thought it was a great idea and went about ordering the parts that we needed. When we finally met up to try out the circuitry and the plans we had for the hackathon, we discovered that the camera Shan had bought was a defective piece and heated up whenever it was plugged into the Arduino (oops!). On that day we came up with a hilarious list of names along with Manu’s lovely wife Manju and finally decided on BreakNeck (ask us why later).
Breakneck- Prototype 1
Fast-forward to the day of the competition. We were to meet
at SMU at 2pm to register, so Manu went ahead and registered our team and sat
through the briefing. When we reached, we found out that we were to be on
lockdown mode after 7pm on Friday until 3pm on Saturday. We were quite shocked,
considering none of us were really prepared to stay the night and we didn’t
really pay too much attention to the details outlined in the documents sent to
us by the organizers (oops again). Once we got over our initial shock, we sat
down and explored the different project themes our BreakNeck could fit into.
While discussing, Manu had a brilliant idea. He had recently moved houses and
had to call Singapore Power to cut out the power at the house. Shan piped in
that there are SP staff who come in once in two months to check on the power
meter of every single unit and bill them on a pro-rated basis. I of course, had
no idea that this even happened and was very surprised that the method was so
resource intensive and not accurate.
Thus came about a new idea for BreakNeck- use the image
monitoring system to capture snippets of the power meter readings on a regular
basis and then upload them to a server which would then be able to read the
values! Like seriously, why people hadn’t done this already was beyond me! We
quickly arranged for a RasPi camera (Thank You 12 Geeks!) and started cracking.
By 7pm we decided the path we were taking and broke down our tasks to satisfy
the task at hand. We even had a wish list for stretch goals we wanted to
implement. The plan was to have an initial prototype by 9pm. Our camera was
working perfectly fine (Shan’s had terrible experiences with killing RasPi
cameras), I was in charge of processing the images and getting a reading out of
them and Manu was in charge of the server development and creating a pretty
interface.
Everything seemed to be going perfectly fine. Shan was able
to capture images with the camera; I managed to use SimpleCV to do an Optical
Character Recognition of the images we were going to get and Manu had a basic
server which was able to display pretty graphs. We had dinner and worked a
little more. We had a couple of breaks to go out (luckily the helpers allowed
us to go out and get dessert). It was fun to see that there were so many things
to learn and so many people who were so focused on getting their things working
yet having fun while at it. Around 11pm, I started feeling rather sleepy but
kept working nonetheless. Things were still going smoothly although Shan seemed
to having a bit of trouble with the Raspberry Pi. As I completed my part of the
image processing, I was waiting to receive the images from Shan and we
contemplated implementing FTP over the mobile networks. I recall
feeling very exhausted and tired and thinking to myself that just a year ago,
it didn’t seem too difficult to stay up all night and work on things like a
report or watch movies.
As the night stretched on, I could feel my eyelids dropping.
There were a couple of people who were dozing on their tables. A couple of
friends of ours were well prepared with sleeping bags and went to bed. I saw
Manu and Shan working vigorously and felt like I wasn't doing much, so I decided
to work on the project some more and play around with mock images of power
meters. I started feeling very sleepy and decided to rest my head for a while.
When I woke up I noticed an hour had passed. This cycle repeated itself until
around 6am in the morning when I finally decided to leave the room. I sat on a
bench outside and woke up half an hour later finding myself lying down on said
bench. There were a few other people who lay asleep on the nearby benches which
made me wonder about the magic of sleep.
In the day session, we decided to move things to the cloud.
As Manu set up the web server on Amazon, Shan debugged his camera and GSM
connection; I tried implementing the code on the webserver only to realize that
it ran a different OS than what I was used to. After a lot of whining from my
side, Manu kindly switched to running an OS that I was more familiar with. For
the first time in a long time, I encountered a segmentation fault while running
my program and I was startled. We eventually managed to get a version of our
prototype running and as the judges trickled in to see our set-up I started
feeling more nervous.
Once the judges left, we went around exploring other
projects which I must say was rather fun. It’s amazing to see projects people
can come up with and implement within 24 hours! Once the judging was completed,
we all dispersed and waited to hear about who had been shortlisted for the
final round of judging (Update: We got selected with 13 other teams).
So what am I taking back from this experience? Well, I would
definitely say that it gave me a sense of accomplishment. I now know that
through amazing team work it is possible to achieve goals and come up with a
working prototype in 24 hours. I know that I can learn on the fly and do things
I once couldn’t imagine myself doing- I hadn’t even thought I was capable of
doing something like OCR a few days back. I know that I had an amazing team who
were so encouraging and patient even though I was quite annoying at times.
Would I encourage anybody to take part in a hackathon? YES!
It was one of the best experiences I have had in a while and I think it’s a
great way to learn and achieve things that you weren’t sure you could. Who
needs sleep when you know that somewhere down the road you will come up with
something that is awesome or atleast something you tried to develop. It’s
knowing that even though a prototype doesn’t work, it’s the knowledge you get
from it that makes a difference!
So please, if you have a chance to take part in a hackathon
or arrange one- DO IT! I was surprised to hear Manu say that he was able to
come up with something he’s been planning on working on for a year in 24 hours.
If that isn’t the awesomeness of a hackathon, I don’t know what is!



