Saturday, January 01, 2005

Virtual lights display ... and a happy New Year.

On my main webpage I posted an update pointing to Alek Komar's Interactive Christmas lights. This is where you can go to his site and turn on and off the lights. Well it turns out it wasn't exactly real! Alek does actually put up the ligths but you can't turn them on and off via the internet (but it is possible). Since the media (news papers and TV) interviewed him thinking it was real they're pretty upset with him. Most people who visited his site are not. I would think those that do a lot of Christmas lighting (like the folks over at Planet Christmas and the HA folks would be a little upset (the Planet Christmas folks are, I know I'm not really upset). I'm afraid that a lot of folks won't put a lot of faith in future displays Alek may have. Which is too bad because his solution is more interesting than the actual display.

I spoke with Alek on some of the issues of trying to handle a real interactive display and getting Slash-dotted (inundated with thousands of URL requests all at one time). First, since he's using X10 he can process no more than 1 on/off command per second. This is a technical limitation of X10's protocol. Since he's not going to be able to handle more than one request a second continuous live video is probably not really useful. BTW, the bandwidth needs of live video (640x480 @ 15 fps) is almost 578K Bps Multiple this by thousands of requests per second (Slashdot generated about 156 requests/minute average and Fark generated 200 requests/minute average at their worst) and you have a severe case of bandwidth drought.

So the question is: Is it possible to do a live, streaming video, interactive Christmas lights display from one's home with DSL, Cable or Wireless internet access? At this time I think not. So how about no streaming video? Well that makes things a bit easier but you'll still run out of bandwidth if you get hit with a Slash-dotting. All of this requires a lot of powerful hardware, software to cache the information being sent from the display site to the request server (at an ISP where they have lots of bandwidth) and some very clever programing. In the end you're going to end up with a solution very similar to what Alek did with his technical solution. And to be honest I like Alek's solution! It's a very elegant solution to a very complex problem.