melbourne
victoria
australia

### alt.folklore.computers List of Frequently Asked Questions

This is the HTML version of the alt.folklore.computers list of Frequently Asked Questions (FAQ). It is maintained by Wilson Afonso (wilson@netwhatever.com). All contributions and corrections are welcome, but I'm ultimately responsible for what appears here. Contributors are acknowledged, if possible.

I - Introduction II - Generic questions III - General folklore IV - Frequent threads V - Origins VI - Firsts VII - Jokes VIII- Net Resources IX - Acknowledgements
X - Things I am looking for
XI - A Chronology of Digital Computing Machines (to 1952)
XII - List of computer-folklore related books

### I.1 - What is folklore ?

According to Webster's:

Folklore: 1. Traditional customs, tales, or sayings
preserved orally among a people. 2. A comparative
science that investigates the life and spirit  of
a people as revealed in their folklore [recursive
definition?] 3. A widely held unsupported specious
notion or body of notions

In this newsgroup, all of the definitions above seem to be supported. One can say that discussions in this group approach discussion about history of computing, but that is not quite right. Ultimately, the difference between history and folklore is that history deals with great and important facts and folklore deals with minor, day-to-day facts. We obviously discuss facts that fit in "History", too, but that is a side-effect of the overall discussion.

### II.1 - What is the origin of the term XXX ? What does XXX mean ?

Answer to questions like this can be found in a big (I mean it!) file called The Jargon File. This file contains, among other things, the meaning of thousands of words used by computers people. If you ever heard of a computer-related word, it is probably in this file. Be aware, however, that this file is not a lexicon of technical terms. It mostly contains words that you _don't_ find in computer dictionaries. You can get it by anonymous ftp, in prep.ai.mit.edu, in directory pub/gnu, as the file named jargon320.txt.gz. It uncompresses to a file with more than 1 megabyte. It is also a published book, _The New Hacker's Dictionary_ (see below, question II.3). And, finally, you can access version 3.2.0 of The Jargon File through the World Wide Web. Try it.

In this file, you can find answers to questions as "Does UNIX mean anything ?" or "What does PDP mean ?", and "Why the h**l are hard disks called winchesters ?", and a LOT more. The Jargon File is also a repository for other history, poems, and anecdotes. A little grepping will probably find what you're looking for, and it will probably also be faster and more accurate than posting to a.f.c.

### II.2 - Is {famous person} on the net?

The newspaper San Jose Mercury News reported that a book containing the address of lots of "known" people that use the network would be released in May 1994. It seems to be "E-mail addresses of the rich and famous". I don't have any specific references (ISBN, publisher, author etc.).

There is also, of course, the Net.Legends.FAQ, which gives "information on some of the more noticeable or notable people, places, and/or things ocurring on Usenet". This file is posted every 73 days to alt.folklore.computers, alt.usenet.kooks, alt.answers and news.answers.

The NetPages (trademark of ALDEA Communications Inc.) is a free printed listing of people and their e-mail addresses. It also gives some brief information on acessing the net, and has some advertisements. To get information on sites carrying online copies, send a message to np-pickup@aldea.com; for information about it, send to np-faq@aldea.com. This book is published in March and October.

### II.3 - What are some good books on computer folklore?

Look at part XII of this FAQ. It contains a large list of such books.

### II.4 - Where can I find {interesting file} ?

Try archie. But, sometimes it is really difficult to know the name of the file, even if you know the title of the article. I include a small list below:

• 'Why Pascal is Not My Favorite Programming Language', by Brian Kernighan : describes reasons why Kernighan thinks that Pascal is not a serious language. This file was once posted to a.f.c. as ASCII, and it is also available as a PostScript file
• 'Real Programmers don't use Pascal', by Ed Post (TeX file): based on "Real Men don't eat quiche"; it is a funny view of Real Programmers (capital letters required).
• 'The Tao of Programming': it is copyrighted material, so it cannot be distributed via FTP. Anyway, it was posted to a.f.c in Feb. 1993. Your local fortune file probably has lots of excerpts from it.
• 'The Complete YKYBHTLW List': this file collects the "You Know You've Been Hacking Too Long When..." posts to a.f.c
• humorous file: sunsite.unc.edu has a large collection of such files, under the directory /pub/docs/humor

### II.4.1. How does one try archie ?

Archie is a way to find files in the net. Usually, all you need to do is type "archie" at the OS prompt, and you'll have a good explanation. If not, type "telnet archie.sura.net" and log in as archie. There is a good on-line help.

