< 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 34 of 76 ]
From: Patrick Carr Date: 20:50 on 01 Jun 2006 Subject: mac disk image images Dear (Almost) Every Mac Developer, Apple has anticipated that people would use the Applications folder pretty frequently, so by default it's right in the left side bar of every finder window. Convenient, no? Especially when downloading the newest version of App.App: It's right there for the dragging, from disk image to Applications folder all in one handy finder window. So why do you insist on customizing the disk image window so it has a picture of you, your kids, or some fucking cutesy-ass bunnies and taking off the side bars? Oh, right, the same reason you spend all your time making App.App skinnable and ignoring the memory leaks. Yours in hate, Pat P.S. Including a soft link to /Applications/ in the disk image is less hateful but not optimal.
From: David Cantrell Date: 22:13 on 30 May 2006 Subject: Inconsistent options Leafnode is a small simple NNRP server. The two most important commands it provides are texpire, which expires old messages out of the spool; and fetchnews, which mutters at other news servers to exchange messages. Both provide a -q option. The docs say: for texpire: Quiet. Print no messages unless problems occur. Cancels preced- ing -v [verbose] options. and for fetchnews: Be quiet. Suppresses some warnings. This flag cancels any previ- ously encountered -v [verbose] flags. So while -v (and -vv, -vvv etc) mean the same for both, -q doesn't. Or at least, they're not documented to be the same. So it's hateful either way.
From: Simon Wistow Date: 17:24 on 26 May 2006 Subject: Adobe Acrobat and its font non handling Or, more succinctly, acroread since I have no idea if this is the same on Windows. I have a PDF. Acroread tries to load and then bitches that it doesn't have the right font. Not a particularly exotic font - just Times New Roman. I *know* I have TNR installed somewhere because The Gimp and Star Office and Firefox can use them but we shall ignore that. In fact we better ignore that because there's no way to tell Acrobat "try looking here as well". Now, I know the PDF might not render exactly as was designed and since PDF is a print layout format I can see why that's more important than in HTML but, you know, just this one time I'm willing to let you substitute Helvetica or Garamond or Arial because, crazy kook that I am, actually care about the content rather than the presentation. I know, I know. Shun me! I am an aesthetic pariah. Will it let me do this. No. It displays square boxes for every character instead. Ghostview, btw, handled it with aplomb.
From: Jeremy Stephens Date: 17:13 on 26 May 2006 Subject: source tarballs How hard is it to tar up a source tree in its own sub-directory? Obviously for some it must be really difficult. When I 'tar -xvzf your-cool-program-1.0.tar.gz', it damn well better extract itself into the 'your-cool-program-1.0' directory instead of crapping all over my current directory. Hate.
From: Zach White Date: 01:14 on 26 May 2006 Subject: sendmail, user catchalls, and other MTA hate So I'm rebuilding a machine that at various times over the years has run qmail and courier. Both of those pieces of software have a really nice feature where you can email user-<something>@domain, and if user-<something> doesn't exist on the machine the mail will get delivered to user. In fact, I'm pretty sure that qmail originated this feature, but I'm too hateful right now to verify that. So in rebuilding this machine, I decide that rather than install a different MTA, I'll go with sendmail, which comes with the machine. Contrary to past experience, sendmail really isn't as hateful as I was prepared for it to be. Except when it comes to making sure that my 623,612 subscriptions that use zwhite-<listname> still work without specifying each one in either aliases or virtusertable. Nothing in the documentation about how to do that. Nothing in the FAQ. Nothing I can find using google. It doesn't help that google ignores the + and - characters in searches, either. According to a friend who is a sendmail ninja, I'll have to change the source. Good thing that + isn't used very often in code, isn't it? root:/usr/src/gnu/usr.sbin/sendmail:35# grep -r '+' . | wc -l 4336 HATE HATE HATE
From: Luke Kanies Date: 19:33 on 25 May 2006 Subject: Solaris packaging sucks, too As was already discussed this week, packaging should consist of a packaging technology and a package retrieval/install technology, whether they're integrated or not. Solaris stupidly has no retrieval tech builtin, and their packaging software itself is pretty braindead. People are now starting to use packages compiled by Blastwave or SunFreeWare, which each provide a pkg-get script that will retrieve and install packages for you. Of course, those scripts behave completely differently, and the package repositories are entirely incompatible, but whatever. So, I pick Blastwave for various reasons. You go to install a single package, it basically works, other than asking you all kinds of inane questions that amount to "are you sure?". Then, six months later, you go to upgrade a package, ruby in this case. Because Sun's package system is stupid, the current package has to be removed, rather than just being replaced. You get a bunch of warnings that other packages depend on this package, and you just ignore those warnings. It downloads the ruby package, tries to install ruby, and fails, because you need to upgrade some other package. Note that you now do not have an installed ruby package. Okay, so you upgrade the prerequisite package and go to install ruby again. This is where it gets really ridiculous: The package retrieval now fails because it's already been retrieved once. The script isn't smart enough not to download the package again, and upon downloading it again it's not smart enough to replace the existing, uncompressed package, it just bails entirely. So, now you have to go and manually delete the package, go to upgrade again, get told another package needs to be upgraded, and you're stuck. You're only reasonable choice at that point is to upgrade all packages, even though it's not at all what you want. Oh, and yeah, you're going to be asked a whole bunch of stupid questions -- you have to sit there synchronously saying "yes, yes, yes, yes, yes, yes, yes, yes" to the stupid computer. Grrr.
From: David Cantrell Date: 11:59 on 23 May 2006 Subject: helping the user is not an error When the user asks for help, giving that help is not an error. So please use STDOUT and not STDERR. It makes it so much easier to redirect your overly verbose spew into less(1).
From: Michael Leuchtenburg Date: 21:16 on 20 May 2006 Subject: Basic18, and interrupt service routines I would be more specific in my subject header, but I really hate everything about Basic18. Basic18 is a compiler for Basic for the PIC18. You can find it here: http://www.midwest-software.com/Basic18/basic18.htm If you want to. There's a lot of hate here, but I'll try to focus on just one part. Basic18 has explicit support for interrupt handlers. This is good, because doing it by just putting fuction calls in the right locations in the mapped program would be oh-so-low-level - and Basic is trying to be a high level language, here. Unfortunately, it also thinks it knows better than you what can be called from where. Got a function you want to call from both inside and outside an interrupt? Too bad, you can't! Basic18 won't let you. Period. You think you can keep it from being called while it's running? I'm sure you can, but Basic18 doesn't believe you. It, after all, knows better than any human possibly could. But this, ah, this can be worked around. You can just duplicate your code. Hateful, yes, but at least it can be forced into some semblance of working. Of course, if you have a couple hundred lines of code then that's a lot of wasted space on the flash of the microcontroller, but hey, you do what you can. Of course, Basic18 has more in store. It also supports multiplication. It doesn't just use the PIC's hardware multiplier, though, oh no. It has a library for it. That means functions. So now you can't do multiplication both inside and outside of interrupt handlers. What's that you say? You can live without multiplication? You'll just do it by hand using bitshifts and adds? Wonderful! You can go on using Basic18. Unless, of course, you want to index into arrays. For an array of bytes, it's fine - no problem. But if you want to index into an array of two-byte data, ah, now there is a problem. Because, you see, in order to find the pointer to the correct cell, Basic18 will need to multiply the index. So now you can't index into arrays both inside and outside of interrupt service routines. Got a buffer that you want to store into as data comes in and then handle outside the interrupt service routine? Too bad! You can't! None of this, of course, is documented. What the hell is the point to a high level language if it's just going to make my life more difficult than writing in assembly? If, in fact, it's going to force me to use assembly to work around its lack of such operators as, oh, bitshifts? And don't get me started on the documentation. Or the header files. Or the debugging support. Or the type checking. SO. MUCH. HATE.
From: Luke Kanies Date: 19:54 on 20 May 2006 Subject: OS X packaging is an embarrassment So I picked up a MacBook yesterday, for various reasons but mostly because my 12" powerbook feels really slow these days. After getting my accounts moved over, which took a while (mostly because I have 45GB of music), I went about making it resemble the *nix workstation I know and love. These days, that mostly involves getting X11 installed and then getting RXVT working. I tried Apple's Terminal for a while, but I can't change the ANSI colors and the defaults suck when having a dark background, and it's difficult to automatically tile them, which I always do. So, I install X11 and DarwinPorts. Hmm, nothing works. Ah, DarwinPorts can't find a compiler. Ok, go into XCode and install the compiler. Or, well, install both of them. Nope, still doesn't work. Ok, link gcc-4.0 to gcc. Nope, still doesn't work. Look at the build log, realize it's missing "as". Do some searching, realize that I need another package. This is where I realize, OS X is an embarrassment. See, the DarwinPorts package was a normal OS X package. If OS X had a real packaging system, then the DarwinPorts package would have been able to say, hey, this won't work, you're going to need these 7 packages. Instead, because OS X's packaging is basically a glorified tarball, you just have to try it, and then figure out the failures yourself. Of course, it's not just in the Unix world where OS X's packaging falls flat on its face. "Just drag it into the applications folder" is a nice install method, but it sucks from then on. What packages do I have installed? Have they changed? Are there updates available? No idea, no way to find out, unless maybe it's an Apple package directly. And, of course, even though my motivation for buying this machine was because my 12" feels really slow, this machine feels just about as slow. Particularly, if I am doing more than one thing at a time -- say, Firefox is loading a tab, and I switch workspaces -- then the whole machine bogs down just as badly as my 12" did. I/O seems to just kill OS X. I'd love to think that OS X could be free of software hate, but I don't see it happening any time soon. Give me apt and a decent package manager, and then a kernel that doesn't somehow manage to make a dual-proc 2ghz machine feel dog-slow, and then we'll talk.
From: Nicholas Clark Date: 21:45 on 07 May 2006 Subject: gcc Dear gcc, Please be noting in the language known as "C", this source code is not valid: void foo () { } void bar () { return foo(); } and that a conformant "C" compiler *must* return a diagnostic. C You keep using that word. I do not think it means what you think that it means. Nicholas Clark
< 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 34 of 76 ]
Generated at 10:28 on 16 Apr 2008 by mariachi