The trouble with technology…

Day 1 of Tina’s Hackathon weekend is drawing to a close, and here’s what I have to say for myself:

That… did not go according to plan at all.

To recap from my last post, the stated goal of this weekend was:

Develop working website with basic video chat/recipe viewing interface

… and video is key to that interface. So I set out figuring out Tokbox, which is a nifty lil’ Flash-and-Javascript-based toolkit for integrating video chat into webpages.

The good news is that Tokbox is beautifully easy to use. Active setup work took all of like 5 minutes (give or take an extra 3 hours for understanding the Javascript API documentation—I need to get over this ‘instructions reading’ mania of mine).

5-minute Tokbox test page


The bad news is… Tokbox is sloooow.

Here are some notes from 2 tests*, one from school and one from home: 

  • 1-2 sec delay on video/audio over a wifi connection at school/work (business-grade connection)
    My speed: 8.84 mbps download / 25 mbps upload
    Remote tester’s speed: 12.40 mbps download / 20.77 mbps upload
  • 2-8 sec delay on video/audio over a wifi connection at home (consumer-grade broadband connection)
    Computer 1 speed: 10 mbps download / .12 mbps upload
    Computer speed: 9 mbps download / .10 mbps upload

In my second test, I was shocked at the latency and hopped onto Google+ Hangouts to check the sanity of my internet connection. It was much better, with <1 second lag.

* Note that my “tests” consisted of me and my chat partner saying “marco” and “polo” back and forth. Scientific? No. Fun? Yes. Next time we’ll add a pool.

After a bit more noodling around I concluded that people can live with delays of ~1 second. Conversational collisions will happen, and you will occasionally get that “Is my chat partner ignoring me?” feeling, but it quickly passes. Delays of 3 seconds or greater, on the other hand, degrade the video chat beyond redemption. It feels downright unnatural and frustrating, even uncanny. If you had to have a >3-second delay, you might as well not be video chatting at all.

All this is just a long way of saying… the video API technology I was counting on to let me build my wonderful awesome custom interface has let me down. (If there are any alternatives I missed after 2 hours of Googling, please let me know and I’ll shower you with kittens and cupcakes for years to come.)

My predicament is that, given my current (lack of) resources (like actual programming knowledge beyond hobbyist tinkering ability), I can only rely on existing technologies available to me. Building my own video chat server is out of the question (it took a team of badass engineers at Vidyo years to build what would become the heart and soul of Google+ Hangouts).

For the time being, I’ve reached out to both Vidyo and Tokbox for assistance. The other alternative is to essentially build a “wrapper” around Google+ Hangouts. My fingers are crossed for a clue for what to do next.

In the time being, there’s the rest of the userflow to consider: procuring a suitable recipe, scheduling a cooking date, creating a nice-looking invite to entice friends to join, facilitating ingredients-getting… there needs to be a way for all that to happen, even if all of this just ends up being a fancy front-end to a Google+ Hangouts URL. That’s okay, as long as it gets more people cooking!

Good night for now. Lots to do tomorrow!