### III.1 - I heard that one of the NASA space probes went off course and had to be destroyed because of a typo in a FORTRAN DO loop. Is there any truth to this rumor?

This answer by Mark Brader . Quoted items in it have been reformatted but not abridged.

As revealed by past discussion in comp.risks (Risks Digest) as well as alt.folklore.computers and occasionally other newsgroups, this turns out to be a confusion of two separate events.

The space probe that the DO-loop story has been wrongly attached to is Mariner I (or 1), which was intended for Venus (not Mars). Several incorrect or partially correct versions of what really happened were posted in comp.risks; the best of these cited a NASA publication called "Far Travelers" by Oran W. Nicks, but still did not have the whole story.

Then in issue 8.75 we found out what really happened...

|  Date: Sat, 27 May 1989 15:34:33 PDT
|  From: Peter Neumann
|  Subject: Mariner I -- no holds BARred
|
|  Paul Ceruzzi has written a truly outstanding book for the new show
|  that opened two weeks ago at the Smithsonian National Air and Space
|  Museum.  The exhibit and the book are both entitled "Beyond the Limits
|  -- Flight Enters the Computer Age".  Both are superb.  Go for it (them).
|
|  Paul has dug into several cases treated previously in RISKS and in
|  issues of the ACM Software Engineering Notes, and has been able to
|  resolve several mysteries.  In particular he considers the case of
|  Mariner I, about which various inaccurate stories have been told.
|  Intended to be the first US spacecraft to visit another planet, it was
|  destroyed by a range officer on 22 July 1962 when it behaved
|  erratically four minutes after launch.  The alleged missing hyphen'
|  was really a missing bar'.  I quote from Paul's book, pp. 202-203:
|
| #  During the launch the Atlas booster rocket was guided with the help
| #  of two radar systems.  One, the Rate System, measured the velocity of
| #  the rocket as it ascended through the atmosphere.  The other, the
| #  Track System, measured its distance and angle from a tracking
| #  antenna near the launch site.  At the Cape a guidance computer
| #  processed these signals and sent control signals back to the
| #  tracking system, which in turn sent signals to the rocket.  Its
| #  primary function was to ensure a proper separation from the Atlas
| #  booster and ignition of the Agena upper stage, which was to carry
| #  the Mariner Spacecraft to Venus.
| #
| #  Timing for the two radar systems was separated by a difference of
| #  forty-three milliseconds.  To compensate, the computer was instructed
| #  to add forty-three milliseconds to the data from the Rate System
| #  during the launch.  This action, which set both systems to the same
| #  sampling time base, required smoothed, or averaged, track data,
| #  obtained by an earlier computation, not the raw velocity data
| #  relayed directly from the track radar.  The symbol for this smoothed
| #  data was ... R dot bar n' [R overstruck .' and _' and subscript n],
| #  where R stands for the radius, the dot for the first derivative
| #  (i.e., the velocity), the bar for smoothed data, and n for the
| #  increment.
| #
| #  The bar was left out of the hand-written guidance equations.  [A
| #  footnote cites interviews with John Norton and General Jack Albert.]
| #  Then during launch the on-board Rate System hardware failed.  That in
| #  itself should not have jeopardized the mission, as the Track System
| #  radar was working and could have handled the ascent.  But because of
| #  the missing bar in the guidance equations, the computer was
| #  processing the track data incorrectly.  [Paul's EndNote amplifies:
| #  The Mariner I failure was thus a {\it combination} of a hardware
| #  failure and the software bug.  The same flawed program had been used
| #  in several earlier Ranger launches with no ill effects.]  The result
| #  was erroneous information that velocity was fluctuating in an
| #  erratic and unpredictable manner, for which the computer tried to
| #  compensate by sending correction signals back to the rocket.  In fact
| #  the rocket was ascending smoothly and needed no such correction.  The
| #  result was {\it genuine} instead of phantom erratic behavior, which
| #  led the range safety officer to destroy the missile, and with it the
| #  Mariner spacecraft.  Mariner I, its systems functioning normally,
| #  plunged into the Atlantic.

The DO-loop incident did happen at NASA, and at about the same time. As told by Fred Webb in alt.folklore.computers in 1990:

