March 17th, 2007


Treo garage door opener

I wired up:

Treo hot key to URL...
Linksys port forward 443...
Perlbal (speaking SSL), forwarding to...
xinetd listening on random port...
script speaking HTTP, which...
uses "heyu" to send X10 command over serial port, to....
momentarily close a relay, which...
closes the circuit on a new set of garage door wires I ran, which...
opens (or closes) my garage door.

So basically bike home (either bike), pull out phone, hold down the "G" key for 2-3 seconds, browser loads page, and my garage door opens.

Except the treo browser crashes and the phone reboots after I agree that it's a self-signed cert. And the server never gets the HTTP request. If I do it from my real browser, the garage door opens as expected.

So do I....?
  • Fix SSL issues in Perlbal that caused it to crash? But all browsers work on Perlbal, and presumably the Treo "works on all SSL servers". Or something.
  • Run this not over SSL? I'm afraid of T-Mobile pre-fetching my shit "for me" and opening my garage door while I'm at work. Much less chance of that/related crap with SSL. I don't even know if the SSL termination is on my phone or elsewhere.
  • Use stunnel or something? (no fucking way I'm getting near Apache and SSL... I hate that stuff.)
But maybe it's in the end the self-signed certs that crash the Treo, not the server. *shrug* But hell if I'm paying for a cert.

Garage Door Opener -- done

Update on garage door opener via Treo: done.

Final solution: no SSL, inline JavaScript that changes the URL to ...?t=[unixtime]. If that time is recent, garage door opens.

All checked into svn (so I don't have to remember this all later), and tested... works great.

(As opposed to email, SMS, etc... I just have to hold one key and it works. Even if it takes 5-10 seconds, it's quicker than running inside, taking off shoes, etc...)

Vocab Quizzer

Updated my 7+ year old vocab quizzer program to be web-based. Actually I just rewrote it all.


It keeps track of your history of failures, stats per-word, intelligently picks what word to give you next, and keeps bugging you about words until you've shown a history of getting it right (both times in a row most recently, and overall percentage).

You can create/change word lists, play again, etc.

I'm sure I'll add more later as I work on it more. But for now, I have a bunch of words to learn for a test on Tuesday. Clothing, colors, bunch of adjectives...

Time to stop hacking and start studying.