"Two of the most famous products of Berkeley are LSD and Unix. I don't think that this is a coincidence." -- Anonymous % Unix is a computer virus with a user interface. % Multics was designed to store and retrieve large data sets, to be used by many different people at one, and to help them communicate. It likewise protected its users from external attack. It was built like a tank. Using Multics felt like driving one. % In the early PDP-11 days, Unix programs had the following design parameters: Rule 1. It didn't have to be good, or even correct, but: Rule 2. It had to be small. ...over time, computer hardware has become progressively more powerful... So Rule 2 has been relaxed. % "Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas guage, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant "?" lights up in the center of the dashboard. "The experienced driver," says Thompson, "will usually know what's wrong." -- Anonymous % Of course, though, on this occasion I mistyped as my fingers go on autopilot and prefer the word 'indent' to the non-word 'ident:' % indent foo Now, it turns out that "indent" is the name of UNIX's brain-damaged idea of a prettyprinter for C. Did the bastard who wrote this abortion consider checking to make sure that its input was a C file (like, oh my god, checking for whether or not the name ended in ".c")? I think you know the answer. Further, Said Bastard decided that if you give only one argument to indent then you must mean for the source code to be prettyprinted in place, overwriting the old contents of the file. -- Pavel Curtis % Actually, the best form of Unix documentation is frequently running the strings command over a program's object code. % All of sendmail's rope is still there, ready to make a hangman's knot, should anyone have a sudden urge. % * The common North American brown bat's diet is composed principally of bugs. Sendmail is a software package which is composed principally of bugs. * Sendmail and bats both suck. * Sendmail maintainers and bats both tend to be nocturnal creatures, making "eep eep" noises which are incomprehensible to the average person. * Have you ever watched a bat fly? Have you ever watched Sendmail process a queue full of undelivered mail? QED. * Sendmail and bats both die quickly when kept in captivity. * Bat guano is a good source of potassium nitrate, a principal ingredient in things that blow up in your face. Like Sendmail. * Both bats and sendmail are held in low esteem by the general public. -- Robert Seastrom % The Unix mail system knows that it isn't perfect, and it is willing to tell you so. But it doesn't always do so in an intuitive way. Here's a short listing of the error messages that people often witness: 550 chiarell... User unknown: Not a typewriter 550 zhang@uni-dortmund.de... User unknown: Not a bicycle 553 abingdon I refuse to talk to myself % A group of hackers devised a protocol for transmitting Usernet over the Internet, which was completely subsidized by the federal deficit. Capacity increased and Usenet truly came to resemble a million monkeys typing endlessly all over the globe. % As you can see, the joke wears thin rather quickly. Not that that stops anyone on Usenet. % The anonymity of the net reduces otherwise rational beings (well, at least, computer literate beings) into six-year olds whose apogee of discourse is "Am not, Are so, Am not, Are so...." % A thread is a collection of articles and responses, and trn shows the "tree" by putting a little diagram in the upper-right corner of the screen as its reading. For example: +[1]-[1]-(1) \-[2]-[*] | +-[1] +-[5] +[3] -[2] No, we don't know what it means either, but there are Unix weenies who swear by diagrams like this... % Today, Unix's handling of character-based VDTs is so poor that making jokes about it can't do justice to the horror. % If the Unix aficionados are right, and there really are many users for each Unix box, then well over two-thirds of the people using Unix are stuck doing so on poorly supported VDTs. The most interactive tool they're using is probably vi. % Recipe for disaster: start with the Microsoft Windows metaphor, which was designed and hand coded in assembler. Build something on top of three or four layers of X to look like Windows. Call it Motif. Now put two 486 boxes side by side, one running Windows and one running Unix/Motif. Watch one crawl. Watch it wither. Watch it drop faster than the putsch in Russia. % "The most horrifying thing about Unix is that, no matter how many times you hit yourself over the head with it, you never quite manage to lose consciousness. It just goes on and on." -- Patrick Sobalvarro % I was happy. I thought it was over. But then in the shower this morning I thought of a way to do it. I couldn't stop myself. I tried and tried, but the perversity of the task had pulled me in, preying on my morbid fascination. It had the same attraction that the Scribe implementation of Towers of Hanoi has. It only took me 12 tries to get it right. It only spawns two processes per file in the directory tree we're iterating over. It's the Unix way! % find . -name '*.el' -print \ | sed 's/^/FOO=/' |\ sed 's/$/; if [ ! -f \ ${FOO}c ]; then \ echo \ $FOO ; fi/' | sh BWAAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH HAAAAHH!!!! % Yep, Unix can sure handle text. It can also handle text. Oh, by the way, did I mention that Unix is good at handling text? -- "Mark" % "Much of any programmer's work is running these [wc, pr, lpr and grep] and related programs. For example, wc *.c counts a set of C source files; grep goto *.c finds all the GOTOs." These are "among the most useful" programs?!?! Yep. That's what much of this programmer's work consists of. In fact, today I spent so much time counting my C files that I didn't really have time to do anything else. I think I'll go count them again. % Unix brain death forever! % "If C gives you enough rope to hang yourself, then C++ gives you enough rope to bind and gag your neighborhood, rig the sails on a small ship, and still have enough rope to hang yourself from the yardarm." -- Anonymous % Why doesn't someone tell Sun that their workstations aren't Vaxen with 2MB of RAM, it's not 1983, and there is absolutely nothing to be gained by summarily paging out stuff that you don't have to just so you have a lot of empty memory lying around? What's that, you say? Oh, right, I forgot - Sun *wants* their brand new spiffy fast workstations to *feel* like a VAX 11/750 with 2MB of RAM and a load factor of 6. Nothing like nostalgia, is there? feh. -- Robert E. Seastrom % "Unix is computer-scientology, not computer science." -- Dave Mankins % Will journalling become prevalent in the Unix world at large? Probably not. After all, it's nonstandard. % If you make even a small omission, like a single semicolon, a C compiler tends to get so confused and annoyed that it bursts into tears and complains that it just can't compile the rest of the file since the one missing semicolon has thrown it off so much. % nroff with the "man" macros...(a set of text formatting macros used for nothing else on the planet) % "Not having sendmail is like not having VD." -- Ron Heiby % While make's model is quite general, the designers forgot to make it easy to use for common cases. In fact, very few novice Unix programmers know exactly know utterly easy it is to screw yourself to a wall with make, until they do it. % Dennis never found the problem with his Makefile. He's now stuck in a dead-end job where he has to wear a paper hat and maintains the sendmail configuration files for a large state university in the midwest. It's a damn shame. % As one hacker put it, "Reading the Unix kernel source is like walking down a dark alley. I suddenly stop and think 'Oh no, I'm about to be mugged.'" % But instead of buckling down and coming up with something better, or just fixing the existing bugs, Unix programmers chant the mantra that the Unix interface is Simple and Beautiful. Simple and Beautiful. Simple and Beautiful! (It's got a nice ring to it, doesn't it?) % "The disadvantage of working over networks is that you can't so easily go into someone else's office and rip their bloody heart out." -- Jim McDonald % Over the past few years, we've known many programmers who know how to program in C++, who can even write reasonably good programs in the language... ...but they hate it. % Does Unix get unhappy when it runs out of swap space? Does a baby cry when it finishes its chocolate milk and wants more? When a Unix system runs out of swap space, it gets cranky. % (Unix NetSpeak is very bizarre. The vocabulary of the statement "the daemon, which is supposed to service Thistle, was told that it should spawn a child to connect to itself" suggests that Unix networking should be called "satanic incestuous whelping.") % As a result of little or no error checking, a wide supply of "programmer's tools" give power users a wide array of choices for losing important information. % Just as a baby transforms perfectly good input into excrement, which it then drops in its diapers, Unix drops excrement all over its file system... % According to the empirical evidence of Unix programs and utilities, a more accurate summary of the Unix Philosophy is: * A small program is more desirable than a program that is functional or correct. * A shoddy job is perfectly acceptable. * When faced with a choice, cop out. % Unix doesn't have a philosophy: it has an attitude. An attitude that says a simple, half-done job is more virtuous than a complex, well-executed one. An attitude that asserts the programmer's time is more important than the user's time, even if there are thousands of users for every programmer. It's an attitude that praises the lowest common denominator. % Ken Thompson was once asked by a reporter what he would have changed about Unix if he had it all to do over again. His answer: "I would spell creat with an `e.'" % According to legend, Stu Feldman didn't fix make's syntax, after he realized that the syntax was broken, because he already had 10 users. % What production environment, especially one that is old enough to drive, vote, and drink 3.2 beers, should reject the very commands that it tells you to enter? % Maybe it's Unix fighting back, but this precise bug hit one of the editors of this book after editing in this message in April 1993. Someone mailed him a uuencoded PostScript version of a conference paper, and fully 12 lines had to be handpatched to put back trailing blanks before uudecode reproduced the original file. % Sendmail, arguably the standard SMTP daemon and mailer for UNIX, doesn't like "To:" fields which are constructed as described. What it does about this is the real problem: it sends an error message back to the sender of the message, AND delivers the original message onward to whatever specified destinations are listed in the recipient list. This is deadly. The effect was that every sendmail daemon on every host which touched the bad message sent an error message back to us about it. I have often dreaded the possibility that one day, every host on the Internet (all 400,000 of them) would try to send us a message, all at once. On Monday, we got a taste of what that must be like.