Yahoo! Hack Week - Georgia Tech

9 March 2009 - Georgia Tech

This past week I've been happy to participate in the Yahoo! HackU Hack Week and I've had a blast doing so, even though I missed out on a lot of the presentations and luncheons due to schedule conflicts. Such is college life.

The one talk I did make it to was the one given on Tuesday by Chris Heilmann. It was incredibly humorous (not unlike its author), and also very informative. It was also full of shameless self-promotion, which is comforting (these code ninjas are people too, allegedly). All in all, its main purpose was to prepare us for what Hack Day was going to be. Most of us took it in stride, and as a result, underestimated how frustrating a 24-hackathon can actually be, but we quickly learned the hard way (like spending a whole hour debugging 7 lines of code).

The rest of Chris's talk centered around the web and the way developers can approach it to deliver content to users in the way that's most useful to them. Most of it was stuff I already "knew", but gained a better understanding of, so it was a good use of time. Free food and swag also made it enjoyable.

I still think it was the best talk of the whole week.

Skip ahead to Friday at 5pm (Josh and I started late because I had a class). Josh and I were unsure of our original idea, and on the 5-minute walk from D.M. Smith to the CoC, I came up with the idea that we actually worked on for Hack Day. That'd be YQL.el. In short, it's an Emacs interface to Yahoo's Yahoo! Query Language, a method for essentially using SQL-like statements to access and mix the data you might otherwise do with Yahoo! Pipes.

My main inspirations for the idea were:

  • A lot of Emacs users I know either live in Emacs, or try their best to do so
  • A sizable portion of those are blind programmers

Obviously, given that I'm not blind I can't really say definitively whether or not YQL's console is suitable for that use-case, but I'm inclined to say regardless of that, S-expressions are much nicer to deal with in general -- especially programmatically -- and thus, they would likely be preferable to both seeing and blind programmers. Whether or not we pulled it off as well as it could be is in the eye of the beholder.

We finished the project sufficiently enough for our presentation. It had some issues that might have been solved if we'd been well-rested, but for the most part, it was acceptable for a presentation in our minds. The presentation itself went okay. I was incredibly nervous, and it was apparent from the rate at which I was speaking. One of our demo functions (integrated Yahoo! search) failed due to of all things having two functions called in the wrong order (tried to define a key in a mode-map that wasn't defined yet).

After all the other groups presented their projects, we were lucky to get to listen to a talk from Douglas Crockford, as in the author of JavaScript: The Good Parts and JavaScript legend (who I knew from reading the copy of Beautiful Code I got from GSoC last summer). It was a little on the slow side, as often good talks are wont to be, but it was by far the most in-depth analysis of the vices and virtues of JavaScript I've ever listened to without feeling bored. He also loves lambda, which made me near shout for joy when he threw this line into his talk:

lambdas are the single best thing invented in the history of programming languages

That's paraphrased a bit, but I'm glad he loves the lambda as much as I do.

Then came the awards! YQL.el got the "Hack for Good" award, which I'm absolutely thrilled about. With it came a few free t-shirts, a little wizard trophy, and something that's apparently getting mailed to me (I couldn't hear what was said over the applause). If you'd like to get a glimpse at the incredibly rough version of the code that we demoed, you'll want to look at the tag for 0.1. Like I said, it's really rough code at this point, so don't look to that for production quality.

I have been putting some significant work into the code today, and hopefully I'll have a 0.2 release with the next week or two which should be, by most standards, "production ready". At that point, I'll be looking to both assign copyright to the FSF (I doubt they will be interested in including a package which relies on proprietary technology running on proprietary servers, but it's still a good thing to do) and get the package included in ELPA. In the mean time, if you're interested, go ahead and fork the project and send me a Pull Request for your changes.