Saturday, October 20th, 2007...2:20 am

Yahoo! University Hack Day

Jump to Comments

So Hsiu-fan and I had floated the idea of doing a hack for Yahoo! Uni­ver­sity Hack Day. We had even polled some of our friends about it, and the con­sen­sus seemed to be “We’ll see what we can do with the time we’re given.”

Well it turned out we didn’t have very much time. Today I opened up my email inbox to dis­cover that Hack Day was today, and the actual time to hack was only from 2PM to 6PM.

So I head on over to the Woz with the inten­tion of:

  1. Eat­ing free food
  2. Grab­bing a t-shirt or two
  3. Talk­ing to some of the Yahoo! devs
  4. Giv­ing a cou­ple of hours as a free­lance developer.

While I eas­ily man­aged to achieve #1, 2 and 3, #4 (join­ing a ran­dom group) was some­thing that I didn’t expect to do.

Hsiu-Fan showed up half-way through the com­pe­ti­tion and told me “Okay, I have 50 min­utes. What do you want to do?” We had floated the idea of doing the Rhap­sody scrob­bler. “Okay,” he tells me. “I think I can do that in 50 minutes.”

But by then, I’ve been snagged by this other group, com­posed of folks mainly from the CS Under­grad Asso­ci­a­tion. The idea? The cre­ation of a com­muter Web appli­ca­tion that would take peo­ples’ com­mute details and sort them into car­pools based on convenience.

The prob­lem? These guys were seri­ous Java heads. I was the lone Web devel­oper. We were going to have prob­lems. For­tu­nately we man­aged to hash out a some­what work­ing hack using the skill sets that we had.

Okay, it was a “hack” in every sense of the word. The other guys didn’t want to imple­ment a data­base (which means no lock­ing, no syn­chro­niza­tion). I was pars­ing browser inputs through PHP and writ­ing them out to a flat file. Then some­thing got slurped by our Java back­end and requests were shot back and forth between Yahoo! Maps and our ser­vice. Then the result­ing routes were writ­ten out to a flat file and a PHP script con­sumed it on demand, dis­play­ing cal­cu­lated routes.

My job? I was the fron­tend guy, inter­face guy, PHP guy, and client-side guy. I put together a pretty quick-and-dirty inter­face (see below) using YUI grids and reset. Then I did a pretty mas­sive Franken­stein CSS job, piec­ing bits of code from the Blue­print CSS frame­work, pre­vi­ous projects and Wejoinin.

(Aside: If there’s one thing I appre­ci­ate about a CSS frame­work, it’s the flex­i­bil­ity and speed it affords you. I love, par­tic­u­larly with Blue­print (which I would have pre­ferred to use on this project but didn’t because it is a Yahoo! Hack Day), the abil­ity to lay out a grid-based lay­out using CSS selec­tors in a frac­tion of the time it takes you to build it again from scratch.)

Then I took a deep breath and sum­moned up enough of the PHP left in the recesses of my brain.

Oh yeah, Hsiu-Fan didn’t man­age to fin­ish the Scrob­bler on time (50 min­utes was pretty opti­mistic), but we’re look­ing into fin­ish­ing it up some­time, some­where else. And it will be cool and we will feel fuzzy.

Hack day lessons

  • Come in with a cool idea with a cool team ready to exe­cute. Don’t assem­ble some­thing together last minute.
  • Yahoo! cares more about peo­ple that are pas­sion­ate than about peo­ple who have impres­sive resumes.
  • Your project idea should be lim­ited enough in scope to be polished.
  • Even if your team strengths don’t align well, you’ll always find a way to do [your hack].
  • Come on, Yahoo!, could we get a lit­tle more than 4 hours to fin­ish? :)

All in all, a bunch of fun. I’d def­i­nitely do it again. And I’d pray that I’d have a lit­tle more time to exe­cute. And hope that peo­ple don’t give me any more weird looks when I tell them I was at a “pro­gram­ming contest.”

Commuter InterfaceCommuter Interface

– Edit:

Berke­ley Hack Day hap­pened Fri­day at a fre­netic pace. We invaded the Woz in Soda Hall and stu­dents were trick­ling in and out all day with a core group of four hack teams stay­ing for the dura­tion and a cou­ple of teams work­ing remotely. The teams fought Java, Python, C++ and PHP all day long, with Java defeat­ing at least a cou­ple of team mem­bers with its mul­ti­ple lay­ers of input streams required just to pull in a sim­ple text file. We also fought with RSS feeds from Craigslist, news archives and local Berke­ley event listings.

In the end it was a very close race between two hacks that rose above the rest: an extremely use­ful car­pool com­muter appli­ca­tion that matched up peo­ples’ addresses and their daily des­ti­na­tions and tried to orga­nize the most effi­cient com­bi­na­tion of car­pools, and a mag­nif­i­cent hack that pro­vided a cell phone inter­face to the old game of Twenty Ques­tions. The impres­sive mix of tech­nolo­gies required to answer the call auto­mat­i­cally, acquire the data for the twenty ques­tions, do the text-to-speech trans­la­tion and issue the FFT code to deci­pher the user responses from the cell phone won over the judges to take the top prize.

Berke­ley Uni­ver­sity Hack Day Wrap-Up Yahoo Devel­oper Net­work blog

1 Comment

  • lock­ing, syn­chro­niza­tion, ends of either ori­en­ta­tion? yes, i … fully under­stand … those things. (and now i go back to puz­zling over accum­lat­ing recursion)

Leave a Reply

Powered by WP Hashcash