-- This is an *actual* article. I repeat this is *NOT* an April fools joke... -- TOM From: Marshal Perlman --------------------- *COMPUTERWORLD 26 March* CREATORS ADMIT UNIX, C HOAX 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 over 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/Honeywell/AT&T Multics project. Brian and I had just started working with an early release of Pascal from Professor Nicklaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power. Denis 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("_"+(*u++/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 US 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 1960's technological parody, but we are impressed with the tenacity (if not common sense) of the general Unix and C programmer. In any event, Brian, Dennis and I have been working exclusively in Pascal on the Apple Macintosh for the past few years and feel really guilty about the chaos, confusion and truly bad programming that has resulted from our silly prank so long ago." Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time. Borland International, a leading vendor of Pascal and C tools, including the popular Turbo Pascal, Turbo C and Turbo C++, stated they had suspected this for a number of years and would continue to enhance their Pascal products and halt further efforts to develop C. An IBM spokesman broke into uncontrolled laughter and had to postpone a hastely convened news conference concerning the fate of the RS-6000, merely stating 'VM will be available Real Soon Now'. In a cryptic statement, Professor Wirth of the ETH institute and father of the Pascal, Modula 2 and Oberon structured languages, merely stated that P. T. Barnum was correct. In a related late-breaking story, usually reliable sources are stating that a similar confession may be forthcoming from William Gates concerning the MS-DOS and Windows operating environments. And IBM spokesmen have begun denying that the Virtual Machine (VM) product is an internal prank gone awry. -- |o| Marshal Perlman Internet/MIME: perlman@zeno.fit.edu |o| |o| Academic and Research Computing Services (ARCS) IRC: Squawk |o| |o| Florida Institute of Technology FAA: PP-ASEL |o| |o| Pager: 407/455-4809 Member: AOPA/AAAE/Goodyear Blimp Club |o| %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% I can't wait until Al Gore shows us his INFORMATION SUPER TOLLWAY Login name: cgay In real life: Carl L. Gay Directory: /home/users/cgay Shell: /bin/tcsh On since Mar 13 12:02:35 on pts/64 from teebone.uoregon.edu 38 minutes Idle Time No unread mail Plan: cgay@cs.uoregon.edu --- Although I would agree that most of what is referred to as "learning how to use UNIX" could better be regarded as the development of the mental equivalent of calluses. --n caruso --- "... people seem to get pleasure out of messing with Unix internals; then again, there are those that like to have people's fists slammed through their asshole repeatedly. I think that there is a strong correalation between these types." - Jerry Leichter --- "The wonderful thing about Unix standards is that there are so many to chose from." - Quote taken from the Scsh user manual. --- "When your hammer is C++, everything begins to look like a thumb." -- Simon Brooke --- "I use the phrase "Unix weenie" to make fun of people who will stretch to any lengths to defend the way Unix does something today. A Unix weenie is someone who tells you that it is a GOOD THING that you have to learn a new language every time you want to do the slightest bit of customization to your environment. That's such a laughable assertion that you can only laugh at the people who make it. "What a Unix weenie!" is what you say when you have given up hope of having any kind of reasonable discussion." -- Alan Bawden --- root@anu.edu.au (Nathan Hand) wrote: > UNIX has very few quirks. Perhaps some utilities used on UNIX boxes are > quirky, but you didnt say that. The system is very precise and has been > worked upon by the best computing minds in the world. You must consider > UNIX is a tad more complicated than System7. The fact it works at all is > testimony to its strong and elegant design. --- "In My Egotistical Opinion, most people's C programs should be indented six feet downward and covered with dirt." Blair P. Houghton, regarding C Code indentation --- "Douglas Adams may well have had Unix in mind when he described the products of the Sirius Cybernetics Corporation thus: ``It is very easy to be blinded to the essential uselessness of them by the sense of achievement you get from getting them to work at all. In other words --- and this is the rock solid principle on which the whole of [its] Galaxy-wide success is founded --- their fundamental design flaws are completely hidden by their superficial design flaws.''" -R. Padman --- "I need a solution that works across unix platforms, as if I'm trying to find the holy grail, but I can't leave Hoboken, NJ." -Steven L. Tamm --- "Sed is a microcosm of the UNIX experience. It's so arcane that you actually feel like you've accomplished something when you get it to work. Never mind that you just blew 3 hours trying to get it to do some triviality that any full-screen text editor already does in a single keystroke." - cmaeda --- "bits on the wire protocols well understood where did my mail go?" - Unix haiku by cmaeda --- "Bell Labs had a research sys in cruft it was the boss and everywhere their OS went it was a total loss." - Daniel Finster --- "Unix - the 'Nam of operating systems." - Unknown --- "Remember the UNIX PHILOSOPHY: Each tool does no things well. Tools are designed to be misused together. tar is a poor archiving tool, but hey, join two copies together at the hip and it makes a mediocre directory hierarchy copying tool. The miracle of Unix. This is known as SYNERGISM: You know, throw enough shit up against the wall and some of it will stick." - Jerry Leichter --- "PageSat, Inc. of Palo Alto, CA, is broadcasting a complete Usenet feed, with every single news group in existence, 90MB/day, from GE Americom's K2 satellite, over the entire United States, southern Canada, and northern Mexico. These photons are passing through your brain right now." - Dan Weinreb --- "Overloading is cool, you can turn your relatively straightforward C code into stuff that can rival APL and FORTH for programmer-defined obscurity, so later hackers have to spend all night studying the H files to discover that the "=" operator isn't AT ALL what they expected, nyah ha ha..." - Eric Weaver --- "The thing that gets me is that one of the arguments that landed Robert Morris, author of ``the internet worm'' in jail was all the sysadmins' time his prank cost. Yet the author of sendmail is still walking around free without even a U (for Unixery) branded on his forehead." -dm@hri.com --- Developing graphics applications X is like being given the Periodic Table of Elements and being told you have everything you need; Go make a broccoli. - Unknown Then again, this applies as well to Unix - except that in Unix, most of the available isotopes are unstable, there have been a couple of misprints in the table itself, and the jars of available reagents are labeled with abbreviations - in Kurdish. - Jerry Leichter --- "They used to teach us to add things called "features" to our programs, so our users didn't need to learn another embedded language to use something that just receives interterminal messages)." -- Steve Robbins --- "Realize that Unix security is like swiss cheese - not a Jarlsberg or other cheese with a few big holes in it, but an Alpine Lace cheese with thousands of tiny holes in it which you could never plug all of. You can wrap it in saran wrap, but you've still done nothing for the underlying structure, save for reducing the rate at which mold grows on it." -- Robert E. Seastrom --- "A fine suggestion from the authors of the cmu tcp for vms documentation: Unix (you-nix) Another operating system that lots of people use. People who use Unix tend to act like they should set the standards for everyone else. If you meet someone like that, you should hit them with a wet fish, apologize, and then pretend nothing ever happened." --- KEYBOARDS The X keyboard model is broken ... Within a group, the modifier state determines which keysym to use. The first keysym is used when the Shift and Lock modifiers are off. The second keysym is used when the Shift modifier is on, when the Lock modifier is on and the second keysym is uppercase alphabetic, or when the Lock modifier is on and is interpreted as ShiftLock. Otherwise, when the Lock modifier is on and is interpreted as CapsLock, the state of the Shift modifier is applied first to select a keysym; but if that keysym is lowercase alphabetic, then the corresponding uppercase keysym is used instead. - The X man page --- Unix is to computing as Etch-a-Sketch is to art. --- "C++ also supports the notion of 'friends': cooperative classes that are permitted to see each other's private parts" Booch:_Object Oriented Design_ I always said that C++ was a perverted language... Not only that, they refer to these private parts as 'members'." --- "I get the feeling I'm on the edge of a breakthrough in my understanding of The Unix Way. Please give me another small brain hemorrhage and help be cross that threshold." - Jerry Leichter --- majestix% ls -lsd core 80 -rw-r--r-- 1 cgay 8421808 Apr 10 01:05 core Lessee now... 80 * 1024 = 8421808? Right! --- "The UNIX philosophy is to prevent you from shooting yourself in the foot, but only if the gun is unloaded." - Amanda Walker --- "C++ is to C, as lung cancer is to lung." - J Q Sig --- "The AT&T operation, Unix System Laboratories, designs and promotes Unix software, a so-called operating system..." - From the December 22 Boston Globe --- "WEENIX UNIE PUTS FOOT THROUGH OWN SPARCSTATION, CITING NOTED ETHNOUNIXOLOGIST!!" - Headline generator hack --- "To write software under Unix is one part writing software and nine parts battling Unix." -Dan Weinreb --- "line 25: error: static class member declared static" -Unidentified C++ compiler --- "Programming in C is like smoking cigarettes out behind the schoolhouse as a kid - you have to keep looking over your shoulder to see if you're going to get busted..." -Rob Seastrom --- Q: How do you set the time zone on a SPARCstation? A: Mail it to California. --- "Unix - the 'special olympics' of business software" --- "I guess that an ethnounixologist studies the day-to-day lived practices of unix weenies and their devices to determine the local methods by which they construct the mutually comprehensible fiction of an operating system." -Michael Travers --- "Unix teaches us about the tranistory nature of all things, thus ridding us of samsaric attachments and hastening enlightenment. For instance, while trying to make sense of an X initialization script someone had given me, I came across a line that looked like an ordinary unix shell command with the term "exec" prefaced to it. Curious as to what exec might do, I typed "exec ls" to a shell window. It listed a directory, then proceeded to kill the shell and every other window I had, leaving the screen almost totally black with a tiny white inactive cursor hanging at the bottom to remind me that nothing is absolute and all things partake of their opposite. "In the past I might have gotten upset or angry at such an occurance. That was before I found enlightenment through Unix. Now, I no longer have attachments to my processes. Both processes and the disapperance of processes are illusory. The world is unix, unix is the world, labor ceaslessly for the salvation of all sentient beings." -Michael Travers --- "I agree, in general. One of the strongest contrasts I notice between X windows programs and Macintosh programs is all the command line options, Xresources, Xdefaults etc. It seems that X programmers are totally unable to make any kind of user interface decision, and instead abandon their design obligations, leaving the question unanswered and passing it on to the end user to solve. This is done in the name of 'choice' or 'freedom', meaning that if you sit down in front of someone else's X terminal to simply check your mail, you have little chance of being able to use the terminal or any of the applications effectively. I don't want my programs to come like self-assembly furniture." -Stuart Cheshire --- Jinx! cpio -it Use "exit" to leave csh. Use "exit" to leave csh. Use "exit" to leave csh. (and so on, some round-number-in-base-two-because-of-rampant-weenieism times) Process shell finished. You know what that is, right? It means that I've disabled the TOTALLY LOSING feature that typing ^D at a shell makes it blow you out of the water. But apparently the shell can't be bothered to make a distinction between the character ^D and a real honest-to-god EOF on its input stream. So it decides that if it gets N ^D's in a row, really what's happening is that its input stream is closed, and it should blow you out of the water anyway. And, of course, those TOTALLY LOSING monstrosities known as ptys often get hosed in just such a way. So one of my ptys is hosed. The one it keeps trying to allocate next, over and over. The one that gets added back to the list of available ptys after a brief but violent tryst with my shell, or my inferior ftp process, or whatever. Well, the only real fix I knew of for this was to reboot, but I had a lot of state that I didn't want to lose just because everyone's favorite excuse [for an] operating system had developed a hacking cough. So to figure out which pty was hosed, I added the line "tty" to the front of my .cshrc, and started a shell again. Then, after glancing at the /dev/ directory, I guessed that chmodding all permissions away from that pty would make it look allocated. So I held my nose and tried it, and what do you know, it worked. After all, everything is a file. If you can't express a concept in the file system idiom, it must not be worth thinking about. So blah blah blah, life goes on, and later I decided to visit a file which happens to be both compressed, and a tar file. It uncompressed fine, but then tar-mode couldn't parse it. I stared at the raw tar file for a while, and it really did look like a mess: pieces of the files were misordered, there were random stretches of nulls in the middle of the text. So I was going to tell the person who had sent me the file that they had botched it before compressing it, but even though I've occasionally seen NFS do this, it did seem kind of unlikely, so I tried using the real uncompress and tar programs just to make sure. Well guess what. It worked fine. It seems the output of that "tty" line in my .cshrc file was being prepended to the tar data, because the only real way to run a program is to start a shell and have it run it for you, and because the tar format has no magic number or any other way of telling a valid tar file from a recipe for chocolate chip cookies, it was only giving up the ghost when it reached the very end. So why was it that the raw tar data looked like such a mess, instead of simply looking like it was shifted by the length of the string "not a tty"? Because part of the de-facto specification for what tar files look like is that they are padded to a multiple of twenty "blocks", meaning 10240 bytes. Isn't that special. And what are they padded with? That's right. Random data that, in this case, looked deceptively like what the non-random parts of the file looked like. Happy happy, joy joy. Even if you never leave emacs, you just can't win. -- Jamie [Zawinski] Login name: cgay In real life: Carl L. Gay Directory: /home/users/cgay Shell: /bin/tcsh On since Mar 13 12:03:20 on pts/67 from teebone.uoregon.edu 16 seconds Idle Time