The Hacker's Dictionary A Guide to the World of Computer Wizards Guy L. Steele Jr. Donald R. Woods Raphael A. Finkel Mark R. Crispin Richard M. Stallman Geoffrey S. Goodfellow The Menu There are many dictionaries of computer buzzwords and jargon. This book is different. It is a dictionary of slang. Jargon consists of technical words that are needed for very precise communication in a specialized subject. Economists, truck drivers, chemists, and steelworkers all use a specialized vocabulary to convey technical meanings. Slang, on the other hand, is used for fun, for human communication rather than technical communication. Slang is often derived from jargon. When a bit of technical jargon is used in an extended or metaphorical way, it becomes slang. Many "computer" words are making their way into everyday use. Thanks to the proliferation of home computers, many people have heard of bytes, RAM, memory banks, terminals, processors, and floppy disks. You won't find those words defined here. This, we warn you, is supposed to be a fun book. These are the words used for fun by the people who use computers for fun: the hackers. Here you will find almost nothing of those awful computer languages such as BASIC that can be written but not spoken. This book is, in fact, a revised version of the famous "jargon file", a dictionary of slang terms cooperatively maintained by hackers at advanced computer laboratories at Stanford University, The Mas- sachusetts Institute of Technology (MIT), Carnegie-Mellon University (CMU), and other places such as Yale University, Princeton University, and Worcester Polytechnic Institute (WPI). Some of these words are fairly new; others have been used for over two decades. Some arose in the computer laboratory; others were borrowed from other fields. Our gang of six contributed to this file over the years, and to this revision for publication. (Steele coordinated the effort and did most of the polish work. Occasional first-person references in the main text are his unless otherwise identified). Many other hackers around the country, too numerous to list, made helpful suggestions; to them we are grateful. For this edition, pronunciation keys have been added for all those words that are not ordinary English words, and many cross- -references, examples, and explanatory notes have been added. We have tried to keep technical details to a minimum. A word is included only if it is amusing or unusual, or if it peculiarly illuminates some aspect if hacker culture. We hope you enjoy this book. Confessions of a Happy Hacker By Guy Steele I was a teen-age hacker. When I was about twelve or so, a lab secretary at MIT who knew I was "interested in science" (it might be more accurate to say "a latent nerd") arranged for one of the computer hackers there to give me an informal tour. I remember stumbling around racks full of circuit boards and wires, a screeching cabinet that printed a full page every six seconds, and rows of blinking lights: the computer room was crammed full of equipment with no obvious organization. One set of gray cabinets had some trophies and plaques sitting on it: this was the PDP-6 computer that, running a program called MacHack, consistently won prizes by outwitting human players in chess tournaments. This PDP-6 was also versatile: it had two speakers and a stereo amplifier sitting on top of it. The hacker typed a couple of commands on a keyboard, and the PDP-6 burst into a Bach Brandenburg Concerto (no. 6, as I recall). One part of that tour stands out most clearly in my mind. I was told to sit down in front of a large, round, glass screen, and given a box that had some buttons and a stick on the top. My hacker guide typed a command on the keyboard, and suddenly, green and purple space ships appeared on the screen! The purple one started shooting little red dots at the green one, which was soon obliterated in a multicolored shower of sparkles. The green ship was "mine", and the hacker had expertly shot it down. This was a color version of Space War, one of the very first video games. Remember that this was years before "Apple" and "TRS-80" had become household words. Back then computers were still rather mys- terious, hidden away in giant corporations and university laboratories. Playing Space War was fun, but I learned nothing of programming then. I had the true fascination of computers revealed to me in November, 1968, when a chum slipped me the news that our school (Boston Latin School, of Boston, Massachusetts) had an IBM computer locked up in the basement. I was dubious. I had earlier narrowly avoided buying from a senior a ticket to the fourth-floor swimming pool (Boston Latin has only three stories, and no swimming pool at all), and assumed this was another scam. So of course I laughed in his face. When he persisted, I checked it out. Sure enough, in a locked basement room was and IBM 1130 computer. If you want all the specs: 4096 words of memory, 16 bits per word, a 15-character-per-second Selectric ("golf ball") printer, and a card reader (model 1442) that could read 300 cards per minute. Yes, this was back in the days of punched cards. Personal computers were completely unheard-of then. Nominally the computer was for the training of juniors and seniors, but I cajoled a math teacher into lending me a computer manual and spent all of Thanksgiving vacation reading it. I was hooked. No doubt about it. I was born to be a hacker. Fortunately, I didn't let my studies suffer (as many young hackers do), but every spare moment I thought about the computer. It was spellbinding. I wanted to know all about it: what it could and couldn't do, how its programs worked, what its circuits looked like. During study halls, lunch, and after school, I could be found in the computer room, punching programs onto cards and running them through the computer. I was not the only one. Very soon there was a small community of IBM 1130 hackers. We helped to maintain the computer and we tutored our less fanatical fellow students in the ways of computing. What could possibly compensate us for these chores? Free rein in the computer room. Soon after that, I developed into one of the unauthorized but tolerated "random people" hanging around the MIT Artificial Intel- ligence Laboratory much as a groupie is to a rock band: not really doing useful work, but emotionally involved and contributing to the ambiance, if nothing else. After a while, I was haunting the computer rooms at off-hours, talking to people but more often looking for chances to run programs. Sometimes "randoms" such as I were quite helpful, operating the computers for no pay and giving advice to college students who were having trouble. Sometimes, however, we were quite a nuisance. Once, I was ejected from the Artificial Intelligence Laboratory by none other than Richard Greenblatt, the very famous hacker who wrote the MacHack program with which the PDP-6 had won its chess trophies. He threw me out because I was monopolizing the one terminal that produced letter-quality copy. (I was using the computer to write "personalized" form letters to various computer manufacturers, asking for machine manuals.) I deserved to be tossed out, and gave him no argument. But when you're hooked, you're hooked, and I was un- daunted: within a week or two I was back again. Eventually I got a part-time job as a programmer at MIT's Project MAC computer laboratory. There I became a full-fledged member of the hacker community, and ultimately an MIT graduate student. I was never a lone hacker, but one of many. Despite stories you may have read about anti-social nerds glued permanently to display screens, totally addicted to the computer, hackers have (human) friends too. Often these friendships are formed and maintained through the computer. At one time, the MIT Artificial Intelligence Laboratory had one common telephone number, extension 6765, and a public-address system. The phone was answered "six-seven-six-five", or sometimes "Fibonacci of twenty", since, as mathematician know, 6765 is the twentieth Fibonacci number. Through this number and the public-address system, it was easy to cal and reach anyone and everyone. In particular, one could easily ask, "Who wants to go for Chinese food?" and get ten or fifteen people for an expedition. "Unfortunately", says MIT hacker Richard Stallman, "most of the people and terminals have moved to other floors, where the 6765 number does not reach. The ninth floor, the lab's ancient heart, is becoming totally filled with machines, leaving no room for people, who must move to other floors. Now I can't even call up and find out if anyone is hungry." Stallman can, however, still call us all up using the computer. Through timesharing (where many people use one computer) and networking (where many computers are connected together), the computer makes possible a new form of human communication, better than the telephone and the postal system put together. You can send a message by elec- tronic mail and get a reply within two minutes, or you can just link two terminals together and have a conversation. MIT has no monopoly on hackers. In the 1960s and 1970s hackers congregated around any computer center that made computer time vailable for "play". (Some of this play turned out to be very important work, but hacking is done mostly for fun, for its own sake, for the pure joy of it). Because universities tend to be more flexible than corporations in this regard, most hackers' dens arose in uni- versity laboratories. While some of these hackers were unauthorized "random people" like me, many hackers were paid employees who chose to stay after hours and work on their own projects -- or even continue their usual work -- purely for pleasure. The hacker community became still larger and more closely knit in the early 1970s, when the government funded a project to see whether it would be useful to let the computers at dozens of universities and other sites "talk" to each other. The project succeeded and produced the famous ARPANET, a network that now links hundreds of computers across the country. Through the ARPANET, researchers can share programs, trade research results, and send electronic mail -- both to individuals and to massive mailing lists. Best of all, it allowed once-isolated hackers to talk to each other via computer. The result is a nation-wide hackers' community, now one decade old. In some ways the community serves as a geographically dispersed think tank. When Rubik's Cube became popular, one hacker created an electronic mailing list of "Cube hackers". (Such mailing lists are routinely created for new topics of interest). The network buzzed, and continues to buzz, with exposition of some very deep mathematics in efforts to solve various puzzles about the Cube. What, for example, is the smallest number of twists required to solve the Cube? This question is still unanswered; but some progress has been make, and hackers across the country continue to discuss and to fret over its solution via computer. Hackers do more than talk, however; they hack. Although no two people are alike, there are certain traits that are typical of hacker. The cardinal qualification is that hackers like to use computers. The word CYCLE, as used by hackers, refers to the fundamental unit of work done by a computer, so we say that hackers crave cycles. The more cycles available, the more a hacker gets out of the computer. As a direct result of this craving, a hacker will frequently wake up at dinner time and go to bed after breakfast, or perhaps get up at noon and sack out a 4:00 A.M. (See the terms PHASE and NIGHT MODE for more information on hackers' sleeping schedules.) Hackers do this because the computer has its own circadian rhythms to which hackers willingly adjust themselves. These rhythms in turn grow out of the heavier demands for the computer during the day than at night. Hackers will therefore work late into the evening or night, when other computer users aren't competing for cycles. It's more fun, after all, to use the computer when it's responding at split-second speeds. Most such hackers are single. Hackers do get married, but the res- ponsibilities of family life don't always mix well with typical hacker life style. When I was at MIT, I would sometimes work nights for a month at a time. Now that I am married, I find that I can hack only in spurts, one or two days a week. This book, by the way, is a hack of sorts. The manuscript was prepared using a computer, and nearly all of the work was done after midnight. The truly dedicated hacker does little else but eat, sleep, and hack. Of these activities, eating is the only social activity, so rather than eat at home alone, a hacker will usually go out to eat with his hacker friends. While hackers may sleep according to different schedules, most arrange to be awake and at the laboratory around 6:00 P.M., at which time one or more dinner expeditions usually head out. For some reason, Chinese food is particularly favored by most hackers. You will find several references to Chinese Szechuan and Hunan cuisine in this dictionary. Other spicy cuisines, such as Mexican and Indian, are also enjoyed by hackers, but Chinese is the definite favorite. Many shorthand expressions have developed for discussing food and local restaurants. At MIT one might hear: "Foodp?"; "Smallp?"; "T."; "T!" Translated, this means roughly: "Do you want to eat now?" "Maybe; what do would you think of going to Joyce Chen's Small Eating Place?" "Okay by me." "Then I'll join you!" When you walk up to the terminal of a time-shared computer, the first thing you must do is to "log in", that is, tell the computer who you are. To do this, you type your "computer i.d." or "login name". Different computers have different ideas of what a login name should be. Some use numbers or other codes (see the entry for PPN), some use your last name, some use your initials. Many computers limit login names to either three or six characters, so full names or last names can't be used in general. As a result everyone acquires a login name, which you need to know to communicate with other hacker via computer. A login name serves in much the same way as a CB "handle". I have friends whom I know only by login name; I have no idea what their real names are. Once, at a wedding, I ran into a good hacker friend who was also a guest there. I recalled his login name instantly, but was embarrassed that I couldn't immediately remember his real name in order to introduce him to a third person. It was SWAPPED OUT. Login names are often used as nicknames, pronounces if possible and spelled if necessary. My wife and I met at MIT, and she still calls me "Gliss", because my login name was GLS. "Guy" sounds very weird to her. Some hackers (including Richard Stallman) actually prefer to be called by their login name. Because of the design and use of computers depend on other branches of science, a hacker has to have some knowledge of ma- thematics, physics, electronics, and other disciplines. Hackers typically have many other interests as well: science fiction, music, and chess are particularly popular. The common them, however, is the love of the computer. Hackers discuss science fiction through computerized mailing lists. A hacker is less likely to listen to music than to program a computer to play music. A hacker who can play only a middling game of chess can write a program that wins chess tournaments. Such are the compensations of a life at the keyboard. Happy hacking! A Hackish Note on How to Use This Book By Raphael Finkel and Don Woods While hackers necessarily design and use unspeakable languages to control computers, they also have an unusual spoken language. Just as strange language had first attracted many of us to computers, we were struck by the queer vocabulary hackers would use to describe not only computer-related things but the wide world as well. Finkel decided to build a lexicon of the strange words and expressions that set this community apart, and the rest of us added to it over the years. A lot of our slang can be figured out from context. Don Woods once told a waitress, "I think we're ready to go, MODULO paying the check". And there's the time he asked a flight attendant to "please SNARF me a magazine". Neither of them batted an eye. It is the most commonly used jargon words -- the ones loaded with subtle connotations accumulated over the years -- that are the hardest to define. This book is arranged as a dictionary, and you may skip around reading individual definitions if you please. However, definitions occurring later in the book purposely build on earlier ones, and we think you will get more fun out of it if you read the book straight through in alphabetical order. We want to warn the reader that not all the expressions you will find here are in common use. Many are regional; some are obsolete. Some are used every day, and others are heard only occasionally. To give you an idea, here is a list of out favorite and perhaps most frequently used words: BAR BOGOSITY CRUFTY BARF BOGUS FEATURE BAZ BUG FLAME BELLS AND WHISTLES CANONICAL FLAVOR FLUSH LOSER PHASE OF THE MOON FOO MAGIC RANDOM FOOBAR MOBY THE REAL WORLD FROB MODULO SNARF HACK MUMBLE VANILLA KLUDGE PHASE WIZARD By and large, computer people have an enormous range of in- tellectual interests; you will see this fact reflected in the lexicon. While they use slang for fun, most computer people are highly literate, highly articulate, and sticklers for grammar. Don't expect to impress people by overusing the words you find here. They are the spice, not the bread and butter, of everyday conversation. Grokking Hacker Grammar For the most part, hackerese fits within the framework of ordinary English speech. There are but a few rules, however, that are unusual in everyday English but are very commonly used in hackerese. (These extra rules of grammar reflect the fact that hackers enjoy playing with language. Most are quite aware of when they are breaking the rules of standard English). Verb doubling A standard construction in English is to double a verb and use it as an exclamation, such as "bang, bang!" or "quack, quack!". Most of these are names for noises. Hackers also double verbs as a concise, sometimes sarcastic, comment on what the implied subject does. Also, a doubled verb is often used to terminate a conversation -- in the process, remarking on the current state of affairs or what the speaker intends to do next. Verbs frequently doubled include WIN, HACK, FLAME, BARF, and CHOMP. Typical examples of usage: "The disk heads just crashed. Lose, lose." "Mostly he just talked about his latest crock. Flame, flame." "I think I'll go fix that bug now. Hack, hack!" Standard doublings with subtle connotations are listed individually in the lexicon. Sound-alike Slang In the manner of cockney rhyming slang, hackers will often make rhymes or puns in order to convert an ordinary word of phrase into something more interesting. It is particularly FLAVORFUL if the phrase is bent so as to include some other slang word; thus, the computer hobbyist magazine Dr. Dobb's Journal is almost always referred to among hackers as Dr. Frob's Journal. Terms of this kind in fairly wide use include names for newspapers: Boston Herald American becomes Horrid (or Harried) American. Boston Globe becomes Boston Glob. San Francisco Chronicle becomes the Crocknicle. New York Times becomes New York Slime Other standard terms include: "For historical reasons" becomes "for hysterical raisins" "Margaret Hacks Hall" (a building at Stanford) becomes "Marginal Hacks Hall". "Government property -- do not duplicate" (seen on keys at MIT) is usually quoted as "Government duplicity -- do not propagate" The -P Convention This rule is unique, used by no one but hackers. A word or phrase is turned onto a yes/no question by appending the letter P, which is pronounced as a separate syllable when spoken. This rule is derived from a convention of LISP programming language, where the letter P at the end of a name denotes a "predicate" -- that is, a function that returns "true" or "false" as its result. For example, the question "Foodp?" (pronounced "food'pee", with the voice rising as for any question) means "Do you want to eat now?" The question "Colleen's-p?" is more specific: "Do you want to go eat at Colleen's Chinese cuisine (a favorite restaurant near MIT)?" "Lose-p?" means "Are you LOSING?" or "Is it LOSING?". And so on. As a special case, the question "State-of-the-world-p?" means "What's going on?" or "What are you doing (or about to do)?" The -P convention is used for this even though it isn't a yes/no question. A typical answer might be "The SYSTEM just CRASHED" or "I'm about to GRONK OUT". If the responder is feeling silly or obstinate, however, he will insist on interpreting it as a yes/no question after all, and respond with "Yes, the world has a state." The -P convention is often applied to new words at the spur of the moment. The best of these is a GOSPERISM (that is, invented by R. William Gosper). When we were at a Chinese restaurant, he wanted to know whether someone would like to share with him a two-person-sized bowl of soup. His inquiry was "Split-p soup?" and everyone instantly knew what he meant. (After all, split pea soup was not on the menu). Overgeneralisation Hackers love to take advantage of the inconsistencies of English by extending a general rule to cases where it doesn't apply. Children routinely do this when they say "teached" for "taught" or "He goed there" for "He went there". Hackers do this quite intentionally for more complicated words. One example: "Generous" becomes "generosity". "Porous" becomes "porosity". "Curious" becomes "curiosity". Therefore: "Mysterious" becomes "mysteriosity". "Obvious" becomes "obviosity". "Dubious" becomes "dubiosity". Less clearly: "Bogus" becomes "bogosity". And, perhaps: "Ferrous" becomes "ferocity"! Other examples: winnitude, disustitude, hackitude, hackification. Spoken Inarticulations Words such a "mumble", "sigh", and "groan" are spoken in places where their referent might more naturally be used. It has been suggested that this usage derives from the impossibility of re- presenting such noises in conversation by computer (see COM MODE); one gets so used to typing "Sigh!" to indicate a sigh that one soon develops the vocal habit of saying the word instead of actually sighing. Another expression sometimes heard is "complain!" (meaning not "You, complain!" but "I have a complaint!") How to Make Hacker Noises Many of the words in this dictionary are ordinary English words that have acquired new meanings. Some appear to be English words but are pronounced differently, and many are new words. To keep things simple, we have included pronunciations only in the unusual cases. If no pronunciation is given for a word, it should be pronounced as an ordinary English word. Also for simplicity, we do not use the complicated alphabets and pronunciation marks used in most dictionaries. These alphabets, such as the International Phonetic Alphabet, allow a very precise description of pronunciation but are hard to read if you're not familiar with them. We use the following simplified system: Syllables are separated by hyphens, except that an apostrophe follows an accented syllable. Consonants are pronounced as they usually are in English. The letter g is always hard, as in "got" rather than in "giant"; ch is always soft, as in "child" rather than "chemist". The letter s is always as in "pass", never a z sound as in "has"; but to prevent confusion, ss is sometimes used at the end of a syllable to emphasize this. Other consonants are also occasionally doubled for the same reason. The letter h always contains the leading d sound as used twice in "judge". Vowel sounds are represented as shown in the following table: a back, that ay bake, rain ah cot, father aw flaw, caught e less, men ee easy, ski i trip, hit ie life, sky ow out, how oh flow, sew oy boy, coin uh but, some u put, foot oo loot, through y yet yoo few A colon -- ":" -- is used for the "schwa" sound that is often written as an upside-down e. For example, the pronunciation of "kitten" would be kit':n, and of "magical" would be maj'i-k:l. Some Overflow in PDL Various abbreviations are used throughout these definitions. Most refer to computer hardware and software. For example, one of the favorite computer languages in our hacker community is LISP. The two poles of the hacker's network that compiled this dictionary are the artificial intelligence laboratories at Stanford and MIT, and LISP has always been one language of choice for artificial intelligence research. A particular computer, the Digital Equipment Corporation (DEC) PDP-6, and its successors (the PDP-10 and DECSYSTEM-20) have until recently been the computers of choice for running LISP. The consequence is that technical words from the LISP language and the PDP-10 computer will occasionally appear in this dictionary. The EMACS text editor, also referred to, was one of the first "display editors" to be widely distributed. It is used as a standard against which new text editors for personal computers are measured. We have tried to keep such words to a minimum throughout. AOS (owss [East coast], ay'ahss [West coast]) verb. 1. To add one to a number. Example: "Every time the computer finds a bad file it aoses the bad-file counter". 2. More generally, to increase the amount of something. Example: "Aos the campfire" means "Add more wood to the campfire". Silly. Antonym: SOS This word is the name of a PDP-10 instruction that takes any memory location in the computer and adds one to it. AOS means "Add One and do not Skip". Why, you may ask, does the S stand for "Do not Skip" rather than "Skip"? Ah, here is a beloved piece of PDP-10 folklore. There are eight such instructions: AOSE adds One and then Skips the next instruction if the result is Equal to zero; AOSG adds One and then Skips if the result is Greater than zero; AOSN adds One and then Skips if the result is Not zero; AOSA adds One and then Skips Always; and so on. Just plain AOS doesn't say when to skip, so it never skips. For similar reasons, AOJ means "Add One and do not Jump". Even more bizarre, SKIP means "Do not SKIP"! If you want to skip the next instruction, you must say "SKIPA". Likewise, JUMP means "Do not JUMP". ARG (ahrg) noun. An argument, in the mathematical sense only: a quantity accepted by a function or procedure. Example: "The sine function takes one arg, but the arc-tangent function can take either one or two args". This is an abbreviation that has become a new word in its own right, just as "telephone" and "pianoforte" have become "phone" and "piano". Arguments to mathematical functions and computational procedures are discussed so frequently by hackers that this ab- breviation saves a lot of time. AUTOMAGICALLY (aw'toh-maj'i-k:l-lee, aw'toh-maj'i-klee) adverb. Automatically, but in a way which, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining. Example: "File that have a name ending in 'TMP' are automagically deleted when you log out". (This means "When you say good-bye to the computer, files with names ending in 'TMP' are deleted. How this happens is complicated and I don't want to get into it just now. Trust me, it works.") See MAGIC BAGBITER (bag'bie-t:r) noun. 1. Something, such as a program or a computer, that fails to work or that works in a remarkably clumsy manner. Example: "This text editor won't let me make a file with a line longer than eighty characters! What a bagbiter!" 2. A person who has caused you some trouble, inadvertently or otherwise, typically by failing to program the computer properly. Synonyms: LOSER, CRETIN, CHOMPER. BAGBITING adjective. Having the quality of a bagbiter. "This bagbiting system won't let me compute the greatest common divisor of two negative numbers." Synonyms: LOSING, CRETINOUS, BLETCHEROUS, BARFUCIOUS, CHOMPING. BITE THE BAG verb. To fail in some manner. Example: "The computer keeps CRASHING every five minutes." "Yes, the disk controller is really biting the bag." The original meaning of this term was almost un- doubtedly obscene, probably referring to the scrotum. In its current usage it has become almost completely sanitized. BANG noun. The character "!" (exclamation point). Synonyms: EXCL, SHRIEK. See CHARACTERS. This term is more popular at CMU than at MIT or Stanford. It is used to describe the character "!" itself rather than to replace it. For example, one would not say, "Congratulations bang." On the other hand, if I wanted you to write "FOO!" -- those exact four characters, on a piece of paper -- I would tell you, "Write eff, oh, oh, bang." BAR The second metasyntactic variable, after FOO. If a hacker needs to invent exactly two names for things, he almost always picks the names "foo" and "bar". Example: "Suppose we have two functions, say, foo and bar. Now suppose foo calls bar..." See FOO, FOOBAR. BARF 1. interjection. Term of disgust or frustration. See BLETCH. 2. verb. To say "Barf!" or a similar term of disgust (because one is annoyed or offended). 3. To fail to work because of unacceptable input; sometimes, to print an error message. Examples: "The division operation barfs if you try to divide by zero." (Division by zero fails in some unspecified spectacular way) "The text editor barfs if you try to read in a new file before writing out the old one." BARFULOUS, BARFUCIOUS adjective. So ugly or offensive as to make someone barf. These meanings are derived form the common slang meaning of "barf", namely, "to vomit". BAZ (baz) 1. The third metasyntactic variable, after FOO and BAR. 2. interjection. Term of mild annoyance. In this usage the pro- nunciation is often drawn out for two or three seconds, sometimes sounding like the bleating of a sheep: "Baaaaaaaaaaz!" BELLS AND WHISTLES noun. Unnecessary (but often useful, convenient, or amusing) features of a program or other object. Example: "Now that we've got the basic program working, let's go back and add some bells and whistles." On an automobile, things like power windows and quadrophonic sound would be bells and whistles. This term is widely used, and not just in the hacker community. To understand it, think of a plain box that does a job well but is awfully boring to look at. Who will buy it? Now you add a few bells and whistles. They don't do anything useful, but they make the product more interesting. Nobody seems to know what distinguishes a bell from a whistle. BIGNUM (big'num) noun. 1. A multiple-precision computer representation for very large integer. 2. More generally, any very large number. "Have you ever looked at the United States Budget? There's bignums for you!" 3. When playing backgammon, large numbers on the dice, especially a roll of double fives or double sixes. See EL CAMINO BIGNUM. Most computer languages provide a kind of data called "integers", but such computer integers are usually very limited in size; usually they must be smaller than 215 (32768) or 231 (2147483648). If you want to work with numbers larger than that, you have to use floating-point numbers, which are usually only accurate to six or seven decimal places. Computer languages that provide bignums can perform exact calculation on very large numbers such as 21000 or 1000! (the factorial of 1000, which is 1000 times 999 times 998 times ... times 2 times 1) exactly. For example, this value for 1000! was computed by the MACLISP system using bignums: 40238726007709377354370243392300398571937486421071 46325437999104299385123986290205920442084869694048 00479988610197196058631666872994808558901323829669 94459099742450408707375991882362772718873251977950 59509952761208749754624970436014182780946464962910 56393887437886487337119181045825783647849977012476 63288983595573543251318532395846307555740911426241 74743493475534286465766116677973966688202912073791 43853719588249808126867838374559731746136085379534 52422158659320192809087829730843139284440328123155 86110369768013573042161687476096758713483120254785 89320767169132448426236131412508780208000261683151 02734182797770478463586817016436502415369139828126 48102130927612448963599287051149649754199093422215 66832572080821333186116811553615836546984046708975 60290095053761647584772842188967964624494516076535 34081989013854424879849599533191017233555566021394 50399736280750137837615307127761926849034352625200 01588853514733161170210396817592151090778801939317 81141945452572238655414610628921879602238389714760 88506276862967146674697562911234082439208160153780 88989396451826324367161676217916890977991190375403 12746222899880051954444142820121873617459926429565 81746628302955570299024324153181617210465832036786 90611726015878352075151628422554026517048330422614 39742869330616908979684825901254583271682264580665 26769958652682272807075781391858178889652208164348 34482599326604336766017699961283186078838615027946 59551311565520360939881806121385586003014356945272 24206344631797460594682573103790084024432438465657 24501440282188525247093519062092902313649327349756 55139587205596542287497740114133469627154228458623 77387538230483865688976461927383814900140767310446 64025989949022222176590433990188601856652648506179 97023561938970178600408118897299183110211712298459 01641921068884387121855646124960798722908519296819 37238864261483965738229112312502418664935314397013 74285319266498753372189406942814341185201580141233 44828015051399694290153483077644569099073152433278 28826986460278986432113908350621709500259738986355 42771967428222487575867657523442202075736305694988 25087968928162753848863396909959826280956121450994 87170124451646126037902930912088908694202851064018 21543994571568059418727489980942547421735824010636 77404595741785160829230135358081840096996372524230 56085590370062427124341690900415369010593398383577 79394109700277534720000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000 The MACLISP language was not the first computer system to calculate very large integers, but it was MACLISP that provided the name "bignum". BIT noun. 1. The unit of information: the amount of information obtained by asking a yes-no question. 2. A computational quantity that can take on one of two values, such as true and false, or 0 and 1. 3. A mental flag: a reminder that something should be done eventually. Example: "I have a bit set for you." (I haven't seen you for a while, and I'm supposed to tell or ask you something). A bit is said to be "set" if its value is true or 1, and "reset" or "clear" if its value is false or 0. One speaks of setting and clearing bits. To TOGGLE a bit is to change it, either from 0 to 1 or from 1 to 0. BITS. Information. Example: "I need some bits about file formats." ("I need to know about file formats"). THE SOURCE OF ALL GOOD BITS noun. A person from whom (or a place from which) information may be obtained. If you need to know about a program, a WIZARD might be the source of all good bits. The title is often applied to a particularly competent secretary. BITBLT (bit'blit) 1. verb. To copy a large array of bits from on part of a com- puter's memory to another part, particularly when the memory is being used to determine what is shown on a display screen. 2. More generally, to perform some operation (such as TOGGLING) on a large array of bits while moving them. 3. noun. The operation of bitblting. See BLT. BIT BUCKET noun. 1. The mythical receptacle used to catch bits when they fall off the end of a register during a shift instruction. 2. More generally, the place where information goes when it is lost or destroyed. Example: "Oh, no! All my files just went into the bit bucket!" 3. The physical device used to implement output to the NULL DEVICE. This term is used purely in jest. It's based on the fanciful notion that bits are objects that are not destroyed, only misplaced. BIT DECAY noun. A fanciful theory to explain SOFTWARE ROT, the phenomenon that unused programs or features will eventually stop working even if "nothing has changed". The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled. There actually are physical processes that produce these effects. Alpha particles, such as those found in cosmic rays, can change the contents of a computer memory unpredictably. Fortunately, the pro- bability of this can be kept fairly low. In any case, when you can't figure out why something stopped working, it is often convenient to blame it on bit decay. BLETCH (bletch) interjection. Term of disgust. BLETCHEROUS adjective. Disgusting in design of function, aes- thetically unappealing. (This word is seldom used of people.) Example: "This keyboard is bletcherous!" (Perhaps the keys don't work very well or are poorly arranged.) Slightly comic. "Bletcherous" applies to the aesthetics of the thing so described; similarly for CRETINOUS. By contrast, something that is LOSING or BAGBITING may be failing to meet objective criteria. See BOGUS and RANDOM, which have richer and wider shades of meaning than any of the others. BLT (blit, belt) verb. To copy or transfer a large contiguous package of information from one place to another. "The storage allocator picks through the table and copies the good parts up into high memory, and at the end, blt's it all back down again." THE BIG BLT noun. A massive memory-shuffling operation frequently performed by some time-sharing systems on the PDP-10 computer. This comes from the name of a PDP-10 instruction that copies a block of memory form one place to another; the name "BLT" stands for "Block Transfer". Nowadays, BLT almost always means "Branch if Less Than zero", so the slang meanings above are rather like antiques or dinosaurs. BOGUS (boh'gus) adjective. 1. Nonfunctional. Example: "Your fix for that BUG was bogus". 2. Useless. Example: "ATSIGN is a bogus program". 3. False. Example: "Your arguments are bogus". 4. Incorrect. Example: "That algorithm is bogus". 5. Unbelievable. Example: "You claim to have solved the halting problem for Turing Machines? That's totally bogus". 6. Silly. Example: "Stop writing those bogus SAGAS". Astrology is bogus. So is a bolt that is obviously about to break. So is someone who makes blatantly false claims of having solved a scientific problem. BOGOSITY (boh'gahss':t-ee) noun. The quality of being bogus; also, an instance or example thereof. BOGON (boh'gahn) noun. 1. A person who is bogus or who says bogus things. 2. More rarely, a mythical subatomic particle that bears the unit charge of bogosity. (A convention in particle physics is to name new subatomic particles by using the Greek suffix -on, because Greek words originally used to name such particles. For example hadrons are very massive particles that were named from the Greek word hadros, meaning "heavy". More recently, however, physicist have taken to attaching this suffix to words from other languages. For example, the particles that help to hold quarks together are called "gluons", from the English word glue. Hackers have used this convention in fun, on an ad hoc basis; but two of them, "bogon" and COMPUTRON, are used fairly regularly). BOGOMETER (boh-gahm':t-:r) noun. A mythical instrument used to measure bogosity, much as a thermometer measures temperature. Example: In a seminar, when a speaker makes an outrageous claim, a listener might raise his hand and say, "My bogometer just triggered". Someone who is a bogon in the first sense probably radiates a lot of bogons in the second sense. This provides a (pseudo) scientific explanation for how a bogometer works: it's like a Geiger counter that detects bogons. The agreed-upon unit of bogosity is the microLenat (uL) or one- -millionth of a Lenat, in honor of computer scientist Doug Lenat. The consensus is that this is the largest unit practical for everyday use. BOGOTIFY (boh-gaht':f-ie) verb. To make or become bogus. A program that has been changed so many times as to become completely dis- organized has become bogotified. If you tighten a nut too hard and strip the threads on the bolt, the bolt has become bogotified and you'd better not use it any more. BOGUE OUT (bohg owt) verb. To become bogus, suddenly and un- expectedly. Example: "His talk was relatively sane, but then someone asked him a tricky question; he bogued out and did nothing but FLAME after that". AUTOBOGOTIPHOBIA (aw'to-boh-gaht':-foh'bee-uh) noun. The fear of becoming bogotified. "Bogus" has many, but not all, of the meanings of RANDOM. "Random" tends to connote pointlessness or a lack of direction, while "bogus" tends to connote deception or misdirection. Both, however, may connote confusion. "Bogus" was originally used in the hacker sense at Princeton in the late 1960s; not just in the computer science department but all over the campus. It came to Yale and (we assume) elsewhere through the efforts of migratory Princeton alumni, Michael Shamos in particular, now a faculty member at CMU. The hacker usage of this word has since spread to other places. BOUNCE verb. To play volleyball. This term is, or was, used primarily at Stanford. At on time there was a volleyball court next to the computer laboratory. From 5:00 P.M. to 7:00 P.M. was the scheduled maintenance time for the computer, so every afternoon at 5:00 the computer would become unavailable. And over the intercom a voice would cry, "Bounce, bounce!" meaning "Everyone come out and play volleyball!" BRAIN-DAMAGED adjective. Obviously wrong; extremely poorly designed; CRETINOUS; DEMENTED. There is a connotation that the person responsible must have suffered brain damage, because he should have known better. Calling something brain-damaged is really extreme. The word implies that the thing is completely unusable, and that its failure to work is due to poor design, not accident. BREAK verb. 1. To become BROKEN (in any sense). 2. To cause to be broken (in any sense). "Your latest patch to the editor broke the paragraph commands". 3. Of a program, to halt or pause temporarily so that it may be examined for debugging purposes. The place where the program stops is called a "breakpoint". See CONTROL-B. BROKEN adjective. 1. Of programs, not working properly. "The FORTRAN compiler is broken". 2. Behaving strangely -- especially (of people), exhibiting extreme depression. BROKET (broh'k:t, broh'ket) noun. Either of the characters "<" and ">". The first is called a "left broket", and the second a "right broket". This word originated as a contraction of the phrase "broken bracket", that is, a bracket that is bent in the middle. BUCKY BITS noun. Bits corresponding to "control" and "meta" keys on a keyboard. See DOUBLE BUCKY and QUADRUPLE BUCKY. This phrase requires a long explanation. Most computer keyboards are arranged more or less like a typewriter keyboard, but have extra keys. One of them, usually marked "control" or "CTRL", is like a shift key, but instead of changing letters from lower case to upper case, it changes them into so-called control characters. The character sent when you hold down the control key and type F is called simply "control-F". Such characters are usually used as commands to the computer, es- pecially to a text editor. In one well-known text editor, EMACS (which was written at MIT), control-F moves forward one character, control-N moves to the next line, control-P moves to the previous line, control-D deletes a character, and so on. Control characters are so useful that sometimes special keyboards are built that have even more shift keys. One of the first of these was used at Stanford. It had the usual shift and control keys, and a third key called "meta", as well as lots of unusual characters such as Greek letter. So, one can type such characters as control-F, meta-N, and control-meta-B. Now, when you type a character on a Stanford keyboard, the following information is sent to the computer: a code indicating the basic character, plus one BIT for each shifting key to indicate whether that shifting key was pressed along with the basic character key. Programs usually treat the regular shift key as part of the basic character, indicating whether you want lower case or upper case (or whether you want "3" or "#", and so on). The other bits (control and meta) are called the bucky bits. Why "bucky"? Rumor has it that the idea for the extra bits for characters came from computer scientist Niklaus Wirth (who invented the computer languages PASCAL and MODULA-2) when he was at Stanford, and that his nickname was "Bucky". Inspired by the Stanford keyboard, the MIT SPACE CADET KEYBOARD has seven shifting keys: four "bucky bit" keys -- "control", "meta", "hyper", and "super" -- and three like the regular shift key, called "shift", "top", and "front". Many keys have three symbols on them: a letter and a symbol on the top, and a Greek letter on the front. For example, the L key has an "L" and a two-way arrow on the top, and a Greek letter lambda on the front. If you press this key with the right hand while playing an appropriate :chord: with the left hand on the shift keys, you can get the following results: L lower-case "l" shift-L upper-case "L" front-L Greek lower-case lambda front-shift-L Greek upper-case lambda top-L two-way arrow (front and shift are ignored) And of course each of these may also be typed with any combination of the control, meta, hyper, and super keys. On this keyboard you can type over 8000 different character! This allows the user to type very complicated mathematical text, and also to have thousands of sin- gle-character commands at his disposal. Many hackers are actually willing to memorize the command meanings of that many characters if it will reduce typing time. Other hackers, however, think having that many bucky bits is overkill, and object that such a keyboard can require three or four hands to operate. BUG noun. A mistake or problem (possibly simple, possibly very deep); an unwanted and unintended property, characteristic, or behavior. Examples: "There's a bug in the editor. It writes things out backward." "The system CRASHED because of a hardware bug". (That is, the computer suddenly stopped because of an equipment failure) "Fred is a WINNER, but he has a few bugs" (Fred is a good guy, but he has a few personality problems). Antonym: FEATURE. This is usually thought of as applying to a program but can be applied to computers, people, and other things. Some say this term came from telephone company usage: "Bugs in a telephone cable" were blamed for noisy lines. However, computer scientist Grace Hopper has repeatedly been heard to claim that the use of the term in computer science comes from a story concerning actual bugs found wedged in an early malfunctioning computer. In any case, in hacker's slang the word almost never refers to insects. Here is a plausible conversation that never actually happened: "This ant farm has a bug." "What do you mean? There aren't even any ants in it." "That's the bug." BUM 1. verb. To improve something by removing or rearranging its parts -- such as wires in a computer or instructions from a program -- while preserving its function. More generally, to make highly efficient, either in time or space. The connotation is that this is done at the expense of clarity. Examples: "I managed to bum three more instructions out of that code." "I bummed the program not to write the file if it would be empty." "I bummed the inner loop of the program down to seven microseconds." 2. noun. A small change to an algorithm, program, or object to make it more efficient. "This hardware bum makes the jump instruction faster." BUZZ verb. Of a program, to run with no indication of progress and perhaps without guarantee of ever finishing. The state of a buzzing program resembles CATATONIA, but you never get out of catatonia, while a buzzing loop may eventually end of its own accord. Example: "The program buzzes for about ten seconds trying to sort all the names into order". CANONICAL (ki-nahn'i-kil) adjective. Usual; standard; ordinary. Example: "What is the canonical way to rejustify a paragraph in EMACS?" This word has a somewhat more technical meaning in mathematics. For example, on sometimes speaks of a formula as being in canonical form. Two formulas such as 9+3x^2+x and 3x^2+x+9 are said to be equivalent because they mean the same thing, but the second one is in canonical form because it is written in the usual way, with the highest power of x first. Usually there are fixed rules you can use to decide whether something is in canonical form. The slang meaning is a relaxation of the technical meaning. A true story: One Bob Sjoberg, new at MIT, expressed some annoyance at the use of hacker's slang. Over his loud objections, we made a point of using the slang as much as possible in his presence, and eventually it began to sink in, Finally, in one conversation he used the word "canonical" in slanglike fashion without thinking. Steele: Aha! We've finally got him talking jargon [slang] too! Stallman: (who wasn't quite paying attention) What did he say? Steele: Bob just used "canonical" in the canonical way. CATATONIA (kat':-toh'ne-uh) noun. A condition of suspended animation in which something is so WEDGED that it makes no response. For example, if you are typing on your terminal and suddenly the computer doesn't even make the letter appear on the screen as you type -- let alone do what you're asking it to do -- then the computer is suffering from catatonia (probably because it has CRASHED). CATATONIC (kat':-tahn'ik) adjective. In a state of catatonia. Synonym: WEDGED. CDR (ku'd:r) verb. To remove the first item from a list of things. CDR DOWN verb. To go down a list of things one by one. Example: "Shall we cdr down the agenda?" Silly. This term is derived from a function of the LISP language that removes an item from a list. CHARACTERS noun. Those things that you type on a keyboard or that appear on your terminal. (Sometimes you can type characters on your keyboard that cannot be printed on the screen, and vice versa. For example, on most keyboards you can type "control characters" that can't be written down like the characters "A" and "%" can; they are mostly used as special commands. Conversely, some terminals can display almost any picture a program can draw. A program can then draw Greek letters or any other funny symbol, even if they aren't on the keyboard.) Computers tend to seem very unforgiving: a program can fail to work if you get even one character in it wrong. (Folklore has it that a NASA mission to Venus failed because, in one place in one program, there was a period where there should have been a comma). Hackers therefore need to be very precise when talking about characters, and have developed a considerable amount of verbal shorthand for talking about characters: ! EXCL, exclam, BANG, SHRIEK, WOW. # Hash mark, MESH, SPLAT, CRUNCH, pig-pen. $ Dollar. & Ampersand (This name is already so silly that no slang term is needed!) ' Single quote, forward quote. ( and ) Parens (separately called just OPEN and CLOSE). * Star, SPLAT. (In other computer communities, the name "gear" is used, because it looks like a little cogwheel). . Period, dot, point. (Which of these is used depends on culture and context. The word "point" is used more at MIT that "dot" is. CMU uses "dot" almost exclusively). / Slash, forward slash. ; SEMI. < Less than, left ANGLE BRACKET, open angle bracket, left BROKET. = Equals. > Greater than, right ANGLE BRACKET, close angle bracket, right BROKET. ? QUES, query. @ At-sign, at. \ Backslash. ^ Caret. (The name "uparrow" is also used; this dates from the days of old ASCII, when the code now assigned to circumflex was used for an upward- -pointing arrow). _ Backarrow. (This dates from the days of old ASCII, when the code now assigned to an underscore was used for a leftward-pointing arrow). ` Backquote. { and } Curly braces, curly brackets, SQUIGGLE BRACKETS. | Vertical bar. ~ TWIDDLE, SQUIGGLE, SQIGGLE. The INTERCAL programming language, consistent with its general policy of never doing anything the way some other programming language does it, has odd names especially invented for many characters. Most of these names are generally not used except in the context of INTERCAL. . Spot. : Two-spot. , Tail. # Mesh. = Half-mesh. ' Spark. ` Backspark. " Rabbit ears. ! WOW. ? What. | Spike. - Worm. < Angle. (The two-character arrow "<-" is called "angleworm"). > Right angle. ( Wax. ) Wane. [ U turn. ] U turn back. { Embrace. } Bracelet. * SPLAT. & Ampersand (INTERCAL couldn't make this any sillier, either). _ Flatworm. + Intersection. / Slat. \ Backslat. ^ Shark (or simply shark fin). @ Whirlpool. % Double-oh-seven. CHINE NUAL (sheen'yu-:l) noun. The reference manual for the Lisp Machine, a computer designed at MIT especially for running the LISP language. It is called this because the title, LISP MACHINE MANUAL, appears in big block letters -- wrapped around the cover in such a way that you have to open the cover out flat to see the whole thing. If you look at just the front cover, you see only part of the title, and it reads "LISP CHINE NUAL" CHOMP (chahmp) verb. To LOSE; to chew on something of which more was bitten off than one can. Synonyms: LOSE, BITE THE BAG (see BAGBITER). A hand gesture commonly accompanies the use of the word "chomp". The four fingers are held together as if in a mitten or hand puppet, and the fingers and thumb are opened and closed rapidly to illustrate a biting action. The hand may be pointed at the object of complaint, and for the real emphasis you can use both hands at once. For example, to do this to a person is equivalent to saying, "You chomper!". If you point the gesture at yourself, it is a humble but humorous admission of some failure. I would do this if someone told me that a program I had written failed in some surprising way and I felt stupid for not having anticipated it. CHOMPER (chahmp':r) noun. Someone or something that is chomping; a loser. Synonyms: LOSER, BAGBITER. CLOSE (klohz) 1. adjective. Of a delimiting CHARACTER, used at the righthand end of a grouping. Used in such terms as "close parenthesis" and "close bracket". 2. noun. Abbreviation for "close (or right) parenthesis", used when necessary to eliminate oral ambiguity. See OPEN and CHARACTERS. 3. verb. To terminate one's interaction with a file of in- formation. See OPEN. COKEBOTTLE (kohk'baht-:l) noun. Any very unusual character, particularly one that isn't on your keyboard so you can't type it. A program written at Stanford, for example, is likely to have a lot of "control-meta-cokebottle" commands, that is, commands that you can only type on a Stanford keyboard -- because you need the "control" and "meta" keys (see BUCKY BITS) -- and also unusual characters such as the downward-pointing arrow. The last is a "cokebottle" unless you happen to have a Stanford keyboard. (This usage probably arose because of the unusual and distinctive shape of Coca-Cola bottles. No keyboard I know of actually has a cokebottle character on it, so any character you can't type might as well be a Coke bottle for all the good it does you). COM MODE, COMM MODE (kahm'mohd) noun. A situation in which two or more terminals are linked together by the computer so that whatever is typed on any of them appears on all of them. Ideally this is accomplished in such a way that what you type appears on the other terminals but is not otherwise interpreted by the computer (so what you type doesn't foul up your programs). The word com is short for communicate. Com mode is used for conversation: you can talk to other hackers without leaving your terminal. It combines the immediacy of talking with all the precision (and verbosity) that written language entail. It is difficult to communicate inflections, though conventions have arisen for some of these. For example, to emphasize a word (as if printed in italics), one may type an asterisk before and after the word. Typing in all-capital letters is equivalent to raising one's voice). Neophytes, when in com mode, seem to think they must produce let- ter-perfect prose because they are typing rather than speaking. This is not the best approach. It can be very frustrating to wait while your partner pauses to think of a word, or repeatedly makes the same spelling error and backs up to fix it. It is usually best just to leave typographical errors behind and plunge forward, unless severe confusion may result. In that case, it is often fastest just to type xxx and start over from before the mistake. There is a special set of slang terms used only in com mode, which are not used vocally. These are used to save typing or to communicate inflection. BCNU Be seeing you (that is, good-bye). BTW By the way... BYE? Are you ready to unlink? (This is the standard way to end a com mode conversation: the other person types BYE to confirm, or else continues the conversation). CUL See you later. FOO? A greeting, also meaning R U THERE? Often used in the case of unexpected links, meaning also "Sorry if I butted in" (linker) or "What's up?" (linkee). FYI For your information... GA Go ahead (used when two people have tried to type simultaneously; this cedes the right to type to the other. HELLOP A greeting, also meaning R U THERE? (This is an instance of the -P convention). NIL No. (See the main entry for NIL). OBTW Oh, by the way... R U THERE? Are you there? SEC Wait a second (sometimes written SEC...). For example, if you are interrupted by a telephone call, or need to think about something before replying, you might type this. You might also type an additional dot every few seconds to indicate that you are still there but busy. Also, if you need to use a program for a moment (possibly because someone asked you a question), you might type SEC..., unlink your terminal, use your program, and the link back into the com mode. T Yes (See the main entry for T). TNX Thanks. TNX 1.0E6 Thanks a million. (This "1.0E6" is a standard way to write one million in many computer languages). Silly. [double crlf] When the typing party has finished, he types two CRLF's (that is, presses the RETURN key twice) to signal that he is done. This leaves a blank line between individual "speeches" in the conversation, making it easier to reread the preceding text, and indicates that the other person may type. [name]: When three or more terminals are linked, each speech is preceded by the typist's login name ("computer id") and a colon (or a hyphen) to indicate who is typing. You need to do this because you can't tell who is who by tone of voice! The login name often is shortened to a unique prefix (possibly a single letter) during a very long conversation. /\/\/\ The equivalent of a giggle. Synonym: TALK MODE. (The term "com mode" is used more at MIT, and "talk mode" at Stanford. COMPUTRON (kahm'pyoo-trahn'), COMPUTON (kahm'pyoo-tahn') noun. A mythical subatomic particle that bears the unit quantity of computation or information, in much the same way that an electron bears one unit of electric charge. If the computer is too slow, it's because you're short of computrons. See BOGON and CYCLE. An elaborate pseudo-scientific theory of computrons has been worked out as a jest by MIT hacker Stavros Macrakis. (He called the particles "mensons", but that name is no longer used). It is a well-known fact of physics that as you heat something, the molecules get jiggled around and their positions become more random. The hotter it gets, the less predictable are the positions of the molecules. Eventually the molecules just spill all over each other, and the thing melts. Now, he argues, it obviously melts because each molecule has lost the information about where it is supposed to be: in other words, it has lost computrons. This explains why computers get so hot and require air conditioning: they use up computrons. Conversely, you should be able to refrigerate something simply by placing it in the path of a computron beam. CMU hacker Joe Newcomer has also observed that this theory explains why a computer works when it's tested in the factory but not when you've put it in the computer room with all the other computers. They're tested singly at the factory, and so there are plenty of computrons available there, but in the computer room all the computers compete for the computrons in a limited space and some of them come up short. CONNECTOR CONSPIRACY noun. The (perhaps only mythical) tendency of manufacturers (or, by ex- tension, programmers or purveyors of anything) to come up with new products that don't fit together with the old stuff, thereby making you buy either all new stuff or expensive interface devices. This term probably came into prominence with the appearance of the KL10 model of the PDP-10, none of whose connectors seemed to match anything else. CONS (kahnz) verb. To add a new element to a list, usually to the top rather than at the bottom. CONS UP verb. To synthesize from smaller pieces; more ge- nerally, to create or invent. Examples: "I'm trying to cons up a list of volleyball players". "Let's cons up an example". This term comes from the LISP programming language, which has a function called CONS that adds a data item to the front of a list. CONTROL The name of one of the several BUCKY BITS. Used as a prefix to another character, it indicates that the "control" key on your keyboard should be pressed as the other character is typed. CONTROL-B (k:n-trohl' bee') interjection. May I interrupt? or, Beginning of digression. Synonym: PUSH. Antonym: CONTROL-P. CONTROL-G (k:n-trohl' jee') interjection. Stop! Cease! Change the subject! Stop that FLAMING! CONTROL-P (k:n-trohl' pee') interjection. End of interruption or digression. If two hackers are sitting in an office talking, a third one might stick his head in the door and ask "Control-B?". This is a polite, albeit silly, way of asking "May I interrupt?" When the side conversation is done, the third hacker might say "Thanks a lot, Control-P". Control characters are used in various ways to control the actions of computer programs. Different computer systems have different con- ventions about how control characters are used, and hackers will use the local computer convention when speaking. The definitions given above correspond to their meanings as used in the MACLISP language and in DDT at MIT. At other places, "Control-C" replaces "Control-G", for example. CRASH 1. noun. A sudden, usually drastic failure. Most often said of the SYSTEM, sometimes of magnetic disk drives. Example: "Three LUSERS lost their files in last night's disk crash". The term "system crash" usually, though not always, implies that the operating system or other software was at fault. Disk crashes come in two varieties: either the disks are physically unharmed but some information stored on them is lost, or else the disks are physically damaged -- in which case the entire information content of the disk is usually lost. The second kind usually occurs when the magnetic read/write heads hit the surfaces of the disks and scrape off the oxide. This kind of disk crash is called a "head crash". 2. verb. To fail suddenly. Example: "Has the system just crashed?". 3. verb. To cause to fail. Example: "There is a BUG in the tape controller; if you try to use the tape drive, you will crash the system". 4. verb. Of people, to go to sleep -- particularly after a long period of work. See GRONK OUT. CREEPING FEATURISM (kreep'eeng feetch':r-iz':m) noun. The tendency for anything complicated to become even more complicated because people keep saying, "Gee, it would be even better if it had this feature too". (See FEATURE) The result is usually a patchwork, because it grew one ad hoc step at a time, rather than being planned. Planning is a lot of work, but it's easy to add just one extra little feature to help someone... And then another... and another... Usually this term is used to describe computer programs, but it could also be applied to the federal government, the IRS 1040 form, and new cars. CRETIN (kreet-:n) noun. A congenital LOSER; an obnoxious person; someone who can't do anything right. CRETINOUS (kree'tin-uhss, kreet':n-uhss) adjective. Wrong; nonfunctional; very poorly designed (also used pejoratively of people). Synonyms: BLETCHEROUS, BAGBITING, LOSING, BRAIN-DAMAGED. CRLF (k:r'lif, crul':f) 1. noun. A carriage return (CR) followed by a line feed (LF). More loosely, whatever it takes to get you from the end of one line of text to the beginning of the next line. 2. verb. To output a crlf; to end a line of text or to begin a new line of text. Synonym: TERPRI. CROCK noun. 1. Something, especially a program, that works but does so in an unbelievable ugly or awkward manner; more specifically, something that works acceptably but which is quite prone to failure if disturbed in the least. 2. A tightly woven, almost completely unmodifiable structure; something very complicated that ought to be simple. Computer programs seldom stay the same forever. They tend to evolve, and are constantly changed as BUGS are fixed or new FEATURES added. Crocks make this difficult because, although they work, they are very difficult to make small changes to. Synonym: KLUDGE. CROCKISH, CROCKY adjective. Having the cha- racteristics of a crock. See BLETCHEROUS. CROCKITUDE (krahk':-tood) noun. Crockness, crockhood. CRUFT (kruhft) 1. noun. An unpleasant substance. The dust that gathers under your bed is cruft. 2. noun. The results of shoddy construction. CRUFT TOGETHER verb. To make something quickly and haphazardly to get it working quickly, without regard to craftsmanship. Example: "There isn't any program now to reverse all the lines of a file, but I can probably cruft one together in about ten minutes". The origin of this word is unknown. CRUFTY (kruhft'ee) 1. adjective. Unpleasant, especially to the touch; yucky, like spilled coffee smeared with peanut butter and catsup. 2. adjective. Poorly built, possibly overly complex. "This is standard old crufty DEC software". 3. adjective. Generally unpleasant. 4. noun (also spelled "cruftie"). A small crufty object, or (in a program) a small data structure, especially one that doesn't fit well into the scheme of things. Every desk seems to have one drawer that accumulates crufties. Example: "A LISP property list is a good place to store crufties". (In the LISP language, odd data structures can be stored in a catchall data structure called a property list). CRUFTSMANSHIP noun. The antithesis of craftsmanship. CRUNCH 1. verb. To process, usually in a time-consuming or complicated way. The connotation is of an essentially trivial operation that is nonetheless painful to perform, possibly because the trivial operation must be performed millions of times. When the trivial operation involves numerical computation, this is called "number crunching". Example: "FORTRAN programs mostly do number crunching". 2. verb. To reduce the size of a file by a complicated scheme that produces bit configurations completely unrelated to the original data, such as by the mathematical technique called "Huffman codes". (The file ends up looking like a paper document would if somebody crunched the paper into a wad). Since such a compression operation usually requires a great deal of computation (it is much more sophisticated than such simper methods as counting consecutive repeated characters), the term is doubly appropriate. Sometimes the term "file crunching" is used to distinguish it from "number crunching". 3. noun. A crisis, especially a scarcity of some resource. If you don't have much time to get something done, you're in a time crunch. See CYCLE CRUNCH. 4. noun. The character "#". See CHARACTERS. CTY (sit'ee) noun. The terminal physically associated with a computer's operating console. The term is a contraction of "Console TTY", that is, "Console TeleTYpe". CUSPY (cuhsp'ee) adjective. Clean, well-written; functionally excellent. A program that performs well and interfaces well to users is cuspy. Antonyms: RUDE, CRUFTY, BLETCHEROUS. This term originated at WPI. It comes from the acronym CUSP, used by DEC to mean a "Commonly Used System Program", that is, a utility program used by many people. Ideally, such programs, whatever the source, are built to high standards of excellence. The extent to which a hacker uses this word obviously depends largely on how highly he regards DEC-supplied software. CYCLE noun. The "basic unit of computation". What every hacker wants more of. You might think that single machine instructions would be the measure of computation, and indeed computers are often compared by assessing how many instructions they can process per second -- even though some instructions take longer that others. Nearly all computers have an internal clock, though, and you can describe an instruction as taking so many "clock cycles". Typically the computer can access its memory once on every clock cycle, and so one speaks also of "memory cycles". These are technical meanings of "cycle". The slang meaning comes from the observation that there are only so many cycles per second; and when you are sharing a computer, the cycles get divided up among the users. The more cycles the computer spends working on your program rather than someone else's, the faster your program will run. That's why every hacker wants more cycles: so he can spend less time waiting for the computer to respond. CYCLE CRUNCH noun. The situation where the number of people si- multaneously trying to use the computer has reached the point where no one can get enough cycles because they are spread too thin. Usually the only solution is to buy another computer. CYCLE DROUGHT noun. A scarcity of cycles. It may be due to a cycle crunch, but could also occur because part of the computer is tem- porarily not working, leaving fewer cycles to go around. Example: "The high MOBY is DOWN, so we're running with only half the usual amount of memory. There will be a cycle drought until it's fixed". DAEMON (day'm:n, dee'm:n) noun. A program that is not invoked explicitly, but that lies dormant waiting for one or more conditions to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking (though often a program will commit an action only because it knows that it will implicitly invoke a daemon). For example, many operating systems have a printing daemon. When you want to print a file on some printing device, instead of explicitly running a program that does the printing, you just copy your file to a particular directory (file area). The printer daemon is just a program that is always running; it checks the special directory periodically, and whenever it finds a file there it prints it and then deletes it. The advantage is that programs that want (in this example) files printed need not compete for access to the printing device itself, and need not wait until the printing process is completed. In particular, a user doesn't have to sit there waiting with his terminal tied up while the printing program does its work. He can do something else useful while the daemon does its job. Daemon and DEMON are often used interchangeably, but seem to have discrete connotations. "Daemon" was introduced to computing by people working on CTSS, the Compatible Time-Sharing System, which was the first time-sharing system, developed at MIT. They pronounced it "dee'm:n", and used it to refer to what is now called a DRAGON or PHANTOM. The meaning and pronunciation have drifted, and we think the definitions given here reflect current usage. DAY MODE noun. The state a person is in when he is working during the day and sleeping at night. See PHASE and NIGHT MODE. DDT (dee'dee'tee') noun. A program that helps you to debug other programs by showing individual machine instruction in a readable symbolic form and letting the user change them. At MIT, DDT is also used as the "top-level command language" to run other programs. The DEC PDP-10 Reference Handbook (1969) contained this footnote on the first page of the documentation for DDT: Historical footnote: DDT was developed at MIT for the PDP-1 computer in 1961. At that time, DDT stood for "DEC Debugging Tape". Since then, the idea of an on-line debugging program has propagated throughout the computer industry. DDT programs are now available for all DEC computers. Since media other than tape are now frequently used, the more descriptive name "Dynamic Debugging Technique" has been adopted, retaining the DDT acronym. Confusion between DDT-10 and another well-known pesticide, dichloro-diphenyl-trichloroethane (C14H9Cl5) should be minimal, since each attacks a different, and apparently mutually exclusive, class of bugs. Sad to say, this quotation was removed from later editions of the handbook as DEC became much more "businesslike". DEADLOCK noun. A situation wherein two or more processes (or persons) are unable to proceed because each is waiting for another to do something. Here is a typical example: Two programs running on the same computer both want the exclusive use of two things, say a line printer and a disk. The first one grabs the line printer and the tries to grab the disk, but fails because the second one successfully grabbed the disk and is now waiting to get the line printer. Deadlock also occurs when two people meet in a narrow corridor and each tries to be polite by moving aside to let the other pass -- but they end up swaying from side to side without making any progress because they always move the same way at the same time. Synonym: DEADLY EMBRACE. DEADLY EMBRACE noun. DEADLOCK. This term is usually used only when exactly two processes are involved, while "deadlock" can involve any number. Also, "deadly embrace" seems to be the more popular term in Europe, while "deadlock" is more frequently used in the United States. DELTA noun. 1. A change, especially a small or incremental change. Example: "I just doubled the speed of my program!" "What was the delta on program size?". "About thirty percent". (He doubled the speed of his program, but increased its size by thirty percent). 2. A small quantity, but not so small as EPSILON. DEMENTED adjective. Useless; totally nonfunctional; BRAIN_DAMAGED. This is yet another term of disgust used to describe a program. The connotation in this case that the program works as designed, but the design is bad; perhaps also that the program explicitly exhibits strange behavior. For example, a program that generates large numbers of meaningless error messages, implying that it is on the point of imminent collapse, would be described as demented. DEMON (dee'm:n) noun. A portion of a program which is not involved explicitly, but which lies dormant waiting for some condition(s) to occur. See DAEMON. Demons are usually processes that are pieces of a single program, while daemons are usually entire programs running in the context of a large system, such as an operating system. This distinction is admittedly not hard and fast. Demons are particularly common in artificial intelligence programs. For example, a knowledge manipulation program might implement inference rules as demons. Whenever a new piece of knowledge was added, various demons would activate (which demons depends on the particular piece of data) and would create additional pieces of knowledge by applying their respective inference rules to the original piece. These new pieces could in turn activate more demons as the inferences filtered down through chains of logic. Meanwhile the main program could continue with whatever its primary task was. DIDDLE (did':l) 1. verb. To work with in a not particularly serious manner; to make a very simple change (as to a program). Examples: "Let's diddle this piece of code and see if the problem goes away". (That is, let's try the obvious quick fix). "I diddled the text editor to ring the bell before it deletes all your files". 2. noun. The action of result of diddling. Synonyms: TWEAK, TWIDDLE. DIKE (diek) verb. To remove or disable a portion of something, as a wire form a computer or subroutine from a program. A standard slogan: "When in doubt, dike it out". (The implication is that the program [or whatever] is so bad that taking something out can only make things better!) The word "dikes" is widely used among mechanics and engineers to mean "diagonal cutters", a heavy-duty metal cutting device. To "dike something out" means to use such cutters to remove something. Among hackers, this term has been metaphorically extended to nonphysical objects such as pieces of program. DO PROTOCOL verb. To perform an interaction with somebody or something according to a well-defined standard procedure. For example: "Let's do protocol with the check" at a restaurant means to ask the waitress for the check, calculate the tip and everybody's share, make change as necessary, and pay the bill. DOUBLE BUCKY adjective. Using both the "control" and "meta" keys on a keyboard that has them. "The EMACS command to reformat a LISP program is double-bucky-G". (That is, the command is control-meta-G). For a complete explanation, see BUCKY BITS. The following lyrics were written on May 27, 1978, in celebration of the Stanford keyboard. A typical MIT comment was that the "bucky bits" ("control" and "meta" shifting keys) were nice, but there weren't enough of them -- you could only type 512 different characters on a Stanford keyboard. An obvious thing was simply to add more shifting keys, and this was eventually done. One problem is that a keyboard with that many shifting keys is hard on touch typists, who don't like to move their hands away from the home position on the keyboard. It was half-seriously suggested that the extra shifting keys be pedals; typing on such a keyboard would be very much like playing a pipe organ. This idea is mentioned below, in what is a parody of a very fine song by Jeffrey Moss called "Rubber Duckie", which was published in The Sesame Street Songbook. Double Bucky Double bucky, you're the one! You make my keyboard lots of fun. Double bucky, an additional bit or two: (Vo-vo-de-o!) Control and meta, side by side. Augmented ASCII, nine bits wide! Double bucky! Half a thousands glyphs, plus a few! Oh, I sure wish that I Had a couple of Bits more! Perhaps a Set of pedals to Make the number of Bits four: Double double bucky! Double bucky, left and right OR'd together, outta sight! Double bucky, I'd like a whole word of Double bucky, I'm happy I heard of Double bucky, I'd like a whole word of you! --The Great QUUX (with apologies to Jeffrey Moss) DOWN adjective. Not working; deactivated. Example: "The Up escalator is down". That is considered a humorous thing to say, but "The elevator is down" always means "The elevator isn't working", and never refers to what floor the elevator is on. Antonym: UP. GO DOWN verb. To stop functioning, usually said of the SYSTEM. The message every hacker hates to hear from the operator is, "The system will go down in five minutes". TAKE DOWN, BRING DOWN verb. To deactivate purposely, usually for repair work. Example: "I'm taking the system down to work on that BUG in the tape drive". See CRASH. DPB (d:-pib', duh-pib') verb. To plop something down in the middle. Silly. Example: "Dpb yourself into that couch there". (The connotation would be that the couch is full except for one slot just big enough for you to sit in. DPB means "DePosit Byte", and is the name of a PDP-10 instruction that inserts some BITS into the middle of some other bits). DRAGON noun. A program similar to a DAEMON, except that it doesn't sit around waiting for something to happen but is instead used by the SYSTEM to perform various useful tasks that just have to be done periodically. A typical example would be an accounting program that accumulates statistics, keeps track of who is logged in, and so on. Another example: Most time-sharing systems have several terminals, and at any given time some are in use and some are sitting idle. The idle ones usually sit there with some idiotic message on their screens, such as "logged off", from the last time someone used it. One time- -sharing system at MIT puts these idle terminals to good use by displaying useful information on them, such as who is using the computer, where they are, what they're doing, and what their telephone numbers are, along with other information such as pretty pictures (the picture collection includes a unicorn, Snoopy, and the U.S.S. Enter- prise from "Star Treck"). All this information is displayed on idle terminals by the "name dragon", so called because it originally printed just the names of the users. (That it now shows all kinds of things, including useless though pretty pictures, is an example of CREEPING FEATURISM). The "name dragon" is a program started up by the system, and it runs about every five minutes and updates the information on all idly terminals. DWIM (dwim) noun. A complicated procedure (in the INTERLISP dialect of LISP) that attempts to correct your mistakes automatically. For example, if you spell something wrong or don't balance your parentheses properly, it tries to figure out what you meant. DWIM stands for "Do What I Mean". When this works, it is very impressive. When it doesn't work, anything can happen. When a program has become very big and complicated -- so com- plicated that no one can understand how to use it -- it is often suggested in jest that dwim be added to it. See BELLS AND WHISTLES. EL CAMINO BIGNUM (el' k:-mee'noh big'num) noun. El Camino Real. El Camino Real is the name of a street through the San Francisco peninsula that originally extended (and still appears in places) all the way down to Mexico City. Navigation on the San Francisco peninsula is usually done relative to El Camino Real, which is assumed to run north and south even tough it doesn't really in many places (see LOGICAL). El Camino Real runs right past Stanford University, and so is familiar to hackers. The Spanish word real, which has two syllables (ree-ahl'), means "royal"; El Camino Real is "the royal road". Now, the English word real is used in mathematics to describe numbers (and by analogy is misused in computer jargon to mean floating-point numbers). In the FORTRAN language, for example, a "real" quantity is a number typically precise to seven decimal places; and a "double-precision" quantity is a larger floating-point number, precise to perhaps fourteen decimal places. When a hacker from MIT visited Stanford in 1976 or so, he remarked what a long road El Camino Real was. Making a pun on "real", he started calling it "El Camino Double Precision". But when the hacker was told that the road was hundreds of miles long, he renamed it "El Camino Bignum", and among hackers that name has stuck. (See BIGNUM). ENGLISH noun. The source code for a program, which may be in any computer language. This term is slightly obsolete, and used mostly by old-time hackers who were around MIT in the mid-1960s. To a real hacker, a program written in his favorite programming language is as readable as English. EPSILON (ep'si-lahn) 1. noun. A small quantity of anything. Example: "The cost is epsilon". 2. adjective. Very small, negligible. "I tried to speed up the program, but got epsilon improvement". WITHIN EPSILON OF preposition. Close enough to be indistin- guishable for all practical purposes. This is even closer than being within DELTA of. Example: "That's now what I asked for, but it's within epsilon of what I wanted". Alternatively, it may mean not close enough, but very little is required to get is there: "My program is within epsilon of working". EPSILON SQUARED noun. A quantity even smaller than epsilon, as small in relation to epsilon as epsilon is to something normal. Suppose you buy a large computer for one million dollars. You probably need a thousand-dollar terminal to go with it, but by comparison the cost of that is epsilon. If you need a ten-dollar cable to connect them together, its cost is epsilon squared. See DELTA. The terms epsilon and delta are names of Greek letter; the slang usage stems from the traditional use of these letters in mathematics for very small numerical quantities, particularly in so-called "epsilon-delta" proofs in the differential calculus. Once "epsilon" has been mentioned, "delta" is usually used to mean a quantity that is slightly greater than epsilon but still very small. For example, "The cost isn't epsilon, but it's delta" means that the cost isn't totally negligible, but it is nevertheless very small. A quantity that is a little bit smaller than epsilon is "epsilon over 2", and "epsilon squared" is very much smaller than epsilon. EXCH (eks'ch:, ekstch) verb. To exchange two things, one for the other; to swap places. Silly. If you point to two people sitting down and say "Exch!" you are asking them to trade places. EXCH, meaning EXCHange, is the name of a PDP-10 instruction that exchanges the contents of a register and a memory location. EXCL (eks'c:l) noun. The character "!". See CHARACTERS. FAULTY adjective. Nonfunctional; buggy. This word means about the same thing as BAG- BITING, BLETCHEROUS, and LOSING, but the connotation is much milder. FEATURE noun. 1. An intended property of behavior (as of a program). Whether it is good is immaterial. 2. A good property or behavior (as of a program). Whether it was intended is immaterial. 3. A surprising property of behavior; in particular, one that is purposely inconsistent because it works better that way. For example, in the EMACS text editor, the "transpose characters" command will exchange the two characters on either side of the cursor on the screen, except when the cursor is at the end of a line; in that case, the two characters before the cursor are exchanged. While this behavior is perhaps surprising, and certainly inconsistent, it has been found through extensive experimentation to be what most users want. The inconsistency is therefore a feature and not a BUG. 4. A property or behavior that is gratuitous or unnecessary, though perhaps impressive or cute. For example, one feature of the MACLISP language is the ability to print numbers as Roman numerals. See BELLS AND WHISTLES. 5. A property of behavior that was put in to help someone else but that happens to be in your way. A standard joke is that a bug can be turned into a feature simply by documenting it (then theoretically no one can complain about it because it's in the manual), or even by simply declaring it to be good. "That's not a bug; it's a feature!" If someone tells you about some new improvement to a program, you might respond, "Feetch, feetch!" The meaning of this depends critically on vocal inflection. With enthusiasm, it means something like "Boy, that's great! What a great HACK!" Grudgingly or with obvious doubt, it means "I don't know. It sounds like just one more unnecessary and complicated thing." With a tone of resignation, it means "Well, I'd rather keep it simple, but I suppose it has to be done". The following list covers the spectrum of terms used to rate programs or portions thereof (except for the first two, which tend to be applied more to hardware or to the SYSTEM, but are included for completeness): CRASH LOSS HACK STOPPAGE MISFEATURE WIN BRAIN DAMAGE CROCK FEATURE BUG KLUDGE PERFECTION The last is never actually attained. FEEP (feep) 1. noun. The soft electronic "bell" of a display terminal (except for a DEC VT-52!): a beep. 2. verb. To make (or to cause a terminal to make) a "feep" sound. FEEPER noun. The device in the terminal (usually a loudspeaker of some kind) that makes the feep sound. FEEPING CREATURISM noun. This term isn't really well defined, but it sounds so nice (being a spoonerism on CREEPING FEATURISM) that most hackers have said or heard it. It probably has something to do with terminals prowling about in the dark making their customary noises. A true TTY does not feep; it has a real mechanical bell that just rings. Synonyms for "feep" are "beep", "bleep", or just about anything suitably onomatopoeic. (Jeff MacNelly, in his comic strip Shoe, uses the word "eep" for sounds made by computer terminals and video games; this is perhaps the closest one yet.) The term "breedle" is sometimes heard at Stanford, where the terminal bleepers are not particularly soft. (They sound more like the musical equivalent of a raspberry or a Bronx cheer. For a close approximation, imagine the sound of a "Star Trek" communicator's beep lasting for five seconds). By contrast, the feeper on a DEC VT-52 terminal has been compared to the sound of a '52 Chevy stripping it gears. FENCEPOST ERROR noun. An "off-by-one" error: the discrete equivalent of a boundary condition. This problem is often exhibited in programs containing iterative loops: something will be done one time too few or too many. The term comes from the following problem: "If you build a fence 100 feet long with posts 10 feet apart, how many posts do you need?" (Either 9 or 11 is a better answer than the obvious 10.) For example, suppose you have a long list or array of items and want to process items m through n. How many items are there? The obvious answer is n-m, but that is off by one. The right answer is n-m+1. A program that used the "obvious" formula would have a fencepost error in it. Not all off-by-one problems are fencepost errors. The game of Musical Chairs involves an off-by-one problem where N people try to sit in N-1 chairs, but it's not a fencepost error. A fencepost error is typified by counting things rather than counting the spaces between them, or vice versa, or by neglecting to consider whether one should count one or both of the ends of a row. FINE adjective. Good, but not good enough to be CUSPY. This term is used primarily at WPI. The word "fine" is oc- casionally heard elsewhere, too, but does not connote the implicit comparison the higher level of perfection implied by CUSPY. FLAG noun. A variable or quantity that can take on one of two values: a BIT, particularly one that is used to indicate one of two outcomes or is used to control which of two things is to be done. Example: "This flag controls whether to clear the screen before printing the message". "The program status word contains several flag bits". FLAG DAY noun. A day on which a change is made that is neither forward- nor backward compatible (so old programs won't work under the new system, and new programs won't work under the old one), and that is costly to make and costly to undo. Example: "If we change MACLISP to use square brackets instead of parentheses, it will cause a flag day for every- body". A flag day, as well as the weeks or months following, is a time of great confusion for everyone concerned. This term has nothing to do with the use of the word FLAG to mean a variable that has two values. It came into use when a massive change was made to the MULTICS time-sharing system to convert from the old ASCII code to the new one. This was scheduled for Flag Day, June 14, 1966. FLAKY, FLAKEY adjective. Subject to frequent or intermittent failure. This use is of course related to the common slang use of the word, to describe a person as eccentric or crazy. A system that is flaky is working, sort of, enough that you are tempted to try to use it; but it fails frequently enough that the odds in favor of finishing what you start are low. FLAME 1. verb. To speak incessantly and/or rabidly on some relatively uninteresting subject or with a patently ridiculous attitude. 2. noun. A speech or dialogue in which the speakers are flaming. 3. noun. A subject on which a given person likes to flame. FLAME SESSION noun. A meeting in which everyone flames; a "bull session". FLAME ON verb. To continue to flame. FLAMER noun. One who flames: a fanatic. FLAMAGE (flaym':j) noun. Flaming; the content of a flame. (Both flamage and flaming are used in this sense). Synonym: RAVE. When a discussion degenerates into useless controversy, one might tell the participants, "Now you're just flaming!" or "Stop all that flamage!" to get them to cool down (so to speak). FLAP verb. To give the command to unload a MICROTAPE or, more generally, any magnetic tape from its drive. (When this operation is finished, the take-up reel keeps spinning and the end of the tape goes flap, flap, flap...) "I need to use the tape drive; could you please flap your tape?" FLAVOR noun. 1. Variety, type, kind. "EMACS commands come in two flavors: sin- gle-character and named". "These lights come in two flavors: big red ones and small green ones". See VANILLA. 2. The attribute that causes something to be FLAVORFUL. Usually used in the phrase "yields additional flavor". Example: "This feature yields additional flavor by allowing one to print text either right- -side-up or upside-down." FLAVORFUL adjective. Aesthetically pleasing. Antonym: BLETCHEROUS. See TASTE. FLUSH verb. 1. To delete, destroy, or get rid of something, typically something that is useless or superfluous. "All that nonsense has been flushed". This is standard MIT terminology within the ITS time-sharing SYSTEM for aborting an output operation. One speaks of the text that would have been printed -- but was not -- as having been "flushed". Under that time-sharing system, if you ask to have a file printed on your terminal, it is printed a page at a time; at the end of each page, it asks whether you want to see more. If you say no, it says "FLUSHED". (A speculation is that this term arose from a vivid image of flushing unwanted characters by hosing down the internal output buffer, washing the characters away before they can be printed.) 2. To exclude someone from an activity. 3. To leave at the end of a day's work (as opposed to leaving for a meal). Examples: "I'm going to flush now". "Time to flush". See GRONK OUT. FOO (foo) 1. interjection. Term of disgust. For greater emphasis, one says MOBY FOO (see MOBY). 2. noun. The first metasyntactic variable. When you have to invent an arbitrary temporary name for something for the sake of exposition, FOO is usually used. If you need a second one, BAR or BAZ is usually used; there is a slight preference at MIT for bar and at Stanford for baz. (It was probably at Stanford that bar was corrupted to baz). Clearly, bar was the original, for the concatenation FOOBAR is widely used also, and this in turn can be traced to the obscene acronym "FUBAR" that arose in the armed forces during World War II) If bar is used, then baz is used as a third name after that. Example: "The bug can happen in this way. Suppose you have two functions FOO and BAR. FOO calls BAR with two arguments. Now BAR calls BAZ, passing it just one of the two arguments..." In effect, these words serve as extra pronouns; they are always "nonce names". The very fact that they always serve this purpose allows some abbreviation. The preceding example might be shortened without loss of clarity to: "The bug can happen in this way. Suppose FOO calls BAR with two arguments. Now BAR calls BAZ, passing it just one of the two arguments..." Words such as "foo" are called "metasyntactic variables" because, just as a mathematical variable stands for some number, so "foo" always stands for the real name of the thing under discussion. A hacker avoids using "foo" as the real name of anything. Indeed, a standard convention is that any file with "foo" in its name is temporary and can be deleted on sight. FOO? What? What's going on here? See COM MODE. FOOBAR. A concatenation of FOO and BAR. "Foo" is certainly a favorite among hackers. While its use in connection with BAR clearly stems from "FUBAR", its original appearance appears to be untraceable, and may derive from other common interjections such as the Yiddish "Feh!". Bill Holman featured the word "foo" prominently in his comic strip Smokey Stover. FRIED adjective. 1. Nonfunctional because of hardware failure; burned out. Example: "The disk controller is fried". (Sometimes this literally happens to electronic circuits! In particular, resistors can burn out and transformers can melt down, emitting terrible-smelling smoke. However, this term is also used metaphorically.) 2. Of people, exhausted, "burned out". This is said particularly of those who continue to work in such a state, and often used as an explanation or excuse. Example: "Yeah, I know that fix destroyed the file system, but I was fried when I put it in". See FRY FROB (frahb) 1. noun. A protruding arm or trunnion. (This is the official definition by the Tech Model Railroad Club at MIT). 2. Any somewhat small thing; an object that you can comfortably hold in one hand. Something you can frob. See FROBNICATION. 3. verb. Abbreviated form of FROBNICATE. FROBNICATE (frahb'ni-kayt) verb. To manipulate or adjust; to do the appropriate thing to; to play with; to fondle. This word is usually abbreviated to simply "frob", but frobnicate is recognized as the official full form. Examples: "Please frob the light switch". (That is, flip the light switch) "Stop frobbing that clasp. You'll break it". Synonyms: TWEAK, TWIDDLE. Frob, twiddle, and tweak sometimes connote points along a spectrum. Frob connotes aimless manipulation; twiddly connotes gross manipulation, often a coarse search for a proper setting; tweak connotes fine tuning. Suppose someone is turning a knob on an oscil- loscope. If he's carefully adjusting it, searching for some particular point, he is probably tweaking it. If he is turning it rather quickly while looking at the screen, he is probably twiddling it. But if he's just doing it because turning a knob is fun, he's frobbing it. FROBNITZ (frahb'nitz), plural FROBNITZEM (frahb'nit-z:m) noun. 1. An unspecified physical object; a widget; a black box. 2. By extension, a data structure in a program, when regarded as an object. This rare form is usually abbreviated to FROTZ (frahtz), or more commonly, to FROB. Also used are frobnule (frahb'nyool), frobule (frahb'yool), and frobnodule (frahb'nahd'yool). Starting perhaps in 1979, "frobboz" (fruh-bahz', fr:-bahz'), plural "frobbotzim" (fruh- -baht'z:m), has also become very popular, largely due to its exposure as a name via the Adventure-type game called Zork (which originated at MIT). FROG, PHROG 1. interjection. Term of disgust. (Hackers seem to have a lot of them). 2. noun. Of things, a CROCK. Of people, something between a turkey and a toad. FROGGY adjective. Similar to BAGBITING, but milder. "This froggy program is taking forever to run!" FROTZ (frahtz) noun. An abbreviated form of FROBNITZ. MUMBLE FROTZ interjection. A term of fairly mild disgust, usually used as an objection to something someone has just said. See MUMBLE. FRY verb. 1. To fail. Said especially of smoke-producing hardware failures. 2. More generally, to become nonworking. (This term is never said of software, only of hardware and humans). See FRIED. FTP (ef'tee'pee') 1. noun. The File Transfer Protocol for transmitting files between systems on the ARPANET. 2. noun. A program that implements the protocol and thereby helps you to transfer files. 3. verb. To transfer a file using the File Transfer Program. Example: "Lemme get this copy of Wuthering Heights FTP'd from Stan- ford". 4. verb. More generally, to transfer a file between two computers using any electronic network such as ETHERNET (as opposed, say, to using a magnetic tape as the transfer medium). FUDGE 1. verb. To perform in an incomplete but marginally acceptable way, particularly with respect to the writing of a program. "I didn't feel like doing it all the right way, so I fudged it." 2. noun. The code resulting from fudging as defined above. 3. verb. To make something come out the way it was supposed to by making an ex post facto change, such as to a FUDGE FACTOR. All these uses are related to the common slang use of the word to mean something like cheating, as when a scientist fudges his mea- surements to fit his pet theory. FUDGE FACTOR noun. A value or parameter that is varied in an ad hoc way to produce a desired result. See SLOP. GABRIEL noun. An unnecessary (in the opinion of the opponent) stalling tactic when playing volleyball, such as tying one's shoelaces repeatedly or asking the time. Also used to refer to the perpetrator of such tactics. GABRIEL MODE noun. The state a person is in when he performs one stalling tactic after another. See MODE. This is in honor of Richard P. Gabriel, a Stanford hacker and vol- leyball fanatic. His reputation for stalling is a bit undeserved, and has the status of a running gag. One may speak of "pulling a Gabriel" or of "being in Gabriel mode." See RPG. GARPLY (gahrp'lee) noun. A meta-word, like FOO. This one is used mostly at Stanford. GAS 1. interjection. A term of disgust and hatred, implying that gas should be dispensed in generous quantities, thereby extermination the source of irritation. "Some LOSER just reloaded the SYSTEM for no reason! Gas!". 2. An exclamation suggestion that someone or something ought to be FLUSHED (gotten rid of) out of mercy. "The system is getting WEDGED every few minutes. Gas!" 3. verb. To get rid of; to flush. "You should gas that old CRUFTY software". GASEOUS adjective. Deserving of being gassed. GC (jee'see') 1. verb. To clean up and throw away useless things. "I think I'll GC the top of my desk today". 2. To recycle, reclaim, or put to another use. 3. To forget. (The implication is sometimes that one has done so deliberately). "You told me last week where it was, but I GC'd those bits". 4. noun. An instantiation of the GC process. GC is an abbreviation of "garbage collect" or "garbage col- lection", which is computer science jargon for a particular class of strategies used to recycle computer memory. One such strategy involves periodically scanning all the data in memory and discarding useless data items. Occasionally the full phrase is used. Note the ambiguity in usage which has to be resolved by context: "I'm going to garbage-collect my desk" usually means to clean out the drawers, but it could also mean to throw away or recycle the desk itself. GEDANKEN (ge-dahnk-:n) adjective. Wild-eyed; impractical; not well-thought-out; untried; untested. Gedanken is a German word for thought. A thought experiment is one you carry out in you head. In physics, the term "gedanken experiment" refers to an experiment that is impractical to carry out but useful to consider theoretically. (A classic gedanken experiment of relativity theory involves thinking about a man flying through space in an elevator). Gedanken experiments are very useful in physics, but you have to be careful. It was a gedanken experiment that led Aristotle to conclude that heavy things always fall faster than light things (he thought about a rock and a feather). This was accepted until Galileo proved otherwise. Among hackers, however, the word has a pejorative connotation. It is said of a project -- especially one on artificial intelligence research -- which is written up in grand detail (typically as a Ph.D. thesis) without ever begin implemented to any great extent. Such a project is usually perpetrated by people who aren't very good hackers or find programming distasteful or are just in a furry. A gedanken thesis is usually marked by an obvious lack of intuition about what is programmable and what is not, and about what does and does not constitute a clear specification of an algorithm. GLASS TTY (glass ti'tee) noun. A terminal which has a display screen but which, because of hardware or software limitations, behaves like a teletype or other printing terminal, thereby combining the disadvantages of both. Like a printing terminal, it can't do fancy display hacks; and like a display terminal, it doesn't produce hard copy (a paper copy that you can carry away with you). An example is the Lear Siegler ADM-3 terminal, which was actually advertised as "the dumb terminal" when it first came out (implying that it was also cheap). See TTY. GLITCH 1. noun. A sudden interruption in electric service, sanity, continuity, or program function. It may or may not be possible to recover from it. 2. verb. To commit a glitch. See GRITCH. An interruption in electric service is usually called a "power glitch". This is of grave concern because it usually CRASHES all the computers. Have you ever been in the middle of a sentence and then forgotten what you were going to say? If this happened to a hacker, he might say, "Sorry, I just glitched" (This would be a "mental glitch"). This word almost certainly comes from Yiddish, where the verb glitschen means to slide or skid on a slippery surface. A fall while walking on ice would be a glitch. 3. verb. To scroll a display screen. The use of "glitch" to mean "scroll" needs some explanation. When a program prints text on a display screen, there is a question of what to do when it reaches the last line of the screen. There are two main strategies: After the last like, go back to the top line (possibly clearing the screen first). This is called "wraparound". Move all the lines of text on the screen upward one line. The top line of text disappears (it "falls off the top of the screen") because there's no more room for it, and the bottom line of the screen becomes empty and can be used to display the next line of text. This is called "scrolling", because it looks as though a papyrus scroll is zipping past your eyes, unwinding at the bottom and winding up again at the top. The advantage of the scrolling technique is that new text always appears at the bottom of the screen. The disadvantage is that all the text keeps moving upward as new lens are displayed, so it's awfully hard to read it as it flashes by on the screen. (Movie fans know about this problem from trying to read the credits at the end). The computer system at Stanford compromises. It scrolls, but when the last line of the screen has been used, the text is moved up many line (about ten or so). This means that the top ten lines all disappear at once, but the rest stay put on the screen while the next ten lines are being displayed at the bottom. So instead of appearing to move continuously up the screen, the text "jerks" or "glitches" every five seconds or so. GLORK (glohrk) 1. interjection. Term of mild surprise, usually tinged with outrage, as when one attempts to save the results of two house of editing and finds that the SYSTEM has just CRASHED. 2. A meta-word. See FOO. 3. verb. Similar to GLITCH, but usually used reflexively. "My program just glorked itself". GOBBLE verb. To consume or to obtain. "Gobble up" tends to imply "consume", while "gobble down" tends to imply "obtain". Examples: "The output spy gobbles characters out of a TTY output buffer". (See OUTPUT SPY). "I guess I'll gobble down a copy of the documentation tomorrow." See SNARF. GORP (gohrp) This is yet another metasyntactic variable like FOO and BAR. It is used primarily at CMU. (It may be related to its use as the generic term for hiker's dried food, stemming from the acronym "Good Old Raisins and Peanuts", but this is uncertain.) GOSPERISM (gahss'p:r-iz':m) A hack, invention, or saying by arch-hacker R. William (Bill) Gosper. This notion merits its own term because there are so many of them. Many of the entries in HAKMEM are gosperisms. See also LIFE. GRIND verb. 1. To format code, especially LISP code, by indenting the lines so that is looks pretty. (This term is used primarily within the MACLISP community. Elsewhere, to format code so that it looks nice is to "pretty-print" it.) 2. To run seemingly interminably, performing some tedious and in- herently useless task. Synonym: CRUNCH. GRITCH 1. noun. A complaint (often caused by a GLITCH). 2. verb. To complain. Often verb-doubled: "Gritch, gritch". GROK (grahk) verb. To understand, usually in a global sense especially, to understand all the implications and consequences of making a change. Example: "JONL is the only one who groks the MACLISP compiler". This word comes from the science-fiction novel Stranger in a Strange Land by Robert Heinlein, where it is a Martian word meaning roughly "to be one with". GRONK (grahnk) verb. To clear the state of a WEDGED device and restart it. More severe than "to FROB". GRONKED adjective. Of people, the condition of feeling very tired or sick. Of things, totally nonfunctional. (For things, gronked and BROKEN mean about the same thing, but they have very different connotations when used of people. "Gronked" connotes physical ex- haustion of illness, while "broken" connotes mental or emotional illness.) GRONK OUT verb. Of things, to cease functioning. "My terminal just gronked out". Of people, to go home and go to sleep. "I guess I'll gronk out now. See you all tomorrow." When you are gronked, the best thing to do is to gronk out. "Gronk out" is a more specific term than "flush". In both cases you stop hacking and leave, but when you flush you might go home or might go to a restaurant or to see a movie. If you gronk out, however, you intend to go get some sleep. GRONK has been popularized as a noise made by dinosaurs in the comic strip B.C., by Johnny Hart, but the hackers' connotation apparently predates Hart's usage. GROVEL verb. 1. To work interminably and without apparent progress. Often used with "over" or "through". Example: "The file scavenger has been groveling through the file directories for ten minutes now". 2. To examine minutely or in complete detail. "The compiler grovels over the entire source program before beginning to translate it." "I groveled through all the documentation, but I still couldn't find the command I wanted". GROVEL OBSCENELY. This is the standard emphatic form of grovel. GRUNGY (gruhn'jee) adjective. 1. Incredibly dirty, greasy, grubby. Anything that has been washed within the last year is not really grungy. If you sleep all night in your clothes and then get up and start hacking again, you feel grungy. 2. More generally, awful or ugly. Programs (especially CROCKS) can be described as grungy. A person with a headache or a cold probably feels grungy. GUBBISH (guhb'ish) noun. Garbage; crap; nonsense. "What is all this gubbish?" (This word is probably a portmanteau of "garbage" and "rubbish".) GUN verb. To forcibly terminate a program. May be used with or without "down". "Some idiot left a useless background program running, soaking up half the CYCLES. So I gunned it." HACK 1. noun. A quick bit of work that produces what is needed, but not well. 2. The result of that work: a CROCK. (Occasionally the connotation is affectionate). 3. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed. 4. The result of that work. 5. A clever technique. 6. A brilliant practical joke. The value of the hack varies in proportion to its cleverness, harmlessness, surprise values, fame, and appropriate use of technology. 7. verb. With "together", to throw something together so it will work. See CRUFT and KLUDGE. 8. To bear something emotionally or physically. "I can't hack this heat!". 9. To work with a computer. 10. To work on something (typically a program). In specific sense: "What are you doing". "I'm hacking TECO". In general sense: "What do you do around here?" "I hack TECO". (The former is time-immediate, the latter time-extended.) More generally, "I hack x" is roughly equivalent to "X is my bag". Example: "I hack solid-state physics". 11. To pull a prank on. See definition 6 above, and also de- finition 7 of HACKER. 12. To waste time (as opposed to TOOL). Example: "Watcha up to?" "Oh, just hacking". HACK VALUE noun. Term used as the reason or motivation for expending effort toward a seemingly useless goal, the point being that the accomplished goal is a hack. For example, the MACLISP language can read and print integers as Roman numerals; the code for this was installed purely for hack value. HACK UP (ON) verb. To hack, but with the connotation that the result is a hack as in definition 2, above. Examples: "You need a quick-and-dirty sorting routine? I'll see if I can hack one up by tomorrow." "I hacked up on EMACS so it can use the Greek alphabet". HOW'S HACKING? A friendly greeting among hackers. (It recognizes the other person as a hacker and invites him to describe what he has been working on recently.) HAPPY HACKING A farewell. BACK TO HACKING Another farewell. "Happy hacking" implies that the other person will continue hacking (perhaps you interrupted him). "Oh, well, back to hacking" implies that you, the speaker, are going to return to work (and perhaps the other person also). HACK, HACK. A somewhat pointless but friendly comment, often used as a farewell but occasionally also as a greeting. "The word 'hack' doesn't really have sixty-nine different meanings", according to Phil Agre, an MIT hacker. "In fact, one which defies articulation. Which connotation is implied by a given use of the word depends in similarly profound ways on the context. Similar remarks apply to a couple of other hacker words, most notably RANDOM. Hacking might be characterized as "an appropriate application of ingenuity". Whether the result is a quick-and-dirty patchwork job or a carefully crafted work of art, you have to admire the cleverness that went into it. Here are examples of practical-joke hacks: (1) In 1961, students from Caltech (California Institute of Technology in Pasadena) hacked the Rose Bowl football game. One student posed as a reporter and "interviewed" the director of the University of Washington card stunts (such stunts involve people in the stands who hold up colored cards to make pictures). The reporter learned exactly how the stunts were operated, and also that the director would be out to dinner later. While the director was eating, the students (who called themselves the "Fiendish Fourteen") picked a lock and stole one of the direction sheets for the card stunts. They then had a printer run of 2300 copies of the sheet. The next day they picked the lock again and stole the master plans for the stunts, large sheets of graph paper colored in with the stunt pictures. Using these as a guide, they carefully made "corrections" for three of the stunts on the duplicate instruction sheets. Finally, they broke in once more, replacing the stolen master plans and substituting the stack of altered instruction sheets for the original set. The result was that three of the pictures were totally different. Instead of spelling WASHINGTON, the word CALTECH was flashed. Another stunt showed the word HUSKIES, the Washington nickname, but spelled it backward. And what was supposed to have been a picture of a husky instead showed a beaver. (Both Caltech and MIT use the beaver as a mascot. Beavers are nature's engineers). After the game, the Washington faculty athletic representative said, "Some thought it ingenious; others were indignant." The Wa- shington student body president remarked, "No hard feelings, but at the time it was unbelievable. We were amazed." This is now considered a classic hack, particularly because revising the direction sheets constituted a form of programming not unlike computer programming. (2) On November 20, 1982, MIT hacked the Harvard-Yale football game. Just after Harvard's second touchdown against Yale in the second quarter, a small black ball popped up out of the ground at the 40-yard line and grew bigger and bigger and bigger. The letters "MIT" appeared all over the ball. As the players and officials stood around gawking, the ball grew to six feet in diameter and then burst with a bang and a cloud of white smoke. As the Boston Globe later reported, "If you want to know the truth, MIT won The Game". The prank had taken weeks of careful planning by members of MIT's Delta Kappa Epsilon fraternity. The device consisted of a weather balloon, a hydraulic ram powered by Freon gas to lift it out of the ground, and a vacuum-cleaner motor to inflate it. The hackers made eight separate expeditions to Harvard Stadium between 1:00 and 5:00 AM, in which they located an unused 110-volt circuit in the stadium and ran buried wiring from the balloon device. When the time came to activate the device, two fraternity members had merely to flip a circuit breaker and push a plug into an outlet. This stunt had all the earmarks of a perfect hack: surprise, publicity, the ingenious use of technology, safety, and harmlessness. The use of manual control allowed the prank to be timed so as not to disrupt the game (it was set off between plays so the outcome of the game would not be affected). The perpetrators had even thoughtfully attached a note to the balloon explaining that the device was not dangerous and contained no explosives. Harvard president Derek Bok commented: "They have an awful lot of clever people down there at MIT, and they did it again." President Paul E. Gray of MIT said, "There is absolutely no truth to the rumor that I had to do with it, but I wish there were." Such is the way of all good hacks. HACK ATTACK noun. A period of greatly increased hacking activity. "I've been up for thirty hours; I had a hack attack and finished off that new FEATURE I thought would take two weeks to program." HACKER noun. 1. A person who enjoys learning the details of computer systems and how to stretch their capabilities -- as opposed to most users of computers, who prefer learn only the minimum amount necessary. 2. One who programs enthusiastically, or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating HACK VALUE. 4. A person who is good at programming quickly. (By the way, not everything a hacker produces is a hack). 5. An expert on a particular program, or one who frequently does work using it or on it. Example: "A SAIL hacker". (This definition and the preceding ones are correlated, and people who fit them congregate). 6. An expert of any kind. One might be an astronomy hacker, for example. 7. A malicious or inquisitive meddler who tries to discover information by poking around. For example, a "password hacker" is one who tries, possibly by deceptive or illegal means, to discover other people's computer passwords. A "network hacker" is one who tries to learn about the computer network (possibly because he wants to improve it or possibly because he wants to interfere -- one can tell the difference only by context and tone of voice). HACKISH adjective. Being or involving a hack. HACKISHNESS, HACKITUDE noun. The quality of being or involving a hack. (The word "hackitude" is considered silly; the standard term is "hackishness"). Hackers consider themselves somewhat of an elite, though one to which new members are gladly welcome. It is a meritocracy based on ability. There is a certain self-satisfaction in identifying yourself as a hacker (but if you claim to be one and are not, you're quickly labeled BOGUS). HAIR noun. Complexity. "Decoding TECO commands requires a certain amount of hair". INFINITE HAIR, HAIR SQUARED noun. Extreme complexity. The phrase "infinite hair" is usually used in sentences, while "hair squared" is used as an interjection. For example: "I wrote a program to do my income taxes; properly handling Schedule G requires infinite hair". (To which his friend replies, "Hair squared!") HAIRY adjective. 1. Overly complicated. "DWIM is incredibly hairy". 2. Incomprehensible. "DWIM is incredibly hairy". 3. Of people: High-powered, authoritative, rare, expert, or in- comprehensible. This usage is difficult to explain except by example: "He knows a hairy lawyer who says there's nothing to worry about". F. Lee Bailey would be considered hairy. HAKMEM (hak'mem) noun. MIT Artificial Intelligence Memo 239 (February 1972). A collection of neat mathematical, programming, and electronic hacks contributed by people at MIT and elsewhere. (The title of the memo really is HAKMEM, which is a portmanteau word for "hacks memo".) Some of them are very useful techniques or powerful theorems, but most fall into the category of mathematical and computer trivia. A sampling of the entries (with authors), slightly paraphrased: Item 41. (Gene Salamin) There are exactly 23,000 prime numbers less than 2^18. Item 46. (Rich Schroeppel) The most probable suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most evenly distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy. Problem 81 (Rich Schroeppel) Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and re- flection. Item 174. (Bill Gosper and Stuart Nelson) 21963283741 is the only number such that if you represent it on the PDP-10 as both an integer and a floating-point number, the bit patterns of the two representations are identical. HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavor. HANDWAVE 1. verb. To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic. If someone starts a sentence with "Clearly..." or "Obviously..." or "It is self-evident that...", you can be sure he is about to handwave. The idea is that if you wave your hands at the right moment, the listener may be sufficiently distracted that he will not notice that what you have said is BOGUS. Alternatively, if a listener does object, you might try to dismiss the objection "with a wave of your hand". 2. noun. A specific act of handwaving. The use of this word is often accompanied by gestures both hands up, palms forward, swinging the hands in a vertical plane pivoting at the elbows and/or shoulders (depending on the magnitude of the handwave); alternatively, holding the forearms still while rotating the hands at the wrist suffice as a remark. If a speaker makes an outra- geous, unsupported assumption, you might simply wave your hands in this way as an accusation, more eloquent than words could express, that his logic is faulty. HANG verb. 1. To wait for some event to occur; to hang around until something happens. Example: "The program prints out a menu and then hangs until you type a character". 2. To wait for some event that will never occur. "The system is hanging because the disk controller never sent the interrupt signal". HUNG adjective. In the state of hanging. If you're hacking, away at a terminal and suddenly the computer stops responding, you might yell across the hallway, "Is the system hung?". Synonym: WEDGED. HARDWARILY (hahrd-war':-lee) adverb. In a way pertaining to hardware. "The SYSTEM is hardwarily unreliable". Note the adjective "hardwary" is not used. See SOFTWARILY. HIRSUTE adjective. This word is occasionally used humorously as a synonym for HAIRY. HOOK noun. An extraneous piece of software or hardware included in order to simplify later changes of to permit changes by a user. For instance, a PDP-10 program might execu