Month: April 2003

Some usability researchers reported that with a 35 degree viewing angle, women are slower at navigational tasks than men, but when the viewing angle opens up to 70 degrees or more, the gender difference disappears. The improvement only shows up if the animation is smooth like reality, not jumpy.

Somehow I feel just a little bit pleased and superior as a result of reading about this. I know I’m not supposed to, but I still do.

Now if I could just find a way to increase my empathy to match that of a woman’s. Perhaps I need to look at other people’s expressions and words through wider eyes?

Incidentally, I was at the same conference, though to save money and time, I was not involved in the main body of it, where this research was presented. I was there to give a practitioner’s and tool-maker’s view on the topic of making sysadmin tools more usable. It was an interesting experience, though I’m not sure how we are really going to see results from it.

This description of life at Microsoft is pretty accurate. There’s more to it, of course. Every big company has politics and culture “issues”. Also, not every employee of Microsoft is so privileged to work at a level where they can control their own fate as much as the article implies. But for a certain class of Microsoft employees, it really just as he says it is.

I didn’t leave because I was being overly controlled or constrained by The Borg. I left Microsoft because I was dissatisfied with the business ethics of the company, and was not willing to commit my effort to changing it. Instead, I chose to put my effort into a smaller company where I could more easily reinforce the behaviors I wanted to see in my employer.

I was extraordinarily lucky to change jobs when I did (November 2000) because it became very difficult to change jobs starting in April 2001. I’m pretty sure I would still be there to this day, which is not a happy thought.

So, it appears that too aggressive caching in TiVo.pm is the culprit. Even after I changed which services it was supposed to be advertising to the TiVo, it still sent down the old stuff it had cached in files in /tmp. Removing everything in /tmp owned by apache solved the problem. Not graceful, but it worked.

I made a new version of tivo-beacon, with the length bytes included that TiVo seems to send on TCP connections. That makes it quite a bit happier. Now I just need to figure out why TiVo.pm is sending down messages about services (“Music” in my case) that are commented out of example.cgi.

Tonite I set out to make my Tivo use my remotely-hosted Linux webserver as my MP3 server. The eventual goal is to teach WinAmp to play from the same collection of files, so that I can have one copy of my mp3’s in the “cloud” and still get access to them easily on each device.

The first step was to investigate the TiVo Developers info. There I found a tar.gz file with some stuff in it that implemented the funky XML messages TiVo needs to know what’s in the directory tree. I fetched it put it in a directory on my webserver.

Next, I realized I needed a beacon that I could point my TiVo at using “Manually Add Server…”. So I put this script together, using the beacon message doc as guidance, and the helpful beacon captures at KahunaBurger. Here is my beacon program:

I run it with a command like this: tcpserver -d -v `uname -n` 2190 ~/bin/tivo-beacon. You can find tcpserver at the ucspi-tcp page on djb’s site.

Next, you need to arrange for URL’s like http://ip-addr/TiVoConnect?params... to turn into hits on the example.cgi script from the tarball. This turns out to be harder than necessary for two reasons. First, since TiVo only knows the IP address, not the hostname, it can’t fetch from a name-based virtual. Second, a bug in TiVo’s implementation of HTTP redirects makes the name change to lower case.

To get around the no-virtuals problem, I had to put a symlink in the root of the real webserver poitning at my home directory, where my virtuals run from. I have root, so it was no problem.

Next, I renamed “example.cgi” to “index.cgi” and added a local .htaccess file that enabled CGI (“Options +ExecCGI”). Alas, that didn’t work because Apache issues a redirect from http://ip-addr/TiVoConnect?params... to http://ip-addr/TiVoConnect/?params.... Note the trailing slash. That is correct behavior when accessing a directory, and it shouldn’t be a problem. But since TiVo uncapitalizes the contents of the Location header when it follows an HTTP redirect it ends up trying to fetch http://ip-addr/ticoconnect/?params. So, you have to make a symlink in lowercase too.

You also need to edit the first bit of example.cgi and tell it where your photos and/or MP3’s are.

After doing all that (and remembering that your webserver has a firewall, and it needs a hole poked for port 2190), it all just magically works! OK, well not really. It’s working some, but things are seriously flaky at this point still. I’ve just noticed that they don’t seem to be following the discovery spec when they send via TCP, so I’m going to try to copy the thing they are doing and see if maybe things will get better.

The little loan on my house got sold to Countrywide (though a closer inspection of the paperwork makes me think it was probably sold to the Bank of New York, which is having Countrywide service the loan for them). They kick ass, because they have real people, not lawyer-automatons write their letters. Here’s an excerpt:

Welcome to Countrywide Home Loans, the nation’s largest independent home loan lender. Your home loan servicing was recently transferred to us and this is your official notice, as legally required. So please excuse the formality.

Their website does not seem to suck too badly also, though I have not yet played with it much.

Let’s hear it for companies that treat customers like next-door neighbors! We need more of that.