|  I worked at Nasa during the summer of 1963.  The group I was working
|  in was doing preliminary work on the Mission Control Center computer
|  systems and programs.  My office mate had the job of testing out an
|  orbit computation program which had been used during the Mercury
|  flights.  Running some test data with known answers through it, he was
|  getting answers that were close, but not accurate enough.  So, he
|  started looking for numerical problems in the algorithm, checking to
|  make sure his tests data was really correct, etc.
|
|  After a couple of weeks with no results, he came across a DO
|  statement, in the form:
|       DO 10 I=1.10
|  This statement was interpreted by the compiler (correctly) as:
|       DO10I = 1.10
|  The programmer had clearly intended:
|       DO 10 I = 1, 10
|
|  After changing the .' to a ,' the program results were correct to
|  "good enough" for the sub-orbital Mercury flights, so no one suspected
|  a bug until they tried to get greater accuracy, in anticipation of
|  later orbital and moon flights.  As far as I know, this particular bug
|  was never blamed for any actual failure of a space flight, but the
|  other details here seem close enough that I'm sure this incident is the
|  source of the DO story.

Project Mercury's sub-orbital flights were in 1961, and its orbital flights began in 1962. I forwarded the above to comp.risks, slightly abridged, and it appeared there in issue 9.54.

The erroneous claim that the DO-loop bug was the bug that killed Mariner I apparently originated with, and certainly was propagated by, the book "Software Reliability: Principles and Practices" by G(lenford) J. Myers (John Wiley & Sons, 1976). I haven't read it myself; I've seen the page numbers 7 and 275 attributed to the assertion. I expect both are right. This book also describes the bug as a "billion-dollar error", which is too large by a factor of about 50.

In some earlier postings it was suggested that Myers be located and asked about his sources (the book gives none), but nobody successfully did this; his employer at the time of publication didn't have his current address. My guess is that he simply made an error or more likely accepted someone else's wrong recollection, and didn't feel it necessary to go to original sources to verify what was only an illustrative point anyway.

### III.2 - I heard that Gary Kildall missed the chance to make CP/M the IBM PC operating system because he decided to go flying on the day the IBM reps had an appointment. Is this true?

This answer comes from the book "Hard Drive"; it says there are two versions of this story.

One is from Jack Sams, the guy from IBM who went to DR to meet Kildall. He says that Kildall was out, flying on his plane, and Kildall's wife and a DR's lawyer met with him (Sams). They did not want to sign a non-disclosure agreement with IBM, so IBM went away without even talking with Kildall. (That agreement said that DR could not tell IBM confidential information, but if DR did so, IBM could not be sued for using it; and DR would be sued if it used any confidential information that IBM gave them.) That night, they went to Seattle and made the deal with Microsoft.

But Kildall tells a different history: he says he really was out on his plane, but he was on a business trip at San Francisco, and he was back to DR in time to meet with the IBM guys. He signed the agreement, had the meeting, and apparently thought that they and a deal. That night, he and his wife went to Miami with the IBM guys (in the same plane; the IBM guys were coming back to Boca Raton, and the Kildalls were going to Caribe), and Kildall was told to contact them when he returned. When he eventually returned to the US, he was unable to find Sams, and later heard they had a deal with Microsoft (this is strange, since IBM kept that project as a secret, and nobody knew about Microsoft being on it).

Kildall says that the plane story was first told by Gates, in an interview to the London Times. This is Microsoft's version, he says, but History always tells the winners' version, not the losers'.

### III.3 - Is there really a Coke machine attached to the Internet?

Actually, more than one. You can find a list of Coke machines (and other devices) attached to the Internet on bsy's List of Coke Machines on the Net.

You should be aware also that RFC1288 (The Finger User Information Protocol) explicitly supports the use of vending machines:

#2.5.5.  Vending machines
#
#   Vending machines SHOULD respond to a {C} request with a list of all
#   items currently available for purchase and possible consumption.
#   Vending machines SHOULD respond to a {U}{C} request with a detailed
#   count or list of the particular product or product slot.  Vending
#   machines should NEVER NEVER EVER eat money.
#

### III.4 - I heard there was a POKE command on the {your computer here} that would physically damage the hardware. Is this true?

For those not used to it, a POKE command puts some value in some position in memory. Thus, POKE 16510,0 changes the number of the first line of a BASIC program in a Sinclair ZX81 to 0 by overwriting the real number in that position.

About physical damage: apparently, you could make the monitor of a PET computer catch fire with a POKE. The poke controlled the size of the screen for the electron beam (which was under computer control). The idea was that you could change the screen size if you wanted to get around variations on the screen. Anyway, setting to zero meant the computer would try to paint the entire screen in the center of the screen, thus burning out the phosphor on the monitor.

