Tuesday, February 21, 2012

Hacking all night @ NUSHacker's Hackathon

*Images of my happy teammates =D

Ha ha we won 2nd prizes of NUSHacker's Hack & Roll event last weekend. It was fun (but not that fun, ahem) to stay up a full day to code = )

We built something we ever wanted:  a visualization of SOC modules dependencies. Every semester I when I select modules to take, I wanted to know which modules I could take if I take a certain modules. Sometimes I'm interested in a high level modules, I want to plan modules in advance so that I can take it later as well. But what IVLE / CORS offer right now is only the prerequisites of each modules.

Every semester, I wanted to build it. Last vacation I told Hoang (the guy wearing a black jacket on the photo) about  when we bid for modules, and incidentally, he said he wanted the same thing for long! It must be a common problem for a lot of students. When the hackathon came along, we decided that it was the time to sit down and make it happens.

We built a web app that solved exactly that problem. It shows you which modules a certain module depends on, and the dependencies of these modules as well. It also show which are the follow up, higher level modules of a certain module. You can see how a level 5 modules depend on a level 1 module! You can select and deselect a few modules to see if you can still take the desired modules. Pretty simple and straightforward. It's like a skill tree, if you play games.

Well, it's not that simple to build ha ha. We intended to build something simple so that we could complete in 24 hours. One of the reason we picked the idea was because we thought it was simple enough. But we ended up with having to write our own crawler (to crawl modules information), simple parser (to figure out the logic of modules dependency), and 5 iterations of UI to make it simple enough to view (SOC turns out to have 200 modules! And this semester NUS offer around 2000 modules! Ugr.) Coding took a lot of effort, but the hardest part was in visualization: how to present the graph in a nice way that actually usable. And even coding the graph was no easy feat, since Hoang wasn't familiar with Javascript & Html5 Canvas API and had to figure out how to visualize the things on the fly. It was hard to describe it now, but after 10 hours into the Hackathon, I certainly felt like giving up already. LoL. (I remembered some guys coming and asked us about what we worked on when we were at the lowest morale and I just politely told him to let us concentrate).

But we managed to made it in 24 hours, with a lot of sweat (and profanity, swearing and cursing). Darn, it was a sweat feeling. I didn't think that people would be impressed, but they were more than excited about it. They told us how they would love to use such service, and how they liked our UI, and such. That was happiness. But my friend put it better: it was the happiness of complete a thing.

We learned a lot in 24 hours hacking the stuff. Oh, and we happened to win the second prize of the event along the way.

I'll update the link to our service later when I have access to it. I don't have it now sorry :-(

P/S: I'm having a Playbook 16GB for sale ha ha. Do contact me if you're interested =P

Saturday, January 7, 2012

Promise

Last December I visited a relative of my friend. He was around 40 and was, in some sense, an accomplished doctor. I had talked to him and acknowledged his experience as well as knowledge. He was far from a normal, average person.

However, his house looked like a derelict place. Everything was covered by dirt. On some part of the wall, the paint had fell off to the floor or partially fell off. There wasn't any furniture in the building, except for a refrigerator with little food inside. The dim neon light instead of brighten the place, made it looked even worse. The kitchen and the toilet looked messed up and terrible as well. 
I couldn't imagine staying in a place like that for long. My friend said it wasn't always like that, but after he divorced few years ago, he (kind of) stopped caring, and lived a temporary life. It was natural that his house degraded to this state. Although I respected him, and believed that it was not his desire to live in that state (no one would want so), I was disappointed by what was presented in front of me.

That moment, I thought: would something similar happened to me in the future? Then I made a promise to myself that whatever happened, I wouldn't give up on life. Well, that sounds general, but in the smallest ways, I will clean my house and reorganize my stuff every weekend. I will attend to even small little things in my home, because I believe they affects the owner's outlook greatly. I'll look after myself and take responsible for my own well being.