Unix-Haters Handbook Available Online
prostoalex writes "The Unix-Haters Handbook, publication year 1994, is now available online for free as a single PDF file. Apparently some suburban Seattle company has agreed to host this 3.5MB file on its servers. The anti-foreword is written by no other but Dennis Ritchie, who proclaims: 'Here is my metaphor: your book is a pudding stuffed with apposite observations, many well-conceived. Like excrement, it contains enough undigested nuggets of nutrition to sustain life for some. But
it is not a tasty pie: it reeks too much of contempt and of envy.'" This is what should happen to more out-of-print books.
Windows Hater Book, Entry 1.
.
A "32-bit multi-threaded Operating System" which freezes for 30 seconds while Adobe Reader 5.0 starts up and downloads a 3.5 MB pdf
I guess it is multi-threaded. I mean, I could wiggle the hourglass.
"Can of worms? The can is open... the worms are everywhere."
This might be on Microsoft's servers, but it's in Daniel Weise's private webspace (he being one of the three authors). No, this is not an unsubtle attempt at pro-windows propaganda.
Tarsnap: Online backups for the truly paranoid
(I know, 'cause I sent in the note which it listed there ;)
.tex source (which one may not process save under specific circumstances) for _The TeXBook_ and _The METAFONT Book_ by Dr. Donald E. Knuth). Books of interest include:
That's, http://digital.library.upenn.edu/books/ for those who aren't familiar with this wonderful site.
It lists a number of other out-of-print books which're of interest to geeks (and some which are in print such as the
_Unix Text Processing_
Norman Walsh's _Making TeX Work_ (which is on Sourceforge)
Eckel's book on programming Java
and for those with kids, _The Great Logo Adventure_
William
Sphinx of black quartz, judge my vow.
Only faster! Now that's Hyper-threading!
You think that I'm crazy, you should see this guy!
...the best part of the foreword:
"As for me? I switched to the Mac. No more grep, no more piping, no more SED scripts."
"As for me? I switched to the Mac. No more grep, no more piping, no more SED scripts.. "
Oh well. I guess he really can't escape Unix.
From the Preface:
Modern Unix is a catastrophe. It's the "Un-Operating System": unreliable, unintuitive, unforgiving, unhelpful, and underpowered.
Now, who has the URL to that Microsoft company picture from the 70's where everyone looks high?
Dennis Ritchie himself uses Windows NT...
Simson Garfinkel eventually became a hermit and withdrew from public life after too many people mistook him for Art Garfunkel. He now lives in a cave in southern California.
Daniel Weise went on to work at Microsoft. He distinguished himself as the first non-Samoan to ever pick up Bob Barker after winning the Showcase Showdown on "The Price Is Right."
Steve Straussman (no website, sorry -- anyone?) left the Unix-Hater's list after it was revealed that he had fallen in love with a woman who loved Unix. He has come to terms with the past, and now teaches "How to Shell Script in Linux" classes at his local community college.
John Klossner went on to a successful career making cartoons for Lucas' Skywalker Sound company newsletter, until fired for printing one that suggested an unnatural intimacy between Luke Skywalker and Chewbacca.
Donald Norman won the coveted "Golden C< Prompt" award and retired from public life.
Dennis Ritchie became something of a celebrity on the web for his many and varied contributions of photos to Engrish.com.
Scott Burson became a monk and moved to Iceland.
Don Hopkins ran for office in Lousiana and lost. He is now a semi-successful insurance salesman, and plays harmonica regularly.
That was all I could find out about -- anyone got any more?
Carousel is a lie!
I find it ironic that in the forward he mentions he switched to a mac to avoid cryptic UNIX things like grep and pipes, etc.
Now Mac OS X is based on UNIX!
I would care about the server getting slashdotted, but since its microsoft's bandwidth, and this is slashdot, I feel compelled to be a dick and not volunteer a mirror.
Microsoft has more bandwidth than god anyways.
--Nuintari
slashdot : where an opinion can be wrong.
Since when was it a good idea to post a link to a 3.5mb file hosted on a small suburban server on slashdot? :)
no comment
I actually have it in paperback form, and it comes with a Unix barfbag. A lot of the points made in the book are still quite valid, but a lot of them are things that have been fixed in the last 10 years. When placed at the appropriate time, you have to realize that it does a decent job of describing the worst parts of Unix from the views of VMS users, among others. Like /., it makes no pretense of being a balanced view.
My main gripe is that they confuse the Internet with Unix. So an entire chapter is devoted to Usenet. That was written before spam, I'm sure the author would be able to write even more vitriol in that category.
I'd love to see it updated, particularly given that so many of the gripes have been addressed and fixed in the world of FS/OSS.
Probably my favorite quote that really needs an update: "Unix was no designed for the Mac." (page 18 of the PDF)
Michael
Do you have ESP?
I read this book when it came out, when I was just a mere youth in the world of Unix. I actually learned a lot about Unix, both the history and actual day-to-day usage. It's clearly authored by a collection of people who love to hate unix and hate to love unix.
In the intervening nine years, a lot of the criticisms in this book have been addressed. Even at the time it was released, this was becoming true. A lot of the issues in the book have a solution, and its name is "Perl". But don't fool yourself; Unix still sucks in a lot of ways. The chapters criticizing X, for example, are unfortunately far too true today.
I hope the people who read this get the joke; that only a group of people intimately familiar with Unix could have produced such a book.
The Unix Hater's Handbook is a classic, and should be read especially by UNIX/Linux fans. I always used to force my minions^H^H^H^H^H^H^Hstudents to read it (until one of my students kept it) so they would have a better understanding of where UNIX had been, and what aspects of it were suboptimal.
A lot of what TUHH rags on has long since been improved.. who mucks around with /bin/sh, sed and awk now that we have Perl and Python, after all?
Other things haven't been improved much on the UNIX side, and TUHH includes some important lessons about why that is, and what the real world benefits and costs of that are.
I'm glad that this is available in some form again now, but it's not the same without the friendly UNIX Barf Bag bound into the back cover.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
I don't need to worry about those rabid unix haters, I use Linux. Oh wait...
"Smoking helps you lose weight - one lung at a time" -- A. E. Neumann
page 337:
* u++/
In an announcement that has stunned the computer industry, Ken Thompson,
Dennis Ritchie, and Brian Kernighan admitted that the Unix operating
system and C programming language created by them is an elaborate April
Fools prank kept alive for more than 20 years. Speaking at the recent
UnixWorld Software Development Forum, Thompson revealed the following:
"In 1969, AT&T had just terminated their work with the GE/AT&T
Multics project. Brian and I had just started working with an early
release of Pascal from Professor Nichlaus Wirth's ETH labs in Switzerland,
and we were impressed with its elegant simplicity and
power. Dennis had just finished reading Bored of the Rings, a hilarious
National Lampoon parody of the great Tolkien Lord of the Rings
trilogy. As a lark, we decided to do parodies of the Multics environment
and Pascal. Dennis and I were responsible for the operating
environment. We looked at Multics and designed the new system to
be as complex and cryptic as possible to maximize casual users' frustration
levels, calling it Unix as a parody of Multics, as well as other
more risque allusions.
"Then Dennis and Brian worked on a truly warped version of Pascal,
called "A." When we found others were actually trying to create real
programs with A, we quickly added additional cryptic features and
evolved into B, BCPL, and finally C. We stopped when we got a
clean compile on the following syntax:
for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(
8)%2))P("|"+(*u/4)%2);
"To think that modern programmers would try to use a language that
allowed such a statement was beyond our comprehension! We actually
thought of selling this to the Soviets to set their computer science
progress back 20 or more years. Imagine our surprise when AT&T
and other U.S. corporations actually began trying to use Unix and C!
It has taken them 20 years to develop enough expertise to generate
even marginally useful applications using this 1960s technological
parody, but we are impressed with the tenacity (if not common sense)
of the general Unix and C programmer.
The Problem with Hidden Files
Unix's ls program suppresses file whose name begin with a period (such as
Windows' dir program suppresses file whose are attributed with H (such as...what you see in attrib *.* with H with them) by default from from directory displays. Attackers exploit this "feature" to hide their system-breaking tools by giving them attribute H. Computer crackers have hidden mega bytes of information in unsuspecting user's directories.
Using file name that contain spaces or control characters is another powerful techniques for hidding files from unsuspecting users. Most trusting users (maybe those who have migrated from the Mac or from MS-Windows) who see a file in their home directory called system who't think twice about it - especially if they can't delete it by typing rm system. "If you can't delete it," they think, "it must be because UNIX was patched to make it so I can't delete this critical system resource."
Using file names that contain spaces or control characters is another powerful technique for hiding files from unsuspecting users. Most trusting users (maybe those who have migrated from whatever-OS-on-earth) who see a file in their system directory called system.dll won't think twice about it - especially if they can't delete it by typing del system.dll. "If you can't delete it," they think, "it must be because Windows was patched to make it so I can't delete this critical system resource."
The entire article is stuffed with argument as such. Worth reading only for a laugh.
So, in 1997, Donald Norman of Apple bashes UNIX...
And now all Apple Systems ship with it!
I [heart] Irony
http://www.uktsupport.co.uk/humour/msoft.htm
I've got the print version of the book. Witty, clever, and sadly on-target in quite a lot of its observations. (I'm still dismayed to see a greater-than character in front of "From" when it's the first word on a line in an email message. There's just no excuse for that in 2003.) And I'm a die-hard Unix lover (logged on using a Silent 700 when I was in 3rd grade).
But I was turned off that the Unix Haters mailing list was so exclusive: you had to write some similarly erudite and novel observation on how awful Unix was before you'd be let into the club. Clever invective to be kept a careful few? Sounds a bit fearful to me.
Regardless, it's been years since the book's been out, and Unix still has many warts. The book (and presumably, the mailing list, although I wouldn't know), could serve as a requirements document on how you'd go about improving Unix in general.
What did the authors offer as a better UI? No, not Windows. Not Mac. Some arcane LISP machine was usually the machine of choice. Sorry, I live in the real world and have to earn a paycheck.
In case it does get slashdotted, there is a mirror at www.cyruslabs.com/unix-haters/
It even has an HTML converted version for all of us that hate PDF's.
This documents has many excellent points. When you are a green developer just into college you are sort of brainwashed into the "UNIX is the best. PCs and Macs are just toys compared to the incredible power of UNIX." When I encountered things I just assumed it was my lack of knowledge or understanding. UNIX wouldn't have faults or problems!
Of course, many of these problem have been resolved since this book was written. Unfortunately, far too many have remained and have many their way into Linux.
A) Cryptic Command Names. Still there in Linux
B) "Unix was like Homer, handed down as oral wisdom."
Man, this is so true. I got most of my UNIX knowledge passed down to me by upperclassmen and professors. It is amazing how much training it takes in UNIX to do something simple in Windows. For example, recursively searching through a subtree for some text in a file.
C) Terminal Insanity. Still there in many ways. VT100 pops up its ugly head decades after it should have been killed.
D) The X-Windows Disaster. X-Windows is what first made me question UNIX's superiority. Dang X sucks. Bad. What a mess! "Motif Self-Abuse Kit" made me laugh because my brief experience programming Motif was one of the worst in my life. It was a mess of void pointers and pointers to functions that was an absolute pain to program.
E) Make "Unfortunately, in their zeal to be general, many
Unix tools forget about the quick and easy part."
I've never found a make that I liked. You should not have to spend hours programming the freakin makefile. Nor should you have to debug whitespace because you have an extra space or tab.
Neither are Linux or BSD. What's your point?
It's hard to be religious when certain people are never incinerated by bolts of lightning.
CLIs in general are *not* intuitive.
I wouldn't ever claim that they are. I would, however, claim that I can work far faster with a Unix CLI than my Windows coworkers can with their GUI. There will always be exceptions, but I've known many people who found Unix far easier to use once they overcame the initial barrier. I find this usability more important than being intuitive. (By the way, as someone who has always used Macs or Unix systems, I certianly don't find Windows at all intuitve, GUI or no.)
Ok, so, I think everyone on /. knows that I like GNU/Linux. So, you expect that what follows is going to be a ranting rave about how much this book sucks, right? Wrong. This book is great, and here's why.
Many here have pointed out that alot of these very same problems exist elsewhere. Hidden files are a social-engineering security problem on Windows and Mac as well; likewise with undeleteable files.
So what? Saying, "well, their OS sucks too" doesn't make our OS any better. Since when is it ok for me to accept my own flaws just because everyone else around me also has those same flaws, or others?
The stuff written in this book shouldn't be seen as MS/Mac propaganda. I think most people who are going to be reading it are GNU/Linux users, and aren't going to be switching anytime soon, irrelevant of how much the authors hate *nix. (btw, if *nix sucks so much, why is Mac basing OSX around it, and why do we keep hearing rumors about MS doing such as well?).
There are many valid and important criticisms of *nix in that book. We should consider ourselves lucky that this book is narrowly targetted to *nix and doesn't address any of the same problems win Windows and MacOS -- we've received solid constructive criticism which others haven't, and that's a good thing.
social sciences can never use experience to verify their statemen
Qualification: a while a CLI can manage files, its major function is not as a file manager.
CLIs may not be intuitive, but they are powerful in that they can run commands with various changable options. And they make debugging/testing programs a lot easier.
What CLI's are not good for is general file management, which is one reason why modern linux distros come with GUI file managers and why I use one for managing my files. But if anyone removed the terminals and shells from my computer I'd go insane - I'm always cursing the CLI (or what passes for it) in Win2K at work and wishing there was a decent implementation of BASH for windows ...
Full April fools prank: http://www-users.cs.york.ac.uk/~susan/joke/c.htm
The war with islam is a war on the beast
The war on terror is a war for peace
I think this is part of the blinders that you and other people had on at the time. You hacked operating systems and because hacking some particular OS was great fun for you, you thought it was great for users. But for users, none of that mattered.
UNIX does come off very baddly compared to the other O/S of its era.
Maybe from the point of view of a Multics kernel hacker. From the point of view of a user, it looked pretty sweet in comparison to those aging, messy behemoths.
[Lack of security] did not work to keep UNIx replacing real O/S like VMS.
You are confusing the presence of security features with security. VMS had plenty of security features, it just managed to be even less secure than UNIX at the time (a pretty amazing feat).
Denis Richie effectively invented the buffer overun bug. C was the first computer language that had dynamic memory allocation without dynamic range checking.
Fortran had dynamic memory allocation, which was widely used (too bad it wasn't standardized) and no bounds checking. So did BCPL. So did many Pascal compilers (and not all Pascal compilers offered bounds checking). So, for that matter, did assembly language.
UNIX is unfortunately not the greatest creation of computer science. The fact that so many youngsters look at the pile of offal uncritically is somewhat disappointing.
The whole UHH book, as well as your posting, reek of arrogance and ignorance. Do you really think people who chose UNIX at the time weren't aware of the problems that the UHH points out? They (myself included) chose UNIX nevertheless because, in the end, it was still better for getting real work done than the alternatives.
What the world could have used was some rolling-up of sleeves and efforts to do better, either by bringing those fabulous other systems to workstation-class hardware, or by at least porting over bits and pieces of them (shells, programming languages, etc.). But, in the end, your emperor had no clothes: while people like you whined and complaied a lot, when it came down to it, you apparently really didn't know how to do any better.
The comment of one macho veteran Slashdotter have so annoyed me that I think it deserves being a main-comment for criticism:
There are no such things as "rm disasters". There are only mistakes, stop making them, or at least think before you execute.
Exactly the kind of bullshit macho attitude I was talking about.
Why don't you try doing that if you're a car company, and sell a car that can so easily be fucked up? Oh, yea, instead of having an out of-the-way hard break lever, we put a hard-break button right next to the defog button...but don't fucking bitch at us if you accidentally press the hard-break button (which is right next to the defog button) when trying to defog your windows, and your car spins around and crashes on an icy road.
Does that kind of bullshit macho attitude apply for companies making airplanes? When people making airplaies discovered that slats switches were being turned on accidentally, did they say:
"Yea, so what the slats extention switch can be accidentally turned on by an unintentional movement, possibly causing passenter-injury. Tell the pilots to be more careful and not fuck up."
No, they didn't. They said,
"Ok, so this is a problem. Why don't we cover the slats switch with a spherical clear cover that has to be unhinged before extending slats -- that way, they won't get extended at 500mph and cause the plane to trolly."
Just because many of these problems are socialogical not technological doesn't mean they're not problems. People are not robots. People fuck up -- quite a bit actually. To you perfect people writing a reply to this boldly telling me that people shouldn't "fuck up", how many times did you have to use backspace in writing that response?
social sciences can never use experience to verify their statemen
Comment removed based on user account deletion
The comment of one macho veteran Slashdotter have so annoyed me that I think it deserves being a main-comment for criticism:
There are no such things as "rm disasters". There are only mistakes, stop making them, or at least think before you execute.
Exactly the kind of bullshit macho attitude I was talking about.
Why don't you try doing that if you're a car company, and sell a car that can so easily be fucked up? Oh, yea, instead of having an out of-the-way hard break lever, we put a hard-break button right next to the defog button...but don't fucking bitch at us if you accidentally press the hard-break button (which is right next to the defog button) when trying to defog your windows, and your car spins around and crashes on an icy road.
Does that kind of bullshit macho attitude apply for companies making airplanes? When people making airplaies discovered that slats switches were being turned on accidentally, did they say:
"Yea, so what the slats extention switch can be accidentally turned on by an unintentional movement, possibly causing passenter-injury. Tell the pilots to be more careful and not fuck up."
No, they didn't. They said,
"Ok, so this is a problem. Why don't we cover the slats switch with a spherical clear cover that has to be unhinged before extending slats -- that way, they won't get extended at 500mph and cause the plane to trolly."
Just because many of these problems are socialogical not technological doesn't mean they're not problems. People are not robots. People fuck up -- quite a bit actually. To you perfect people writing a reply to this boldly telling me that people shouldn't "fuck up", how many times did you have to use backspace in writing that response?
social sciences can never use experience to verify their statemen
This was a hoax. In fact, the C code given does not compile, and I don't see how it would compile under any reasonable compiler that would ever have been built. Even after wrapping the code in a main() function and adding appropriate functions, gcc still chokes on R=; (empty Rvalue) and the second for loop (no increment step). The comma-operator, the and-operator, the bitwise operators, hex constants: any language that gives you a lot of control over your data-structures and how you access them needs these one way or another. Sure, Ada is perhaps more readable. In fact, perl can be made a lot more readable than C, even though it, like about a dozen other languages, borrows its operators straight out of K&R, precedent included.
Unix makes easy tasks hard and hard tasks possible. Windows makes easy tasks easy and hard tasks $29.95.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Microsoft Research actually employs some of the most respected figures in the computer industry today. Ever heard of Jim Gray? Probably not, because it seems you like to spout off without trying to properly investigate your complaints. Anyways, I'm sure you've heard of such a thing as a "relational database". He shared an award with 8 other folks for inventing it. If you care to actually do some reading before you show off your ignorance, perhaps you should visit MS Research. Microsoft actually funnels tons of money to R&D. It's critical to their continued existence. (incidentally, Jim Gray's site is here)
Ken Thompson invented Unix so that he could continue playing spacewar.
- find . -name test.txt (why not just allow 'find test.txt')
Because that'd be ambigious. That could mean both find all files in test.txt, or as you wanted find files with name test.txt. Making behaviour like that depend on what's on disk is generally a very bad idea. If you use it a lot, put "alias fi='find . -name'" in your shells rc-file.
Obviously, these people had no idea either how to use UNIX or who was using UNIX and why.
Actually, I think they could all use UNIX perfectly and were making a rather humorous point. Or I could be missing something.
'Standards' in computing only impress those who are impressed by things like 'standards'.
Don't worry - they can afford it. They sell software. You know? For money.
Later, a fellow by the name of Rob Malda helped fashion SlashCode, a piece of code so bloated and confusing that it could disable a whole server.
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
If Mr. Edison had thought smarter he wouldn't sweat as much. --Nikola Tesla
From Donald A. Norman's foreword:
"If this book doesn't kill Unix, nothing will."
No, I did not read the f***ing article!
It might behoove you to actually read the introduction to the book and the bios of the authors. The people who wrote it were not circa-2002 pro-Microsoft trolls; they were circa-1991 VMS and Multics refugees who as a rule knew more about operating system design and engineering than you'll ever learn.
Also, pointing out that idiotic mistakes such as "hidden" files have been perpetuated by newer operating systems does not negate the point that it was an idiotic mistake. (Quite the opposite, actually.)
News for Nerds. Stuff that Matters? Like hell.
For those who don't have time to read the whole thing, I provide this handy summary which (true to the unix philosophy) is 90 percent "good enough":
Unix has no versioning file system.
If you want the other ten percent of complaints, you'll just have to read it yourself, but that summary will get you pretty much the whole thing otherwise.
Mahnamahna!
The MS link is broken now, but the pdf is also available here.