Great Moments in Library Documentation

I present to you the entire documentation for the GObject.chain() function in the PyGTK library:

gobject.GObject.chain

    def chain(...)

... : additional parameters
Returns : a Python object

The chain() method does something.

So, the function takes some unspecified number of parameters, “does something,” and returns something. (Since everything in Python is an object, saying the function returns an object isn’t particularly informative.)

In other words, pretty much any function you could possibly write can be described by the above documentation.

A Festivus Eve Observation

Christmas Past: The religious right complains that Christmas is too commercialized.

Christmas Present: The religious right complains that Christmas isn’t commercialized enough.

Christmas Future: The religious right complains about being on Chiron Beta Prime, working in a mine for robot overlords protectors.

Comments Off

Weather is Broken

This past week it’s been getting into the 50s and even the 60s during the day (with a record high set last weekend), despite this being, as my calendar insists, the middle of December.

And if that weren’t weird enough, it was foggy today. On the drive home for work. Fog at sunset? That’s just messed up.

[To anyone wondering why nothing interesting has been posted lately: blame Samus.]

Ready for Festivus

Today I accomplished all my shopping for Festivus, Festivus Anti-Eve, and Boxing Day Eve. (OK, technically that’s a lie.)

And since we’re on the subject of the Airing of Grievances, here’s one: online stores that time out when you hit the “order” button. Did it get the order or not? Who knows?

(Actually, you can tell if the store has a combination register-for-an-account-and-order-something-too page; open up a new tab and try to log in to your new account. If it fails, the server didn’t process your request.)

(And if you can figure out from that parenthetical paragraph what store I was shopping from when that happened, and figure out who I was shopping for, and figure out what I bought, more power to you.)

In other news, now that I’m trying to use separate passwords for each account, I’ve come to the inescapable conclusion I can only remember O(log n) passwords at a time.

Comments Off

ATI Hates Us For Our Freedom (And TV-Out)

As avid readers will recall, I have two computers: kryten, my laptop, and holly, my 6+-year-old desktop that has been repurposed into a MythTV box. Both are running Debian unstable. I keep kryten relatively up to date, usually upgrading its software at least once a week. holly, on the other hand, gets upgraded sporadically at best.

Yesterday I got the bright idea to upgrade the software on holly. Boy, that was a mistake.

You see, holly’s video card is an ATI Radeon 9000, and the only way to get the S-Video output to work on it in Linux is to use the binary-only proprietary fglrx drivers. One of the “features” of the version of fglrx currently sitting in unstable is broken TV-out support. Somehow, that version of the drivers gets the idea that your screen is twice as tall as it really is, so when you try to render anything to it, you only see the top half of the image, stretched vertically to fill the entire screen.

Also, what’s really fun about debugging the fglrx drivers’ TV-out mode is that, after you load them the first time, there’s a very non-zero chance they’ll lock up the system the next time they’re loaded, so you get to do a lot of rebooting.

Even better, when I tried to downgrade the drivers to the last working version that I had had installed, the .deb packages had apparently vanished from the local cache. And when I tracked down an older version of the driver packages and tried to start X back up, it bombed out complaining about a module ABI version mismatch. Apparently for the past few months I had been running a magical working version of the drivers that had since evaporated out of this universe.

And in case you’re itching to suggest downloading the truly latest version of fglrx which hasn’t landed in unstable yet, here’s a fun fact: it seems as though ATI removed support for the Radeon 9000 entirely in that version! Way to stick it to your users, ATI — actively refuse to support your hardware, and prohibit the free software community from doing it either!

Having about had it with ATI, I resolved to buy an NVIDIA card to replace it. Sure, the NVIDIA drivers are also binary-only and proprietary, but from my experience running them on kryten (without which X refuses to work at all), they’re not nearly as brittle and have reasonable support. I went to the local electronics vendor and bought the cheapest NVIDIA card I could find, since it’s not like I’m going to do anything than render video out through the S-Video port anyway.

Well, remember how I said holly is over 6 years old? Apparently, even the cheap low-end graphics cards these days require motherboard connections that didn’t exist when holly was created. PCI Express? Back in holly’s day, we had AGP and we liked it. The worst part is that holly is normally stashed behind the TV and accoutrements, in an alcove presumably intended for a bookcase — about the opposite of what you’d call “easily accessible”.

Being too stubborn to give up on never watching commercials on TV, ever, I finally stumbled across this bug report for the open-source ATI drivers that suggested a workaround to the ABI mismatch problem. So now, finally, things are back in working order, with a version of X that’s mostly 7.1.0 with a few pieces of 7.0.23 to make an old version of fglrx not bomb out.

Not coincidentally, I decided to replace the stock /etc/motd (which gets displayed every time you log in) with this:

******************************************************************************
*                                                                            *
* I swear to Xenu, if you even *think* about upgrading any of the XOrg or    *
* fglrx packages, I will punch you in the gob.                               *
*                                                                            *
******************************************************************************

The moral of the story is: unless you have a compelling need to upgrade software, don’t.