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.
HTML version last modified: November 10, 1998.
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.
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 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. Look at part XII of this FAQ. It contains a large list of such books. 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: 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. This answer by Mark Brader 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
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: 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. 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'. 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: 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. 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. Yes, it is true (don't believe me ? open yours !). It is supposed to
be the comic strip caracter "Hobbes" (from Calvin and Hobbes). The Sun
internal name for the IPX is "Hobbes" (the SparcStation 2 is Calvin). 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). 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. 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. 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, 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. 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. 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. 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. 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.
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). 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). 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. 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. More information can be found in the Jargon File. 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: 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. 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). 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). "Kluge" (which you can write both "kluge" and "kludge", according to your
background) should be pronounced "klooj". See the Jargon File for more
details. 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
Read the FAQs :-). Actually, it is posted to news.answers, with
the subject "USENET software: History and Sources". 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. 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
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. "
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 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. 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. 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): The names were taken from the "From:" line in the header of messages; if you
want your entry changed, tell me, I'll think about it.II.2 - Is {famous person} on the net?
II.3 - What are some good books on computer folklore?
II.4 - Where can I find {interesting file} ?
II.4.1. How does one try archie ?
III - General folklore
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?
| Date: Sat, 27 May 1989 15:34:33 PDT
| From: Peter Neumann
| 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
| the desired accuracy. Apparently, the program's answers had been
| "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.
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?
III.3 - Is there really a Coke machine attached to the Internet?
#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?
III.5 - What should I do to an old CD ?
III.6 - Is it true that there is a cat printed on the motherboard of
Sun SPARCStations IPX ? Why ?
III.7 - Why did IBM choose the 8088 rather than the 68000 as the processor for
their first PC?
III.8 - Is the 8088 processor really code compatible with the 8080?
III.9 - What does VAX mean? Why did early VAXen have model numbers starting
with "11",like 11/780, 11/750, and so on?
III.10- Why is 'i' typically chosen as a loop counter, in constructs such as
for(i=0; i<10; i++); ?
___
\
/__ X
i=0 i
and FORTRAN obviously stole the idea from us.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?
III.12- Did Bill Gates write MS-DOS ?
III.13 - Is '2' the lowest possible numeric base ?
III.14 - What about that story about viruses in printers during Gulf War?
III.14.1 - Would it be possible, anyway ?
III.15 - Why does MS-DOS use '\' as the path separator, while Unix uses
'/'?
III.16 - Where can one find Jolt Cola in {your location here} ?
III.16.1 - Is it ok to discuss about soft drinks in a computer folklore
newsgroup ?
III.17 - Why do bytes have 8 bits ?
III.18 - What is the origin of the comment "You are not
expected to understand this" ?
swtch()
{
[find a process to run next]
/*
* Switch to stack of the new process and set up
* his segmentation registers.
*/
retu(rp->p_addr);
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.
* See the newproc comments.
*/
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 ?
III.20 - Where can you buy a slide ruler ?
IV - Frequent threads
IV.1 - Should my computer be always left on ?
IV.2 - How does on pronounce "kluge"/"kludge" ?
IV.3 - What is "The Longest Thread Ever" ?
V - Origins
V.1 - What are the origins of Usenet ?
V.2 -
C ?
V.3 -
Unix ?
V.4 -
structured programming ?
VI - Firsts
VI.1 - When/what/where/who/
was the first {something} ?
VII - Jokes
VIII - Net resources
VIII.1 - Who do I call if I have a problem with {something} ?
IX - Acknowledgements
111b-an@cs.smith.edu (Kathryn Wood)
Alexandre Pechtchanski
X - Things I am looking for:
Mirror hosted on
Astoria - Theodor Lauppert's Homepage