< mari
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
chi >
[ Page 27 of 76 ]
From: Earle Martin Date: 10:34 on 06 Nov 2006 Subject: yum and its stupid config files Yum. The Fedora package manager. Feature of hates past and surely hates future. Today, it is my hate. A Linux distribution has many thousands of files. Nevertheless, they are generally organised in reasonable groupings [1]. Yum, however, has its configuration files organised as follows: /etc |-- yum | |-- pluginconf.d | | `-- installonlyn.conf | `-- yum-daily.yum |-- yum.conf |-- yum.conf.bak `-- yum.repos.d |-- atrpms.repo |-- dag.repo |-- dries.repo ... Yes, although there is an /etc/yum directory, the yum.conf file (_and_ backup copy) float next to it in /etc itself; and then there is _another_ directory, /etc/yum.repos.d, wherein yum's knowledge of repositories resides. The net result is that I can't easily tab-complete the path to various parts of the yum config and have to remember how it's arranged, which is fucking stupid. Would it have been _too_ hard for whatever team of monkeys filled with crack it is that writes this application to have put everything in /etc/yum? IS THAT TOO FUCKING OBVIOUS FOR YOU? Talking of /etc/yum.repos.d (proof of my point: my fingers just tried to type /etc/yum/repos.d), it contains one file per repository, because they are written in what appears to be .ini format and are INCREDIBLY VERBOSE. Here's a snippet: [core] name=Fedora Core $releasever - $basearch #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/ mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY Yes, it's doing some kind of crap involving interpolation of variables from who-knows-where. Note the nice use of an "enabled" flag, but also a line being commented out. What does that mean? I haven't got a clue. But what I do know is that you're fucked if you expect to be able to add repositories with a single line of text, apt-style. CRAP FOUNTAIN. [1] Or not? Place your hates now!
From: Minty Date: 14:48 on 01 Nov 2006 Subject: IE7, html form elements and it's hateful text-size handling IE7 chooses to ignore the text-size browser setting for form elements, unless you have a css font-size rule set. If you do this, it then opts to screw up the rendering of said form elements in fun and novel ways. details here http://minty.org/ie/ bah.
From: Smylers Date: 05:28 on 31 Oct 2006 Subject: OfflineImap OfflineImap crashes partway through syncing my mail with: Thread 'New msg sync from spam' terminated with exception: Traceback (most recent call last): [Snipped many lines of Python stack trace] error: APPEND command error: BAD ['Invalid internal date.'] Last 11 debug messages logged for New msg sync from spam prior to exception: imap: savemessage: called imap: savemessage: using date "31-Nov-2006 02:50:01 +0000" [Snipped the entire spam message] So you've found something in my spam folder which has an invalid header? Oooh, that can't possibly be right, because obviously spammers _always_ make sure to follow all the relevant RFCs. And you've decided that this invalid header prevents you from being able copy the message between this computer and the imap server, rather than just, say, copying the invalid message as it is and letting me have a message with a stupid date in it? And this is despite the fact that the message is in the spam folder on this computer because I moved it there from my inbox, and it got to the inbox my, erm, you! So you can happily sync invalid messages from the server to this computer, just not cope with sending them in t'other direction? And further you've decided that your inability to copy this one, spam, message means you should abort any attempts to sync any of the rest of my mail, even that in other folders, until I've used something else to move the broken message out of the way? Hate! Smylers
From: Yossi Kreinin Date: 12:13 on 28 Oct 2006 Subject: USB keys to the gate of madness I'm visiting a customer. I want to merge a few changes (mine and theirs) in the code. I do so, and we leave the office to test the thing (which is done outdoors, don't ask). We run it, and I notice that the merge must be wrong. I look again at their source files, which are on a USB disk-on-key. I get garbage listings, with a special bonus of "missing block" errors from vi which helpfully suggested to do a "recovery" from swap files (which were also on the USB key). I don't know what was merged with what and where, but there's no way to find out now, is it? WHY do I have to manually mount/umount these fucking things, and why is silently corrupting my files a reasonable way to enforce this wonderful policy? I also wonder why isn't there a standard file system for these wonderful devices. I think there's one for CDs (ISO 9660 or some such, the one isoinfo(8) knows about - you know, the program with "The user interface really sucks" at the BUGS section of it's man page), and USB keys are younger than CDs. It would help me a lot at the same trip, where only one USB key (apparently formatted as FAT) actually worked across Linux, Windows NT and XP. Copying files gets trickier as time goes by.
From: Rebecca Breu Date: 09:41 on 25 Oct 2006 Subject: Eclipse Well, I don't like those fancy IDE's much, but sometimes I work with Eclipse. Yesterday, a funny idea popped into my mind: Using eclipse, I wanted to print my code! In Linux! So I went to the "File" menu, searched the "Print..." entry -- but the "Print..." entry was greyed out. Wondering if I had ever seen a greyed out Print entry before, I searched through the preferences in case my printer wasn't set up correctly, but there was nothing to find. I learned that printing is not implemented yet. How stupid is that? I mean, this is Eclipse version 3.x.x, not some 0.x.alpha-pre-release. And why do they add greyed out menu entries for features not yet implemented? Well, I thought I needed no Eclipse to print my files, I have a2ps. But the indentation of the so printed source code sucks because fucking Eclipse can't produce files that look nice in plain text with monospaced fonts. Bah! I hate Eclipse. I hate proportional fonts. I hate tabs. Rebecca
From: Timothy Knox Date: 22:31 on 23 Oct 2006 Subject: Hating up2date Dear up2date, I hate you with a passion unsurpassed by any living being. Why? Because I recently ran you, to update my core system (like you claim to do). When it came time to select packages to update, I (misguided fool that I am), checked the "Select All" checkbox, thinking I'd like to just update everything, rather than trying to pick and choose. Now you want to do dependency analysis, to include everything that is required, which seems fscking stupid to me. After all, I chose everything. By definition, that should need no analysis. Be that as it may, you proceeded to spend enough time on this task that I had time to go to Starbucks, get a job as a barista, and make my own damn latte before you finished. But that's not the root cause of my unalloyed hatred of you. No, the cause for that is when you ultimately decided that I had a failed dependency, on some package. But please, don't tell me which top-level selection (or selections) led to this failed dependency. No, really, I'm keen to guess! I don't want to simply unselect for the nonce the small handful of troublesome packages and get on with it. I love playing package selection roulette. It's half the fun of using you. Grr! Hate hate hate! PS Burn in hell forever, you hateful pig! Yours, hatefully,
From: sam bledsoe Date: 22:31 on 20 Oct 2006 Subject: Because of Lotus Notes, I will die a poor and broken man. All complaints about horrid user interfaces, forced logouts, and allvrything-interoffice-webigrated bloat aside, this program is eroding my very livelihood. I'm an hourly intern, and when the evil emergent Skynet intelligence that runs the database network (or maybe it's those cost-effective offshore DBA's) decides which crucial part of my account to hose this week, there's no way to get any work done. No work to do means no reason to be here, means no hours, means no money. Friendly helpdesk folks, thanks for restoring my ID file to a server in India. There's nothing more grand than waiting two hours for "Replication" (I don't know what it is, but it scares me) so that I can log in again without screwing the whole system up and waiting another two hours. <samble tries to figure out how to stab software> Update: Apparently two hours is not long enough for the bits to get here from India, so there goes an entire day. samble@xxx.xxxxxxxx.xxx SDF Public Access UNIX System - http://sdf.lonestar.org
From: Timothy Knox Date: 19:34 on 19 Oct 2006 Subject: Reason 3.14159x10^8 to hate firefox Dear firefox, Thanks so very much for blocking popups (mostly). And thank you so very much for adding a little message stripe at the top of the screen letting me know that you did. Good to know you are on the job. I'll even say thanks for offering to let me change options for handling popups from a given website. But, you hateful little pile of &$#^@&, why in the name of all that is wonderful won't you give me the option to say, "No! I never *ever* under any circumstances wish to allow <this particular website> to open a popup." You don't need to warn me about it, just fscking *ignore* the popup. Silently. It's okay. You won't hurt my feelings. Really! JUST DO IT! Yours in hateful annoyance, and annoyed hatefulness,
From: Aaron Crane Date: 13:16 on 19 Oct 2006 Subject: MySQL and foreign-key support (This started out as a polite response on another mailing list to someone saying "You guys are out of date, MySQL is a pretty decent db now". But it got a bit ranty, so I thought I'd share it with all you software haters instead. Enjoy!) Current releases of MySQL certainly have many of the checklist features of a real DBMS. However, this does not constitute a defensible claim that MySQL is a real DBMS. MySQL still, after all these years, has a whole host of arbitrary limitations (like the limits on key length, and the inability to use TEXT columns in a foreign key, and the lack of recursion in stored functions). And there are still important features missing, whatever table engine you use (like CHECK constraints, and deferred constraint checking). Worst of all, though, MySQL seems to deliberately make it hard to use the features it does have. A recent project needed transactions and foreign-key references in a MySQL 5.0 database (the current stable release, please note), so we used InnoDB tables. The situation was broadly equivalent to this: CREATE TABLE actor ( id INT PRIMARY KEY AUTO_INCREMENT, name TEXT NOT NULL ) ENGINE=InnoDB; CREATE TABLE film ( id INT PRIMARY KEY AUTO_INCREMENT, name TEXT NOT NULL ) ENGINE=InnoDB; CREATE TABLE film_actor ( film_id INT NOT NULL REFERENCES film, actor_id INT NOT NULL REFERENCES actor, PRIMARY KEY (film_id, actor_id) ) ENGINE=InnoDB; Simple enough, yes? No, actually. As it happens, using REFERENCES as a column constraint doesn't work at all, and you also have to explicitly specify the primary-key columns of the referenced table. So the only permitted syntax for foreign keys is this (which you'll notice is much more verbose than the obvious version): CREATE TABLE film_actor ( film_id INT NOT NULL, actor_id INT NOT NULL, PRIMARY KEY (film_id, actor_id), FOREIGN KEY (film_id) REFERENCES film (id), FOREIGN KEY (actor_id) REFERENCES actor (id) ) ENGINE=InnoDB; So guess what happens when you use one of the naughty-but-convenient syntaxes? That's right -- MySQL just silently ignores what you said! No error, no warning, just a blithe "sure, no problem mate, I'll get right on it", without actually doing what you asked. Why, yes, this _did_ cost me a day of debugging, thanks for asking. I'm aware of MySQL's propensity for handling compatibility requirements by "helpfully" ignoring any bits of syntax that the engine doesn't have the semantics for. But what made me so fucking angry about this was that the engine _does_ have the semantics for this! How hard could it be to just do the right thing? Hate.
From: jrodman Date: 04:00 on 17 Oct 2006 Subject: GTK, KDE, GNOME, etc and standard error So, in the land of UNIX, there exists three normal channels from the outside world to a program: standard in, standard out, and standard error. Standard in is where a program can expect to recieve keystrokes. Standard out is where a program can send its normal output. Standard error is where a program can send messages about unusual conditions and situations. In this simplistic but effective system it is possible to run programs, feed them input, see the output, and seperately find out about problems along the way. Modern toolkit authors seem to be suffering from some kind of cargo cult mentality. They noticed that a datastream existed for finding out about unusual conditions, and decided that this data channel is actually a good place to put any and all possible messages relating to potential problems which may not even exist or matter. Thus, in a modern KDE or GTK/GNOME application, standard error no longer actually represents errors. It in fact is full of status of lunched subdaemons, errors parsing some tree of mime types 8 libraries away from your application, warnings about slightly incorrect type declarions, complaints about buttons that are slightly the wrong size, and so on. The best part of all this spew is that if your program actually _does_ encounter something that you would need to know about "programname: error opening your_letter.doc: permission denied", it is buried in pages of spew, and you'll never see it. Even better is that of course the x console is totally useless. There is no way you would ever see an error produced by the X system itself, because any directly launched gui bits are all spewing in parallel to the same stderr inherited by the X server. So after suffering with this idiocy for many years, I decided to file a clear and cogent request for the GTK developers to address the issue. http://bugzilla.gnome.org/show_bug.cgi?id=362749 The response of course was, to paraphrase: Well, these messages indicate a buggy program, therefore our action is correct. So, to dissect this reducto-ad-absurdism style. If glib notices the program is running has a bug, it should detonate a nuclear warhead in downtown Manhattan. After all, once it is clear you are dealing with a buggy program, there is no need to actually consider whether your response is reasonable, helpful, or useful, it is self-justified because it is a response to a bug! Q. E. D.
< mari
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
chi >
[ Page 27 of 76 ]
Generated at 10:28 on 16 Apr 2008 by mariachi