A few little changes...

Although nobody ever visits this blog, I'm going to pretend that I have a bevy of faithful readers for this post, so I can proudly announce that the site has undergone a cosmetic makeover and has benefited from some bugfixing.

I think that the new, purply-dark-pastel thing is much easier on the eyes than the old psychedelic orange look-and-feel.  It feels cool against my eye balls rather than stabbing and searing hot.  That's a nice sensation.  Also, there a several largely-invisible bug fixes.  The About link at the very bottom now functions correctly.

The fact that the About link was previously broken brings up an important subtlety about coding for Google  AppEngine on a Windows machine, as I do.  It seems that whatever flavor of UNIX (or is it Plan 9?  I read about it, but forgot) that AppEngine runs on has a filesystem that treats case significantly; about.html and About.html are two different files.  To Windows, however, they are the same file.  When my application went looking for About.html in my development, it found about.html, and it was happy, but when AppEngine went looking for About.html, it wasn't going to settle for anything other than that, exactly.

Fair enough, at least I know now.  One important point to make, though, is that when I changed the name of the file on my development system, adding a capital A, either Windows didn't actually change the name of the file at all or appcfg.py didn't upload the change to the production environment.  I'm not really sure that I can tell which is true.

It was fixed easily enough, however, but renaming the method that gets called when it gets a request for about.html.

I continue to make slow, steady progress on this and other Google AppEngine applications.  I am currently modularizing another piece of this blog application, turning the code that handles comments into a mixin, like my taggable class.  I will release commentable as a Google Code project, too, and in the reasonably-near future.  Before I do, I'd like to look into Python's automated unit testing facilities, as I feel a bit guilty about releasing code that doesn't have good automated testing coverage.

Perhaps one of my entirely hypothetical readers can point me in the right direction, hmm?