What came out of Hackathon Weekend

My self-imposed “Hackathon weekend” is drawing to a close! Last night I posted a semi-frantic entry about being disappointed in the video quality of TokBox. I guess you could say this was my first thesis-related crisis. I went to sleep with some serious doubts about next steps.

This morning, I woke up and decided to keep going with TokBox. Why? 1) My contact at Vidyo wrote back and said pricing for their API starts at $100,000, which is just a bit out of my budget. 2) I’ve decided building a “wrapper” around Google Hangouts is boring and clunky, and I’d rather my thesis end up imperfect rather than boring. 3) The TokBox team is awesome—we ended up emailing back and forth and they have been ever so patient with helping me troubleshoot the delay issues, even on a weekend.

As a result, I’m hopeful about using TokBox again. If I can get Tokbox latency down into the ~1 sec arena, it will at least be usable. Even if it will never match up with Google+ Hangouts in speed and quality, it will allow me to play around with building a custom interface. An awkward interface was one of the more obvious pain points revealed through prototyping with Google+, so I’m happy to be able to address this problem again.

And this brings us to what I did today: I banged out a quick ‘n dirty first stab at a custom interface.

Welcome to my living room. This is how my boyfriend and I spend our weekends together: sitting on the couch ignoring each other for hours at a time. :)

True to the spirit of hackathoning, this is probably some of the worst HTML/CSS/Javascript I’ve ever written, but it works. (For starters it is all in one file.) Basically what this interface allows you to do is:

  • toggle visibility of ingredients list
  • mark off ingredients you’ve already gathered or prepared
  • view recipe one step at a time (I rewrote a test recipe to break up the instructions into smaller, more manageable chunks)
  • use left and right keys on your keyboard to navigate between steps
  • see what step your friends are currently on, as indicated by colored dots (This feature doesn’t actually work yet, because I need to set up some mysterious backend voodoo involving “sockets” or “polling”)

I also spent a good hour or three figuring out how to dynamically change the arrangement of the video boxes when more people show up or when the window gets resized, all while preserving the aspect ratio of the boxes and making them as big possible given the space/# of boxes. The solution I ultimately came up with involves quickly testing every likely arrangement then picking the one with the biggest videos and applying it. Good thing computers are fast and can do those calculations hundreds of times per second.

One big happy family of Mac products overwhelming my rickety ol' Time Warner broadband with interconnected video chat sessions.

What’s next is probably putting this darn thing to the test with other people (because video-chatting with yourself on 3 computers gets old pretty fast). Next week I’ll invite 2-4 friends to cook with me using this interface. I also want to make the step indicator dots work ASAP, because I think that will be a really neat feature. This may or may not happen before the cooking tests, but we’ll see.

Thesis is more or less back on track. Woohoo!