Also, in some IBM PC hardware you could burn the flyback transformer inside the monitor with an OUT, reprogramming the MGA video card.

### III.5 - What should I do to an old CD ?

Microwave it. Put in in the microwave oven, above a cup turned upside down (the cup, not the disk), set the power to HIGH, the timer to 5 seconds, turn off all the lights, and make sure you watch. You will never use this CD again. The microwave oven is left apparently intact.

### III.6 - Is it true that there is a cat printed on the motherboard of Sun SPARCStations IPX ? Why ?

Yes, it is true; you can see a picture here. I'm told that is the pet cat of the layout designer, and that the reason why it ended up in the production boards is because that board was supposed to be a pre-release version; the designer would take it out for the final version. It turns out the version with the cat was the one that shipped.

### III.7 - Why did IBM choose the 8088 rather than the 68000 as the processor for their first PC?

The IBM PC was supposed to be a low-end model machine that would compete with CP/M machines and the Apple II, but not with IBM's planned larger "PC's" (which never left the ground). For that reason, it needed a 16-bit CPU, but not too much memory.

With its 8-bit data bus, the 8088 would lead to cheaper hardware than a 68000-based machine. The limited address space (1MB, further reduced by IBM's designers to 640 KB) wasn't perceived as a problem since nobody could imagine anyone needing so much RAM in a PC anyway.

Also, the 8088 has the advantage of allowing easy porting of 8080/Z80 code. This meant that lots of software could be produced very quickly by porting existing CP/M programs (such as Microsoft Basic and the WordStar word processor).

### III.8 - Is the 8088 processor really code compatible with the 8080?

No, not on the binary level; the opcodes are different. However, the instruction sets are so similar that assembly language programs can be machine translated from 8080 assembler to 8088 assembler.

### III.9 - What does VAX mean? Why did early VAXen have model numbers starting with "11",like 11/780, 11/750, and so on?

Rumour has it that the 11/780 was originally intended as the PDP 11/78 with "Virtual Address eXtension" (i.e. virtual memory), but Digital choose to present their new 32-bit line of computers under the name "VAX" rather than "PDP".

The 11/xxx series of VAX machines all had a special "compatibility mode" in which they can run PDP-11 code.

### III.10- Why is 'i' typically chosen as a loop counter, in constructs such as for(i=0; i<10; i++); ?

There are several possible answers to this, and most of them seem to support the idea of 'computer centrism' from the guys who work with computers (I mean 'all of us'). For example,

• FORTRAN (on which many people learned to program) used the initial letter of variables to determine their data type. A variable would be assumed integer if the initial letter was in the range I-N (some have commented that these are the first two letters of INteger). So if you wanted a quick int variable as a loop counter, you would start with i, proceed to j, and so on.
• This is all very well, say the math oriented, but we're using 'i' in equations as a sample variable like this :
___
\
/__  X
i=0   i

and FORTRAN obviously stole the idea from us.

As to which one is actually true? Well, no one is quite sure. Programmers probably picked up the practice from FORTRAN, which in turn probably took it from the mathematicians. All I know is that every programming book around uses 'i' as the first loop counter.

Of course, there are many programmers who use 'F' or 'N' as loop variables, as a consequence of using Sinclair computers in their first days of programming. These computers had the BASIC keywords assigned to keys, and you could get FOR by typing F, and NEXT with N. So, it was easy to type 'FOR F=...' and 'NEXT N'. By the way, the word 'TO' was also on the F key; '=' was on the L, with LET.

### III.11- Is there any truth to the rumor that the people at Cray design their supercomputers with Apple computers, and that Apple designers use Cray's?

The comment was made when Apple bought its Cray to design the next Macs. Dr. Cray wrote them a note saying that he found that quite ironic, since he was designing the next Cray on a Mac... Keep in mind that each one uses the other's machines to do quite different things, probably. Apple uses a Cray to do heavy calculations, and Cray probably uses Macs in CAD, or something like this.

### III.12- Did Bill Gates write MS-DOS ?

No, no and no. Microsoft bought MS-DOS from a Seattle company, and it was called QDOS then (Quick and Dirty Operating System). Some say it is not quick anymore, but the rest stays the same. True, Microsoft made some modifications to it, and probably Bill Gates helped in it, but he did not write the OS in the true sense of these words. By that time, MS was in dire need of an OS to use with IBM PC, because IBM could make business with Digital Research (see above, III.2), and QDOS was their salvation.

### III.13 - Is '2' the lowest possible numeric base ?

No. There's a lot more in the matter of bases than most people can dream. Although one usually only encounters number systems with positive integer bases (binary, decimal, hexadecimal, octal), it is also possible to use non-integral, negative, irrational, or even complex bases. For a comprehensive discussion, see Knuth's 'Art of Computer Programming'.

Although it is not a positional system, one sometimes talks about a system with base one (the unary system) where the integer N is represented as a string of N ones. This number system is especially popular among theoretical computer scientists when discussing Turing machines.

The discussion about bases seems to surface in a.f.c about once every semester, and it seems to hold endless fascination for CS students.

### III.14 - What about that story about viruses in printers during Gulf War?

The latest information I have is that all of this is an April-Fool joke, which was published by a US magazine. Several months after that, some news service found the article and fell for it. It was repeated all over the world several times since then, by a number of reputable news services.

### III.14.1 - Would it be possible, anyway ?

This is a folklore newsgroup, not a technical one. But there are some chances for it to be possible (fumbling with a PostScript printer is one).

### III.15 - Why does MS-DOS use '\' as the path separator, while Unix uses '/'?

Version 1 of MS-DOS didn't have subdirectories or paths, and wasn't much like Unix at all. The '/' character was used to denote command options (like '-' in Unix); this was rather common in CP/M, and is the standard in many DEC operating systems. In version 2.0 of MS-DOS, many new Unix-like features were added, including subdirectories. Since '/' was used for command options by many programs, that character couldn't be used in paths. Apparently Microsoft thought '\' was the second best alternative. It's interesting to say that is the shell who requires '\' as the path separator; the real DOS is quite happy with '/', and when you program in C (for exemple), you can write a path as "c:\\foo\\bar\\..." or "c:/foo/bar/...", and both work. Also, there was an undocumented feature of DOS which allowed the user to change the switch char, and freed '/' to be used as a path separator in the command line. This no longer exists in DOS 5.0, and probably is absent in DOS 6.0, as well (I couldn't test this).

