2. Better optimization of X10, Webcam, and other "analog" devices. The web interface enforces a 5-second throttle on web surfers, since in the "real-world" things take time - i.e. you can't move/zoom the webcam instantaneousely, and X10 isn't the fastest in controlling lights. You kinda lose the experience of controlling the webcam and turning the lights ON & OFF if you are continually battling other people for control of the webcam/lights. It will never be possible to changes the lights 238 times in a single minute (read more in my Slashdot Effect Analysis) but I'd like to see if I can reduce that 5 second throttle down a bit and still have everything "work" - having a webcam that can pan, zoom, and shoot the picture faster will be the biggest challenge - see item #5 below. Update: tested for Halloween/2004 and worked great!
3. Some sort of text based light board where you can enter the text. I got this clever idea from these guys where they have a webcam pointing at a computer screen, and you can enter some text and it is displayed. Would be really cool if I could have some sort of alphanumeric text board that I could feed data too - pls Email me if you have any recommendedations. Update: Nope - hopefully for 2005.
4. Tracking/Location of airplanes flying overhead. Along those lines, I've been using some modified X10 Motion Sensors to see if airplanes are flying overhead from nearby airports and taking free aerial photos of my house. With a little more work, I might be able to have it provide a more accurate bearing/elevation. Rest assured this won't be integerated into a SAM site ... ;-) Update: Wildly inaccurate, so probably won't be turned on
5. Possible new bells & whistles with Webcam and Webcontrol. The Webcam and WebControl (which allowed folks to not only view the lights in real-time, but also turn them ON and OFF) was a BIG hit. New for 2003 was the webcam supported Pan/Zoom capability (plus the image size was a little larger at 640X480), so I'm curious to see what technologies come my way this year to see how they can be used. As an aside, I recently read about a sticky pod camera mount that allows you to attached your webcam to a car (or an airplane!) using only suction cups - pretty cool! Update: tested for Halloween/2004 and worked great!
6. Dedicated xmas lights storage facility. Needless to say, I have a LOT of xmas lights ... and they have been piling up in my basement ... hopefully this will be the year I finish the crawl space - aka The Catacombs Project! Update: I say this every year - hasn't happened yet! ;-)
7. Near real-time tracking of webcam usage. There is quite a bit of webcam statistics generated, but these are somewhat "batch" driven and the raw data is a bit hard to look at - maybe I'll polish these up a bit so they can be seen semi-real-time. Update: Already turned on
8. Dry run for Halloween. With Halloween 2004 being a few months before hand, I'll be testing some of this as part of my Halloween Decorations so check it out and let me know what you think. Update: See items #2 and #5 above!
9. Use mod_perl for the web server!
The web "front-side" of the code is fairly lightweight and holds up
pretty well except for when the
Slashdot crowd
shows up. It then gets really, really slow ... because it is running
as a cgi-exec and Apache has to spawn Perl which has to slurp in my
code (plus the Benchmark, Fcntl, Geo::IPfree, Socket, and Time::HiRes modules)
and THEN run. Solution is fairly straighforward - use mod_perl which slurps
it in all at once, and then runs it "directly" for each request.
Note that this won't make the webcam any faster, since a seperate daemon
handles that analog back-end (which itself is now pretty snappy - see
item #2 above) and uses file locking and Unix signals to sequence instructions
and data from the CGI front-end. But it should make
the surfing experience a little snappier when under extremely heavy load.
Update: I finally bit the bullet and converted to mod_perl ... so why
didn't I do this a long time ago?!? It ROCKS - some
misc. ApacheBench testing shows the 2.4 Ghz Xeon with a
Gbyte of RAM (running Linux/Apache) is now capable of handling up to
20 connections/second versus the previous 4 running the exact same code.
I might stand a chance against Slashdot! ;-)
Send Santa a public Email with any other ideas
and be sure to check back here after Thanksgiving/2004 to see and
control the lights in Christmas 2004!