Why did I do that?

Gallery 2.3 just came out, and I made the mistake of upgrading instead of waiting for it to shake out a bit. And of course, things are slightly broken. Everything works, but at the end of every page is this:

Database Error
An error has occurred while interacting with the database.

The exact nature of database errors is not captured unless Gallery debug mode is enabled in config.php. Before seeking support for this error please enable buffered debug output and retry the operation. Look near the bottom of the lengthy debug output to find error details.
Back to the Gallery

Error Detail –
Error (ERROR_STORAGE_FAILURE)
in modules/core/classes/GalleryStorage/GalleryStorageExtras.class at line 1007 (gallerycoreapi::error)
in modules/core/classes/GalleryStorage.class at line 521 (gallerystorageextras::addmapentry)
in modules/core/classes/GalleryCoreApi.class at line 2955 (postgresqlstorage::addmapentry)
in modules/core/classes/GalleryDataCache.class at line 692 (gallerycoreapi::addmapentry)
in main.php at line 594 (gallerydatacache::putpagedata)
in main.php at line 104
in main.php at line 88
System Information
Gallery version 2.3
PHP version 4.4.4-8+etch6 apache2handler
Webserver Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/4.4.4-8+etch6 mod_perl/2.0.2 Perl/v5.8.8
Database postgres7
Operating system Linux xen1.xcski.com 2.6.18-3-xen-686 #1 SMP Mon Dec 4 20:48:20 UTC 2006 i686
Browser Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_5; en-us) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.20.1

The weird thing is that it was happening almost everywhere, and now it’s only some pages.

Probably should have been paying attention

I just noticed that the upstairs TiVo hasn’t recorded anything since Tuesday, not even the manual recordings of the Daily Show. I tried rebooting it, and the “ToDo List” still shows “No shows pending” for every entry in the Season Pass list, even the manual recordings. So now I’ve got a call into tech support, which at 6pm on a Friday, I’m not expecting a quick callback.

Update: an hour after rebooting, the ToDo List has finally been populated.

Yikes!

A few short weeks after buying my Prius, and I already broke the tail light cover backing into the driveway. And to make matters worse, you can’t just buy the cover, you have to replace the whole tail light assembly. The local dealer has it in stock for $225. The cheapest I found it on-line was $170 including shipping.

BTW: To all the companies that make auto parts web sites? You all suck. Go back to web design school. I should not have to put in the VIN and the type of engine and transmission (on a Prius, which only has one type of each no less) just to find out if you have any tail light assemblies. I should not have to guess if tail light assemblies are listed under “Safety”, “Body” or “Electrical”. I should not be on a page that says “Toyota Prius tail lights” at the top of the page, and still have to put in the make, model and year before I can find out if you have any.

Stack Overflow not counting XP?

Is it just me, or is Stack Overflow no longer updating the count of how many reputation points you have? Mine hasn’t gone up in the last four hours, even though I’ve gotten two “Nice Answer” badges in that time. Just for an experiment, I tried voting up a couple of answers by Kris Johnson, and his count didn’t go up either.

Update It appears that it’s stopped giving me more XP because I’ve already gotten 200 on the day. And the fact that I’ve been averaging fewer than 50 a day since last Friday, when I’d been up over 100 a day before that, doesn’t mean I can accumulate more. Damn level caps.

Update Today on StackOverflow, as well as hitting my XP cap, I earned 4 “Nice Answer” bronze badges, a silver “Enlightened” and a silver “Good Answer”. Today I was on fire.

I hate RPM packaging.

One of my side duties at work is preparing a disk that (ab)uses our upgrade process to flash the bios on the raid controllers every time IBM releases yet another attempt to make it work right. In the past, what I’ve had to do is make a RPM that installs a couple of “.ufi” files that the %post part of the RPM then uses the arcconf program that’s already on the system to flash the ROMs with. That was fine and dandy, until IBM decided that instead of distributing a ufi file, they’d distribute an ELF binary that included within it the ufi file, the arcconf program, and some other cruft like a script to run it and instructions. Fine, I thought, rather than bothering to unravel all the crap, I’d just package the executable into the RPM and run it in the %post. And it didn’t work. After much sweating and swearing, I finally got it working.

Did you know that the rpmbuild process automatically does a “strip” on any ELF binaries it finds? I didn’t. Did you know that IBM’s packaging of a binary file inside an ELF binary doesn’t work if you strip the file? I didn’t. Did you know that the command to tell rpmbuild to NOT strip the file is almost completely undocumented and obscure to the point of pointlessness? I didn’t. Did you know that the best reference for building RPMs, “Maximum RPM” is no longer available on rpm.org, and the replacement doesn’t have an index or a search function? I didn’t.

Am I annoyed? You bet.

For the benefit of future searchers, here’s how you keep RPM from stripping your binaries. You put the following in your rpm spec file, preferably near the top:

# This stops RPM from stripping the .bin files, which breaks them.
%define __os_install_post \
/usr/lib/rpm/redhat/brp-compress \
/usr/lib/rpm/brp-python-bytecompile \
/usr/lib/rpm/redhat/brp-java-repack-jars \
%{nil}

Intuitive, eh?