Liz called around midnight. Fortunately, I was already awake. We chatted for a bit, then she hung up and I recrashed.
Woke up seven-thirtyish. Got a frappucino and doughnuts. Wai. Helped move my grandparents' old refrigerator from their garage to ours. We now have enough cold storage to fit a couple bodies in.
Resurrected my old "access log database" hack on the new Navi. This new version is much more efficient, however; instead of holding a pipe to an external Perl process that inserts into the databases, I wrote a mod_perl handler, which means that Apache is handling the insertion and deletion itself, without needing an extra process. I wrote this as a theoretically-CPANable module.
Wrote a Term::Table module to display said access log database neatly. I'm working on packaging this up for CPAN distribution.
Fixed what turned out to be a longstanding bug in Filespace's delfile.phtml--the page used to select multiple files for deletion was displaying files that had already been deleted. (Deleted files stay in the database so that Filespace can return a 410 Gone error instead of 404 Not Found; the data's wiped, but the files' existence is still recorded.) Oops.
Got my journal back. This made me a happy hacker.
Watched A Day Without A Mexican with my family. All I can say is that the movie is intensely weird.
Bickered with Rae-chan about citizenship laws. (Not what you'd think, though--she thinks it's silly that citizenship is based on where you're born, rather than your parents' citizenships. I pointed out a few corner cases, but... *shrugs*)
Mom sent her January newsletter, and I handled the 800 e-mails that didn't go through. (In an attempt to not annihilate her server, I have the mailing list script divide her nearly-5000 address list into batches of fifty, prepare one e-mail for each batch with all fifty addresses in a Bcc: line, and then send each e-mail. If one address in a batch is malformed, the entire batch fails, and it records the addresses in a log file. I then get to sort out the successes from the failures and send the e-mail again to each address in a failed batch, which isn't as awful as it sounds, because the computer can do a lot of it. Suffice it to say, though, that this isn't a trivial operation.)
Rebooted because sound had stopped working, and washed dishes.
And wrote pointless details about my day in my journal.