### III.16 - Where can one find Jolt Cola in {your location here} ?

• Cambridge, UK: Peppercorns, Rose Crescent; 95 pence per bottle; also at SamSmiley, Trumpington Street
• Australia: Jolt is now illegal in Australia, due to its high content of caffeine; last I know, you could still find it at a Japanese eatery near the Daimaru complex, in Melbourne
• Montreal, Canada: Chemistry department's student cafe at Universite de Montreal, 2900 Edouard-Montpetit, Montreal, Qc, room G-715
• Edmonton, Canada: many stores on the University of Alberta campus, in 355 ml cans ($1.00+) or half-litre bottles (~$1.60)
• Northampton, MA: Green St. Express; $1.29 per 1-litre bottle • Nova Scotia, Canada: Jim's One Stop, Antigonish, NS; Can$ 0.75 per can
• Tuscaloosa, Alabama: The Corner (gift shop and convenience store), 801 Paul W. Bryant Dr., Tuscaloosa, AL [(205) 345-0107]
• Uppsala, Sweden: 7-11; 9.50 swedish crowns (more than one dollar, less than two)

### III.16.1 - Is it ok to discuss about soft drinks in a computer folklore newsgroup ?

Yes, it is. Soft drinks, specially colas (and specially Jolt Cola(TM)) have a lot to do with computer folklore, and there is a claim that, if you don't know why, you shouldn't be discussing computer folklore to begin with.

### III.17 - Why do bytes have 8 bits ?

They weren't always like this. Older computers used to have "strange" (by today's standards) word/byte sizes, usually multiples of 6. The 8-bit byte didn't appear until the advent of IBM's System/360. From the early 1970's on, most computers used 8-bit bytes and multiple-of-8-bit words, and the non-standard became a de-facto standard.

Now, why did the System/360 have 8-bit bytes ? Probably, because of the use of BCD data (or "packed decimal"); you need 4 bits to represent one digit (0-9), so one 8-bit byte can represent two digits. The System/360 had instructions that allowed one easily to handle BCD data, and that made much easier the lifes of people writing accounting systems. It would be hard to use 6-bit bytes to represent BCD, so 8 bits was the obvious solution.

### III.18 - What is the origin of the comment "You are not expected to understand this" ?

This is a classic comment that comes from source code for v6 Unix. Rumour is that the section of code containing this comment was confusing enough to lead to the creation of setjmp/longjmp in C. But I'll let the author explain. This answer by Dennis Ritchie:

Here is the relevant code surrounding the infamous comment. It's around line 325 of /usr/sys/ken/slp.c in v6 Unix.

The comment beginning "If the process paused..." is correct. However, the specification and behavior of savu and retu/aretu in v6 were not well designed, and turned out to be unimplementable with slightly different arrangements of the stack frame from that used on the PDP-11. Savu() saved the stack context of its caller in a place. Retu() and aretu() restored this stack context. (The difference between the routines had to do with whether one was or was not actually changing to another process's stack). Thus--to restate the comment below--once either retu() or aretu() has been executed, the code is actually borrowing the stack frame of the function that called savu(); and the return from the routine that executes retu/aretu is actually a return to the caller of savu().

Besides being confusing, this can't always be made to work. The problem is that the actual machine code executed as the return sequence (say from swtch() in the quoted sample) might not be appropriate--it might restore the wrong registers, for example.

The comment reflects a certain struggle to explain, and wasn't intended to be flip. It was more like, this won't be on the exam.' Later, when Steve Johnson and I moved things to another machine and another compiler, we changed the primitives, to a mechanism (save/resume) more like standard C's setjmp/longjmp.

Code follows:

swtch()
{
...[find a process to run next]
/*
* Switch to stack of the new process and set up
* his segmentation registers.
*/
sureg();
/*
* If the new process paused because it was
* swapped out, set the stack level to the last call
* to savu(u_ssav).  This means that the return
* which is executed immediatly after the call to aretu
* actually returns from the last routine which did
* the savu.
*
* You are not expected to understand this.
*/
if(rp->p_flag&SSWAP) {
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
/*
* The value returned here has many subtle implications.
*/
return(1);
}

/*
* Create a new process-- the internal version of
* sys fork.
* It returns 1 in the new process.
* How this happens is rather hard to understand.
* The essential fact is that the new process is created
* in such a way that appears to have started executing
* in the same call to newproc as the parent;
* but in fact the code that runs is that of swtch.
* The subtle implication of the returned value of swtch
* (see above) is that this is the value that newproc's
* caller in the new process sees.
*/
newproc()
{
...

### III.19 - Is 2000 a leap year ?

Yes, it is. Leap years are the years divisible by four, except if the year is divisible by 100 and not by 400. 2000 is divisible by 400, so it is a leap year. 1900 wasn't, and 2100 won't be, but 2000 will.

### III.20 - Where can you buy a slide ruler ?

There's a fair chance that you might find them in flea markets; of course, you have to rely on your luck. Also, it seems that sometimes they can be found at The Computer Museum (300 Congress St., Boston MA 02210) and the MIT Museum or the MIT Gift Shop at the Stratton Student Center (these are both in Cambridge, MA).

### IV.1 - Should my computer be always left on ?

Usually, the answer is "yes" only for "big" machines, or Unix desktop machines; desktop PCs running DOS/Windows should be turned off if you will be away from it for more than, say, one hour. Anyway, if you'll be away for more than some minutes, you shoud turn at least the monitor off (despite screen savers).

### IV.2 - How does on pronounce "kluge"/"kludge" ?

"Kluge" (which you can write both "kluge" and "kludge", according to your background) should be pronounced "klooj". See the Jargon File for more details.

### IV.3 - What is "The Longest Thread Ever" ?

It started long ago (well, not that long, actually), apparently with a naïaut;ve guy asking "what was the longest thread ever ?", what immediatly inspired someone else to try to create the longest thread ever, leading to that public display of sillyness that was/is "The Longest Thread Ever (TM)". It spawned a huge quantity of newsgroups and several hundred posts.

Jeff Robertson (jroberts@sss.cba.ua.edu) admited being a "somewhat naïaut;ve guy" who made such a question sometime in the spring or summer of 1994, but the thread started by this act seems to be a separate thread from the more recent one (which started, it seems, in the winter of 1994/95).

Is it really the longest thread ever ? It's hard to say. Certainly not in lenght of time, maybe in number of articles. Also, the only common thing across all of the articles in this thread is the subject line (the subject being discussed is non-existent), so it shouldn't even qualify as a "real" thread. There's also the need to know which of the (at least) two "longest thread ever"s is the longest... And I can imagine that the latest one is definitely not the last...

### V.1 - What are the origins of Usenet ?

Read the FAQs :-). Actually, it is posted to news.answers, with the subject "USENET software: History and Sources".

### V.2 - ... C ?

Quoted from _The_Secret_Guide_To_Computers (a GREAT book, by the way), (c) 1991 by Russ Walter (15th edition):

In 1963 at England's Cambridge University and the University of London, researchers developed a practical'' version of ALGOL and called it the Combined Programming Language (CPL). In 1967 at Cambridge University, Martin Richards invented a simpler, stripped-down version of CPL and called it Basic CPL (BCPL). In 1970 at Bell Labs, Ken Thompson developed a version that was even more stripped-down and simpler; since it included just the most critical part of BCPL, he called it B.

Ken had stripped down the language _too_ much. It no longer contained enough commands to do practical programming. In 1972, his colleague Dennis Ritchie added a few commands to B, to form a more extensive language. Since that language came after B, it was called C.

So C is a souped-up version of B, which is a stripped-down version of BCPL, which is a stripped-down version of CPL, which is a practical'' version of ALGOL.

### V.3 - ... Unix ?

There are several versions of this story. Some say that it was designed as a system "by programmers and for programmers", others say that it was mainly a word-processing system, and others say that Thompson's primary goal was playing Space War.

This is a quote from Ritchie and Thompson themselves, in "The Unix Time-Sharing system", published in "The Unix Time-Sharing System", thematic issue of Bell System Tech. J. vol 57, no 6 part 2 (1978):

"There have been four versions of the UNIX time-sharing system. The earliest (ca 1969-70) ran on the Digital Equipment Corporation PDP-7 and -9 computers. The second version ran on the unprotected PDP-11/20 computer. The third incorporated multiprogramming and ran on the PDP-11/34, /40, /45, /60 and /70 computers

[...]

Since PDP-11 UNIX became operational in February, 1971, over 600 installations have been put into service. Most of them are engaged in applications such as computer science education, the preparation and formatting of documents and other textual material, the collection and processing of trouble data from various switching machines within the Bell System, and recording and checking telephone service orders. Our own installation is used mainly for research in operating systems, languages, computer networks, and other topics in computer science, and also for document preparation.

[...]

The first version was written when one of us (Thompson), dissatisfied with the available computer facilities, discovered a little-used PDP-7 and set out to create a more hospitable environment. This (essentially personal) effort was sufficiently successful to gain the interests of the other author and several colleagues, and later to justify the acquisition of the PDP-11/20, specifically to support a text editing and formatting system.

[...]

...because we are programmers, we naturally designed the sustem to make it easy to write, test and run programs."

While it doesn't mention Space War (which I suppose isn't serious enough for a research journal), this makes very clear that *both* stories are correct: Unix was initially developed by programmers, for programmers, but word processing became an important application very early. By the way, in "AT&T Bell Labs. Tech. Journal", Oct. 1984, they say that when they found the first PDP to put Unix in it, they were trying to find a machine to run a game named Space Travel (not War).

Thompson and Ritchie seemed pretty proud about the 600 installed systems in 1978; I wonder what they'd have said if somebody had told them back then that there'd be millions of Unix systems within 15 years...

### V.4 - ... structured programming ?

The 1st reference to it seems to be the following article: E. W. Dijkstra, Structured programming,'' in Software engineering techniques, J. N. Buxton and B. Randell [Eds.], NATO Scientific Affairs Division (Brussels, 1970), 84-88.

### VI.1 - When/what/where/who/... was the first {something} ?

• Computer: look at the third file of this FAQ. It contains a little history of computers.
• Computer programmer: Lady Ada Lovelace was one of Lord Byron's daughters, and a friend of Charles Babbage. She wrote numerous programs for the Analytical Engine, and so qualifies as the world's first computer programmer.
• Stored program to run: The Manchester Mark-I-Prototype ran the first stored program in the world (a program to find greatest common factors) on 21st June 1948.
• E-mail message: probably internal messages were around for as long as there was systems providing it. It can be probably by 1963 or 1964.
• Computer game: people have been programming games for as long as there have been computers. There was research in getting computers to play Tic-Tac-Toe, chess and checkers going on already in the early 1950's. Also, the following quotation sheds some light in the issue:

"...The Mark I's random number generator ... supplied some fun and games. F.C. Williams ... wrote a little gambling program that counted the number of times a given digit, from 0 to 9, was produced by a run of the generator. But Williams adjusted the generator to lean toward his favorite number, and he enjoyed betting against unsuspecting visitors. The beginnings of computer crime!"

-Bit by Bit, Stan Augarten p. 212, ISBN 0-89919-302-1

• "Adventure" game: ADVENT, also known as Colossal Cave, by Crowther and Woods (see the rec.{games,art}.int-fiction FAQ's for more info). There was an earlier precursor, though: "Hunt the Wumpus", which is not an adventure game as we know it, but it is the first game with a stored map. See the Jargon File under "Wumpus".
• Graphics computer game: SpaceWar, originally played on oscilloscopes
• Use of microprogramming: Maurice Wilkes on the EDSAC.
• Use of virtual memory: Atlas at Manchester University.
• High level language : Fortran, designed at IBM in 1954.

### VII - Jokes

There are a lot of parodies and generally "computer-related" jokes around. It's really easy to find them in posts, and in FTP sites. Particularly, you can find a great numbers of them in sunsite.unc.edu, directory /pub/docs/humor.

### VIII.1 - Who do I call if I have a problem with {something} ?

I was told that the FAQ files of alt.uu.announce and alt.uu.comp.misc have a list of "volunteers". Try them. Anyway, to questions relating a.f.c ONLY, you can try peter@NeoSoft.com (Peter da Silva), he seems to know almost everything.

### IX - Acknowledgements

Contributions were received from (if your name is here, and you want it out, just tell me; or, if it's not but it should, also, just tell me):

111b-an@cs.smith.edu (Kathryn Wood)
Alexandre Pechtchanski <desnick@msvax.mssm.edu>
Anders.Falk@eua.ericsson.se (Anders Falk)
Arnt Gulbrandsen <agulbra@pvv.unit.no>
Bernie Jones <Bernie.Jones@cl.cam.ac.uk>
CPB1001@phx.cam.ac.uk
Cleeves, Gareth Robert - CLEGR001 <CLEGR001@students.unisa.edu.au>
Dave (whitten@fwva.saic.com)
Dik.Winter@cwi.nl
Eric Grosse <ehg@research.att.com>
Geoff@equinox.gen.nz (Geoff Mccaughan)
Gerald Oskoboiny <gerald@cs.ualberta.ca>
LEXIKON2@aol.com
MJ STODDARD <STODDARD@ARIZVMS.BITNET>
Magnus Olsson <magnus@thep.lu.se>
Malcolm Shute <mshute@computer-science.manchester.ac.uk>
Mark Harrison <snow@dcs.warwick.ac.uk>
Murray_Moffatt@kcbbs.gen.nz (Murray Moffatt)
Nik Clayton <cs92njc@brunel.ac.uk>
"Perry Rovers"  <PROVERS@kub.nl>
Peter Neumann <neumann@csl.sri.com>
Silicon Valley Techie <silvaltech@yahoo.com>
S.R. Atkins <90sra@eng.cam.ac.uk>
Stig Venaas (venaas@nvg.unit.no)
"T.G.A." Rushton <T.G.A.Rushton@durham.ac.uk>
Thayne Forbes <thayne@unislc.slc.unisys.com>
alien@acheron.amigans.gen.nz (Ross Smith)
bryan o'connor <bryan@fegmania.wustl.edu>
d.gellert@trl.oz.au (Dennis Gellert)
dcd@houston.geoquest.slb.com (dan day)
del+@CMU.EDU (Daniel Edward Lovinger)
dmr@research.att.com (Dennis Ritchie <7549-15328> 0112710)
duprec@jsp.umontreal.ca (Dupre Christophe)
eeyimkn@unicorn.nott.ac.uk (M. Knell)
faught@zeppelin.convex.com (Danny R. Faught)
forbes@cbnewsf.cb.att.com (Scott Forbes)
gmw1@cunixa.cc.columbia.edu (Gabe M Wiener)
guru@deltanet.com
hcleong@iti.gov.sg (Leong Heng Cheong)
ig25@fg70.rz.uni-karlsruhe.de (Thomas Koenig)
jelson@circle.cs.jhu.edu (Jeremy Elson)
jolomo@netcom.com (Joe Morris)
klaus@diku.dk
koen@stack.urc.tue.nl (Koen Holtman)
mshield@ukelele.GCR.COM (Michael Shields)
nelson@eagle.natinst.com (Nelson Bishop)
payson@cs.wisc.edu ( Payson)
richgr@netcom.com (Rich Greenberg)
rogersd@epaus.island.net (Daniel Rogers)
silveira@nutec.com (Fernando da Silveira Montenegro)
simutis@ingres.com (John Simutis)
steven@sj.unisys.com (Steven Widom)
stuckey@mrcnext.cso.uiuc.edu (Anthony J. Stuckey)
tcorcora@sunlab.cit.cornell.edu (Travis Corcoran)