The Jargon File, Version 4.0.0, 24 Jul 1996 (part 2 of 3)
:language lawyer: /n./ A person, usually an experienced or senior software engineer, who is intimately familiar with many or most of the numerous restrictions and features (both useful and esoteric) applicable to one or more computer programming languages. A language lawyer is distinguished by the ability to show you the five sentences scattered through a 200-plus-page manual that together imply the answer to your question "if only you had thought to look there". Compare {wizard}, {legal}, {legalese}.
:languages of choice: /n./ {C}, {C++}, {LISP}, and {Perl}. Nearly every hacker knows one of C or LISP, and most good ones are fluent in both. C++, despite some serious drawbacks, is generally preferred to other object-oriented languages (though in 1996 it looks as though Java may soon displace it in the affections of hackers, if not everywhere). Since around 1990 Perl has rapidly been gaining favor, especially as a tool for systems-administration utilities and rapid prototyping. Smalltalk and Prolog are also popular in small but influential communities.
There is also a rapidly dwindling category of older hackers with FORTRAN, or even assembler, as their language of choice. They often prefer to be known as {Real Programmer}s, and other hackers consider them a bit odd (see "{The Story of Mel, a Real Programmer}" in Appendix A). Assembler is generally no longer considered interesting or appropriate for anything but {HLL} implementation, {glue}, and a few time-critical and hardware-specific uses in systems programs. FORTRAN occupies a shrinking niche in scientific programming.
Most hackers tend to frown on languages like {{Pascal}} and {{Ada}}, which don't give them the near-total freedom considered necessary for hacking (see {bondage-and-discipline language}), and to regard everything even remotely connected with {COBOL} or other traditional {card walloper} languages as a total and unmitigated {loss}.
:larval stage: /n./ Describes a period of monomaniacal concentration on coding apparently passed through by all fledgling hackers. Common symptoms include the perpetration of more than one 36-hour {hacking run} in a given week; neglect of all other activities including usual basics like food, sleep, and personal hygiene; and a chronic case of advanced bleary-eye. Can last from 6 months to 2 years, the apparent median being around 18 months. A few so afflicted never resume a more `normal' life, but the ordeal seems to be necessary to produce really wizardly (as opposed to merely competent) programmers. See also {wannabee}. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new {OS} or programming language.
:lase: /layz/ /vt./ To print a given document via a laser printer. "OK, let's lase that sucker and see if all those graphics-macro calls did the right things."
:laser chicken: /n./ Kung Pao Chicken, a standard Chinese dish containing chicken, peanuts, and hot red peppers in a spicy pepper-oil sauce. Many hackers call it `laser chicken' for two reasons: It can {zap} you just like a laser, and the sauce has a red color reminiscent of some laser beams.
In a variation on this theme, it is reported that some Australian hackers have redesignated the common dish `lemon chicken' as `Chernobyl Chicken'. The name is derived from the color of the sauce, which is considered bright enough to glow in the dark (as, mythically, do some of the inhabitants of Chernobyl).
:Lasherism: /n./ [Harvard] A program that solves a standard problem (such as the Eight Queens puzzle or implementing the {life} algorithm) in a deliberately nonstandard way. Distinguished from a {crock} or {kluge} by the fact that the programmer did it on purpose as a mental exercise. Such constructions are quite popular in exercises such as the {Obfuscated C Contest}, and occasionally in {retrocomputing}. Lew Lasher was a student at Harvard around 1980 who became notorious for such behavior.
:laundromat: /n./ Syn. {disk farm}; see {washing machine}.
:LDB: /l*'d*b/ /vt./ [from the PDP-10 instruction set] To extract from the middle. "LDB me a slice of cake, please." This usage has been kept alive by Common LISP's function of the same name. Considered silly. See also {DPB}.
:leaf site: /n./ A machine that merely originates and reads Usenet news or mail, and does not relay any third-party traffic. Often uttered in a critical tone; when the ratio of leaf sites to backbone, rib, and other relay sites gets too high, the network tends to develop bottlenecks. Compare {backbone site}, {rib site}.
:leak: /n./ With qualifier, one of a class of resource-management bugs that occur when resources are not freed properly after operations on them are finished, so they effectively disappear (leak out). This leads to eventual exhaustion as new allocation requests come in. {memory leak} and {fd leak} have their own entries; one might also refer, to, say, a `window handle leak' in a window system.
:leaky heap: /n./ [Cambridge] An {arena} with a {memory leak}.
:leapfrog attack: /n./ Use of userid and password information obtained illicitly from one host (e.g., downloading a file of account IDs and passwords, tapping TELNET, etc.) to compromise another host. Also, the act of TELNETting through one or more hosts in order to confuse a trace (a standard cracker procedure).
:leech: /n./ Among BBS types, crackers and {warez d00dz}, one who consumes knowledge without generating new software, cracks, or techniques. BBS culture specifically defines a leech as someone who downloads files with few or no uploads in return, and who does not contribute to the message section. Cracker culture extends this definition to someone (a {lamer}, usually) who constantly presses informed sources for information and/or assistance, but has nothing to contribute.
:legal: /adj./ Loosely used to mean `in accordance with all the relevant rules', esp. in connection with some set of constraints defined by software. "The older =+ alternate for += is no longer legal syntax in ANSI C." "This parser processes each line of legal input the moment it sees the trailing linefeed." Hackers often model their work as a sort of game played with the environment in which the objective is to maneuver through the thicket of `natural laws' to achieve a desired objective. Their use of `legal' is flavored as much by this game-playing sense as by the more conventional one having to do with courts and lawyers. Compare {language lawyer}, {legalese}.
:legalese: /n./ Dense, pedantic verbiage in a language description, product specification, or interface standard; text that seems designed to obfuscate and requires a {language lawyer} to {parse} it. Though hackers are not afraid of high information density and complexity in language (indeed, they rather enjoy both), they share a deep and abiding loathing for legalese; they associate it with deception, {suit}s, and situations in which hackers generally get the short end of the stick.
:LER: /L-E-R/ /n./ [TMRC, from `Light-Emitting Diode'] A light-emitting resistor (that is, one in the process of burning up). Ohm's law was broken. See also {SED}.
:LERP: /lerp/ /vi.,n./ Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. "Bresenham's algorithm lerps incrementally between the two endpoints of the line."
:let the smoke out: /v./ To fry hardware (see {fried}). See {magic smoke} for a discussion of the underlying mythology.
:letterbomb: 1. /n./ A piece of {email} containing {live data} intended to do nefarious things to the recipient's machine or terminal. It is possible, for example, to send letterbombs that will lock up some specific kinds of terminals when they are viewed, so thoroughly that the user must cycle power (see {cycle}, sense 3) to unwedge them. Under Unix, a letterbomb can also try to get part of its contents interpreted as a shell command to the mailer. The results of this could range from silly to tragic. See also {Trojan horse}; compare {nastygram}. 2. Loosely, a {mailbomb}.
:lexer: /lek'sr/ /n./ Common hacker shorthand for `lexical analyzer', the input-tokenizing stage in the parser for a language (the part that breaks it into word-like pieces). "Some C lexers get confused by the old-style compound ops like `=-'."
:lexiphage: /lek'si-fayj`/ /n./ A notorious word {chomper} on ITS. See {bagbiter}. This program would draw on a selected victim's bitmapped terminal the words "THE BAG" in ornate letters, followed a pair of jaws biting pieces of it off.
:life: /n./ 1. A cellular-automata game invented by John Horton Conway and first introduced publicly by Martin Gardner ("Scientific American", October 1970); the game's popularity had to wait a few years for computers on which it could reasonably be played, as it's no fun to simulate the cells by hand. Many hackers pass through a stage of fascination with it, and hackers at various places contributed heavily to the mathematical analysis of this game (most notably Bill Gosper at MIT, who even implemented life in {TECO}!; see {Gosperism}). When a hacker mentions `life', he is much more likely to mean this game than the magazine, the breakfast cereal, or the human state of existence. 2. The opposite of {Usenet}. As in "{Get a life!}"
:Life is hard: /prov./ [XEROX PARC] This phrase has two possible interpretations: (1) "While your suggestion may have some merit, I will behave as though I hadn't heard it." (2) "While your suggestion has obvious merit, equally obvious circumstances prevent it from being seriously considered." The charm of the phrase lies precisely in this subtle but important ambiguity.
:light pipe: /n./ Fiber optic cable. Oppose {copper}.
:lightweight: /adj./ Opposite of {heavyweight}; usually found in combining forms such as `lightweight process'.
:like kicking dead whales down the beach: /adj./ Describes a slow, difficult, and disgusting process. First popularized by a famous quote about the difficulty of getting work done under one of IBM's mainframe OSes. "Well, you *could* write a C compiler in COBOL, but it would be like kicking dead whales down the beach." See also {fear and loathing}.
:like nailing jelly to a tree: /adj./ Used to describe a task thought to be impossible, esp. one in which the difficulty arises from poor specification or inherent slipperiness in the problem domain. "Trying to display the `prettiest' arrangement of nodes and arcs that diagrams a given graph is like nailing jelly to a tree, because nobody's sure what `prettiest' means algorithmically."
Hacker use of this term may recall mainstream slang originated early in the 20th century by President Theodore Roosevelt. There is a legend that, weary of inconclusive talks with Colombia over the right to dig a canal through its then-province Panama, he remarked, "Negotiating with those pirates is like trying to nail currant jelly to the wall." Roosevelt's government subsequently encouraged the anti-Colombian insurgency that created the nation of Panama.
:line 666: [from Christian eschatological myth] /n./ The notional line of source at which a program fails for obscure reasons, implying either that *somebody* is out to get it (when you are the programmer), or that it richly deserves to be so gotten (when you are not). "It works when I trace through it, but seems to crash on line 666 when I run it." "What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit hardcoded a buffer size."
:line eater, the: /n. obs./ [Usenet] 1. A bug in some now-obsolete versions of the netnews software that used to eat up to BUFSIZ bytes of the article text. The bug was triggered by having the text of the article start with a space or tab. This bug was quickly personified as a mythical creature called the `line eater', and postings often included a dummy line of `line eater food'. Ironically, line eater `food' not beginning with a space or tab wasn't actually eaten, since the bug was avoided; but if there *was* a space or tab before it, then the line eater would eat the food *and* the beginning of the text it was supposed to be protecting. The practice of `sacrificing to the line eater' continued for some time after the bug had been {nailed to the wall}, and is still humorously referred to. The bug itself was still occasionally reported to be lurking in some mail-to-netnews gateways as late as 1991. 2. See {NSA line eater}.
:line noise: /n./ 1. [techspeak] Spurious characters due to electrical noise in a communications link, especially an RS-232 serial connection. Line noise may be induced by poor connections, interference or crosstalk from other circuits, electrical storms, {cosmic rays}, or (notionally) birds crapping on the phone wires. 2. Any chunk of data in a file or elsewhere that looks like the results of line noise in sense 1. 3. Text that is theoretically a readable text or program source but employs syntax so bizarre that it looks like line noise in senses 1 or 2. Yes, there are languages this ugly. The canonical example is {TECO}; it is often claimed that "TECO's input syntax is indistinguishable from line noise." Other non-{WYSIWYG} editors, such as Multics `qed' and Unix `ed', in the hands of a real hacker, also qualify easily, as do deliberately obfuscated languages such as {INTERCAL}.
:line starve: [MIT] 1. /vi./ To feed paper through a printer the wrong way by one line (most printers can't do this). On a display terminal, to move the cursor up to the previous line of the screen. "To print `X squared', you just output `X', line starve, `2', line feed." (The line starve causes the `2' to appear on the line above the `X', and the line feed gets back to the original line.) 2. /n./ A character (or character sequence) that causes a terminal to perform this action. ASCII 0011010, also called SUB or control-Z, was one common line-starve character in the days before microcomputers and the X3.64 terminal standard. Unlike `line feed', `line starve' is *not* standard {{ASCII}} terminology. Even among hackers it is considered a bit silly. 3. [proposed] A sequence such as \c (used in System V echo, as well as {{nroff}} and {{troff}}) that suppresses a {newline} or other character(s) that would normally be emitted.
:linearithmic: /adj./ Of an algorithm, having running time that is O(N log N). Coined as a portmanteau of `linear' and `logarithmic' in "Algorithms In C" by Robert Sedgewick (Addison-Wesley 1990, ISBN 0-201-51425-7).
:link farm: /n./ [Unix] A directory tree that contains many links to files in a master directory tree of files. Link farms save space when one is maintaining several nearly identical copies of the same source tree -- for example, when the only difference is architecture-dependent object files. "Let's freeze the source and then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms." Link farms may also be used to get around restrictions on the number of `-I' (include-file directory) arguments on older C preprocessors. However, they can also get completely out of hand, becoming the filesystem equivalent of {spaghetti code}.
:link-dead: /adj./ [MUD] Said of a {MUD} character who has frozen in place because of a dropped Internet connection.
:lint: [from Unix's `lint(1)', named for the bits of fluff it supposedly picks from programs] 1. /vt./ To examine a program closely for style, language usage, and portability problems, esp. if in C, esp. if via use of automated analysis tools, most esp. if the Unix utility `lint(1)' is used. This term used to be restricted to use of `lint(1)' itself, but (judging by references on Usenet) it has become a shorthand for {desk check} at some non-Unix shops, even in languages other than C. Also as /v./ {delint}. 2. /n./ Excess verbiage in a document, as in "This draft has too much lint".
:Linux:: /lee'nuhks/ or /li'nuks/, *not* /li:'nuhks/ /n./ The free Unix workalike created by Linus Torvalds and friends starting about 1990 (the pronunciation /lee'nuhks/ is preferred because the name `Linus' has an /ee/ sound in Swedish). This may be the most remarkable hacker project in history -- an entire clone of Unix for 386, 486 and Pentium micros, distributed for free with sources over the net (ports to Alpha and Sparc-based machines are underway). This is what {GNU} aimed to be, but the Free Software Foundation has not (as of early 1996) produced the kernel to go with its Unix toolset (which Linux uses). Other, similar efforts like FreeBSD and NetBSD have been much less successful. The secret of Linux's success seems to be that Linus worked much harder early on to keep the development process open and recruit other hackers, creating a snowball effect.
:lion food: /n./ [IBM] Middle management or HQ staff (or, by extension, administrative drones in general). From an old joke about two lions who, escaping from the zoo, split up to increase their chances but agree to meet after 2 months. When they finally meet, one is skinny and the other overweight. The thin one says: "How did you manage? I ate a human just once and they turned out a small army to chase me -- guns, nets, it was terrible. Since then I've been reduced to eating mice, insects, even grass." The fat one replies: "Well, *I* hid near an IBM office and ate a manager a day. And nobody even noticed!"
:Lions Book: /n./ "Source Code and Commentary on Unix level 6", by John Lions. The two parts of this book contained (1) the entire source listing of the Unix Version 6 kernel, and (2) a commentary on the source discussing the algorithms. These were circulated internally at the University of New South Wales beginning 1976--77, and were, for years after, the *only* detailed kernel documentation available to anyone outside Bell Labs. Because Western Electric wished to maintain trade secret status on the kernel, the Lions Book was only supposed to be distributed to affiliates of source licensees. In spite of this, it soon spread by samizdat to a good many of the early Unix hackers.
[1996 update: The Lions book lives again! It will finally see legal public print as ISBN 1-57398-013-7 from Peer-To-Peer Communications, with a forward by Dennis Ritchie.]
:LISP: /n./ [from `LISt Processing language', but mythically from `Lots of Irritating Superfluous Parentheses'] AI's mother tongue, a language based on the ideas of (a) variable-length lists and trees as fundamental data types, and (b) the interpretation of code as data and vice-versa. Invented by John McCarthy at MIT in the late 1950s, it is actually older than any other {HLL} still in use except FORTRAN. Accordingly, it has undergone considerable adaptive radiation over the years; modern variants are quite different in detail from the original LISP 1.5. The dominant HLL among hackers until the early 1980s, LISP now shares the throne with {C}. See {languages of choice}.
All LISP functions and programs are expressions that return values; this, together with the high memory utilization of LISPs, gave rise to Alan Perlis's famous quip (itself a take on an Oscar Wilde quote) that "LISP programmers know the value of everything and the cost of nothing".
One significant application for LISP has been as a proof by example that most newer languages, such as {COBOL} and {Ada}, are full of unnecessary {crock}s. When the {Right Thing} has already been done once, there is no justification for {bogosity} in newer languages.
:list-bomb: /v./ To {mailbomb} someone by forging messages causing the victim to become a subscriber to many mailing lists. This is a self-defeating tactic; it merely forces mailing list servers to require confirmation by return message for every subscription.
:literature, the: /n./ Computer-science journals and other publications, vaguely gestured at to answer a question that the speaker believes is {trivial}. Thus, one might answer an annoying question by saying "It's in the literature." Oppose {Knuth}, which has no connotation of triviality.
:lithium lick: /n./ [NeXT] Steve Jobs. Employees who have gotten too much attention from their esteemed founder are said to have `lithium lick' when they begin to show signs of Jobsian fervor and repeat the most recent catch phrases in normal conversation --- for example, "It just works, right out of the box!"
:little-endian: /adj./ Describes a computer architecture in which, within a given 16- or 32-bit word, bytes at lower addresses have lower significance (the word is stored `little-end-first'). The PDP-11 and VAX families of computers and Intel microprocessors and a lot of communications and networking hardware are little-endian. See {big-endian}, {middle-endian}, {NUXI problem}. The term is sometimes used to describe the ordering of units other than bytes; most often, bits within a byte.
:live: /li:v/ /adj.,adv./ Opposite of `test'. Refers to actual real-world data or a program working with it. For example, the response to "I think the record deleter is finished" might be "Is it live yet?" or "Have you tried it out on live data?" This usage usually carries the connotation that live data is more fragile and must not be corrupted, or bad things will happen. So a more appropriate response might be: "Well, make sure it works perfectly before we throw live data at it." The implication here is that record deletion is something pretty significant, and a haywire record-deleter running amok live would probably cause great harm.
:live data: /n./ 1. Data that is written to be interpreted and takes over program flow when triggered by some un-obvious operation, such as viewing it. One use of such hacks is to break security. For example, some smart terminals have commands that allow one to download strings to program keys; this can be used to write live data that, when listed to the terminal, infects it with a security-breaking {virus} that is triggered the next time a hapless user strikes that key. For another, there are some well-known bugs in {vi} that allow certain texts to send arbitrary commands back to the machine when they are simply viewed. 2. In C code, data that includes pointers to function {hook}s (executable code). 3. An object, such as a {trampoline}, that is constructed on the fly by a program and intended to be executed as code.
:Live Free Or Die!: /imp./ 1. The state motto of New Hampshire, which appears on that state's automobile license plates. 2. A slogan associated with Unix in the romantic days when Unix aficionados saw themselves as a tiny, beleaguered underground tilting against the windmills of industry. The "free" referred specifically to freedom from the {fascist} design philosophies and crufty misfeatures common on commercial operating systems. Armando Stettner, one of the early Unix developers, used to give out fake license plates bearing this motto under a large Unix, all in New Hampshire colors of green and white. These are now valued collector's items. Recently (1994) an inferior imitation of these has been put in circulation with a red corporate logo added.
:livelock: /li:v'lok/ /n./ A situation in which some critical stage of a task is unable to finish because its clients perpetually create more work for it to do after they have been serviced but before it can clear its queue. Differs from {deadlock} in that the process is not blocked or waiting for anything, but has a virtually infinite amount of work to do and can never catch up.
:liveware: /li:v'weir/ /n./ 1. Synonym for {wetware}. Less common. 2. [Cambridge] Vermin. "Waiter, there's some liveware in my salad..."
:lobotomy: /n./ 1. What a hacker subjected to formal management training is said to have undergone. At IBM and elsewhere this term is used by both hackers and low-level management; the latter doubtless intend it as a joke. 2. The act of removing the processor from a microcomputer in order to replace or upgrade it. Some very cheap {clone} systems are sold in `lobotomized' form -- everything but the brain.
:locals, the: /pl.n./ The users on one's local network (as opposed, say, to people one reaches via public Internet or UUCP connects). The marked thing about this usage is how little it has to do with real-space distance. "I have to do some tweaking on this mail utility before releasing it to the locals."
:locked and loaded: /adj./ [from military slang for an M-16 rifle with magazine inserted and prepared for firing] Said of a removable disk volume properly prepared for use -- that is, locked into the drive and with the heads loaded. Ironically, because their heads are `loaded' whenever the power is up, this description is never used of {{Winchester}} drives (which are named after a rifle).
:locked up: /adj./ Syn. for {hung}, {wedged}.
:logic bomb: /n./ Code surreptitiously inserted into an application or OS that causes it to perform some destructive or security-compromising activity whenever specified conditions are met. Compare {back door}.
:logical: /adj./ [from the technical term `logical device', wherein a physical device is referred to by an arbitrary `logical' name] Having the role of. If a person (say, Les Earnest at SAIL) who had long held a certain post left and were replaced, the replacement would for a while be known as the `logical' Les Earnest. (This does not imply any judgment on the replacement.) Compare {virtual}.
At Stanford, `logical' compass directions denote a coordinate system in which `logical north' is toward San Francisco, `logical west' is toward the ocean, etc., even though logical north varies between physical (true) north near San Francisco and physical west near San Jose. (The best rule of thumb here is that, by definition, El Camino Real always runs logical north-and-south.) In giving directions, one might say: "To get to Rincon Tarasco restaurant, get onto {El Camino Bignum} going logical north." Using the word `logical' helps to prevent the recipient from worrying about that the fact that the sun is setting almost directly in front of him. The concept is reinforced by North American highways which are almost, but not quite, consistently labeled with logical rather than physical directions. A similar situation exists at MIT: Route 128 (famous for the electronics industry that has grown up along it) is a 3-quarters circle surrounding Boston at a radius of 10 miles, terminating near the coastline at each end. It would be most precise to describe the two directions along this highway as `clockwise' and `counterclockwise', but the road signs all say "north" and "south", respectively. A hacker might describe these directions as `logical north' and `logical south', to indicate that they are conventional directions not corresponding to the usual denotation for those words. (If you went logical south along the entire length of route 128, you would start out going northwest, curve around to the south, and finish headed due east, passing along one infamous stretch of pavement that is simultaneously route 128 south and Interstate 93 north, and is signed as such!)
:loop through: /vt./ To process each element of a list of things. "Hold on, I've got to loop through my paper mail." Derives from the computer-language notion of an iterative loop; compare `cdr down' (under {cdr}), which is less common among C and Unix programmers. ITS hackers used to say `IRP over' after an obscure pseudo-op in the MIDAS PDP-10 assembler (the same IRP op can nowadays be found in Microsoft's assembler).
:loose bytes: /n./ Commonwealth hackish term for the padding bytes or {shim}s many compilers insert between members of a record or structure to cope with alignment requirements imposed by the machine architecture.
:lord high fixer: /n./ [primarily British, from Gilbert & Sullivan's `lord high executioner'] The person in an organization who knows the most about some aspect of a system. See {wizard}.
:lose: [MIT] /vi./ 1. To fail. A program loses when it encounters an exceptional condition or fails to work in the expected manner. 2. To be exceptionally unesthetic or crocky. 3. Of people, to be obnoxious or unusually stupid (as opposed to ignorant). See also {deserves to lose}. 4. /n./ Refers to something that is {losing}, especially in the phrases "That's a lose!" and "What a lose!"
:lose lose: /interj./ A reply to or comment on an undesirable situation. "I accidentally deleted all my files!" "Lose, lose."
:loser: /n./ An unexpectedly bad situation, program, programmer, or person. Someone who habitually loses. (Even winners can lose occasionally.) Someone who knows not and knows not that he knows not. Emphatic forms are `real loser', `total loser', and `complete loser' (but not **`moby loser', which would be a contradiction in terms). See {luser}.
:losing: /adj./ Said of anything that is or causes a {lose} or {lossage}.
:loss: /n./ Something (not a person) that loses; a situation in which something is losing. Emphatic forms include `moby loss', and `total loss', `complete loss'. Common interjections are "What a loss!" and "What a moby loss!" Note that `moby loss' is OK even though **`moby loser' is not used; applied to an abstract noun, moby is simply a magnifier, whereas when applied to a person it implies substance and has positive connotations. Compare {lossage}.
:lossage: /los'*j/ /n./ The result of a bug or malfunction. This is a mass or collective noun. "What a loss!" and "What lossage!" are nearly synonymous. The former is slightly more particular to the speaker's present circumstances; the latter implies a continuing {lose} of which the speaker is currently a victim. Thus (for example) a temporary hardware failure is a loss, but bugs in an important tool (like a compiler) are serious lossage.
:lost in the noise: /adj./ Syn. {lost in the underflow}. This term is from signal processing, where signals of very small amplitude cannot be separated from low-intensity noise in the system. Though popular among hackers, it is not confined to hackerdom; physicists, engineers, astronomers, and statisticians all use it.
:lost in the underflow: /adj./ Too small to be worth considering; more specifically, small beyond the limits of accuracy or measurement. This is a reference to `floating underflow', a condition that can occur when a floating-point arithmetic processor tries to handle quantities smaller than its limit of magnitude. It is also a pun on `undertow' (a kind of fast, cold current that sometimes runs just offshore and can be dangerous to swimmers). "Well, sure, photon pressure from the stadium lights alters the path of a thrown baseball, but that effect gets lost in the underflow." Compare {epsilon}, {epsilon squared}; see also {overflow bit}.
:lots of MIPS but no I/O: /adj./ Used to describe a person who is technically brilliant but can't seem to communicate with human beings effectively. Technically it describes a machine that has lots of processing power but is bottlenecked on input-output (in 1991, the IBM Rios, a.k.a. RS/6000, is a notorious recent example).
:low-bandwidth: /adj./ [from communication theory] Used to indicate a talk that, although not {content-free}, was not terribly informative. "That was a low-bandwidth talk, but what can you expect for an audience of {suit}s!" Compare {zero-content}, {bandwidth}, {math-out}.
:LPT: /L-P-T/ or /lip'it/ or /lip-it'/ /n./ Line printer, of course. Rare under Unix, more common among hackers who grew up with ITS, MS-DOS, CP/M and other operating systems that were strongly influenced by early DEC conventions.
:Lubarsky's Law of Cybernetic Entomology: /prov./ "There is *always* one more bug."
:lunatic fringe: /n./ [IBM] Customers who can be relied upon to accept release 1 versions of software.
:lurker: /n./ One of the `silent majority' in a electronic forum; one who posts occasionally or not at all but is known to read the group's postings regularly. This term is not pejorative and indeed is casually used reflexively: "Oh, I'm just lurking." Often used in `the lurkers', the hypothetical audience for the group's {flamage}-emitting regulars. When a lurker speaks up for the first time, this is called `delurking'.
:luser: /loo'zr/ /n./ A {user}; esp. one who is also a {loser}. ({luser} and {loser} are pronounced identically.) This word was coined around 1975 at MIT. Under ITS, when you first walked up to a terminal at MIT and typed Control-Z to get the computer's attention, it printed out some status information, including how many people were already using the computer; it might print "14 users", for example. Someone thought it would be a great joke to patch the system to print "14 losers" instead. There ensued a great controversy, as some of the users didn't particularly want to be called losers to their faces every time they used the computer. For a while several hackers struggled covertly, each changing the message behind the back of the others; any time you logged into the computer it was even money whether it would say "users" or "losers". Finally, someone tried the compromise "lusers", and it stuck. Later one of the ITS machines supported `luser' as a request-for-help command. ITS died the death in mid-1990, except as a museum piece; the usage lives on, however, and the term `luser' is often seen in program comments.
= M = =====
:M: /pref./ (on units) suff. (on numbers) [SI] See {{quantifiers}}.
:macdink: /mak'dink/ /vt./ [from the Apple Macintosh, which is said to encourage such behavior] To make many incremental and unnecessary cosmetic changes to a program or file. Often the subject of the macdinking would be better off without them. "When I left at 11 P.M. last night, he was still macdinking the slides for his presentation." See also {fritterware}, {window shopping}.
:machinable: /adj./ Machine-readable. Having the {softcopy} nature.
:machoflops: /mach'oh-flops/ /n./ [pun on `megaflops', a coinage for `millions of FLoating-point Operations Per Second'] Refers to artificially inflated performance figures often quoted by computer manufacturers. Real applications are lucky to get half the quoted speed. See {Your mileage may vary}, {benchmark}.
:Macintoy: /mak'in-toy/ /n./ The Apple Macintosh, considered as a {toy}. Less pejorative than {Macintrash}.
:Macintrash: /mak'in-trash`/ /n./ The Apple Macintosh, as described by a hacker who doesn't appreciate being kept away from the *real computer* by the interface. The term {maggotbox} has been reported in regular use in the Research Triangle area of North Carolina. Compare {Macintoy}. See also {beige toaster}, {WIMP environment}, {point-and-drool interface}, {drool-proof paper}, {user-friendly}.
:macro: /mak'roh/ [techspeak] /n./ A name (possibly followed by a formal {arg} list) that is equated to a text or symbolic expression to which it is to be expanded (possibly with the substitution of actual arguments) by a macro expander. This definition can be found in any technical dictionary; what those won't tell you is how the hackish connotations of the term have changed over time.
The term `macro' originated in early assemblers, which encouraged the use of macros as a structuring and information-hiding device. During the early 1970s, macro assemblers became ubiquitous, and sometimes quite as powerful and expensive as {HLL}s, only to fall from favor as improving compiler technology marginalized assembler programming (see {languages of choice}). Nowadays the term is most often used in connection with the C preprocessor, LISP, or one of several special-purpose languages built around a macro-expansion facility (such as TeX or Unix's [nt]roff suite).
Indeed, the meaning has drifted enough that the collective `macros' is now sometimes used for code in any special-purpose application control language (whether or not the language is actually translated by text expansion), and for macro-like entities such as the `keyboard macros' supported in some text editors (and PC TSR or Macintosh INIT/CDEV keyboard enhancers).
:macro-: /pref./ Large. Opposite of {micro-}. In the mainstream and among other technical cultures (for example, medical people) this competes with the prefix {mega-}, but hackers tend to restrict the latter to quantification.
:macrology: /mak-rol'*-jee/ /n./ 1. Set of usually complex or crufty macros, e.g., as part of a large system written in {LISP}, {TECO}, or (less commonly) assembler. 2. The art and science involved in comprehending a macrology in sense 1. Sometimes studying the macrology of a system is not unlike archeology, ecology, or {theology}, hence the sound-alike construction. See also {boxology}.
:macrotape: /mak'roh-tayp/ /n./ An industry-standard reel of tape, as opposed to a {microtape}. See also {round tape}.
:maggotbox: /mag'*t-boks/ /n./ See {Macintrash}. This is even more derogatory.
:magic: /adj./ 1. As yet unexplained, or too complicated to explain; compare {automagically} and (Arthur C.) Clarke's Third Law: "Any sufficiently advanced technology is indistinguishable from magic." "TTY echoing is controlled by a large number of magic bits." "This routine magically computes the parity of an 8-bit byte in three instructions." 2. Characteristic of something that works although no one really understands why (this is especially called {black magic}). 3. [Stanford] A feature not generally publicized that allows something otherwise impossible, or a feature formerly in that category but now unveiled. Compare {black magic}, {wizardly}, {deep magic}, {heavy wizardry}.
For more about hackish `magic', see {A Story About `Magic'} in Appendix A.
:magic cookie: /n./ [Unix] 1. Something passed between routines or programs that enables the receiver to perform some operation; a capability ticket or opaque identifier. Especially used of small data objects that contain data encoded in a strange or intrinsically machine-dependent way. E.g., on non-Unix OSes with a non-byte-stream model of files, the result of `ftell(3)' may be a magic cookie rather than a byte offset; it can be passed to `fseek(3)', but not operated on in any meaningful way. The phrase `it hands you a magic cookie' means it returns a result whose contents are not defined but which can be passed back to the same or some other program later. 2. An in-band code for changing graphic rendition (e.g., inverse video or underlining) or performing other control functions (see also {cookie}). Some older terminals would leave a blank on the screen corresponding to mode-change magic cookies; this was also called a {glitch} (or occasionally a `turd'; compare {mouse droppings}). See also {cookie}.
:magic number: /n./ [Unix/C] 1. In source code, some non-obvious constant whose value is significant to the operation of a program and that is inserted inconspicuously in-line ({hardcoded}), rather than expanded in by a symbol set by a commented `#define'. Magic numbers in this sense are bad style. 2. A number that encodes critical information used in an algorithm in some opaque way. The classic examples of these are the numbers used in hash or CRC functions, or the coefficients in a linear congruential generator for pseudo-random numbers. This sense actually predates and was ancestral to the more commonsense 1. 3. Special data located at the beginning of a binary data file to indicate its type to a utility. Under Unix, the system and various applications programs (especially the linker) distinguish between types of executable file by looking for a magic number. Once upon a time, these magic numbers were PDP-11 branch instructions that skipped over header data to the start of executable code; 0407, for example, was octal for `branch 16 bytes relative'. Many other kinds of files now have magic numbers somewhere; some magic numbers are, in fact, strings, like the `!<arch>' at the beginning of a Unix archive file or the `%!' leading PostScript files. Nowadays only a {wizard} knows the spells to create magic numbers. How do you choose a fresh magic number of your own? Simple -- you pick one at random. See? It's magic!
*The* magic number, on the other hand, is 7+/-2. See "The magical number seven, plus or minus two: some limits on our capacity for processing information" by George Miller, in the "Psychological Review" 63:81-97 (1956). This classic paper established the number of distinct items (such as numeric digits) that humans can hold in short-term memory. Among other things, this strongly influenced the interface design of the phone system.
:magic smoke: /n./ A substance trapped inside IC packages that enables them to function (also called `blue smoke'; this is similar to the archaic `phlogiston' hypothesis about combustion). Its existence is demonstrated by what happens when a chip burns up -- the magic smoke gets let out, so it doesn't work any more. See {smoke test}, {let the smoke out}.
Usenetter Jay Maynard tells the following story: "Once, while hacking on a dedicated Z80 system, I was testing code by blowing EPROMs and plugging them in the system, then seeing what happened. One time, I plugged one in backwards. I only discovered that *after* I realized that Intel didn't put power-on lights under the quartz windows on the tops of their EPROMs -- the die was glowing white-hot. Amazingly, the EPROM worked fine after I erased it, filled it full of zeros, then erased it again. For all I know, it's still in service. Of course, this is because the magic smoke didn't get let out." Compare the original phrasing of {Murphy's Law}.
:mail storm: /n./ [from {broadcast storm}, influenced by `maelstrom'] What often happens when a machine with an Internet connection and active users re-connects after extended downtime --- a flood of incoming mail that brings the machine to its knees. See also {hairball}.
:mailbomb: (also mail bomb) [Usenet] 1. /v./ To send, or urge others to send, massive amounts of {email} to a single system or person, esp. with intent to crash or {spam} the recipient's system. Sometimes done in retaliation for a perceived serious offense. Mailbombing is itself widely regarded as a serious offense -- it can disrupt email traffic or other facilities for innocent users on the victim's system, and in extreme cases, even at upstream sites. 2. /n./ An automatic procedure with a similar effect. 3. /n./ The mail sent. Compare {letterbomb}, {nastygram}, {BLOB} (sense 2), {list-bomb}.
:mailing list: /n./ (often shortened in context to `list') 1. An {email} address that is an alias (or {macro}, though that word is never used in this connection) for many other email addresses. Some mailing lists are simple `reflectors', redirecting mail sent to them to the list of recipients. Others are filtered by humans or programs of varying degrees of sophistication; lists filtered by humans are said to be `moderated'. 2. The people who receive your email when you send it to such an address.
Mailing lists are one of the primary forms of hacker interaction, along with {Usenet}. They predate Usenet, having originated with the first UUCP and ARPANET connections. They are often used for private information-sharing on topics that would be too specialized for or inappropriate to public Usenet groups. Though some of these maintain almost purely technical content (such as the Internet Engineering Task Force mailing list), others (like the `sf-lovers' list maintained for many years by Saul Jaffe) are recreational, and many are purely social. Perhaps the most infamous of the social lists was the eccentric bandykin distribution; its latter-day progeny, lectroids and tanstaafl, still include a number of the oddest and most interesting people in hackerdom.
Mailing lists are easy to create and (unlike Usenet) don't tie up a significant amount of machine resources (until they get very large, at which point they can become interesting torture tests for mail software). Thus, they are often created temporarily by working groups, the members of which can then collaborate on a project without ever needing to meet face-to-face. Much of the material in this lexicon was criticized and polished on just such a mailing list (called `jargon-friends'), which included all the co-authors of Steele-1983.
:main loop: /n./ The top-level control flow construct in an input- or event-driven program, the one which receives and acts or dispatches on the program's input. See also {driver}.
:mainframe: /n./ Term originally referring to the cabinet containing the central processor unit or `main frame' of a room-filling {Stone Age} batch machine. After the emergence of smaller `minicomputer' designs in the early 1970s, the traditional {big iron} machines were described as `mainframe computers' and eventually just as mainframes. The term carries the connotation of a machine designed for batch rather than interactive use, though possibly with an interactive timesharing operating system retrofitted onto it; it is especially used of machines built by IBM, Unisys, and the other great {dinosaur}s surviving from computing's {Stone Age}.
It has been common wisdom among hackers since the late 1980s that the mainframe architectural tradition is essentially dead (outside of the tiny market for {number-crunching} supercomputers (see {cray})), having been swamped by the recent huge advances in IC technology and low-cost personal computing. As of 1993, corporate America is just beginning to figure this out -- the wave of failures, takeovers, and mergers among traditional mainframe makers have certainly provided sufficient omens (see {dinosaurs mating} and {killer micro}).
:management: /n./ 1. Corporate power elites distinguished primarily by their distance from actual productive work and their chronic failure to manage (see also {suit}). Spoken derisively, as in "*Management* decided that ...". 2. Mythically, a vast bureaucracy responsible for all the world's minor irritations. Hackers' satirical public notices are often signed `The Mgt'; this derives from the "Illuminatus" novels (see the {Bibliography} in Appendix C).
:mandelbug: /man'del-buhg/ /n./ [from the Mandelbrot set] A bug whose underlying causes are so complex and obscure as to make its behavior appear chaotic or even non-deterministic. This term implies that the speaker thinks it is a {Bohr bug}, rather than a {heisenbug}. See also {schroedinbug}.
:manged: /mahnjd/ /n./ [probably from the French `manger' or Italian `mangiare', to eat; perhaps influenced by English `mange', `mangy'] /adj./ Refers to anything that is mangled or damaged, usually beyond repair. "The disk was manged after the electrical storm." Compare {mung}.
:mangle: /vt./ Used similarly to {mung} or {scribble}, but more violent in its connotations; something that is mangled has been irreversibly and totally trashed.
:mangler: /n./ [DEC] A manager. Compare {management}. Note that {system mangler} is somewhat different in connotation.
:manularity: /man`yoo-la'ri-tee/ /n./ [prob. fr. techspeak `manual' + `granularity'] A notional measure of the manual labor required for some task, particularly one of the sort that automation is supposed to eliminate. "Composing English on paper has much higher manularity than using a text editor, especially in the revising stage." Hackers tend to consider manularity a symptom of primitive methods; in fact, a true hacker confronted with an apparent requirement to do a computing task {by hand} will inevitably seize the opportunity to build another tool (see {toolsmith}).
:marbles: /pl.n./ [from mainstream "lost all his/her marbles"] The minimum needed to build your way further up some hierarchy of tools or abstractions. After a bad system crash, you need to determine if the machine has enough marbles to come up on its own, or enough marbles to allow a rebuild from backups, or if you need to rebuild from scratch. "This compiler doesn't even have enough marbles to compile {hello, world}."
:marginal: /adj./ 1. Extremely small. "A marginal increase in {core} can decrease {GC} time drastically." In everyday terms, this means that it is a lot easier to clean off your desk if you have a spare place to put some of the junk while you sort through it. 2. Of extremely small merit. "This proposed new feature seems rather marginal to me." 3. Of extremely small probability of {win}ning. "The power supply was rather marginal anyway; no wonder it fried."
:Marginal Hacks: /n./ Margaret Jacks Hall, a building into which the Stanford AI Lab was moved near the beginning of the 1980s (from the {D. C. Power Lab}).
:marginally: /adv./ Slightly. "The ravs here are only marginally better than at Small Eating Place." See {epsilon}.
:marketroid: /mar'k*-troyd/ /n./ alt. `marketing slime', `marketeer', `marketing droid', `marketdroid'. A member of a company's marketing department, esp. one who promises users that the next version of a product will have features that are not actually scheduled for inclusion, are extremely difficult to implement, and/or are in violation of the laws of physics; and/or one who describes existing features (and misfeatures) in ebullient, buzzword-laden adspeak. Derogatory. Compare {droid}.
:Mars: /n./ A legendary tragic failure, the archetypal Hacker Dream Gone Wrong. Mars was the code name for a family of PDP-10 compatible computers built by Systems Concepts (now, The SC Group): the multi-processor SC-30M, the small uniprocessor SC-25M, and the never-built superprocessor SC-40M. These machines were marvels of engineering design; although not much slower than the unique {Foonly} F-1, they were physically smaller and consumed less power than the much slower DEC KS10 or Foonly F-2, F-3, or F-4 machines. They were also completely compatible with the DEC KL10, and ran all KL10 binaries (including the operating system) with no modifications at about 2--3 times faster than a KL10.
When DEC cancelled the Jupiter project in 1983, Systems Concepts should have made a bundle selling their machine into shops with a lot of software investment in PDP-10s, and in fact their spring 1984 announcement generated a great deal of excitement in the PDP-10 world. TOPS-10 was running on the Mars by the summer of 1984, and TOPS-20 by early fall. Unfortunately, the hackers running Systems Concepts were much better at designing machines than at mass producing or selling them; the company allowed itself to be sidetracked by a bout of perfectionism into continually improving the design, and lost credibility as delivery dates continued to slip. They also overpriced the product ridiculously; they believed they were competing with the KL10 and VAX 8600 and failed to reckon with the likes of Sun Microsystems and other hungry startups building workstations with power comparable to the KL10 at a fraction of the price. By the time SC shipped the first SC-30M to Stanford in late 1985, most customers had already made the traumatic decision to abandon the PDP-10, usually for VMS or Unix boxes. Most of the Mars computers built ended up being purchased by CompuServe.
This tale and the related saga of {Foonly} hold a lesson for hackers: if you want to play in the {Real World}, you need to learn Real World moves.
:martian: /n./ A packet sent on a TCP/IP network with a source address of the test loopback interface [127.0.0.1]. This means that it will come back labeled with a source address that is clearly not of this earth. "The domain server is getting lots of packets from Mars. Does that gateway have a martian filter?"
:massage: /vt./ Vague term used to describe `smooth' transformations of a data set into a different form, esp. transformations that do not lose information. Connotes less pain than {munch} or {crunch}. "He wrote a program that massages X bitmap files into GIF format." Compare {slurp}.
:math-out: /n./ [poss. from `white-out' (the blizzard variety)] A paper or presentation so encrusted with mathematical or other formal notation as to be incomprehensible. This may be a device for concealing the fact that it is actually {content-free}. See also {numbers}, {social science number}.
:Matrix: /n./ [FidoNet] 1. What the Opus BBS software and sysops call {FidoNet}. 2. Fanciful term for a {cyberspace} expected to emerge from current networking experiments (see {network, the}). 3. The totality of present-day computer networks.
:maximum Maytag mode: /n./ What a {washing machine} or, by extension, any hard disk is in when it's being used so heavily that it's shaking like an old Maytag with an unbalanced load. If prolonged for any length of time, can lead to disks becoming {walking drives}.
:Mbogo, Dr. Fred: /*m-boh'goh, dok'tr fred/ /n./ [Stanford] The archetypal man you don't want to see about a problem, esp. an incompetent professional; a shyster. "Do you know a good eye doctor?" "Sure, try Mbogo Eye Care and Professional Dry Cleaning." The name comes from synergy between {bogus} and the original Dr. Mbogo, a witch doctor who was Gomez Addams' physician on the old "Addams Family" TV show. Compare {Bloggs Family, the}, see also {fred}.
:meatware: /n./ Synonym for {wetware}. Less common.
:meeces: /mees'*z/ /n./ [TMRC] Occasional furry visitors who are not {urchin}s. [That is, mice. This may no longer be in live use; it clearly derives from the refrain of the early-1960s cartoon character Mr. Jinx: "I hate meeces to *pieces*!" --- ESR]
:meg: /meg/ /n./ See {{quantifiers}}.
:mega-: /me'g*/ /pref./ [SI] See {{quantifiers}}.
:megapenny: /meg'*-pen`ee/ /n./ $10,000 (1 cent * 10^6). Used semi-humorously as a unit in comparing computer cost and performance figures.
:MEGO: /me'goh/ or /mee'goh/ [`My Eyes Glaze Over', often `Mine Eyes Glazeth (sic) Over', attributed to the futurologist Herman Kahn] Also `MEGO factor'. 1. /n./ A {handwave} intended to confuse the listener and hopefully induce agreement because the listener does not want to admit to not understanding what is going on. MEGO is usually directed at senior management by engineers and contains a high proportion of {TLA}s. 2. excl. An appropriate response to MEGO tactics. 3. Among non-hackers, often refers not to behavior that causes the eyes to glaze, but to the eye-glazing reaction itself, which may be triggered by the mere threat of technical detail as effectively as by an actual excess of it.
:meltdown, network: /n./ See {network meltdown}.
:meme: /meem/ /n./ [coined by analogy with `gene', by Richard Dawkins] An idea considered as a {replicator}, esp. with the connotation that memes parasitize people into propagating them much as viruses do. Used esp. in the phrase `meme complex' denoting a group of mutually supporting memes that form an organized belief system, such as a religion. This lexicon is an (epidemiological) vector of the `hacker subculture' meme complex; each entry might be considered a meme. However, `meme' is often misused to mean `meme complex'. Use of the term connotes acceptance of the idea that in humans (and presumably other tool- and language-using sophonts) cultural evolution by selection of adaptive ideas has superseded biological evolution by selection of hereditary traits. Hackers find this idea congenial for tolerably obvious reasons.
:meme plague: /n./ The spread of a successful but pernicious {meme}, esp. one that parasitizes the victims into giving their all to propagate it. Astrology, BASIC, and the other guy's religion are often considered to be examples. This usage is given point by the historical fact that `joiner' ideologies like Naziism or various forms of millennarian Christianity have exhibited plague-like cycles of exponential growth followed by collapses to small reservoir populations.
:memetics: /me-met'iks/ /n./ [from {meme}] The study of memes. As of early 1996, this is still an extremely informal and speculative endeavor, though the first steps towards at least statistical rigor have been made by H. Keith Henson and others. Memetics is a popular topic for speculation among hackers, who like to see themselves as the architects of the new information ecologies in which memes live and replicate.
:memory farts: /n./ The flatulent sounds that some DOS box BIOSes (most notably AMI's) make when checking memory on bootup.
:memory leak: /n./ An error in a program's dynamic-store allocation logic that causes it to fail to reclaim discarded memory, leading to eventual collapse due to memory exhaustion. Also (esp. at CMU) called {core leak}. These problems were severe on older machines with small, fixed-size address spaces, and special "leak detection" tools were commonly written to root them out. With the advent of virtual memory, it is unfortunately easier to be sloppy about wasting a bit of memory (although when you run out of memory on a VM machine, it means you've got a *real* leak!). See {aliasing bug}, {fandango on core}, {smash the stack}, {precedence lossage}, {overrun screw}, {leaky heap}, {leak}.
:memory smash: /n./ [XEROX PARC] Writing through a pointer that doesn't point to what you think it does. This occasionally reduces your machine to a rubble of bits. Note that this is subtly different from (and more general than) related terms such as a {memory leak} or {fandango on core} because it doesn't imply an allocation error or overrun condition.
:menuitis: /men`yoo-i:'tis/ /n./ Notional disease suffered by software with an obsessively simple-minded menu interface and no escape. Hackers find this intensely irritating and much prefer the flexibility of command-line or language-style interfaces, especially those customizable via macros or a special-purpose language in which one can encode useful hacks. See {user-obsequious}, {drool-proof paper}, {WIMP environment}, {for the rest of us}.
:mess-dos: /mes-dos/ /n./ Derisory term for MS-DOS. Often followed by the ritual banishing "Just say No!" See {{MS-DOS}}. Most hackers (even many MS-DOS hackers) loathe MS-DOS for its single-tasking nature, its limits on application size, its nasty primitive interface, and its ties to IBMness (see {fear and loathing}). Also `mess-loss', `messy-dos', `mess-dog', `mess-dross', `mush-dos', and various combinations thereof. In Ireland and the U.K. it is even sometimes called `Domestos' after a brand of toilet cleanser.
:meta: /me't*/ or /may't*/ or (Commonwealth) /mee't*/ adj.,/pref./ [from analytic philosophy] One level of description up. A metasyntactic variable is a variable in notation used to describe syntax, and meta-language is language used to describe language. This is difficult to explain briefly, but much hacker humor turns on deliberate confusion between meta-levels. See {{hacker humor}}.
:meta bit: /n./ The top bit of an 8-bit character, which is on in character values 128--255. Also called {high bit}, {alt bit}, or {hobbit}. Some terminals and consoles (see {space-cadet keyboard}) have a META shift key. Others (including, *mirabile dictu*, keyboards on IBM PC-class machines) have an ALT key. See also {bucky bits}.
Historical note: although in modern usage shaped by a universe of 8-bit bytes the meta bit is invariably hex 80 (octal 0200), things were different on earlier machines with 36-bit words and 9-bit bytes. The MIT and Stanford keyboards (see {space-cadet keyboard}) generated hex 100 (octal 400) from their meta keys.
:metasyntactic variable: /n./ A name used in examples and understood to stand for whatever thing is under discussion, or any random member of a class of things under discussion. The word {foo} is the {canonical} example. To avoid confusion, hackers never (well, hardly ever) use `foo' or other words like it as permanent names for anything. In filenames, a common convention is that any filename beginning with a metasyntactic-variable name is a {scratch} file that may be deleted at any time.
To some extent, the list of one's preferred metasyntactic variables is a cultural signature. They occur both in series (used for related groups of variables or objects) and as singletons. Here are a few common signatures:
{foo}, {bar}, {baz}, {quux}, quuux, quuuux...: MIT/Stanford usage, now found everywhere (thanks largely to early versions of this lexicon!). At MIT (but not at Stanford), {baz} dropped out of use for a while in the 1970s and '80s. A common recent mutation of this sequence inserts {qux} before {quux}. bazola, ztesch: Stanford (from mid-'70s on). {foo}, {bar}, thud, grunt: This series was popular at CMU. Other CMU-associated variables include {gorp}. {foo}, {bar}, fum: This series is reported to be common at XEROX PARC. {fred}, {barney}: See the entry for {fred}. These tend to be Britishisms. {corge}, {grault}, {flarp}: Popular at Rutgers University and among {GOSMACS} hackers. zxc, spqr, wombat: Cambridge University (England). shme Berkeley, GeoWorks, Ingres. Pronounced /shme/ with a short /e/. snork Brown University, early 1970s. {foo}, {bar}, zot Helsinki University of Technology, Finland. blarg, wibble New Zealand. toto, titi, tata, tutu France. pippo, pluto, paperino Italy. Pippo /pee'po/ and Paperino /pa-per-ee'-no/ are the Italian names for Goofy and Donald Duck. aap, noot, mies The Netherlands. These are the first words a child used to learn to spell on a Dutch spelling board.
Of all these, only `foo' and `bar' are universal (and {baz} nearly so). The compounds {foobar} and `foobaz' also enjoy very wide currency.
Some jargon terms are also used as metasyntactic names; {barf} and {mumble}, for example. See also {{Commonwealth Hackish}} for discussion of numerous metasyntactic variables found in Great Britain and the Commonwealth.
:MFTL: /M-F-T-L/ [abbreviation: `My Favorite Toy Language'] 1. /adj./ Describes a talk on a programming language design that is heavy on the syntax (with lots of BNF), sometimes even talks about semantics (e.g., type systems), but rarely, if ever, has any content (see {content-free}). More broadly applied to talks --- even when the topic is not a programming language -- in which the subject matter is gone into in unnecessary and meticulous detail at the sacrifice of any conceptual content. "Well, it was a typical MFTL talk". 2. /n./ Describes a language about which the developers are passionate (often to the point of proselytic zeal) but no one else cares about. Applied to the language by those outside the originating group. "He cornered me about type resolution in his MFTL."
The first great goal in the mind of the designer of an MFTL is usually to write a compiler for it, then bootstrap the design away from contamination by lesser languages by writing a compiler for it in itself. Thus, the standard put-down question at an MFTL talk is "Has it been used for anything besides its own compiler?" On the other hand, a language that cannot even be used to write its own compiler is beneath contempt. See {break-even point}.
(On a related note, Doug McIlroy once proposed a test of the generality and utility of a language and the operating system under which it is compiled: "Is the output of a FORTRAN program acceptable as input to the FORTRAN compiler?" In other words, can you write programs that write programs? (See {toolsmith}.) Alarming numbers of (language, OS) pairs fail this test, particularly when the language is FORTRAN; aficionados are quick to point out that {Unix} (even using FORTRAN) passes it handily. That the test could ever be failed is only surprising to those who have had the good fortune to have worked only under modern systems which lack OS-supported and -imposed "file types".)
:mickey: /n./ The resolution unit of mouse movement. It has been suggested that the `disney' will become a benchmark unit for animation graphics performance.
:mickey mouse program: /n./ North American equivalent of a {noddy} (that is, trivial) program. Doesn't necessarily have the belittling connotations of mainstream slang "Oh, that's just mickey mouse stuff!"; sometimes trivial programs can be very useful.
:micro-: /pref./ 1. Very small; this is the root of its use as a quantifier prefix. 2. A quantifier prefix, calling for multiplication by 10^(-6) (see {{quantifiers}}). Neither of these uses is peculiar to hackers, but hackers tend to fling them both around rather more freely than is countenanced in standard English. It is recorded, for example, that one CS professor used to characterize the standard length of his lectures as a microcentury -- that is, about 52.6 minutes (see also {attoparsec}, {nanoacre}, and especially {microfortnight}). 3. Personal or human-scale -- that is, capable of being maintained or comprehended or manipulated by one human being. This sense is generalized from `microcomputer', and is esp. used in contrast with `macro-' (the corresponding Greek prefix meaning `large'). 4. Local as opposed to global (or {macro-}). Thus a hacker might say that buying a smaller car to reduce pollution only solves a microproblem; the macroproblem of getting to work might be better solved by using mass transit, moving to within walking distance, or (best of all) telecommuting.
:MicroDroid: /n./ [Usenet] A Microsoft employee, esp. one who posts to various operating-system advocacy newsgroups. MicroDroids post follow-ups to any messages critical of Microsoft's operating systems, and often end up sounding like visiting Mormon missionaries.
:microfloppies: /n./ 3.5-inch floppies, as opposed to 5.25-inch {vanilla} or mini-floppies and the now-obsolete 8-inch variety. This term may be headed for obsolescence as 5.25-inchers pass out of use, only to be revived if anybody floats a sub-3-inch floppy standard. See {stiffy}, {minifloppies}.
:microfortnight: /n./ 1/1000000 of the fundamental unit of time in the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec. (A furlong is 1/8th of a mile; a firkin is 1/4th of a barrel; the mass unit of the system is taken to be a firkin of water). The VMS operating system has a lot of tuning parameters that you can set with the SYSGEN utility, and one of these is TIMEPROMPTWAIT, the time the system will wait for an operator to set the correct date and time at boot if it realizes that the current value is bogus. This time is specified in microfortnights!
Multiple uses of the millifortnight (about 20 minutes) and {nanofortnight} have also been reported.
:microLenat: /mi:`-kroh-len'-*t/ /n./ The unit of {bogosity}, written uL; the consensus is that this is the largest unit practical for everyday use. The microLenat, originally invented by David Jefferson, was promulgated as an attack against noted computer scientist Doug Lenat by a {tenured graduate student} at CMU. Doug had failed the student on an important exam for giving only "AI is bogus" as his answer to the questions. The slur is generally considered unmerited, but it has become a running gag nevertheless. Some of Doug's friends argue that *of course* a microLenat is bogus, since it is only one millionth of a Lenat. Others have suggested that the unit should be redesignated after the grad student, as the microReid.
:microReid: /mi:'kroh-reed/ /n./ See {microLenat}.
:Microsloth Windows: /mi:'kroh-sloth` win'dohz/ /n./ Hackerism for `Microsoft Windows', a windowing system for the IBM-PC which is so limited by bug-for-bug compatibility with {mess-dos} that it is agonizingly slow on anything less than a fast 486. Also just called `Windoze', with the implication that you can fall asleep waiting for it to do anything; the latter term is extremely common on Usenet. See {Black Screen of Death}; compare {X}, {sun-stools}.
:microtape: /mi:'kroh-tayp/ /n./ Occasionally used to mean a DECtape, as opposed to a {macrotape}. A DECtape is a small reel, about 4 inches in diameter, of magnetic tape about an inch wide. Unlike those for today's {macrotape}s, microtape drivers allowed random access to the data, and therefore could be used to support file systems and even for swapping (this was generally done purely for {hack value}, as they were far too slow for practical use). In their heyday they were used in pretty much the same ways one would now use a floppy disk: as a small, portable way to save and transport files and programs. Apparently the term `microtape' was actually the official term used within DEC for these tapes until someone coined the word `DECtape', which, of course, sounded sexier to the {marketroid}s; another version of the story holds that someone discovered a conflict with another company's `microtape' trademark.
:middle-endian: /adj./ Not {big-endian} or {little-endian}. Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3, occasionally found in the packed-decimal formats of minicomputer manufacturers who shall remain nameless. See {NUXI problem}. Non-US hackers use this term to describe the American mm/dd/yy style of writing dates (Europeans write dd/mm/yy).
:milliLampson: /mil'*-lamp`sn/ /n./ A unit of talking speed, abbreviated mL. Most people run about 200 milliLampsons. The eponymous Butler Lampson (a CS theorist and systems implementor highly regarded among hackers) goes at 1000. A few people speak faster. This unit is sometimes used to compare the (sometimes widely disparate) rates at which people can generate ideas and actually emit them in speech. For example, noted computer architect C. Gordon Bell (designer of the PDP-11) is said, with some awe, to think at about 1200 mL but only talk at about 300; he is frequently reduced to fragments of sentences as his mouth tries to keep up with his speeding brain.
:minifloppies: /n./ 5.25-inch {vanilla} floppy disks, as opposed to 3.5-inch or {microfloppies} and the now-obsolescent 8-inch variety. At one time, this term was a trademark of Shugart Associates for their SA-400 minifloppy drive. Nobody paid any attention. See {stiffy}.
:MIPS: /mips/ /n./ [abbreviation] 1. A measure of computing speed; formally, `Million Instructions Per Second' (that's 10^6 per second, not 2^(20)!); often rendered by hackers as `Meaningless Indication of Processor Speed' or in other unflattering ways. This joke expresses a nearly universal attitude about the value of most {benchmark} claims, said attitude being one of the great cultural divides between hackers and {marketroid}s. The singular is sometimes `1 MIP' even though this is clearly etymologically wrong. See also {KIPS} and {GIPS}. 2. Computers, especially large computers, considered abstractly as sources of {computron}s. "This is just a workstation; the heavy MIPS are hidden in the basement." 3. The corporate name of a particular RISC-chip company; among other things, they designed the processor chips used in DEC's 3100 workstation series. 4. Acronym for `Meaningless Information per Second' (a joke, prob. from sense 1).
:misbug: /mis-buhg/ /n./ [MIT] An unintended property of a program that turns out to be useful; something that should have been a {bug} but turns out to be a {feature}. Usage: rare. Compare {green lightning}. See {miswart}.
:misfeature: /mis-fee'chr/ or /mis'fee`chr/ /n./ A feature that eventually causes lossage, possibly because it is not adequate for a new situation that has evolved. Since it results from a deliberate and properly implemented feature, a misfeature is not a bug. Nor is it a simple unforeseen side effect; the term implies that the feature in question was carefully planned, but its long-term consequences were not accurately or adequately predicted (which is quite different from not having thought ahead at all). A misfeature can be a particularly stubborn problem to resolve, because fixing it usually involves a substantial philosophical change to the structure of the system involved.
Many misfeatures (especially in user-interface design) arise because the designers/implementors mistake their personal tastes for laws of nature. Often a former feature becomes a misfeature because trade-offs were made whose parameters subsequently change (possibly only in the judgment of the implementors). "Well, yeah, it is kind of a misfeature that file names are limited to six characters, but the original implementors wanted to save directory space and we're stuck with it for now."
:Missed'em-five: /n./ Pejorative hackerism for AT&T System V Unix, generally used by {BSD} partisans in a bigoted mood. (The synonym `SysVile' is also encountered.) See {software bloat}, {Berzerkeley}.
:missile address: /n./ See {ICBM address}.
:miswart: /mis-wort/ /n./ [from {wart} by analogy with {misbug}] A {feature} that superficially appears to be a {wart} but has been determined to be the {Right Thing}. For example, in some versions of the {EMACS} text editor, the `transpose characters' command exchanges the character under the cursor with the one before it on the screen, *except* when the cursor is at the end of a line, in which 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. This feature is a miswart.
:moby: /moh'bee/ [MIT: seems to have been in use among model railroad fans years ago. Derived from Melville's "Moby Dick" (some say from `Moby Pickle').] 1. /adj./ Large, immense, complex, impressive. "A Saturn V rocket is a truly moby frob." "Some MIT undergrads pulled off a moby hack at the Harvard-Yale game." (See "{The Meaning of `Hack'}"). 2. /n./ obs. The maximum address space of a machine (see below). For a 680[234]0 or VAX or most modern 32-bit architectures, it is 4,294,967,296 8-bit bytes (4 gigabytes). 3. A title of address (never of third-person reference), usually used to show admiration, respect, and/or friendliness to a competent hacker. "Greetings, moby Dave. How's that address-book thing for the Mac going?" 4. /adj./ In backgammon, doubles on the dice, as in `moby sixes', `moby ones', etc. Compare this with {bignum} (sense 3): double sixes are both bignums and moby sixes, but moby ones are not bignums (the use of `moby' to describe double ones is sarcastic). Standard emphatic forms: `Moby foo', `moby win', `moby loss'. `Foby moo': a spoonerism due to Richard Greenblatt. 5. The largest available unit of something which is available in discrete increments. Thus, ordering a "moby Coke" at the local fast-food joint is not just a request for a large Coke, it's an explicit request for the largest size they sell.
This term entered hackerdom with the Fabritek 256K memory added to the MIT AI PDP-6 machine, which was considered unimaginably huge when it was installed in the 1960s (at a time when a more typical memory size for a timesharing system was 72 kilobytes). Thus, a moby is classically 256K 36-bit words, the size of a PDP-6 or PDP-10 moby. Back when address registers were narrow the term was more generally useful, because when a computer had virtual memory mapping, it might actually have more physical memory attached to it than any one program could access directly. One could then say "This computer has 6 mobies" meaning that the ratio of physical memory to address space is 6, without having to say specifically how much memory there actually is. That in turn implied that the computer could timeshare six `full-sized' programs without having to swap programs between memory and disk.
Nowadays the low cost of processor logic means that address spaces are usually larger than the most physical memory you can cram onto a machine, so most systems have much *less* than one theoretical `native' moby of {core}. Also, more modern memory-management techniques (esp. paging) make the `moby count' less significant. However, there is one series of widely-used chips for which the term could stand to be revived --- the Intel 8088 and 80286 with their incredibly {brain-damaged} segmented-memory designs. On these, a `moby' would be the 1-megabyte address span of a segment/offset pair (by coincidence, a PDP-10 moby was exactly 1 megabyte of 9-bit bytes).
:mockingbird: /n./ Software that intercepts communications (especially login transactions) between users and hosts and provides system-like responses to the users while saving their responses (especially account IDs and passwords). A special case of {Trojan horse}.
:mod: /vt.,n./ 1. Short for `modify' or `modification'. Very commonly used -- in fact the full terms are considered markers that one is being formal. The plural `mods' is used esp. with reference to bug fixes or minor design changes in hardware or software, most esp. with respect to {patch} sets or a {diff}. 2. Short for {modulo} but used *only* for its techspeak sense.
:mode: /n./ A general state, usually used with an adjective describing the state. Use of the word `mode' rather than `state' implies that the state is extended over time, and probably also that some activity characteristic of that state is being carried out. "No time to hack; I'm in thesis mode." In its jargon sense, `mode' is most often attributed to people, though it is sometimes applied to programs and inanimate objects. In particular, see {hack mode}, {day mode}, {night mode}, {demo mode}, {fireworks mode}, and {yoyo mode}; also {talk mode}.
One also often hears the verbs `enable' and `disable' used in connection with jargon modes. Thus, for example, a sillier way of saying "I'm going to crash" is "I'm going to enable crash mode now". One might also hear a request to "disable flame mode, please".
In a usage much closer to techspeak, a mode is a special state that certain user interfaces must pass into in order to perform certain functions. For example, in order to insert characters into a document in the Unix editor `vi', one must type the "i" key, which invokes the "Insert" command. The effect of this command is to put vi into "insert mode", in which typing the "i" key has a quite different effect (to wit, it inserts an "i" into the document). One must then hit another special key, "ESC", in order to leave "insert mode". Nowadays, modeful interfaces are generally considered {losing} but survive in quite a few widely used tools built in less enlightened times.
:mode bit: /n./ A {flag}, usually in hardware, that selects between two (usually quite different) modes of operation. The connotations are different from {flag} bit in that mode bits are mainly written during a boot or set-up phase, are seldom explicitly read, and seldom change over the lifetime of an ordinary program. The classic example was the EBCDIC-vs.-ASCII bit (#12) of the Program Status Word of the IBM 360. Another was the bit on a PDP-12 that controlled whether it ran the PDP-8 or the LINC instruction set.
:modulo: /mod'yu-loh/ /prep./ Except for. An overgeneralization of mathematical terminology; one can consider saying that 4 equals 22 except for the 9s (4 = 22 mod 9). "Well, LISP seems to work okay now, modulo that {GC} bug." "I feel fine today modulo a slight headache."
:molly-guard: /mol'ee-gard/ /n./ [University of Illinois] A shield to prevent tripping of some {Big Red Switch} by clumsy or ignorant hands. Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer's toddler daughter (named Molly) frobbed it twice in one day. Later generalized to covers over stop/reset switches on disk drives and networking equipment.
:Mongolian Hordes technique: /n./ [poss. from the Sixties counterculture expression `Mongolian clusterfuck' for a public orgy] Development by {gang bang}. Implies that large numbers of inexperienced programmers are being put on a job better performed by a few skilled ones. Also called `Chinese Army technique'; see also {Brooks's Law}.
:monkey up: /vt./ To hack together hardware for a particular task, especially a one-shot job. Connotes an extremely {crufty} and consciously temporary solution. Compare {hack up}, {kluge up}, {cruft together}.
:monkey, scratch: /n./ See {scratch monkey}.
:monstrosity: 1. /n./ A ridiculously {elephantine} program or system, esp. one that is buggy or only marginally functional. 2. /adj./ The quality of being monstrous (see `Overgeneralization' in the discussion of jargonification). See also {baroque}.
:monty: /mon'tee/ /n./ 1. [US Geological Survey] A program with a ludicrously complex user interface written to perform extremely trivial tasks. An example would be a menu-driven, button clicking, pulldown, pop-up windows program for listing directories. The original monty was an infamous weather-reporting program, Monty the Amazing Weather Man, written at the USGS. Monty had a widget-packed X-window interface with over 200 buttons; and all monty actually *did* was {FTP} files off the network. 2. [Great Britain; commonly capitalized as `Monty' or as `the Full Monty'] 16 megabytes of memory, when fitted to an IBM-PC or compatible. A standard PC-compatible using the AT- or ISA-bus with a normal BIOS cannot access more than 16 megabytes of RAM. Generally used of a PC, Unix workstation, etc. to mean `fully populated with' memory, disk-space or some other desirable resource. This usage is possibly derived from a TV commercial for Del Monte fruit juice, in which one of the characters insisted on "the full Del Monte". Compare American {moby}.
:Moof: /moof/ [Macintosh users] 1. /n./ The call of a semi-legendary creature, properly called the {dogcow}. (Some previous versions of this entry claimed, incorrectly, that Moof was the name of the *creature*.) 2. /adj./ Used to flag software that's a hack, something untested and on the edge. On one Apple CD-ROM, certain folders such as "Tools & Apps (Moof!)" and "Development Platforms (Moof!)", are so marked to indicate that they contain software not fully tested or sanctioned by the powers that be. When you open these folders you cross the boundary into hackerland. 3. /v./ On the Microsoft Network, the term `moof' has gained popularity as a verb meaning `to be suddenly disconnected by the system'. One might say "I got moofed".
:Moore's Law: /morz law/ /prov./ The observation that the logic density of silicon integrated circuits has closely followed the curve (bits per square inch) = 2^((t - 1962)) where t is time in years; that is, the amount of information storable on a given amount of silicon has roughly doubled every year since the technology was invented. This relation, first uttered in 1964 by semiconductor engineer Gordon Moore (who co-founded Intel four years later) held until the late 1970s, at which point the doubling period slowed to 18 months. It remained at that value through time of writing (late 1995). See also {Parkinson's Law of Data}.
:moose call: /n./ See {whalesong}.
:moria: /mor'ee-*/ /n./ Like {nethack} and {rogue}, one of the large PD Dungeons-and-Dragons-like simulation games, available for a wide range of machines and operating systems. The name is from Tolkien's Mines of Moria; compare {elder days}, {elvish}. The game is extremely addictive and a major consumer of time better used for hacking.
:MOTAS: /moh-tahz/ /n./ [Usenet: Member Of The Appropriate Sex, after {MOTOS} and {MOTSS}] A potential or (less often) actual sex partner. See also {SO}.
:MOTOS: /moh-tohs/ /n./ [acronym from the 1970 U.S. census forms via Usenet: Member Of The Opposite Sex] A potential or (less often) actual sex partner. See {MOTAS}, {MOTSS}, {SO}. Less common than MOTSS or {MOTAS}, which have largely displaced it.
:MOTSS: /mots/ or /M-O-T-S-S/ /n./ [from the 1970 U.S. census forms via Usenet] Member Of The Same Sex, esp. one considered as a possible sexual partner. The gay-issues newsgroup on Usenet is called soc.motss. See {MOTOS} and {MOTAS}, which derive from it. See also {SO}.
:mouse ahead: /vi./ Point-and-click analog of `type ahead'. To manipulate a computer's pointing device (almost always a mouse in this usage, but not necessarily) and its selection or command buttons before a computer program is ready to accept such input, in anticipation of the program accepting the input. Handling this properly is rare, but it can help make a {WIMP environment} much more usable, assuming the users are familiar with the behavior of the user interface.
:mouse around: /vi./ To explore public portions of a large system, esp. a network such as Internet via {FTP} or {TELNET}, looking for interesting stuff to {snarf}.
:mouse belt: /n./ See {rat belt}.
:mouse droppings: /n./ [MS-DOS] Pixels (usually single) that are not properly restored when the mouse pointer moves away from a particular location on the screen, producing the appearance that the mouse pointer has left droppings behind. The major causes for this problem are programs that write to the screen memory corresponding to the mouse pointer's current location without hiding the mouse pointer first, and mouse drivers that do not quite support the graphics mode in use.
:mouse elbow: /n./ A tennis-elbow-like fatigue syndrome resulting from excessive use of a {WIMP environment}. Similarly, `mouse shoulder'; GLS reports that he used to get this a lot before he taught himself to be ambimoustrous.
:mouso: /mow'soh/ /n./ [by analogy with `typo'] An error in mouse usage resulting in an inappropriate selection or graphic garbage on the screen. Compare {thinko}, {braino}.
:MS-DOS:: /M-S-dos/ /n./ [MicroSoft Disk Operating System] A {clone} of {{CP/M}} for the 8088 crufted together in 6 weeks by hacker Tim Paterson at Seattle Computer Products, who called the original QDOS (Quick and Dirty Operating System) and is said to have regretted it ever since. Microsoft licensed QDOS order to have something to demo for IBM on time, and the rest is history. Numerous features, including vaguely Unix-like but rather broken support for subdirectories, I/O redirection, and pipelines, were hacked into Microsoft's 2.0 and subsequent versions; as a result, there are two or more incompatible versions of many system calls, and MS-DOS programmers can never agree on basic things like what character to use as an option switch or whether to be case-sensitive. The resulting appalling mess is now the highest-unit-volume OS in history. Often known simply as DOS, which annoys people familiar with other similarly abbreviated operating systems (the name goes back to the mid-1960s, when it was attached to IBM's first disk operating system for the 360). The name further annoys those who know what the term {operating system} does (or ought to) connote; DOS is more properly a set of relatively simple interrupt services. Some people like to pronounce DOS like "dose", as in "I don't work on dose, man!", or to compare it to a dose of brain-damaging drugs (a slogan button in wide circulation among hackers exhorts: "MS-DOS: Just say No!"). See {mess-dos}, {ill-behaved}.
:mu: /moo/ The correct answer to the classic trick question "Have you stopped beating your wife yet?". Assuming that you have no wife or you have never beaten your wife, the answer "yes" is wrong because it implies that you used to beat your wife and then stopped, but "no" is worse because it suggests that you have one and are still beating her. According to various Discordians and Douglas Hofstadter the correct answer is usually "mu", a Japanese word alleged to mean "Your question cannot be answered because it depends on incorrect assumptions". Hackers tend to be sensitive to logical inadequacies in language, and many have adopted this suggestion with enthusiasm. The word `mu' is actually from Chinese, meaning `nothing'; it is used in mainstream Japanese in that sense, but native speakers do not recognize the Discordian question-denying use. It almost certainly derives from overgeneralization of the answer in the following well-known Rinzei Zen teaching riddle:
A monk asked Joshu, "Does a dog have the Buddha nature?" Joshu retorted, "Mu!"
See also {has the X nature}, {AI Koans}, and Douglas Hofstadter's "G"odel, Escher, Bach: An Eternal Golden Braid" (pointer in the {Bibliography} in Appendix C.
:MUD: /muhd/ /n./ [acronym, Multi-User Dungeon; alt. Multi-User Dimension] 1. A class of {virtual reality} experiments accessible via the Internet. These are real-time chat forums with structure; they have multiple `locations' like an adventure game, and may include combat, traps, puzzles, magic, a simple economic system, and the capability for characters to build more structure onto the database that represents the existing world. 2. /vi./ To play a MUD. The acronym MUD is often lowercased and/or verbed; thus, one may speak of `going mudding', etc.
Historically, MUDs (and their more recent progeny with names of MU- form) derive from a hack by Richard Bartle and Roy Trubshaw on the University of Essex's DEC-10 in the early 1980s; descendants of that game still exist today and are sometimes generically called BartleMUDs. There is a widespread myth (repeated, unfortunately, by earlier versions of this lexicon) that the name MUD was trademarked to the commercial MUD run by Bartle on British Telecom (the motto: "You haven't *lived* 'til you've *died* on MUD!"); however, this is false -- Richard Bartle explicitly placed `MUD' in the public domain in 1985. BT was upset at this, as they had already printed trademark claims on some maps and posters, which were released and created the myth.
Students on the European academic networks quickly improved on the MUD concept, spawning several new MUDs (VAXMUD, AberMUD, LPMUD). Many of these had associated bulletin-board systems for social interaction. Because these had an image as `research' they often survived administrative hostility to BBSs in general. This, together with the fact that Usenet feeds were often spotty and difficult to get in the U.K., made the MUDs major foci of hackish social interaction there.
AberMUD and other variants crossed the Atlantic around 1988 and quickly gained popularity in the U.S.; they became nuclei for large hacker communities with only loose ties to traditional hackerdom (some observers see parallels with the growth of Usenet in the early 1980s). The second wave of MUDs (TinyMUD and variants) tended to emphasize social interaction, puzzles, and cooperative world-building as opposed to combat and competition. By 1991, over 50% of MUD sites were of a third major variety, LPMUD, which synthesizes the combat/puzzle aspects of AberMUD and older systems with the extensibility of TinyMud. In 1996 the cutting edge of the technology is Pavel Curtis's MOO, even more extensible using a built-in object-oriented language. The trend toward greater programmability and flexibility will doubtless continue.
The state of the art in MUD design is still moving very rapidly, with new simulation designs appearing (seemingly) every month. Around 1991 there was an unsuccessful movement to deprecate the term {MUD} itself, as newer designs exhibit an exploding variety of names corresponding to the different simulation styles being explored. It survived. See also {bonk/oif}, {FOD}, {link-dead}, {mudhead}, {talk mode}.
:muddie: /n./ Syn. {mudhead}. More common in Great Britain, possibly because system administrators there like to mutter "bloody muddies" when annoyed at the species.
:mudhead: /n./ Commonly used to refer to a {MUD} player who eats, sleeps, and breathes MUD. Mudheads have been known to fail their degrees, drop out, etc., with the consolation, however, that they made wizard level. When encountered in person, on a MUD, or in a chat system, all a mudhead will talk about is three topics: the tactic, character, or wizard that is supposedly always unfairly stopping him/her from becoming a wizard or beating a favorite MUD; why the specific game he/she has experience with is so much better than any other; and the MUD he or she is writing or going to write because his/her design ideas are so much better than in any existing MUD. See also {wannabee}.
To the anthropologically literate, this term may recall the Zuni/Hopi legend of the mudheads or `koyemshi', mythical half-formed children of an unnatural union. Figures representing them act as clowns in Zuni sacred ceremonies. Others may recall the `High School Madness' sequence from the Firesign Theater album "Don't Crush That Dwarf, Hand Me the Pliers", in which there is a character named "Mudhead".
:multician: /muhl-ti'shn/ /n./ [coined at Honeywell, ca. 1970] Competent user of {{Multics}}. Perhaps oddly, no one has ever promoted the analogous `Unician'.
:Multics:: /muhl'tiks/ /n./ [from "MULTiplexed Information and Computing Service"] An early (late 1960s) timesharing operating system co-designed by a consortium including MIT, GE, and Bell Laboratories. Multics was very innovative for its time --- among other things, it introduced the idea of treating all devices uniformly as special files. All the members but GE eventually pulled out after determining that {second-system effect} had bloated Multics to the point of practical unusability (the `lean' predecessor in question was {CTSS}). Honeywell commercialized Multics after buying out GE's computer group, but it was never very successful (among other things, on some versions one was commonly required to enter a password to log out). One of the developers left in the lurch by the project's breakup was Ken Thompson, a circumstance which led directly to the birth of {{Unix}}. For this and other reasons, aspects of the Multics design remain a topic of occasional debate among hackers. See also {brain-damaged} and {GCOS}.
:multitask: /n./ Often used of humans in the same meaning it has for computers, to describe a person doing several things at once (but see {thrash}). The term `multiplex', from communications technology (meaning to handle more than one channel at the same time), is used similarly.
:mumblage: /muhm'bl*j/ /n./ The topic of one's mumbling (see {mumble}). "All that mumblage" is used like "all that stuff" when it is not quite clear how the subject of discussion works, or like "all that crap" when `mumble' is being used as an implicit replacement for pejoratives.
:mumble: /interj./ 1. Said when the correct response is too complicated to enunciate, or the speaker has not thought it out. Often prefaces a longer answer, or indicates a general reluctance to get into a long discussion. "Don't you think that we could improve LISP performance by using a hybrid reference-count transaction garbage collector, if the cache is big enough and there are some extra cache bits for the microcode to use?" "Well, mumble ... I'll have to think about it." 2. [MIT] Expression of not-quite-articulated agreement, often used as an informal vote of consensus in a meeting: "So, shall we dike out the COBOL emulation?" "Mumble!" 3. Sometimes used as an expression of disagreement (distinguished from sense 2 by tone of voice and other cues). "I think we should buy a {VAX}." "Mumble!" Common variant: `mumble frotz' (see {frotz}; interestingly, one does not say `mumble frobnitz' even though `frotz' is short for `frobnitz'). 4. Yet another {metasyntactic variable}, like {foo}. 5. When used as a question ("Mumble?") means "I didn't understand you". 6. Sometimes used in `public' contexts on-line as a placefiller for things one is barred from giving details about. For example, a poster with pre-released hardware in his machine might say "Yup, my machine now has an extra 16M of memory, thanks to the card I'm testing for Mumbleco." 7. A conversational wild card used to designate something one doesn't want to bother spelling out, but which can be {glark}ed from context. Compare {blurgle}. 8. [XEROX PARC] A colloquialism used to suggest that further discussion would be fruitless.
:munch: /vt./ [often confused with {mung}, q.v.] To transform information in a serial fashion, often requiring large amounts of computation. To trace down a data structure. Related to {crunch} and nearly synonymous with {grovel}, but connotes less pain.
:munching: /n./ Exploration of security holes of someone else's computer for thrills, notoriety, or to annoy the system manager. Compare {cracker}. See also {hacked off}.
:munching squares: /n./ A {display hack} dating back to the PDP-1 (ca. 1962, reportedly discovered by Jackson Wright), which employs a trivial computation (repeatedly plotting the graph Y = X XOR T for successive values of T -- see {HAKMEM} items 146--148) to produce an impressive display of moving and growing squares that devour the screen. The initial value of T is treated as a parameter, which, when well-chosen, can produce amazing effects. Some of these, later (re)discovered on the LISP machine, have been christened `munching triangles' (try AND for XOR and toggling points instead of plotting them), `munching w's', and `munching mazes'. More generally, suppose a graphics program produces an impressive and ever-changing display of some basic form, foo, on a display terminal, and does it using a relatively simple program; then the program (or the resulting display) is likely to be referred to as `munching foos'. [This is a good example of the use of the word {foo} as a {metasyntactic variable}.]
:munchkin: /muhnch'kin/ /n./ [from the squeaky-voiced little people in L. Frank Baum's "The Wizard of Oz"] A teenage-or-younger micro enthusiast hacking BASIC or something else equally constricted. A term of mild derision -- munchkins are annoying but some grow up to be hackers after passing through a {larval stage}. The term {urchin} is also used. See also {wannabee}, {bitty box}.
:mundane: /n./ [from SF fandom] 1. A person who is not in science fiction fandom. 2. A person who is not in the computer industry. In this sense, most often an adjectival modifier as in "in my mundane life...." See also {Real World}.
:mung: /muhng/ /vt./ [in 1960 at MIT, `Mash Until No Good'; sometime after that the derivation from the {{recursive acronym}} `Mung Until No Good' became standard; but see {munge}] 1. To make changes to a file, esp. large-scale and irrevocable changes. See {BLT}. 2. To destroy, usually accidentally, occasionally maliciously. The system only mungs things maliciously; this is a consequence of {Finagle's Law}. See {scribble}, {mangle}, {trash}, {nuke}. Reports from {Usenet} suggest that the pronunciation /muhnj/ is now usual in speech, but the spelling `mung' is still common in program comments (compare the widespread confusion over the proper spelling of {kluge}). 3. The kind of beans the sprouts of which are used in Chinese food. (That's their real name! Mung beans! Really!)
Like many early hacker terms, this one seems to have originated at {TMRC}; it was already in use there in 1958. Peter Samson (compiler of the original TMRC lexicon) thinks it may originally have been onomatopoeic for the sound of a relay spring (contact) being twanged. However, it is known that during the World Wars, `mung' was U.S. army slang for the ersatz creamed chipped beef better known as `SOS', and it seems quite likely that the word in fact goes back to Scots-dialect {munge}.
:munge: /muhnj/ /vt./ 1. [derogatory] To imperfectly transform information. 2. A comprehensive rewrite of a routine, data structure or the whole program. 3. To modify data in some way the speaker doesn't need to go into right now or cannot describe succinctly (compare {mumble}).
This term is often confused with {mung}, which probably was derived from it. However, it also appears the word `munge' was in common use in Scotland in the 1940s, and in Yorkshire in the 1950s, as a verb, meaning to munch up into a masticated mess, and as a noun, meaning the result of munging something up (the parallel with the {kluge}/{kludge} pair is amusing).
:Murphy's Law: /prov./ The correct, *original* Murphy's Law reads: "If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it." This is a principle of defensive design, cited here because it is usually given in mutant forms less descriptive of the challenges of design for {luser}s. For example, you don't make a two-pin plug symmetrical and then label it `THIS WAY UP'; if it matters which way it is plugged in, then you make the design asymmetrical (see also the anecdote under {magic smoke}).
Edward A. Murphy, Jr. was one of the engineers on the rocket-sled experiments that were done by the U.S. Air Force in 1949 to test human acceleration tolerances (USAF project MX981). One experiment involved a set of 16 accelerometers mounted to different parts of the subject's body. There were two ways each sensor could be glued to its mount, and somebody methodically installed all 16 the wrong way around. Murphy then made the original form of his pronouncement, which the test subject (Major John Paul Stapp) quoted at a news conference a few days later.
Within months `Murphy's Law' had spread to various technical cultures connected to aerospace engineering. Before too many years had gone by variants had passed into the popular imagination, changing as they went. Most of these are variants on "Anything that can go wrong, will"; this is correctly referred to as {Finagle's Law}. The memetic drift apparent in these mutants clearly demonstrates Murphy's Law acting on itself!
:music:: /n./ A common extracurricular interest of hackers (compare {{science-fiction fandom}}, {{oriental food}}; see also {filk}). Hackish folklore has long claimed that musical and programming abilities are closely related, and there has been at least one large-scale statistical study that supports this. Hackers, as a rule, like music and often develop musical appreciation in unusual and interesting directions. Folk music is very big in hacker circles; so is electronic music, and the sort of elaborate instrumental jazz/rock that used to be called `progressive' and isn't recorded much any more. The hacker's musical range tends to be wide; many can listen with equal appreciation to (say) Talking Heads, Yes, Gentle Giant, Pat Metheny, Scott Joplin, Tangerine Dream, Dream Theater, King Sunny Ade, The Pretenders, Screaming Trees, or the Brandenburg Concerti. It is also apparently true that hackerdom includes a much higher concentration of talented amateur musicians than one would expect from a similar-sized control group of {mundane} types.
:mutter: /vt./ To quietly enter a command not meant for the ears, eyes, or fingers of ordinary mortals. Often used in `mutter an {incantation}'. See also {wizard}.
= N = =====
:N: /N/ /quant./ 1. A large and indeterminate number of objects: "There were N bugs in that crock!" Also used in its original sense of a variable name: "This crock has N bugs, as N goes to infinity." (The true number of bugs is always at least N + 1; see {Lubarsky's Law of Cybernetic Entomology}.) 2. A variable whose value is inherited from the current context. For example, when a meal is being ordered at a restaurant, N may be understood to mean however many people there are at the table. From the remark "We'd like to order N wonton soups and a family dinner for N - 1" you can deduce that one person at the table wants to eat only soup, even though you don't know how many people there are (see {great-wall}). 3. `Nth': /adj./ The ordinal counterpart of N, senses 1 and 2. "Now for the Nth and last time..." In the specific context "Nth-year grad student", N is generally assumed to be at least 4, and is usually 5 or more (see {tenured graduate student}). See also {{random numbers}}, {two-to-the-N}.
:nadger: /nad'jr/ /v./ [UK] Of software or hardware (not people), to twiddle some object in a hidden manner, generally so that it conforms better to some format. For instance, string printing routines on 8-bit processors often take the string text from the instruction stream, thus a print call looks like `jsr print:"Hello world"'. The print routine has to `nadger' the saved instruction pointer so that the processor doesn't try to execute the text as instructions when the subroutine returns.
Apparently this word originated on a now-legendary 1950s radio comedy program called "The Goon Show". The Goon Show usage of "nadger" was definitely in the sense of "jinxed" "clobbered" "fouled up". The American mutation {adger} seems to have preserved more of the original flavor.
:nagware: /nag'weir/ /n./ [Usenet] The variety of {shareware} that displays a large screen at the beginning or end reminding you to register, typically requiring some sort of keystroke to continue so that you can't use the software in batch mode. Compare {crippleware}.
:nailed to the wall: /adj./ [like a trophy] Said of a bug finally eliminated after protracted, and even heroic, effort.
:nailing jelly: /vi./ See {like nailing jelly to a tree}.
:naive: /adj./ Untutored in the perversities of some particular program or system; one who still tries to do things in an intuitive way, rather than the right way (in really good designs these coincide, but most designs aren't `really good' in the appropriate sense). This trait is completely unrelated to general maturity or competence, or even competence at any other specific program. It is a sad commentary on the primitive state of computing that the natural opposite of this term is often claimed to be `experienced user' but is really more like `cynical user'.
:naive user: /n./ A {luser}. Tends to imply someone who is ignorant mainly owing to inexperience. When this is applied to someone who *has* experience, there is a definite implication of stupidity.
:NAK: /nak/ /interj./ [from the ASCII mnemonic for 0010101] 1. On-line joke answer to {ACK}?: "I'm not here." 2. On-line answer to a request for chat: "I'm not available." 3. Used to politely interrupt someone to tell them you don't understand their point or that they have suddenly stopped making sense. See {ACK}, sense 3. "And then, after we recode the project in COBOL...." "Nak, Nak, Nak! I thought I heard you say COBOL!"
:nano: /nan'oh/ /n./ [CMU: from `nanosecond'] A brief period of time. "Be with you in a nano" means you really will be free shortly, i.e., implies what mainstream people mean by "in a jiffy" (whereas the hackish use of `jiffy' is quite different -- see {jiffy}).
:nano-: /pref./ [SI: the next quantifier below {micro-}; meaning * 10^(-9)] Smaller than {micro-}, and used in the same rather loose and connotative way. Thus, one has {{nanotechnology}} (coined by hacker K. Eric Drexler) by analogy with `microtechnology'; and a few machine architectures have a `nanocode' level below `microcode'. Tom Duff at Bell Labs has also pointed out that "Pi seconds is a nanocentury". See also {{quantifiers}}, {pico-}, {nanoacre}, {nanobot}, {nanocomputer}, {nanofortnight}.
:nanoacre: /nan'oh-ay`kr/ /n./ A unit (about 2 mm square) of real estate on a VLSI chip. The term gets its giggle value from the fact that VLSI nanoacres have costs in the same range as real acres once one figures in design and fabrication-setup costs.
:nanobot: /nan'oh-bot/ /n./ A robot of microscopic proportions, presumably built by means of {{nanotechnology}}. As yet, only used informally (and speculatively!). Also called a `nanoagent'.
:nanocomputer: /nan'oh-k*m-pyoo'tr/ /n./ A computer with molecular-sized switching elements. Designs for mechanical nanocomputers which use single-molecule sliding rods for their logic have been proposed. The controller for a {nanobot} would be a nanocomputer.
:nanofortnight: /n./ [Adelaide University] 1 fortnight * 10^(-9), or about 1.2 msec. This unit was used largely by students doing undergraduate practicals. See {microfortnight}, {attoparsec}, and {micro-}.
:nanotechnology:: /nan'-oh-tek-no`l*-jee/ /n./ A hypothetical fabrication technology in which objects are designed and built with the individual specification and placement of each separate atom. The first unequivocal nanofabrication experiments took place in 1990, for example with the deposition of individual xenon atoms on a nickel substrate to spell the logo of a certain very large computer company. Nanotechnology has been a hot topic in the hacker subculture ever since the term was coined by K. Eric Drexler in his book "Engines of Creation" (Anchor/Doubleday, ISBN 0-385-19973-2), where he predicted that nanotechnology could give rise to replicating assemblers, permitting an exponential growth of productivity and personal wealth. See also {blue goo}, {gray goo}, {nanobot}.
:nasal demons: /n./ Recognized shorthand on the Usenet group comp.std.c for any unexpected behavior of a C compiler on encountering an undefined construct. During a discussion on that group in early 1992, a regular remarked "When the compiler encounters [a given undefined construct] it is legal for it to make demons fly out of your nose" (the implication is that the compiler may choose any arbitrarily bizarre way to interpret the code without violating the ANSI C standard). Someone else followed up with a reference to "nasal demons", which quickly became established.
:nastygram: /nas'tee-gram/ /n./ 1. A protocol packet or item of email (the latter is also called a {letterbomb}) that takes advantage of misfeatures or security holes on the target system to do untoward things. 2. Disapproving mail, esp. from a {net.god}, pursuant to a violation of {netiquette} or a complaint about failure to correct some mail- or news-transmission problem. Compare {shitogram}, {mailbomb}. 3. A status report from an unhappy, and probably picky, customer. "What'd Corporate say in today's nastygram?" 4. [deprecated] An error reply by mail from a {daemon}; in particular, a {bounce message}.
:Nathan Hale: /n./ An asterisk (see also {splat}, {{ASCII}}). Oh, you want an etymology? Notionally, from "I regret that I have only one asterisk for my country!", a misquote of the famous remark uttered by Nathan Hale just before he was hanged. Hale was a (failed) spy for the rebels in the American War of Independence.
:nature: /n./ See {has the X nature}.
:neat hack: /n./ 1. A clever technique. 2. A brilliant practical joke, where neatness is correlated with cleverness, harmlessness, and surprise value. Example: the Caltech Rose Bowl card display switch (see "{The Meaning of `Hack'}", Appendix A). See also {hack}.
:neats vs. scruffies: /n./ The label used to refer to one of the continuing {holy wars} in AI research. This conflict tangles together two separate issues. One is the relationship between human reasoning and AI; `neats' tend to try to build systems that `reason' in some way identifiably similar to the way humans report themselves as doing, while `scruffies' profess not to care whether an algorithm resembles human reasoning in the least as long as it works. More importantly, neats tend to believe that logic is king, while scruffies favor looser, more ad-hoc methods driven by empirical knowledge. To a neat, scruffy methods appear promiscuous, successful only by accident, and not productive of insights about how intelligence actually works; to a scruffy, neat methods appear to be hung up on formalism and irrelevant to the hard-to-capture `common sense' of living intelligences.
:neep-neep: /neep neep/ /n./ [onomatopoeic, widely spread through SF fandom but reported to have originated at Caltech in the 1970s] One who is fascinated by computers. Less specific than {hacker}, as it need not imply more skill than is required to boot games on a PC. The derived noun `neeping' applies specifically to the long conversations about computers that tend to develop in the corners at most SF-convention parties (the term `neepery' is also in wide use). Fandom has a related proverb to the effect that "Hacking is a conversational black hole!".
:neophilia: /nee`oh-fil'-ee-*/ /n./ The trait of being excited and pleased by novelty. Common among most hackers, SF fans, and members of several other connected leading-edge subcultures, including the pro-technology `Whole Earth' wing of the ecology movement, space activists, many members of Mensa, and the Discordian/neo-pagan underground. All these groups overlap heavily and (where evidence is available) seem to share characteristic hacker tropisms for science fiction, {{music}}, and {{oriental food}}. The opposite tendency is `neophobia'.
:nerd: /n./ 1. [mainstream slang] Pejorative applied to anyone with an above-average IQ and few gifts at small talk and ordinary social rituals. 2. [jargon] Term of praise applied (in conscious ironic reference to sense 1) to someone who knows what's really important and interesting and doesn't care to be distracted by trivial chatter and silly status games. Compare the two senses of {computer geek}.
The word itself appears to derive from the lines "And then, just to show them, I'll sail to Ka-Troo / And Bring Back an It-Kutch, a Preep and a Proo, / A Nerkle, a Nerd, and a Seersucker, too!" in the Dr. Seuss book "If I Ran the Zoo" (1950). (The spellings `nurd' and `gnurd' also used to be current at MIT.) How it developed its mainstream meaning is unclear, but sense 1 seems to have entered mass culture in the early 1970s (there are reports that in the mid-1960s it meant roughly "annoying misfit" without the connotation of intelligence).
An IEEE Spectrum article (4/95, page 16) once derived `nerd' in its variant form `knurd' from the word `drunk' backwards, but this bears all the earmarks of a bogus folk etymology.
Hackers developed sense 2 in self-defense perhaps ten years later, and some actually wear "Nerd Pride" buttons, only half as a joke. At MIT one can find not only buttons but (what else?) pocket protectors bearing the slogan and the MIT seal.
:net.-: /net dot/ /pref./ [Usenet] Prefix used to describe people and events related to Usenet. From the time before the {Great Renaming}, when most non-local newsgroups had names beginning `net.'. Includes {net.god}s, `net.goddesses' (various charismatic net.women with circles of on-line admirers), `net.lurkers' (see {lurker}), `net.person', `net.parties' (a synonym for {boink}, sense 2), and many similar constructs. See also {net.police}.
:net.god: /net god/ /n./ Accolade referring to anyone who satisfies some combination of the following conditions: has been visible on Usenet for more than 5 years, ran one of the original backbone sites, moderated an important newsgroup, wrote news software, or knows Gene, Mark, Rick, Mel, Henry, Chuq, and Greg personally. See {demigod}. Net.goddesses such as Rissa or the Slime Sisters have (so far) been distinguished more by personality than by authority.
:net.personality: /net per`sn-al'-*-tee/ /n./ Someone who has made a name for him or herself on {Usenet}, through either longevity or attention-getting posts, but doesn't meet the other requirements of {net.god}hood.
:net.police: /net-p*-lees'/ /n./ (var. `net.cops') Those Usenet readers who feel it is their responsibility to pounce on and {flame} any posting which they regard as offensive or in violation of their understanding of {netiquette}. Generally used sarcastically or pejoratively. Also spelled `net police'. See also {net.-}, {code police}.
:NetBOLLIX: /n./ [from bollix: to bungle] {IBM}'s NetBIOS, an extremely {brain-damaged} network protocol that, like {Blue Glue}, is used at commercial shops that don't know any better.
:netburp: /n./ [IRC] When {netlag} gets really bad, and delays between servers exceed a certain threshhold, the {IRC} network effectively becomes partitioned for a period of time, and large numbers of people seem to be signing off at the same time and then signing back on again when things get better. An instance of this is called a `netburp' (or, sometimes, {netsplit}).
:netdead: /n./ [IRC] The state of someone who signs off {IRC}, perhaps during a {netburp}, and doesn't sign back on until later. In the interim, he is "dead to the net".
:nethack: /net'hak/ /n./ [Unix] A dungeon game similar to {rogue} but more elaborate, distributed in C source over {Usenet} and very popular at Unix sites and on PC-class machines (nethack is probably the most widely distributed of the freeware dungeon games). The earliest versions, written by Jay Fenlason and later considerably enhanced by Andries Brouwer, were simply called `hack'. The name changed when maintenance was taken over by a group of hackers originally organized by Mike Stephenson; the current contact address (as of early 1996) is nethack-bugs@linc.cis.upenn.edu.
:netiquette: /net'ee-ket/ or /net'i-ket/ /n./ [portmanteau from "network etiquette"] The conventions of politeness recognized on {Usenet}, such as avoidance of cross-posting to inappropriate groups and refraining from commercial pluggery outside the biz groups.
:netlag: /n./ [IRC, MUD] A condition that occurs when the delays in the {IRC} network or on a {MUD} become severe enough that servers briefly lose and then reestablish contact, causing messages to be delivered in bursts, often with delays of up to a minute. (Note that this term has nothing to do with mainstream "jet lag", a condition which hackers tend not to be much bothered by.)
:netnews: /net'n[y]ooz/ /n./ 1. The software that makes {Usenet} run. 2. The content of Usenet. "I read netnews right after my mail most mornings."
:netrock: /net'rok/ /n./ [IBM] A {flame}; used esp. on VNET, IBM's internal corporate network.
:netsplit: /n./ Syn. {netburp}.
:netter: /n./ 1. Loosely, anyone with a {network address}. 2. More specifically, a {Usenet} regular. Most often found in the plural. "If you post *that* in a technical group, you're going to be flamed by angry netters for the rest of time!"
:network address: /n./ (also `net address') As used by hackers, means an address on `the' network (see {network, the}; this used to include {bang path} addresses but now almost always implies an {{Internet address}}).
Display of a network address is essential if one wants to be to be taken seriously by hackers; in particular, persons or organizations that claim to understand, work with, sell to, or recruit from among hackers but *don't* display net addresses are quietly presumed to be clueless poseurs and mentally flushed (see {flush}, sense 4). Hackers often put their net addresses on their business cards and wear them prominently in contexts where they expect to meet other hackers face-to-face (see also {{science-fiction fandom}}). This is mostly functional, but is also a signal that one identifies with hackerdom (like lodge pins among Masons or tie-dyed T-shirts among Grateful Dead fans). Net addresses are often used in email text as a more concise substitute for personal names; indeed, hackers may come to know each other quite well by network names without ever learning each others' `legal' monikers. See also {sitename}, {domainist}.
[1996 update: the lodge-pin function of the network address has been gradually eroding in the last two years as Internet and World Wide Web usage have become common outside hackerdom. -- ESR]
:network meltdown: /n./ A state of complete network overload; the network equivalent of {thrash}ing. This may be induced by a {Chernobyl packet}. See also {broadcast storm}, {kamikaze packet}.
Network meltdown is often a result of network designs that are optimized for a steady state of moderate load and don't cope well with the very jagged, bursty usage patterns of the real world. One amusing instance of this is triggered by the the popular and very bloody shoot-'em-up game Doom on the PC. When used in multiplayer mode over a network, the game uses broadcast packets to inform other machines when bullets are fired. This causes problems with weapons like the chain gun which fire rapidly -- it can blast the network into a meltdown state just as easily as it shreds opposing monsters.
:network, the: /n./ 1. The union of all the major noncommercial, academic, and hacker-oriented networks, such as Internet, the pre-1990 ARPANET, NSFnet, {BITNET}, and the virtual UUCP and {Usenet} `networks', plus the corporate in-house networks and commercial time-sharing services (such as CompuServe, GEnie and AOL) that gateway to them. A site is generally considered `on the network' if it can be reached through some combination of Internet-style (@-sign) and UUCP (bang-path) addresses. See {Internet}, {bang path}, {{Internet address}}, {network address}. Following the mass-culture discovery of the Internet in 1994 and subsequent proliferation of cheap TCP/IP connections, "the network" is increasingly synonymous with the Internet itself (as it was before the second wave of wide-area computer networking began around 1980). 2. A fictional conspiracy of libertarian hacker-subversives and anti-authoritarian monkeywrenchers described in Robert Anton Wilson's novel "Schr"odinger's Cat", to which many hackers have subsequently decided they belong (this is an example of {ha ha only serious}).
In sense 1, `network' is often abbreviated to `net'. "Are you on the net?" is a frequent question when hackers first meet face to face, and "See you on the net!" is a frequent goodbye.
:New Jersey: /adj./ [primarily Stanford/Silicon Valley] Brain-damaged or of poor design. This refers to the allegedly wretched quality of such software as C, C++, and Unix (which originated at Bell Labs in Murray Hill, New Jersey). "This compiler bites the bag, but what can you expect from a compiler designed in New Jersey?" Compare {Berkeley Quality Software}. See also {Unix conspiracy}.
:New Testament: /n./ [C programmers] The second edition of K&R's "The C Programming Language" (Prentice-Hall, 1988; ISBN 0-13-110362-8), describing ANSI Standard C. See {K&R}; this version is also called `K&R2'.
:newbie: /n[y]oo'bee/ /n./ [orig. from British public-school and military slang variant of `new boy'] A Usenet neophyte. This term surfaced in the {newsgroup} talk.bizarre but is now in wide use. Criteria for being considered a newbie vary wildly; a person can be called a newbie in one newsgroup while remaining a respected regular in another. The label `newbie' is sometimes applied as a serious insult to a person who has been around Usenet for a long time but who carefully hides all evidence of having a clue. See {B1FF}.
:newgroup wars: /n[y]oo'groop worz/ /n./ [Usenet] The salvos of dueling `newgroup' and `rmgroup' messages sometimes exchanged by persons on opposite sides of a dispute over whether a {newsgroup} should be created net-wide, or (even more frequently) whether an obsolete one should be removed. These usually settle out within a week or two as it becomes clear whether the group has a natural constituency (usually, it doesn't). At times, especially in the completely anarchic alt hierarchy, the names of newsgroups themselves become a form of comment or humor; e.g., the spinoff of alt.swedish.chef.bork.bork.bork from alt.tv.muppets in early 1990, or any number of specialized abuse groups named after particularly notorious {flamer}s, e.g., alt.weemba.
:newline: /n[y]oo'li:n/ /n./ 1. [techspeak, primarily Unix] The ASCII LF character (0001010), used under {{Unix}} as a text line terminator. A Bell-Labs-ism rather than a Berkeleyism; interestingly (and unusually for Unix jargon), it is said to have originally been an IBM usage. (Though the term `newline' appears in ASCII standards, it never caught on in the general computing world before Unix). 2. More generally, any magic character, character sequence, or operation (like Pascal's writeln procedure) required to terminate a text record or separate lines. See {crlf}, {terpri}.
:NeWS: /nee'wis/, /n[y]oo'is/ or /n[y]ooz/ /n./ [acronym; the `Network Window System'] The road not taken in window systems, an elegant {{PostScript}}-based environment that would almost certainly have won the standards war with {X} if it hadn't been {proprietary} to Sun Microsystems. There is a lesson here that too many software vendors haven't yet heeded. Many hackers insist on the two-syllable pronunciations above as a way of distinguishing NeWS from {news} (the {netnews} software).
:news: /n./ See {netnews}.
:newsfroup: // /n./ [Usenet] Silly synonym for {newsgroup}, originally a typo but now in regular use on Usenet's talk.bizarre and other lunatic-fringe groups. Compare {hing}, {grilf}, and {filk}.
:newsgroup: /n./ [Usenet] One of {Usenet}'s huge collection of topic groups or {fora}. Usenet groups can be `unmoderated' (anyone can post) or `moderated' (submissions are automatically directed to a moderator, who edits or filters and then posts the results). Some newsgroups have parallel {mailing list}s for Internet people with no netnews access, with postings to the group automatically propagated to the list and vice versa. Some moderated groups (especially those which are actually gatewayed Internet mailing lists) are distributed as `digests', with groups of postings periodically collected into a single large posting with an index.
Among the best-known are comp.lang.c (the C-language forum), comp.arch (on computer architectures), comp.unix.wizards (for Unix wizards), rec.arts.sf.written and siblings (for science-fiction fans), and talk.politics.misc (miscellaneous political discussions and {flamage}).
:nick: /n./ [IRC] Short for nickname. On {IRC}, every user must pick a nick, which is sometimes the same as the user's real name or login name, but is often more fanciful. Compare {handle}.
:nickle: /ni'kl/ /n./ [from `nickel', common name for the U.S. 5-cent coin] A {nybble} + 1; 5 bits. Reported among developers for Mattel's GI 1600 (the Intellivision games processor), a chip with 16-bit-wide RAM but 10-bit-wide ROM. See also {deckle}, and {nybble} for names of other bit units.
:night mode: /n./ See {phase} (of people).
:Nightmare File System: /n./ Pejorative hackerism for Sun's Network File System (NFS). In any nontrivial network of Suns where there is a lot of NFS cross-mounting, when one Sun goes down, the others often freeze up. Some machine tries to access the down one, and (getting no response) repeats indefinitely. This causes it to appear dead to some messages (what is actually happening is that it is locked up in what should have been a brief excursion to a higher {spl} level). Then another machine tries to reach either the down machine or the pseudo-down machine, and itself becomes pseudo-down. The first machine to discover the down one is now trying both to access the down one and to respond to the pseudo-down one, so it is even harder to reach. This situation snowballs very quickly, and soon the entire network of machines is frozen -- worst of all, the user can't even abort the file access that started the problem! Many of NFS's problems are excused by partisans as being an inevitable result of its statelessness, which is held to be a great feature (critics, of course, call it a great {misfeature}). (ITS partisans are apt to cite this as proof of Unix's alleged bogosity; ITS had a working NFS-like shared file system with none of these problems in the early 1970s.) See also {broadcast storm}.
:NIL: /nil/ No. Used in reply to a question, particularly one asked using the `-P' convention. Most hackers assume this derives simply from LISP terminology for `false' (see also {T}), but NIL as a negative reply was well-established among radio hams decades before the advent of LISP. The historical connection between early hackerdom and the ham radio world was strong enough that this may have been an influence.
:Ninety-Ninety Rule: /n./ "The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time." Attributed to Tom Cargill of Bell Labs, and popularized by Jon Bentley's September 1985 "Bumper-Sticker Computer Science" column in "Communications of the ACM". It was there called the "Rule of Credibility", a name which seems not to have stuck.
:NMI: /N-M-I/ /n./ Non-Maskable Interrupt. An IRQ 7 on the PDP-11 or 680[01234]0; the NMI line on an 80[1234]86. In contrast with a {priority interrupt} (which might be ignored, although that is unlikely), an NMI is *never* ignored. Except, that is, on {clone} boxes, where NMI is often ignored on the motherboard because flaky hardware can generate many spurious ones.
:no-op: /noh'op/ /n.,v./ alt. NOP /nop/ [no operation] 1. A machine instruction that does nothing (sometimes used in assembler-level programming as filler for data or patch areas, or to overwrite code to be removed in binaries). See also {JFCL}. 2. A person who contributes nothing to a project, or has nothing going on upstairs, or both. As in "He's a no-op." 3. Any operation or sequence of operations with no effect, such as circling the block without finding a parking space, or putting money into a vending machine and having it fall immediately into the coin-return box, or asking someone for help and being told to go away. "Oh, well, that was a no-op." Hot-and-sour soup (see {great-wall}) that is insufficiently either is `no-op soup'; so is wonton soup if everybody else is having hot-and-sour.
:noddy: /nod'ee/ /adj./ [UK: from the children's books] 1. Small and un-useful, but demonstrating a point. Noddy programs are often written by people learning a new language or system. The archetypal noddy program is {hello, world}. Noddy code may be used to demonstrate a feature or bug of a compiler. May be used of real hardware or software to imply that it isn't worth using. "This editor's a bit noddy." 2. A program that is more or less instant to produce. In this use, the term does not necessarily connote uselessness, but describes a {hack} sufficiently trivial that it can be written and debugged while carrying on (and during the space of) a normal conversation. "I'll just throw together a noddy {awk} script to dump all the first fields." In North America this might be called a {mickey mouse program}. See {toy program}.
:node: /n./ 1. [Internet, UUCP] A host machine on the network. 2. [MS-DOS BBSes] A dial-in line on a BBS. Thus an MS-DOS {sysop} might say that his BBS has 4 nodes even though it has a single machine and no Internet link, confusing an Internet hacker no end.
:NOMEX underwear: /noh'meks uhn'-der-weir/ /n./ [Usenet] Syn. {asbestos longjohns}, used mostly in auto-related mailing lists and newsgroups. NOMEX underwear is an actual product available on the racing equipment market, used as a fire resistance measure and required in some racing series.
:Nominal Semidestructor: /n./ Soundalike slang for `National Semiconductor', found among other places in the Networking/2 networking sources. During the late 1970s to mid-1980s this company marketed a series of microprocessors including the NS16000 and NS32000 and several variants. At one point early in the great microprocessor race, the specs on these chips made them look like serious competition for the rising Intel 80x86 and Motorola 680x0 series. Unfortunately, the actual parts were notoriously flaky and never implemented the full instruction set promised in their literature, apparently because the company couldn't get any of the mask steppings to work as designed. They eventually sank without trace, joining the Zilog Z8000 and a few even more obscure also-rans in the graveyard of forgotten microprocessors. Compare {HP-SUX}, {AIDX}, {buglix}, {Macintrash}, {Telerat}, {Open DeathTrap}, {ScumOS}, {sun-stools}.
:non-optimal solution: /n./ (also `sub-optimal solution') An astoundingly stupid way to do something. This term is generally used in deadpan sarcasm, as its impact is greatest when the person speaking looks completely serious. Compare {stunning}. See also {Bad Thing}.
:nonlinear: /adj./ [scientific computation] 1. Behaving in an erratic and unpredictable fashion; unstable. When used to describe the behavior of a machine or program, it suggests that said machine or program is being forced to run far outside of design specifications. This behavior may be induced by unreasonable inputs, or may be triggered when a more mundane bug sends the computation far off from its expected course. 2. When describing the behavior of a person, suggests a tantrum or a {flame}. "When you talk to Bob, don't mention the drug problem or he'll go nonlinear for hours." In this context, `go nonlinear' connotes `blow up out of proportion' (proportion connotes linearity).
:nontrivial: /adj./ Requiring real thought or significant computing power. Often used as an understated way of saying that a problem is quite difficult or impractical, or even entirely unsolvable ("Proving P=NP is nontrivial"). The preferred emphatic form is `decidedly nontrivial'. See {trivial}, {uninteresting}, {interesting}.
:not ready for prime time: /adj./ Usable, but only just so; not very robust; for internal use only. Said of a program or device. Often connotes that the thing will be made more solid {Real Soon Now}. This term comes from the ensemble name of the original cast of "Saturday Night Live", the "Not Ready for Prime Time Players". It has extra flavor for hackers because of the special (though now semi-obsolescent) meaning of {prime time}. Compare {beta}.
:notwork: /not'werk/ /n./ A network, when it is acting {flaky} or is {down}. Compare {nyetwork}. Said at IBM to have originally referred to a particular period of flakiness on IBM's VNET corporate network ca. 1988; but there are independent reports of the term from elsewhere.
:NP-: /N-P/ /pref./ Extremely. Used to modify adjectives describing a level or quality of difficulty; the connotation is often `more so than it should be' This is generalized from the computer-science terms `NP-hard' and `NP-complete'; NP-complete problems all seem to be very hard, but so far no one has found a good a priori reason that they should be. NP is the set of Nondeterministic-Polynomial algorithms, those that can be completed by a nondeterministic Turing machine in an amount of time that is a polynomial function of the size of the input; a solution for one NP-complete problem would solve all the others. "Coding a BitBlt implementation to perform correctly in every case is NP-annoying."
:nroff:: /N'rof/ /n./ [Unix, from "new roff" (see {{troff}})] A companion program to the Unix typesetter {{troff}}, accepting identical input but preparing output for terminals and line printers.
:NSA line eater: /n./ The National Security Agency trawling program sometimes assumed to be reading the net for the U.S. Government's spooks. Most hackers describe it as a mythical beast, but some believe it actually exists, more aren't sure, and many believe in acting as though it exists just in case. Some netters put loaded phrases like `KGB', `Uzi', `nuclear materials', `Palestine', `cocaine', and `assassination' in their {sig block}s in a (probably futile) attempt to confuse and overload the creature. The {GNU} version of {EMACS} actually has a command that randomly inserts a bunch of insidious anarcho-verbiage into your edited text.
There is a mainstream variant of this myth involving a `Trunk Line Monitor', which supposedly used speech recognition to extract words from telephone trunks. This one was making the rounds in the late 1970s, spread by people who had no idea of then-current technology or the storage, signal-processing, or speech recognition needs of such a project. On the basis of mass-storage costs alone it would have been cheaper to hire 50 high-school students and just let them listen in. Speech-recognition technology can't do this job even now (1996), and almost certainly won't in this millennium, either. The peak of silliness came with a letter to an alternative paper in New Haven, Connecticut, laying out the factoids of this Big Brotherly affair. The letter writer then revealed his actual agenda by offering -- at an amazing low price, just this once, we take VISA and MasterCard -- a scrambler guaranteed to daunt the Trunk Trawler and presumably allowing the would-be Baader-Meinhof gangs of the world to get on with their business.
:NSP: /N-S-P/ /n./ Common abbreviation for `Network Service Provider', one of the big national or regional companies that maintains a portion of the Internet backbone and resells connectivity to {ISP}s. In 1996, major NSPs include ANS, MCI, UUNET, and Sprint. An Internet wholesaler.
:nude: /adj./ Said of machines delivered without an operating system (compare {bare metal}). "We ordered 50 systems, but they all arrived nude, so we had to spend a an extra weekend with the installation tapes." This usage is a recent innovation reflecting the fact that most PC clones are now delivered with DOS or Microsoft Windows pre-installed at the factory. Other kinds of hardware are still normally delivered without OS, so this term is particular to PC support groups.
:nuke: /n[y]ook/ /vt./ 1. To intentionally delete the entire contents of a given directory or storage volume. "On Unix, `rm -r /usr' will nuke everything in the usr filesystem." Never used for accidental deletion. Oppose {blow away}. 2. Syn. for {dike}, applied to smaller things such as files, features, or code sections. Often used to express a final verdict. "What do you want me to do with that 80-meg {wallpaper} file?" "Nuke it." 3. Used of processes as well as files; nuke is a frequent verbal alias for `kill -9' on Unix. 4. On IBM PCs, a bug that results in {fandango on core} can trash the operating system, including the FAT (the in-core copy of the disk block chaining information). This can utterly scramble attached disks, which are then said to have been `nuked'. This term is also used of analogous lossages on Macintoshes and other micros without memory protection.
:number-crunching: /n./ Computations of a numerical nature, esp. those that make extensive use of floating-point numbers. The only thing {Fortrash} is good for. This term is in widespread informal use outside hackerdom and even in mainstream slang, but has additional hackish connotations: namely, that the computations are mindless and involve massive use of {brute force}. This is not always {evil}, esp. if it involves ray tracing or fractals or some other use that makes {pretty pictures}, esp. if such pictures can be used as {wallpaper}. See also {crunch}.
:numbers: /n./ [scientific computation] Output of a computation that may not be significant results but at least indicate that the program is running. May be used to placate management, grant sponsors, etc. `Making numbers' means running a program because output -- any output, not necessarily meaningful output -- is needed as a demonstration of progress. See {pretty pictures}, {math-out}, {social science number}.
:NUXI problem: /nuk'see pro'bl*m/ /n./ Refers to the problem of transferring data between machines with differing byte-order. The string `UNIX' might look like `NUXI' on a machine with a different `byte sex' (e.g., when transferring data from a {little-endian} to a {big-endian}, or vice-versa). See also {middle-endian}, {swab}, and {bytesexual}.
:nybble: /nib'l/ (alt. `nibble') /n./ [from /v./ `nibble' by analogy with `bite' => `byte'] Four bits; one {hex} digit; a half-byte. Though `byte' is now techspeak, this useful relative is still jargon. Compare {{byte}}; see also {bit}, Apparently the `nybble' spelling is uncommon in Commonwealth Hackish, as British orthography suggests the pronunciation /ni:'bl/.
Following `bit', `byte' and `nybble' there have been quite a few analogical attempts to construct unambiguous terms for bit blocks of other sizes. All of these are strictly jargon, not techspeak, and not very common jargon at that (most hackers would recognize them in context but not use them spontaneously). We collect them here for reference together with the ambiguous techspeak terms `word', `half-word' and `quadwords'; some (indicated) have substantial information separate entries. 2 bits: {crumb}, {quad}, {quarter}, tayste 4 bits: nybble 5 bits: {nickle} 10 bits: {deckle} 16 bits: playte, {chawmp} (on a 32-bit machine), word (on a 16-bit machine), half-word (on a 32-bit machine). 18 bits: {chawmp} (on a 36-bit machine), half-word (on a 36-bit machine) 32 bits: dynner, {gawble} (on a 32-bit machine), word (on a 32-bit machine), longword (on a 16-bit machine). 36: word (on a 36-bit machine) 48 bits: {gawble} (under circumstances that remain obscure)
The fundamental motivation for most of these jargon terms (aside from the normal hackerly enjoyment of punning wordplay) is the extreme ambiguity of the term `word' and its derivatives.
:nyetwork: /nyet'werk/ /n./ [from Russian `nyet' = no] A network, when it is acting {flaky} or is {down}. Compare {notwork}.
= O = =====
:Ob-: /ob/ /pref./ Obligatory. A piece of {netiquette} acknowledging that the author has been straying from the newsgroup's charter topic. For example, if a posting in alt.sex is a response to a part of someone else's posting that has nothing particularly to do with sex, the author may append `ObSex' (or `Obsex') and toss off a question or vignette about some unusual erotic act. It is considered a sign of great {winnitude} when one's Obs are more interesting than other people's whole postings.
:Obfuscated C Contest: /n./ (in full, the `International Obfuscated C Code Contest', or IOCCC) An annual contest run since 1984 over Usenet by Landon Curt Noll and friends. The overall winner is whoever produces the most unreadable, creative, and bizarre (but working) C program; various other prizes are awarded at the judges' whim. C's terse syntax and macro-preprocessor facilities give contestants a lot of maneuvering room. The winning programs often manage to be simultaneously (a) funny, (b) breathtaking works of art, and (c) horrible examples of how *not* to code in C.
This relatively short and sweet entry might help convey the flavor of obfuscated C:
/* * HELLO WORLD program * by Jack Applin and Robert Heckendorn, 1985 */ main(v,c)char**c;{for(v[c++]="Hello, world!\n)"; (!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c)); **c=!c)write(!!*c,*c,!!**c);}
Here's another good one:
/* * Program to compute an approximation of pi * by Brian Westley, 1988 */
#define _ -F<00||--F-OO--; int F=00,OO=00; main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() { --- --------_ ----------- ------------- --------------_ --------------_ --------------- --------------- --------------- --------------- --------------_ --------------_ ------------- ----------- ------- --- } Note that this program works by computing its own area. For more digits, write a bigger program. See also {hello, world}.
The IOCC has an official home page at http://reality.sgi.com/csp/ioccc.
:obi-wan error: /oh'bee-won` er'*r/ /n./ [RPI, from `off-by-one' and the Obi-Wan Kenobi character in "Star Wars"] A loop of some sort in which the index is off by 1. Common when the index should have started from 0 but instead started from 1. A kind of {off-by-one error}. See also {zeroth}.
:Objectionable-C: /n./ Hackish take on "Objective-C", the name of an object-oriented dialect of C in competition with the better-known C++ (it is used to write native applications on the NeXT machine). Objectionable-C uses a Smalltalk-like syntax, but lacks the flexibility of Smalltalk method calls, and (like many such efforts) comes frustratingly close to attaining the {Right Thing} without actually doing so.
:obscure: /adj./ Used in an exaggeration of its normal meaning, to imply total incomprehensibility. "The reason for that last crash is obscure." "The `find(1)' command's syntax is obscure!" The phrase `moderately obscure' implies that something could be figured out but probably isn't worth the trouble. The construction `obscure in the extreme' is the preferred emphatic form.
:octal forty: /ok'tl for'tee/ /n./ Hackish way of saying "I'm drawing a blank." Octal 40 is the {{ASCII}} space character, 0100000; by an odd coincidence, {hex} 40 (01000000) is the {{EBCDIC}} space character. See {wall}.
:off the trolley: /adj./ Describes the behavior of a program that malfunctions and goes catatonic, but doesn't actually {crash} or abort. See {glitch}, {bug}, {deep space}.
:off-by-one error: /n./ Exceedingly common error induced in many ways, such as by starting at 0 when you should have started at 1 or vice-versa, or by writing `< N' instead of `<= N' or vice-versa. Also applied to giving something to the person next to the one who should have gotten it. Often confounded with {fencepost error}, which is properly a particular subtype of it.
:offline: /adv./ Not now or not here. "Let's take this discussion offline." Specifically used on {Usenet} to suggest that a discussion be moved off a public newsgroup to email.
:ogg: /og/ /v./ [CMU] 1. In the multi-player space combat game Netrek, to execute kamikaze attacks against enemy ships which are carrying armies or occupying strategic positions. Named during a game in which one of the players repeatedly used the tactic while playing Orion ship G, showing up in the player list as "Og". This trick has been roundly denounced by those who would return to the good old days when the tactic of dogfighting was dominant, but as Sun Tzu wrote, "What is of supreme importance in war is to attack the enemy's strategy." However, the traditional answer to the newbie question "What does ogg mean?" is just "Pick up some armies and I'll show you." 2. In other games, to forcefully attack an opponent with the expectation that the resources expended will be renewed faster than the opponent will be able to regain his previous advantage. Taken more seriously as a tactic since it has gained a simple name. 3. To do anything forcefully, possibly without consideration of the drain on future resources. "I guess I'd better go ogg the problem set that's due tomorrow." "Whoops! I looked down at the map for a sec and almost ogged that oncoming car."
:old fart: /n./ Tribal elder. A title self-assumed with remarkable frequency by (esp.) Usenetters who have been programming for more than about 25 years; often appears in {sig block}s attached to Jargon File contributions of great archeological significance. This is a term of insult in the second or third person but one of pride in first person.
:Old Testament: /n./ [C programmers] The first edition of {K&R}, the sacred text describing {Classic C}.
:one-banana problem: /n./ At mainframe shops, where the computers have operators for routine administrivia, the programmers and hardware people tend to look down on the operators and claim that a trained monkey could do their job. It is frequently observed that the incentives that would be offered said monkeys can be used as a scale to describe the difficulty of a task. A one-banana problem is simple; hence, "It's only a one-banana job at the most; what's taking them so long?"
At IBM, folklore divides the world into one-, two-, and three-banana problems. Other cultures have different hierarchies and may divide them more finely; at ICL, for example, five grapes (a bunch) equals a banana. Their upper limit for the in-house {sysape}s is said to be two bananas and three grapes (another source claims it's three bananas and one grape, but observes "However, this is subject to local variations, cosmic rays and ISO"). At a complication level any higher than that, one asks the manufacturers to send someone around to check things.
See also {Infinite-Monkey Theorem}.
:one-line fix: /n./ Used (often sarcastically) of a change to a program that is thought to be trivial or insignificant right up to the moment it crashes the system. Usually `cured' by another one-line fix. See also {I didn't change anything!}
:one-liner wars: /n./ A game popular among hackers who code in the language APL (see {write-only language} and {line noise}). The objective is to see who can code the most interesting and/or useful routine in one line of operators chosen from APL's exceedingly {hairy} primitive set. A similar amusement was practiced among {TECO} hackers and is now popular among {Perl} aficionados.
Ken Iverson, the inventor of APL, has been credited with a one-liner that, given a number N, produces a list of the prime numbers from 1 to N inclusive. It looks like this:
(2 = 0 +.= T o.| T) / T <- iN
where `o' is the APL null character, the assignment arrow is a single character, and `i' represents the APL iota.
:ooblick: /oo'blik/ /n./ [from the Dr. Seuss title "Bartholomew and the Oobleck"; the spelling `oobleck' is still current in the mainstream] A bizarre semi-liquid sludge made from cornstarch and water. Enjoyed among hackers who make batches during playtime at parties for its amusing and extremely non-Newtonian behavior; it pours and splatters, but resists rapid motion like a solid and will even crack when hit by a hammer. Often found near lasers.
Here is a field-tested ooblick recipe contributed by GLS:
1 cup cornstarch 1 cup baking soda 3/4 cup water N drops of food coloring
This recipe isn't quite as non-Newtonian as a pure cornstarch ooblick, but has an appropriately slimy feel.
Some, however, insist that the notion of an ooblick *recipe* is far too mechanical, and that it is best to add the water in small increments so that the various mixed states the cornstarch goes through as it *becomes* ooblick can be grokked in fullness by many hands. For optional ingredients of this experience, see the "{Ceremonial Chemicals}" section of Appendix B.
:op: /op/ /n./ 1. In England and Ireland, common verbal abbreviation for `operator', as in system operator. Less common in the U.S., where {sysop} seems to be preferred. 2. [IRC] Someone who is endowed with privileges on {IRC}, not limited to a particular channel. These are generally people who are in charge of the IRC server at their particular site. Sometimes used interchangeably with {CHOP}. Compare {sysop}.
:open: /n./ Abbreviation for `open (or left) parenthesis' --- used when necessary to eliminate oral ambiguity. To read aloud the LISP form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open eks close, open, plus eks one, close close."
:Open DeathTrap: /n./ Abusive hackerism for the Santa Cruz Operation's `Open DeskTop' product, a Motif-based graphical interface over their Unix. The funniest part is that this was coined by SCO's own developers.... Compare {AIDX}, {Macintrash} {Nominal Semidestructor}, {ScumOS}, {sun-stools}, {HP-SUX}.
:open switch: /n./ [IBM: prob. from railroading] An unresolved question, issue, or problem.
:operating system:: /n./ [techspeak] (Often abbreviated `OS') The foundation software of a machine, of course; that which schedules tasks, allocates storage, and presents a default interface to the user between applications. The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around its host machines. Hacker folklore has been shaped primarily by the {{Unix}}, {{ITS}}, {{TOPS-10}}, {{TOPS-20}}/{{TWENEX}}, {{WAITS}}, {{CP/M}}, {{MS-DOS}}, and {{Multics}} operating systems (most importantly by ITS and Unix).
:optical diff: /n./ See {vdiff}.
:optical grep: /n./ See {vgrep}.
:optimism: /n./ What a programmer is full of after fixing the last bug and before discovering the *next* last bug. Fred Brooks's book "The Mythical Man-Month" (See "Brooks's Law") contains the following paragraph that describes this extremely well:
All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists. But however the selection process works, the result is indisputable: "This time it will surely run," or "I just found the last bug.".
See also {Lubarsky's Law of Cybernetic Entomology}.
:Orange Book: /n./ The U.S. Government's standards document "Trusted Computer System Evaluation Criteria, DOD standard 5200.28-STD, December, 1985" which characterize secure computing architectures and defines levels A1 (most secure) through D (least). Stock Unixes are roughly C1, and can be upgraded to about C2 without excessive pain. See also {{crayola books}}, {{book titles}}.
:oriental food:: /n./ Hackers display an intense tropism towards oriental cuisine, especially Chinese, and especially of the spicier varieties such as Szechuan and Hunan. This phenomenon (which has also been observed in subcultures that overlap heavily with hackerdom, most notably science-fiction fandom) has never been satisfactorily explained, but is sufficiently intense that one can assume the target of a hackish dinner expedition to be the best local Chinese place and be right at least three times out of four. See also {ravs}, {great-wall}, {stir-fried random}, {laser chicken}, {Yu-Shiang Whole Fish}. Thai, Indian, Korean, and Vietnamese cuisines are also quite popular.
:orphan: /n./ [Unix] A process whose parent has died; one inherited by `init(1)'. Compare {zombie}.
:orphaned i-node: /or'f*nd i:'nohd/ /n./ [Unix] 1. [techspeak] A file that retains storage but no longer appears in the directories of a filesystem. 2. By extension, a pejorative for any person no longer serving a useful function within some organization, esp. {lion food} without subordinates.
:orthogonal: /adj./ [from mathematics] Mutually independent; well separated; sometimes, irrelevant to. Used in a generalization of its mathematical meaning to describe sets of primitives or capabilities that, like a vector basis in geometry, span the entire `capability space' of the system and are in some sense non-overlapping or mutually independent. For example, in architectures such as the PDP-11 or VAX where all or nearly all registers can be used interchangeably in any role with respect to any instruction, the register set is said to be orthogonal. Or, in logic, the set of operators `not' and `or' is orthogonal, but the set `nand', `or', and `not' is not (because any one of these can be expressed in terms of the others). Also used in comments on human discourse: "This may be orthogonal to the discussion, but...."
:OS: /O-S/ 1. [Operating System] /n./ An abbreviation heavily used in email, occasionally in speech. 2. /n. obs./ On ITS, an output spy. See "{OS and JEDGAR}" in Appendix A.
:OS/2: /O S too/ /n./ The anointed successor to MS-DOS for Intel 286- and 386-based micros; proof that IBM/Microsoft couldn't get it right the second time, either. Often called `Half-an-OS'. Mentioning it is usually good for a cheap laugh among hackers --- the design was so {baroque}, and the implementation of 1.x so bad, that 3 years after introduction you could still count the major {app}s shipping for it on the fingers of two hands -- in unary. The 2.x versions are said to have improved somewhat, and informed hackers now rate them superior to Microsoft Windows (an endorsement which, however, could easily be construed as damning with faint praise). See {monstrosity}, {cretinous}, {second-system effect}.
:OSU: /O-S-U/ /n. obs./ [TMRC] Acronym for Officially Sanctioned User; a user who is recognized as such by the computer authorities and allowed to use the computer above the objections of the security monitor.
:OTOH: // [USENET] On The Other Hand.
:out-of-band: /adj./ [from telecommunications and network theory] 1. In software, describes values of a function which are not in its `natural' range of return values, but are rather signals that some kind of exception has occurred. Many C functions, for example, return a nonnegative integral value, but indicate failure with an out-of-band return value of -1. Compare {hidden flag}, {green bytes}, {fence}. 2. Also sometimes used to describe what communications people call `shift characters', such as the ESC that leads control sequences for many terminals, or the level shift indicators in the old 5-bit Baudot codes. 3. In personal communication, using methods other than email, such as telephones or {snail-mail}.
:overflow bit: /n./ 1. [techspeak] A {flag} on some processors indicating an attempt to calculate a result too large for a register to hold. 2. More generally, an indication of any kind of capacity overload condition. "Well, the {{Ada}} description was {baroque} all right, but I could hack it OK until they got to the exception handling ... that set my overflow bit." 3. The hypothetical bit that will be set if a hacker doesn't get to make a trip to the Room of Porcelain Fixtures: "I'd better process an internal interrupt before the overflow bit gets set".
:overflow pdl: /n./ [MIT] The place where you put things when your {pdl} is full. If you don't have one and too many things get pushed, you forget something. The overflow pdl for a person's memory might be a memo pad. This usage inspired the following doggerel:
Hey, diddle, diddle The overflow pdl To get a little more stack; If that's not enough Then you lose it all, And have to pop all the way back. --The Great Quux
The term {pdl} seems to be primarily an MITism; outside MIT this term is replaced by `overflow {stack}'.
:overrun: /n./ 1. [techspeak] Term for a frequent consequence of data arriving faster than it can be consumed, esp. in serial line communications. For example, at 9600 baud there is almost exactly one character per millisecond, so if a {silo} can hold only two characters and the machine takes longer than 2 msec to get to service the interrupt, at least one character will be lost. 2. Also applied to non-serial-I/O communications. "I forgot to pay my electric bill due to mail overrun." "Sorry, I got four phone calls in 3 minutes last night and lost your message to overrun." When {thrash}ing at tasks, the next person to make a request might be told "Overrun!" Compare {firehose syndrome}. 3. More loosely, may refer to a {buffer overflow} not necessarily related to processing time (as in {overrun screw}).
:overrun screw: /n./ [C programming] A variety of {fandango on core} produced by scribbling past the end of an array (C implementations typically have no checks for this error). This is relatively benign and easy to spot if the array is static; if it is auto, the result may be to {smash the stack} -- often resulting in {heisenbug}s of the most diabolical subtlety. The term `overrun screw' is used esp. of scribbles beyond the end of arrays allocated with `malloc(3)'; this typically trashes the allocation header for the next block in the {arena}, producing massive lossage within malloc and often a core dump on the next operation to use `stdio(3)' or `malloc(3)' itself. See {spam}, {overrun}; see also {memory leak}, {memory smash}, {aliasing bug}, {precedence lossage}, {fandango on core}, {secondary damage}.
= P = =====
:P-mail: /n./ Physical mail, as opposed to {email}. Synonymous with {snail-mail}, but much less common.
:P.O.D.: /P-O-D/ Acronym for `Piece Of Data' (as opposed to a code section). Usage: pedantic and rare. See also {pod}.
:padded cell: /n./ Where you put {luser}s so they can't hurt anything. A program that limits a luser to a carefully restricted subset of the capabilities of the host system (for example, the `rsh(1)' utility on USG Unix). Note that this is different from an {iron box} because it is overt and not aimed at enforcing security so much as protecting others (and the luser) from the consequences of the luser's boundless naivete (see {naive}). Also `padded cell environment'.
:page in: /v./ [MIT] 1. To become aware of one's surroundings again after having paged out (see {page out}). Usually confined to the sarcastic comment: "Eric pages in, {film at 11}!" 2. Syn. `swap in'; see {swap}.
:page out: /vi./ [MIT] 1. To become unaware of one's surroundings temporarily, due to daydreaming or preoccupation. "Can you repeat that? I paged out for a minute." See {page in}. Compare {glitch}, {thinko}. 2. Syn. `swap out'; see {swap}.
:pain in the net: /n./ A {flamer}.
:Pangloss parity: /n./ [from Dr. Pangloss, the eternal optimist in Voltaire's "Candide"] In corporate DP shops, a common condition of severe but equally shared {lossage} resulting from the theory that as long as everyone in the organization has the exactly the *same* model of obsolete computer, everything will be fine.
:paper-net: /n./ Hackish way of referring to the postal service, analogizing it to a very slow, low-reliability network. Usenet {sig block}s sometimes include a "Paper-Net:" header just before the sender's postal address; common variants of this are "Papernet" and "P-Net". Note that the standard {netiquette} guidelines discourage this practice as a waste of bandwidth, since netters are quite unlikely to casually use postal addresses. Compare {voice-net}, {snail-mail}, {P-mail}.
:param: /p*-ram'/ /n./ Shorthand for `parameter'. See also {parm}; compare {arg}, {var}.
:PARC: /n./ See {XEROX PARC}.
:parent message: /n./ What a {followup} follows up.
:parity errors: /pl.n./ Little lapses of attention or (in more severe cases) consciousness, usually brought on by having spent all night and most of the next day hacking. "I need to go home and crash; I'm starting to get a lot of parity errors." Derives from a relatively common but nearly always correctable transient error in RAM hardware. Parity errors can also afflict mass storage and serial communication lines; this is more serious because not always correctable.
:Parkinson's Law of Data: /prov./ "Data expands to fill the space available for storage"; buying more memory encourages the use of more memory-intensive techniques. It has been observed over the last 10 years that the memory usage of evolving systems tends to double roughly once every 18 months. Fortunately, memory density available for constant dollars also tends to double about once every 12 months (see {Moore's Law}); unfortunately, the laws of physics guarantee that the latter cannot continue indefinitely.
:parm: /parm/ /n./ Further-compressed form of {param}. This term is an IBMism, and written use is almost unknown outside IBM shops; spoken /parm/ is more widely distributed, but the synonym {arg} is favored among hackers. Compare {arg}, {var}.
:parse: [from linguistic terminology] /vt./ 1. To determine the syntactic structure of a sentence or other utterance (close to the standard English meaning). "That was the one I saw you." "I can't parse that." 2. More generally, to understand or comprehend. "It's very simple; you just kretch the glims and then aos the zotz." "I can't parse that." 3. Of fish, to have to remove the bones yourself. "I object to parsing fish", means "I don't want to get a whole fish, but a sliced one is okay". A `parsed fish' has been deboned. There is some controversy over whether `unparsed' should mean `bony', or also mean `deboned'.
:Pascal:: /n./ An Algol-descended language designed by Niklaus Wirth on the CDC 6600 around 1967--68 as an instructional tool for elementary programming. This language, designed primarily to keep students from shooting themselves in the foot and thus extremely restrictive from a general-purpose-programming point of view, was later promoted as a general-purpose tool and, in fact, became the ancestor of a large family of languages including Modula-2 and {{Ada}} (see also {bondage-and-discipline language}). The hackish point of view on Pascal was probably best summed up by a devastating (and, in its deadpan way, screamingly funny) 1981 paper by Brian Kernighan (of {K&R} fame) entitled "Why Pascal is Not My Favorite Programming Language", which was turned down by the technical journals but circulated widely via photocopies. It was eventually published in "Comparing and Assessing Programming Languages", edited by Alan Feuer and Narain Gehani (Prentice-Hall, 1984). Part of his discussion is worth repeating here, because its criticisms are still apposite to Pascal itself after ten years of improvement and could also stand as an indictment of many other bondage-and-discipline languages. At the end of a summary of the case against Pascal, Kernighan wrote:
9. There is no escape
This last point is perhaps the most important. The language is inadequate but circumscribed, because there is no way to escape its limitations. There are no casts to disable the type-checking when necessary. There is no way to replace the defective run-time environment with a sensible one, unless one controls the compiler that defines the "standard procedures". The language is closed.
People who use Pascal for serious programming fall into a fatal trap. Because the language is impotent, it must be extended. But each group extends Pascal in its own direction, to make it look like whatever language they really want. Extensions for separate compilation, FORTRAN-like COMMON, string data types, internal static variables, initialization, octal numbers, bit operators, etc., all add to the utility of the language for one group but destroy its portability to others.
I feel that it is a mistake to use Pascal for anything much beyond its original target. In its pure form, Pascal is a toy language, suitable for teaching but not for real programming.
Pascal has since been almost entirely displaced (by {C}) from the niches it had acquired in serious applications and systems programming, but retains some popularity as a hobbyist language in the MS-DOS and Macintosh worlds.
:pastie: /pay'stee/ /n./ An adhesive-backed label designed to be attached to a key on a keyboard to indicate some non-standard character which can be accessed through that key. Pasties are likely to be used in APL environments, where almost every key is associated with a special character. A pastie on the R key, for example, might remind the user that it is used to generate the rho character. The term properly refers to nipple-concealing devices formerly worn by strippers in concession to indecent-exposure laws; compare {tits on a keyboard}.
:patch: 1. /n./ A temporary addition to a piece of code, usually as a {quick-and-dirty} remedy to an existing bug or misfeature. A patch may or may not work, and may or may not eventually be incorporated permanently into the program. Distinguished from a {diff} or {mod} by the fact that a patch is generated by more primitive means than the rest of the program; the classical examples are instructions modified by using the front panel switches, and changes made directly to the binary executable of a program originally written in an {HLL}. Compare {one-line fix}. 2. /vt./ To insert a patch into a piece of code. 3. [in the Unix world] /n./ A {diff} (sense 2). 4. A set of modifications to binaries to be applied by a patching program. IBM operating systems often receive updates to the operating system in the form of absolute hexadecimal patches. If you have modified your OS, you have to disassemble these back to the source. The patches might later be corrected by other patches on top of them (patches were said to "grow scar tissue"). The result was often a convoluted {patch space} and headaches galore. 5. [Unix] the `patch(1)' program, written by Larry Wall, which automatically applies a patch (sense 3) to a set of source code.
There is a classic story of a {tiger team} penetrating a secure military computer that illustrates the danger inherent in binary patches (or, indeed, any patches that you can't -- or don't --- inspect and examine before installing). They couldn't find any {trap door}s or any way to penetrate security of IBM's OS, so they made a site visit to an IBM office (remember, these were official military types who were purportedly on official business), swiped some IBM stationery, and created a fake patch. The patch was actually the trapdoor they needed. The patch was distributed at about the right time for an IBM patch, had official stationery and all accompanying documentation, and was dutifully installed. The installation manager very shortly thereafter learned something about proper procedures.
:patch space: /n./ An unused block of bits left in a binary so that it can later be modified by insertion of machine-language instructions there (typically, the patch space is modified to contain new code, and the superseded code is patched to contain a jump or call to the patch space). The widening use of HLLs has made this term rare; it is now primarily historical outside IBM shops. See {patch} (sense 4), {zap} (sense 4), {hook}.
:path: /n./ 1. A {bang path} or explicitly routed {{Internet address}}; a node-by-node specification of a link between two machines. 2. [Unix] A filename, fully specified relative to the root directory (as opposed to relative to the current directory; the latter is sometimes called a `relative path'). This is also called a `pathname'. 3. [Unix and MS-DOS] The `search path', an environment variable specifying the directories in which the {shell} (COMMAND.COM, under MS-DOS) should look for commands. Other, similar constructs abound under Unix (for example, the C preprocessor has a `search path' it uses in looking for `#include' files).
:pathological: /adj./ 1. [scientific computation] Used of a data set that is grossly atypical of normal expected input, esp. one that exposes a weakness or bug in whatever algorithm one is using. An algorithm that can be broken by pathological inputs may still be useful if such inputs are very unlikely to occur in practice. 2. When used of test input, implies that it was purposefully engineered as a worst case. The implication in both senses is that the data is spectacularly ill-conditioned or that someone had to explicitly set out to break the algorithm in order to come up with such a crazy example. 3. Also said of an unlikely collection of circumstances. "If the network is down and comes up halfway through the execution of that command by root, the system may just crash." "Yes, but that's a pathological case." Often used to dismiss the case from discussion, with the implication that the consequences are acceptable, since they will happen so infrequently (if at all) that it doesn't seem worth going to the extra trouble to handle that case (see sense 1).
:payware: /pay'weir/ /n./ Commercial software. Oppose {shareware} or {freeware}.
:PBD: /P-B-D/ /n./ [abbrev. of `Programmer Brain Damage'] Applied to bug reports revealing places where the program was obviously broken by an incompetent or short-sighted programmer. Compare {UBD}; see also {brain-damaged}.
:PC-ism: /P-C-izm/ /n./ A piece of code or coding technique that takes advantage of the unprotected single-tasking environment in IBM PCs and the like, e.g., by busy-waiting on a hardware register, direct diddling of screen memory, or using hard timing loops. Compare {ill-behaved}, {vaxism}, {unixism}. Also, `PC-ware' n., a program full of PC-isms on a machine with a more capable operating system. Pejorative.
:PD: /P-D/ /adj./ Common abbreviation for `public domain', applied to software distributed over {Usenet} and from Internet archive sites. Much of this software is not in fact public domain in the legal sense but travels under various copyrights granting reproduction and use rights to anyone who can {snarf} a copy. See {copyleft}.
:PDL: /P-D-L/, /pid'l/, /p*d'l/ or /puhd'l/ 1. /n./ `Program Design Language'. Any of a large class of formal and profoundly useless pseudo-languages in which {management} forces one to design programs. Too often, management expects PDL descriptions to be maintained in parallel with the code, imposing massive overhead to little or no benefit. See also {{flowchart}}. 2. /v./ To design using a program design language. "I've been pdling so long my eyes won't focus beyond 2 feet." 3. /n./ `Page Description Language'. Refers to any language which is used to control a graphics device, usually a laserprinter. The most common example is, of course, Adobe's {{PostScript}} language, but there are many others, such as Xerox InterPress, etc.
:pdl: /pid'l/ or /puhd'l/ /n./ [abbreviation for `Push Down List'] 1. In ITS days, the preferred MITism for {stack}. See {overflow pdl}. 2. Dave Lebling, one of the co-authors of {Zork}; (his {network address} on the ITS machines was at one time pdl@dms). 3. Rarely, any sense of {PDL}, as these are not invariably capitalized.
:PDP-10: /n./ [Programmed Data Processor model 10] The machine that made timesharing real. It looms large in hacker folklore because of its adoption in the mid-1970s by many university computing facilities and research labs, including the MIT AI Lab, Stanford, and CMU. Some aspects of the instruction set (most notably the bit-field instructions) are still considered unsurpassed. The 10 was eventually eclipsed by the VAX machines (descendants of the PDP-11) when DEC recognized that the 10 and VAX product lines were competing with each other and decided to concentrate its software development effort on the more profitable VAX. The machine was finally dropped from DEC's line in 1983, following the failure of the Jupiter Project at DEC to build a viable new model. (Some attempts by other companies to market clones came to nothing; see {Foonly} and {Mars}.) This event spelled the doom of {{ITS}} and the technical cultures that had spawned the original Jargon File, but by mid-1991 it had become something of a badge of honorable old-timerhood among hackers to have cut one's teeth on a PDP-10. See {{TOPS-10}}, {{ITS}}, {AOS}, {BLT}, {DDT}, {DPB}, {EXCH}, {HAKMEM}, {JFCL}, {LDB}, {pop}, {push}.
:PDP-20: /n./ The most famous computer that never was. {PDP-10} computers running the {{TOPS-10}} operating system were labeled `DECsystem-10' as a way of differentiating them from the PDP-11. Later on, those systems running {TOPS-20} were labeled `DECSYSTEM-20' (the block capitals being the result of a lawsuit brought against DEC by Singer, which once made a computer called `system-10'), but contrary to popular lore there was never a `PDP-20'; the only difference between a 10 and a 20 was the operating system and the color of the paint. Most (but not all) machines sold to run TOPS-10 were painted `Basil Blue', whereas most TOPS-20 machines were painted `Chinese Red' (often mistakenly called orange).
:peek: /n.,vt./ (and {poke}) The commands in most microcomputer BASICs for directly accessing memory contents at an absolute address; often extended to mean the corresponding constructs in any {HLL} (peek reads memory, poke modifies it). Much hacking on small, non-MMU micros consists of `peek'ing around memory, more or less at random, to find the location where the system keeps interesting stuff. Long (and variably accurate) lists of such addresses for various computers circulate (see {{interrupt list, the}}). The results of `poke's at these addresses may be highly useful, mildly amusing, useless but neat, or (most likely) total {lossage} (see {killer poke}).
Since a {real operating system} provides useful, higher-level services for the tasks commonly performed with peeks and pokes on micros, and real languages tend not to encourage low-level memory groveling, a question like "How do I do a peek in C?" is diagnostic of the {newbie}. (Of course, OS kernels often have to do exactly this; a real C hacker would unhesitatingly, if unportably, assign an absolute address to a pointer variable and indirect through it.)
:pencil and paper: /n./ An archaic information storage and transmission device that works by depositing smears of graphite on bleached wood pulp. More recent developments in paper-based technology include improved `write-once' update devices which use tiny rolling heads similar to mouse balls to deposit colored pigment. All these devices require an operator skilled at so-called `handwriting' technique. These technologies are ubiquitous outside hackerdom, but nearly forgotten inside it. Most hackers had terrible handwriting to begin with, and years of keyboarding tend to have encouraged it to degrade further. Perhaps for this reason, hackers deprecate pencil-and-paper technology and often resist using it in any but the most trivial contexts.
:peon: /n./ A person with no special ({root} or {wheel}) privileges on a computer system. "I can't create an account on *foovax* for you; I'm only a peon there."
:percent-S: /per-sent' es'/ /n./ [From the code in C's `printf(3)' library function used to insert an arbitrary string argument] An unspecified person or object. "I was just talking to some percent-s in administration." Compare {random}.
:perf: /perf/ /n./ Syn. {chad} (sense 1). The term `perfory' /per'f*-ree/ is also heard. The term {perf} may also refer to the perforations themselves, rather than the chad they produce when torn (philatelists use it this way).
:perfect programmer syndrome: /n./ Arrogance; the egotistical conviction that one is above normal human error. Most frequently found among programmers of some native ability but relatively little experience (especially new graduates; their perceptions may be distorted by a history of excellent performance at solving {toy problem}s). "Of course my program is correct, there is no need to test it." "Yes, I can see there may be a problem here, but *I'll* never type `rm -r /' while in {root mode}."
:Perl: /perl/ /n./ [Practical Extraction and Report Language, a.k.a. Pathologically Eclectic Rubbish Lister] An interpreted language developed by Larry Wall (<lwall@jpl.nasa.gov>, author of `patch(1)' and `rn(1)') and distributed over Usenet. Superficially resembles {awk}, but is much hairier, including many facilities reminiscent of `sed(1)' and shells and a comprehensive Unix system-call interface. Unix sysadmins, who are almost always incorrigible hackers, increasingly consider it one of the {languages of choice}. Perl has been described, in a parody of a famous remark about `lex(1)', as the "Swiss-Army chainsaw" of Unix programming. See also {Camel Book}.
:person of no account: /n./ [University of California at Santa Cruz] Used when referring to a person with no {network address}, frequently to forestall confusion. Most often as part of an introduction: "This is Bill, a person of no account, but he used to be bill@random.com". Compare {return from the dead}.
:pessimal: /pes'im-l/ /adj./ [Latin-based antonym for `optimal'] Maximally bad. "This is a pessimal situation." Also `pessimize' /vt./ To make as bad as possible. These words are the obvious Latin-based antonyms for `optimal' and `optimize', but for some reason they do not appear in most English dictionaries, although `pessimize' is listed in the OED.
:pessimizing compiler: /pes'*-mi:z`ing k*m-pi:l'r/ /n./ A compiler that produces object [antonym of `optimizing compiler'] code that is worse than the straightforward or obvious hand translation. The implication is that the compiler is actually trying to optimize the program, but through excessive cleverness is doing the opposite. A few pessimizing compilers have been written on purpose, however, as pranks or burlesques.
:peta-: /pe't*/ pref [SI] See {{quantifiers}}.
:PETSCII: /pet'skee/ /n. obs./ [abbreviation of PET ASCII] The variation (many would say perversion) of the {{ASCII}} character set used by the Commodore Business Machines PET series of personal computers and the later Commodore C64, C16, and C128 machines. The PETSCII set used left-arrow and up-arrow (as in old-style ASCII) instead of underscore and caret, placed the unshifted alphabet at positions 65--90, put the shifted alphabet at positions 193--218, and added graphics characters.
:phage: /n./ A program that modifies other programs or databases in unauthorized ways; esp. one that propagates a {virus} or {Trojan horse}. See also {worm}, {mockingbird}. The analogy, of course, is with phage viruses in biology.
:phase: 1. /n./ The offset of one's waking-sleeping schedule with respect to the standard 24-hour cycle; a useful concept among people who often work at night and/or according to no fixed schedule. It is not uncommon to change one's phase by as much as 6 hours per day on a regular basis. "What's your phase?" "I've been getting in about 8 P.M. lately, but I'm going to {wrap around} to the day schedule by Friday." A person who is roughly 12 hours out of phase is sometimes said to be in `night mode'. (The term `day mode' is also (but less frequently) used, meaning you're working 9 to 5 (or, more likely, 10 to 6).) The act of altering one's cycle is called `changing phase'; `phase shifting' has also been recently reported from Caltech. 2. `change phase the hard way': To stay awake for a very long time in order to get into a different phase. 3. `change phase the easy way': To stay asleep, etc. However, some claim that either staying awake longer or sleeping longer is easy, and that it is *shortening* your day or night that is really hard (see {wrap around}). The `jet lag' that afflicts travelers who cross many time-zone boundaries may be attributed to two distinct causes: the strain of travel per se, and the strain of changing phase. Hackers who suddenly find that they must change phase drastically in a short period of time, particularly the hard way, experience something very like jet lag without traveling.
:phase of the moon: /n./ Used humorously as a random parameter on which something is said to depend. Sometimes implies unreliability of whatever is dependent, or that reliability seems to be dependent on conditions nobody has been able to determine. "This feature depends on having the channel open in mumble mode, having the foo switch set, and on the phase of the moon." See also {heisenbug}.
True story: Once upon a time there was a bug that really did depend on the phase of the moon. There was a little subroutine that had traditionally been used in various programs at MIT to calculate an approximation to the moon's true phase. GLS incorporated this routine into a LISP program that, when it wrote out a file, would print a timestamp line almost 80 characters long. Very occasionally the first line of the message would be too long and would overflow onto the next line, and when the file was later read back in the program would {barf}. The length of the first line depended on both the precise date and time and the length of the phase specification when the timestamp was printed, and so the bug literally depended on the phase of the moon!
The first paper edition of the Jargon File (Steele-1983) included an example of one of the timestamp lines that exhibited this bug, but the typesetter `corrected' it. This has since been described as the phase-of-the-moon-bug bug.
:phase-wrapping: /n./ [MIT] Syn. {wrap around}, sense 2.
:phreaker: /freek'r/ /n./ One who engages in {phreaking}.
:phreaking: /freek'ing/ /n./ [from `phone phreak'] 1. The art and science of {cracking} the phone network (so as, for example, to make free long-distance calls). 2. By extension, security-cracking in any other context (especially, but not exclusively, on communications networks) (see {cracking}).
At one time phreaking was a semi-respectable activity among hackers; there was a gentleman's agreement that phreaking as an intellectual game and a form of exploration was OK, but serious theft of services was taboo. There was significant crossover between the hacker community and the hard-core phone phreaks who ran semi-underground networks of their own through such media as the legendary "TAP Newsletter". This ethos began to break down in the mid-1980s as wider dissemination of the techniques put them in the hands of less responsible phreaks. Around the same time, changes in the phone network made old-style technical ingenuity less effective as a way of hacking it, so phreaking came to depend more on overtly criminal acts such as stealing phone-card numbers. The crimes and punishments of gangs like the `414 group' turned that game very ugly. A few old-time hackers still phreak casually just to keep their hand in, but most these days have hardly even heard of `blue boxes' or any of the other paraphernalia of the great phreaks of yore.
:pico-: /pref./ [SI: a quantifier meaning * 10^-12] Smaller than {nano-}; used in the same rather loose connotative way as {nano-} and {micro-}. This usage is not yet common in the way {nano-} and {micro-} are, but should be instantly recognizable to any hacker. See also {{quantifiers}}, {micro-}.
:pig, run like a: /v./ To run very slowly on given hardware, said of software. Distinct from {hog}.
:pilot error: /n./ [Sun: from aviation] A user's misconfiguration or misuse of a piece of software, producing apparently buglike results (compare {UBD}). "Joe Luser reported a bug in sendmail that causes it to generate bogus headers." "That's not a bug, that's pilot error. His `sendmail.cf' is hosed."
:ping: [from the submariners' term for a sonar pulse] 1. n. Slang term for a small network message (ICMP ECHO) sent by a computer to check for the presence and alertness of another. The Unix command `ping(8)' can be used to do this manually (note that `ping(8)''s author denies the widespread folk etymology that the name was ever intended as acronym `Packet INternet Groper'). Occasionally used as a phone greeting. See {ACK}, also {ENQ}. 2. /vt./ To verify the presence of. 3. /vt./ To get the attention of. 4. /vt./ To send a message to all members of a {mailing list} requesting an {ACK} (in order to verify that everybody's addresses are reachable). "We haven't heard much of anything from Geoff, but he did respond with an ACK both times I pinged jargon-friends." 5. /n./ A quantum packet of happiness. People who are very happy tend to exude pings; furthermore, one can intentionally create pings and aim them at a needy party (e.g., a depressed person). This sense of ping may appear as an exclamation; "Ping!" (I'm happy; I am emitting a quantum of happiness; I have been struck by a quantum of happiness). The form "pingfulness", which is used to describe people who exude pings, also occurs. (In the standard abuse of language, "pingfulness" can also be used as an exclamation, in which case it's a much stronger exclamation than just "ping"!). Oppose {blargh}.
The funniest use of `ping' to date was described in January 1991 by Steve Hayman on the Usenet group comp.sys.next. He was trying to isolate a faulty cable segment on a TCP/IP Ethernet hooked up to a NeXT machine, and got tired of having to run back to his console after each cabling tweak to see if the ping packets were getting through. So he used the sound-recording feature on the NeXT, then wrote a script that repeatedly invoked `ping(8)', listened for an echo, and played back the recording on each returned packet. Result? A program that caused the machine to repeat, over and over, "Ping ... ping ... ping ..." as long as the network was up. He turned the volume to maximum, ferreted through the building with one ear cocked, and found a faulty tee connector in no time.
:Pink-Shirt Book: "The Peter Norton Programmer's Guide to the IBM PC". The original cover featured a picture of Peter Norton with a silly smirk on his face, wearing a pink shirt. Perhaps in recognition of this usage, the current edition has a different picture of Norton wearing a pink shirt. See also {{book titles}}.
:PIP: /pip/ vt.,obs. [Peripheral Interchange Program] To copy; from the program PIP on CP/M, RSX-11, RSTS/E, TOPS-10, and OS/8 (derived from a utility on the PDP-6) that was used for file copying (and in OS/8 and RT-11 for just about every other file operation you might want to do). It is said that when the program was originated, during the development of the PDP-6 in 1963, it was called ATLATL (`Anything, Lord, to Anything, Lord'; this played on the Nahuatl word `atlatl' for a spear-thrower, with connotations of utility and primitivity that were no doubt quite intentional). See also {BLT}, {dd}, {cat}.
:pistol: /n./ [IBM] A tool that makes it all too easy for you to shoot yourself in the foot. "Unix `rm *' makes such a nice pistol!"
:pixel sort: /n./ [Commodore users] Any compression routine which irretrievably loses valuable data in the process of {crunch}ing it. Disparagingly used for `lossy' methods such as JPEG. The theory, of course, is that these methods are only used on photographic images in which minor loss-of-data is not visible to the human eye. The term `pixel sort' implies distrust of this theory. Compare {bogo-sort}.
:pizza box: /n./ [Sun] The largish thin box housing the electronics in (especially Sun) desktop workstations, so named because of its size and shape and the dimpled pattern that looks like air holes.
Two meg single-platter removable disk packs used to be called pizzas, and the huge drive they were stuck into was referred to as a pizza oven. It's an index of progress that in the old days just the disk was pizza-sized, while now the entire computer is.
:pizza, ANSI standard: /an'see stan'd*rd peet'z*/ [CMU] Pepperoni and mushroom pizza. Coined allegedly because most pizzas ordered by CMU hackers during some period leading up to mid-1990 were of that flavor. See also {rotary debugger}; compare {tea, ISO standard cup of}.
:plaid screen: /n./ [XEROX PARC] A `special effect' that occurs when certain kinds of {memory smash}es overwrite the control blocks or image memory of a bit-mapped display. The term "salt and pepper" may refer to a different pattern of similar origin. Though the term as coined at PARC refers to the result of an error, some of the {X} demos induce plaid-screen effects deliberately as a {display hack}.
:plain-ASCII: /playn-as'kee/ Syn. {flat-ASCII}.
:plan file: /n./ [Unix] On systems that support {finger}, the `.plan' file in a user's home directory is displayed when the user is fingered. This feature was originally intended to be used to keep potential fingerers apprised of one's location and near-future plans, but has been turned almost universally to humorous and self-expressive purposes (like a {sig block}). See also {Hacking X for Y}.
A recent innovation in plan files has been the introduction of "scrolling plan files" which are one-dimensional animations made using only the printable ASCII character set, carriage return and line feed, avoiding terminal specific escape sequences, since the {finger} command will (for security reasons; see {letterbomb}) not pass the escape character.
Scrolling .plan files have become art forms in miniature, and some sites have started competitions to find who can create the longest running, funniest, and most original animations. Various animation characters include:
Centipede: mmmmme Lorry/Truck: oo-oP Andalusian Video Snail: _@/
and a compiler (ASP) is available on Usenet for producing them. See also {twirling baton}.
:platinum-iridium: /adj./ Standard, against which all others of the same category are measured. Usage: silly. The notion is that one of whatever it is has actually been cast in platinum-iridium alloy and placed in the vault beside the Standard Kilogram at the International Bureau of Weights and Measures near Paris. (From 1889 to 1960, the meter was defined to be the distance between two scratches in a platinum-iridium bar kept in that same vault --- this replaced an earlier definition as 10^(-7) times the distance between the North Pole and the Equator along a meridian through Paris; unfortunately, this had been based on an inexact value of the circumference of the Earth. From 1960 to 1984 it was defined to be 1650763.73 wavelengths of the orange-red line of krypton-86 propagating in a vacuum. It is now defined as the length of the path traveled by light in a vacuum in the time interval of 1/299,792,458 of a second. The kilogram is now the only unit of measure officially defined in terms of a unique artifact.) "This garbage-collection algorithm has been tested against the platinum-iridium cons cell in Paris." Compare {golden}.
:playpen: /n./ [IBM] A room where programmers work. Compare {salt mines}.
:playte: /playt/ 16 bits, by analogy with {nybble} and {{byte}}. Usage: rare and extremely silly. See also {dynner} and {crumb}. General discussion of such terms is under {nybble}.
:plingnet: /pling'net/ /n./ Syn. {UUCPNET}. Also see {{Commonwealth Hackish}}, which uses `pling' for {bang} (as in {bang path}).
:plokta: /plok't*/ /v./ [acronym: Press Lots Of Keys To Abort] To press random keys in an attempt to get some response from the system. One might plokta when the abort procedure for a program is not known, or when trying to figure out if the system is just sluggish or really hung. Plokta can also be used while trying to figure out any unknown key sequence for a particular operation. Someone going into `plokta mode' usually places both hands flat on the keyboard and mashes them down, hoping for some useful response.
A slightly more directed form of plokta can often be seen in mail messages or Usenet articles from new users -- the text might end with
^X^C q quit :q ^C end x exit ZZ ^D ? help
as the user vainly tries to find the right exit sequence, with the incorrect tries piling up at the end of the message....
:plonk: /excl.,vt./ [Usenet: possibly influenced by British slang `plonk' for cheap booze, or `plonker' for someone behaving stupidly (latter is lit. equivalent to Yiddish `schmuck')] The sound a {newbie} makes as he falls to the bottom of a {kill file}. While it originated in the {newsgroup} talk.bizarre, this term (usually written "*plonk*") is now (1994) widespread on Usenet as a form of public ridicule.
:plugh: /ploogh/ /v./ [from the {ADVENT} game] See {xyzzy}.
:plumbing: /n./ [Unix] Term used for {shell} code, so called because of the prevalence of `pipelines' that feed the output of one program to the input of another. Under Unix, user utilities can often be implemented or at least prototyped by a suitable collection of pipelines and temp-file grinding encapsulated in a shell script; this is much less effort than writing C every time, and the capability is considered one of Unix's major winning features. A few other OSs such as IBM's VM/CMS support similar facilities. Esp. used in the construction `hairy plumbing' (see {hairy}). "You can kluge together a basic spell-checker out of `sort(1)', `comm(1)', and `tr(1)' with a little plumbing." See also {tee}.
:PM: /P-M/ 1. /v./ (from `preventive maintenance') To bring down a machine for inspection or test purposes. See {provocative maintenance}; see also {scratch monkey}. 2. /n./ Abbrev. for `Presentation Manager', an {elephantine} OS/2 graphical user interface.
:pnambic: /p*-nam'bik/ [Acronym from the scene in the film version of "The Wizard of Oz" in which the true nature of the wizard is first discovered: "Pay no attention to the man behind the curtain."] 1. A stage of development of a process or function that, owing to incomplete implementation or to the complexity of the system, requires human interaction to simulate or replace some or all of the actions, inputs, or outputs of the process or function. 2. Of or pertaining to a process or function whose apparent operations are wholly or partially falsified. 3. Requiring {prestidigitization}.
The ultimate pnambic product was "Dan Bricklin's Demo", a program which supported flashy user-interface design prototyping. There is a related maxim among hackers: "Any sufficiently advanced technology is indistinguishable from a rigged demo." See {magic}, sense 1, for illumination of this point.
:pod: /n./ [allegedly from abbreviation POD for `Prince Of Darkness'] A Diablo 630 (or, latterly, any letter-quality impact printer). From the DEC-10 PODTYPE program used to feed formatted text to it. Not to be confused with {P.O.D.}.
:point-and-drool interface: /n./ Parody of the techspeak term `point-and-shoot interface', describing a windows, icons, and mouse-based interface such as is found on the Macintosh. The implication, of course, is that such an interface is only suitable for idiots. See {for the rest of us}, {WIMP environment}, {Macintrash}, {drool-proof paper}. Also `point-and-grunt interface'.
:poke: /n.,vt./ See {peek}.
:poll: /v.,n./ 1. [techspeak] The action of checking the status of an input line, sensor, or memory location to see if a particular external event has been registered. 2. To repeatedly call or check with someone: "I keep polling him, but he's not answering his phone; he must be swapped out." 3. To ask. "Lunch? I poll for a takeout order daily."
:polygon pusher: /n./ A chip designer who spends most of his or her time at the physical layout level (which requires drawing *lots* of multi-colored polygons). Also `rectangle slinger'.
:POM: /P-O-M/ /n./ Common abbreviation for {phase of the moon}. Usage: usually in the phrase `POM-dependent', which means {flaky}.
:pop: /pop/ [from the operation that removes the top of a stack, and the fact that procedure return addresses are usually saved on the stack] (also capitalized `POP') 1. /vt./ To remove something from a {stack} or {pdl}. If a person says he/she has popped something from his stack, that means he/she has finally finished working on it and can now remove it from the list of things hanging overhead. 2. When a discussion gets to a level of detail so deep that the main point of the discussion is being lost, someone will shout "Pop!", meaning "Get back up to a higher level!" The shout is frequently accompanied by an upthrust arm with a finger pointing to the ceiling.
:POPJ: /pop'J/ /n.,v./ [from a {PDP-10} return-from-subroutine instruction] To return from a digression. By verb doubling, "Popj, popj" means roughly "Now let's see, where were we?" See {RTI}.
:poser: /n./ A {wannabee}; not hacker slang, but used among crackers, phreaks and {warez d00dz}. Not as negative as {lamer} or {leech}. Probably derives from a similar usage among punk-rockers and metalheads, putting down those who "talk the talk but don't walk the walk".
:post: /v./ To send a message to a {mailing list} or {newsgroup}. Distinguished in context from `mail'; one might ask, for example: "Are you going to post the patch or mail it to known users?"
:postcardware: /n./ A kind of {shareware} that borders on {freeware}, in that the author requests only that satisfied users send a postcard of their home town or something. (This practice, silly as it might seem, serves to remind users that they are otherwise getting something for nothing, and may also be psychologically related to real estate `sales' in which $1 changes hands just to keep the transaction from being a gift.)
:posting: /n./ Noun corresp. to v. {post} (but note that {post} can be nouned). Distinguished from a `letter' or ordinary {email} message by the fact that it is broadcast rather than point-to-point. It is not clear whether messages sent to a small mailing list are postings or email; perhaps the best dividing line is that if you don't know the names of all the potential recipients, it is a posting.
:postmaster: /n./ The email contact and maintenance person at a site connected to the Internet or UUCPNET. Often, but not always, the same as the {admin}. The Internet standard for electronic mail ({RFC}-822) requires each machine to have a `postmaster' address; usually it is aliased to this person.
:PostScript:: /n./ A Page Description Language ({PDL}), based on work originally done by John Gaffney at Evans and Sutherland in 1976, evolving through `JaM' (`John and Martin', Martin Newell) at {XEROX PARC}, and finally implemented in its current form by John Warnock et al. after he and Chuck Geschke founded Adobe Systems Incorporated in 1982. PostScript gets its leverage by using a full programming language, rather than a series of low-level escape sequences, to describe an image to be printed on a laser printer or other output device (in this it parallels {EMACS}, which exploited a similar insight about editing tasks). It is also noteworthy for implementing on-the fly rasterization, from Bezier curve descriptions, of high-quality fonts at low (e.g. 300 dpi) resolution (it was formerly believed that hand-tuned bitmap fonts were required for this task). Hackers consider PostScript to be among the most elegant hacks of all time, and the combination of technical merits and widespread availability has made PostScript the language of choice for graphical output.
:pound on: /vt./ Syn. {bang on}.
:power cycle: /vt./ (also, `cycle power' or just `cycle') To power off a machine and then power it on immediately, with the intention of clearing some kind of {hung} or {gronk}ed state. Syn. {120 reset}; see also {Big Red Switch}. Compare {Vulcan nerve pinch}, {bounce} (sense 4), and {boot}, and see the "{AI Koans}" (in Appendix A) about Tom Knight and the novice.
:power hit: /n./ A spike or drop-out in the electricity supplying your machine; a power {glitch}. These can cause crashes and even permanent damage to your machine(s).
:PPN: /P-P-N/, /pip'n/ /n. obs./ [from `Project-Programmer Number'] A user-ID under {{TOPS-10}} and its various mutant progeny at SAIL, BBN, CompuServe, and elsewhere. Old-time hackers from the PDP-10 era sometimes use this to refer to user IDs on other systems as well.
:precedence lossage: /pre's*-dens los'*j/ /n./ [C programmers] Coding error in an expression due to unexpected grouping of arithmetic or logical operators by the compiler. Used esp. of certain common coding errors in C due to the nonintuitively low precedence levels of `&', `|', `^', `<<', and `>>' (for this reason, experienced C programmers deliberately forget the language's {baroque} precedence hierarchy and parenthesize defensively). Can always be avoided by suitable use of parentheses. {LISP} fans enjoy pointing out that this can't happen in *their* favorite language, which eschews precedence entirely, requiring one to use explicit parentheses everywhere. See {aliasing bug}, {memory leak}, {memory smash}, {smash the stack}, {fandango on core}, {overrun screw}.
:prepend: /pree`pend'/ /vt./ [by analogy with `append'] To prefix. As with `append' (but not `prefix' or `suffix' as a verb), the direct object is always the thing being added and not the original word (or character string, or whatever). "If you prepend a semicolon to the line, the translation routine will pass it through unaltered."
:prestidigitization: /pres`t*-di`j*-ti:-zay'sh*n/ /n./ 1. The act of putting something into digital notation via sleight of hand. 2. Data entry through legerdemain.
:pretty pictures: /n./ [scientific computation] The next step up from {numbers}. Interesting graphical output from a program that may not have any sensible relationship to the system the program is intended to model. Good for showing to {management}.
:prettyprint: /prit'ee-print/ /v./ (alt. `pretty-print') 1. To generate `pretty' human-readable output from a {hairy} internal representation; esp. used for the process of {grind}ing (sense 1) program code, and most esp. for LISP code. 2. To format in some particularly slick and nontrivial way.
:pretzel key: /n./ [Mac users] See {feature key}.
:priesthood: /n. obs./ [TMRC] The select group of system managers responsible for the operation and maintenance of a batch operated computer system. On these computers, a user never had direct access to a computer, but had to submit his/her data and programs to a priest for execution. Results were returned days or even weeks later. See {acolyte}.
:prime time: /n./ [from TV programming] Normal high-usage hours on a timesharing system; the day shift. Avoidance of prime time was traditionally given as a major reason for {night mode} hacking. The rise of the personal workstation has rendered this term, along with timesharing itself, almost obsolete. The hackish tendency to late-night {hacking run}s has changed not a bit.
:printing discussion: /n./ [XEROX PARC] A protracted, low-level, time-consuming, generally pointless discussion of something only peripherally interesting to all.
:priority interrupt: /n./ [from the hardware term] Describes any stimulus compelling enough to yank one right out of {hack mode}. Classically used to describe being dragged away by an {SO} for immediate sex, but may also refer to more mundane interruptions such as a fire alarm going off in the near vicinity. Also called an {NMI} (non-maskable interrupt), especially in PC-land.
:profile: /n./ 1. A control file for a program, esp. a text file automatically read from each user's home directory and intended to be easily modified by the user in order to customize the program's behavior. Used to avoid {hardcoded} choices (see also {dot file}, {rc file}). 2. [techspeak] A report on the amounts of time spent in each routine of a program, used to find and {tune} away the {hot spot}s in it. This sense is often verbed. Some profiling modes report units other than time (such as call counts) and/or report at granularities other than per-routine, but the idea is similar. 3.[techspeak] A subset of a standard used for a particular purpose. This sense confuses hackers who wander into the weird world of ISO standards no end!
:progasm: /proh'gaz-m/ /n./ [University of Wisconsin] The euphoria experienced upon the completion of a program or other computer-related project.
:proglet: /prog'let/ /n./ [UK] A short extempore program written to meet an immediate, transient need. Often written in BASIC, rarely more than a dozen lines long, and containing no subroutines. The largest amount of code that can be written off the top of one's head, that does not need any editing, and that runs correctly the first time (this amount varies significantly according to one's skill and the language one is using). Compare {toy program}, {noddy}, {one-liner wars}.
:program: /n./ 1. A magic spell cast over a computer allowing it to turn one's input into error messages. 2. An exercise in experimental epistemology. 3. A form of art, ostensibly intended for the instruction of computers, which is nevertheless almost inevitably a failure if other programmers can't understand it.
:Programmer's Cheer: "Shift to the left! Shift to the right! Pop up, push down! Byte! Byte! Byte!" A joke so old it has hair on it.
:programming: /n./ 1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file). "Bloody instructions which, being taught, return to plague their inventor" ("Macbeth", Act 1, Scene 7) 2. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward. 3. The most fun you can have with your clothes on (although clothes are not mandatory).
:programming fluid: /n./ 1. Coffee. 2. Cola. 3. Any caffeinacious stimulant. Many hackers consider these essential for those all-night hacking runs. See {wirewater}.
:propeller head: /n./ Used by hackers, this is syn. with {computer geek}. Non-hackers sometimes use it to describe all techies. Prob. derives from SF fandom's tradition (originally invented by old-time fan Ray Faraday Nelson) of propeller beanies as fannish insignia (though nobody actually wears them except as a joke).
:propeller key: /n./ [Mac users] See {feature key}.
:proprietary: /adj./ 1. In {marketroid}-speak, superior; implies a product imbued with exclusive magic by the unmatched brilliance of the company's own hardware or software designers. 2. In the language of hackers and users, inferior; implies a product not conforming to open-systems standards, and thus one that puts the customer at the mercy of a vendor able to gouge freely on service and upgrade charges after the initial sale has locked the customer in.
:protocol: /n./ As used by hackers, this never refers to niceties about the proper form for addressing letters to the Papal Nuncio or the order in which one should use the forks in a Russian-style place setting; hackers don't care about such things. It is used instead to describe any set of rules that allow different machines or pieces of software to coordinate with each other without ambiguity. So, for example, it does include niceties about the proper form for addressing packets on a network or the order in which one should use the forks in the Dining Philosophers Problem. It implies that there is some common message format and an accepted set of primitives or commands that all parties involved understand, and that transactions among them follow predictable logical sequences. See also {handshaking}, {do protocol}.
:provocative maintenance: /n./ [common ironic mutation of `preventive maintenance'] Actions performed upon a machine at regularly scheduled intervals to ensure that the system remains in a usable state. So called because it is all too often performed by a {field servoid} who doesn't know what he is doing; such `maintenance' often *induces* problems, or otherwise results in the machine's remaining in an *un*usable state for an indeterminate amount of time. See also {scratch monkey}.
:prowler: /n./ [Unix] A {daemon} that is run periodically (typically once a week) to seek out and erase {core} files, truncate administrative logfiles, nuke `lost+found' directories, and otherwise clean up the {cruft} that tends to pile up in the corners of a file system. See also {GFR}, {reaper}, {skulker}.
:pseudo: /soo'doh/ /n./ [Usenet: truncation of `pseudonym'] 1. An electronic-mail or {Usenet} persona adopted by a human for amusement value or as a means of avoiding negative repercussions of one's net.behavior; a `nom de Usenet', often associated with forged postings designed to conceal message origins. Perhaps the best-known and funniest hoax of this type is {B1FF}. See also {tentacle}. 2. Notionally, a {flamage}-generating AI program simulating a Usenet user. Many flamers have been accused of actually being such entities, despite the fact that no AI program of the required sophistication yet exists. However, in 1989 there was a famous series of forged postings that used a phrase-frequency-based travesty generator to simulate the styles of several well-known flamers; it was based on large samples of their back postings (compare {Dissociated Press}). A significant number of people were fooled by the forgeries, and the debate over their authenticity was settled only when the perpetrator came forward to publicly admit the hoax.
:pseudoprime: /n./ A backgammon prime (six consecutive occupied points) with one point missing. This term is an esoteric pun derived from a mathematical method that, rather than determining precisely whether a number is prime (has no divisors), uses a statistical technique to decide whether the number is `probably' prime. A number that passes this test was, before about 1985, called a `pseudoprime' (the terminology used by number theorists has since changed slightly; pre-1985 pseudoprimes are now `probable primes' and `pseudoprime' has a more restricted meaning in modular arithmetic). The hacker backgammon usage stemmed from the idea that a pseudoprime is almost as good as a prime: it does the job of a prime until proven otherwise, and that probably won't happen.
:pseudosuit: /soo'doh-s[y]oot`/ /n./ A {suit} wannabee; a hacker who has decided that he wants to be in management or administration and begins wearing ties, sport coats, and (shudder!) suits voluntarily. It's his funeral. See also {lobotomy}.
:psychedelicware: /si:`k*-del'-ik-weir/ /n./ [UK] Syn. {display hack}. See also {smoking clover}.
:psyton: /si:'ton/ /n./ [TMRC] The elementary particle carrying the sinister force. The probability of a process losing is proportional to the number of psytons falling on it. Psytons are generated by observers, which is why demos are more likely to fail when lots of people are watching. [This term appears to have been largely superseded by {bogon}; see also {quantum bogodynamics}. --ESR]
:pubic directory: /pyoob'ik d*-rek't*-ree/) /n./ [NYU] (also `pube directory' /pyoob' d*-rek't*-ree/) The `pub' (public) directory on a machine that allows {FTP} access. So called because it is the default location for {SEX} (sense 1). "I'll have the source in the pube directory by Friday."
:puff: /vt./ To decompress data that has been crunched by Huffman coding. At least one widely distributed Huffman decoder program was actually *named* `PUFF', but these days it is usually packaged with the encoder. Oppose {huff}, see {inflate}.
:punched card:: n.obs. [techspeak] (alt. `punch card') The signature medium of computing's {Stone Age}, now obsolescent outside of some IBM shops. The punched card actually predated computers considerably, originating in 1801 as a control device for mechanical looms. The version patented by Hollerith and used with mechanical tabulating machines in the 1890 U.S. Census was a piece of cardboard about 90 mm by 215 mm. There is a widespread myth that it was designed to fit in the currency trays used for that era's larger dollar bills, but recent investigations have falsified this.
IBM (which originated as a tabulating-machine manufacturer) married the punched card to computers, encoding binary information as patterns of small rectangular holes; one character per column, 80 columns per card. Other coding schemes, sizes of card, and hole shapes were tried at various times.
The 80-column width of most character terminals is a legacy of the IBM punched card; so is the size of the quick-reference cards distributed with many varieties of computers even today. See {chad}, {chad box}, {eighty-column mind}, {green card}, {dusty deck}, {lace card}, {card walloper}.
:punt: /v./ [from the punch line of an old joke referring to American football: "Drop back 15 yards and punt!"] 1. To give up, typically without any intention of retrying. "Let's punt the movie tonight." "I was going to hack all night to get this feature in, but I decided to punt" may mean that you've decided not to stay up all night, and may also mean you're not ever even going to put in the feature. 2. More specifically, to give up on figuring out what the {Right Thing} is and resort to an inefficient hack. 3. A design decision to defer solving a problem, typically because one cannot define what is desirable sufficiently well to frame an algorithmic solution. "No way to know what the right form to dump the graph in is -- we'll punt that for now." 4. To hand a tricky implementation problem off to some other section of the design. "It's too hard to get the compiler to do that; let's punt to the runtime system."
:Purple Book: /n./ 1. The "System V Interface Definition". The covers of the first editions were an amazingly nauseating shade of off-lavender. 2. Syn. {Wizard Book}. Donald Lewine's "POSIX Programmer's Guide" (O'Reilly, 1991, ISBN 0-937175-73-0). See also {{book titles}}.
:purple wire: /n./ [IBM] Wire installed by Field Engineers to work around problems discovered during testing or debugging. These are called `purple wires' even when (as is frequently the case) their actual physical color is yellow.... Compare {blue wire}, {yellow wire}, and {red wire}.
:push: [from the operation that puts the current information on a stack, and the fact that procedure return addresses are saved on a stack] (Also PUSH /push/ or PUSHJ /push'J/, the latter based on the PDP-10 procedure call instruction.) 1. To put something onto a {stack} or {pdl}. If one says that something has been pushed onto one's stack, it means that the Damoclean list of things hanging over ones's head has grown longer and heavier yet. This may also imply that one will deal with it *before* other pending items; otherwise one might say that the thing was `added to my queue'. 2. /vi./ To enter upon a digression, to save the current discussion for later. Antonym of {pop}; see also {stack}, {pdl}.
= Q = =====
:quad: /n./ 1. Two bits; syn. for {quarter}, {crumb}, {tayste}. 2. A four-pack of anything (compare {hex}, sense 2). 3. The rectangle or box glyph used in the APL language for various arcane purposes mostly related to I/O. Former Ivy-Leaguers and Oxford types are said to associate it with nostalgic memories of dear old University.
:quadruple bucky: /n. obs./ 1. On an MIT {space-cadet keyboard}, use of all four of the shifting keys (control, meta, hyper, and super) while typing a character key. 2. On a Stanford or MIT keyboard in {raw mode}, use of four shift keys while typing a fifth character, where the four shift keys are the control and meta keys on *both* sides of the keyboard. This was very difficult to do! One accepted technique was to press the left-control and left-meta keys with your left hand, the right-control and right-meta keys with your right hand, and the fifth key with your nose.
Quadruple-bucky combinations were very seldom used in practice, because when one invented a new command one usually assigned it to some character that was easier to type. If you want to imply that a program has ridiculously many commands or features, you can say something like: "Oh, the command that makes it spin the tapes while whistling Beethoven's Fifth Symphony is quadruple-bucky-cokebottle." See {double bucky}, {bucky bits}, {cokebottle}.
:quantifiers:: In techspeak and jargon, the standard metric prefixes used in the SI (Syst`eme International) conventions for scientific measurement have dual uses. With units of time or things that come in powers of 10, such as money, they retain their usual meanings of multiplication by powers of 1000 = 10^3. But when used with bytes or other things that naturally come in powers of 2, they usually denote multiplication by powers of 1024 = 2^(10).
Here are the SI magnifying prefixes, along with the corresponding binary interpretations in common use:
prefix decimal binary kilo- 1000^1 1024^1 = 2^10 = 1,024 mega- 1000^2 1024^2 = 2^20 = 1,048,576 giga- 1000^3 1024^3 = 2^30 = 1,073,741,824 tera- 1000^4 1024^4 = 2^40 = 1,099,511,627,776 peta- 1000^5 1024^5 = 2^50 = 1,125,899,906,842,624 exa- 1000^6 1024^6 = 2^60 = 1,152,921,504,606,846,976 zetta- 1000^7 1024^7 = 2^70 = 1,180,591,620,717,411,303,424 yotta- 1000^8 1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176
Here are the SI fractional prefixes:
*prefix decimal jargon usage* milli- 1000^-1 (seldom used in jargon) micro- 1000^-2 small or human-scale (see {micro-}) nano- 1000^-3 even smaller (see {nano-}) pico- 1000^-4 even smaller yet (see {pico-}) femto- 1000^-5 (not used in jargon--yet) atto- 1000^-6 (not used in jargon--yet) zepto- 1000^-7 (not used in jargon--yet) yocto- 1000^-8 (not used in jargon--yet)
The prefixes zetta-, yotta-, zepto-, and yocto- have been included in these tables purely for completeness and giggle value; they were adopted in 1990 by the `19th Conference Generale des Poids et Mesures'. The binary peta- and exa- loadings, though well established, are not in jargon use either -- yet. The prefix milli-, denoting multiplication by 1/1000, has always been rare in jargon (there is, however, a standard joke about the `millihelen' -- notionally, the amount of beauty required to launch one ship). See the entries on {micro-}, {pico-}, and {nano-} for more information on connotative jargon use of these terms. `Femto' and `atto' (which, interestingly, derive not from Greek but from Danish) have not yet acquired jargon loadings, though it is easy to predict what those will be once computing technology enters the required realms of magnitude (however, see {attoparsec}).
There are, of course, some standard unit prefixes for powers of 10. In the following table, the `prefix' column is the international standard suffix for the appropriate power of ten; the `binary' column lists jargon abbreviations and words for the corresponding power of 2. The B-suffixed forms are commonly used for byte quantities; the words `meg' and `gig' are nouns that may (but do not always) pluralize with `s'.
prefix decimal binary pronunciation kilo- k K, KB, /kay/ mega- M M, MB, meg /meg/ giga- G G, GB, gig /gig/,/jig/
Confusingly, hackers often use K or M as though they were suffix or numeric multipliers rather than a prefix; thus "2K dollars", "2M of disk space". This is also true (though less commonly) of G.
Note that the formal SI metric prefix for 1000 is `k'; some use this strictly, reserving `K' for multiplication by 1024 (KB is thus `kilobytes').
K, M, and G used alone refer to quantities of bytes; thus, 64G is 64 gigabytes and `a K' is a kilobyte (compare mainstream use of `a G' as short for `a grand', that is, $1000). Whether one pronounces `gig' with hard or soft `g' depends on what one thinks the proper pronunciation of `giga-' is.
Confusing 1000 and 1024 (or other powers of 2 and 10 close in magnitude) -- for example, describing a memory in units of 500K or 524K instead of 512K -- is a sure sign of the {marketroid}. One example of this: it is common to refer to the capacity of 3.5" {microfloppies} as `1.44 MB' In fact, this is a completely {bogus} number. The correct size is 1440 KB, that is, 1440 * 1024 = 1474560 bytes. So the `mega' in `1.44 MB' is compounded of two `kilos', one of which is 1024 and the other of which is 1000. The correct number of megabytes would of course be 1440 / 1024 = 1.40625. Alas, this fine point is probably lost on the world forever.
[1993 update: hacker Morgan Burke has proposed, to general approval on Usenet, the following additional prefixes:
groucho 10^(-30) harpo 10^(-27) harpi 10^(27) grouchi 10^(30)
We observe that this would leave the prefixes zeppo-, gummo-, and chico- available for future expansion. Sadly, there is little immediate prospect that Mr. Burke's eminently sensible proposal will be ratified.]
:quantum bogodynamics: /kwon'tm boh`goh-di:-nam'iks/ /n./ A theory that characterizes the universe in terms of bogon sources (such as politicians, used-car salesmen, TV evangelists, and {suit}s in general), bogon sinks (such as taxpayers and computers), and bogosity potential fields. Bogon absorption, of course, causes human beings to behave mindlessly and machines to fail (and may also cause both to emit secondary bogons); however, the precise mechanics of the bogon-computron interaction are not yet understood and remain to be elucidated. Quantum bogodynamics is most often invoked to explain the sharp increase in hardware and software failures in the presence of suits; the latter emit bogons, which the former absorb. See {bogon}, {computron}, {suit}, {psyton}.
:quarter: /n./ Two bits. This in turn comes from the `pieces of eight' famed in pirate movies -- Spanish silver crowns that could be broken into eight pie-slice-shaped `bits' to make change. Early in American history the Spanish coin was considered equal to a dollar, so each of these `bits' was considered worth 12.5 cents. Syn. {tayste}, {crumb}, {quad}. Usage: rare. General discussion of such terms is under {nybble}.
:ques: /kwes/ 1. /n./ The question mark character (`?', ASCII 0111111). 2. /interj./ What? Also frequently verb-doubled as "Ques ques?" See {wall}.
:quick-and-dirty: /adj./ Describes a {crock} put together under time or user pressure. Used esp. when you want to convey that you think the fast way might lead to trouble further down the road. "I can have a quick-and-dirty fix in place tonight, but I'll have to rewrite the whole module to solve the underlying design problem." See also {kluge}.
:quine: /kwi:n/ /n./ [from the name of the logician Willard van Orman Quine, via Douglas Hofstadter] A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement. Here is one classic quine:
((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
This one works in LISP or Scheme. It's relatively easy to write quines in other languages such as Postscript which readily handle programs as data; much harder (and thus more challenging!) in languages like C which do not. Here is a classic C quine for ASCII machines:
char*f="char*f=%c%s%c;main() {printf(f,34,f,34,10);}%c"; main(){printf(f,34,f,34,10);}
For excruciatingly exact quinishness, remove the interior line breaks. Some infamous {Obfuscated C Contest} entries have been quines that reproduced in exotic ways.
:quote chapter and verse: /v./ [by analogy with the mainstream phrase] To cite a relevant excerpt from an appropriate {bible}. "I don't care if `rn' gets it wrong; `Followup-To: poster' is explicitly permitted by {RFC}-1036. I'll quote chapter and verse if you don't believe me." See also {legalese}, {language lawyer}, {RTFS} (sense 2).
:quotient: /n./ See {coefficient of X}.
:quux: /kwuhks/ /n./ [Mythically, from the Latin semi-deponent verb quuxo, quuxare, quuxandum iri; noun form variously `quux' (plural `quuces', anglicized to `quuxes') and `quuxu' (genitive plural is `quuxuum', for four u-letters out of seven in all, using up all the `u' letters in Scrabble).] 1. Originally, a {metasyntactic variable} like {foo} and {foobar}. Invented by Guy Steele for precisely this purpose when he was young and naive and not yet interacting with the real computing community. Many people invent such words; this one seems simply to have been lucky enough to have spread a little. In an eloquent display of poetic justice, it has returned to the originator in the form of a nickname. 2. /interj./ See {foo}; however, denotes very little disgust, and is uttered mostly for the sake of the sound of it. 3. Guy Steele in his persona as `The Great Quux', which is somewhat infamous for light verse and for the `Crunchly' cartoons. 4. In some circles, used as a punning opposite of `crux'. "Ah, that's the quux of the matter!" implies that the point is *not* crucial (compare {tip of the ice-cube}). 5. quuxy: /adj./ Of or pertaining to a quux.
:qux: /kwuhks/ The fourth of the standard {metasyntactic variable}, after {baz} and before the quu(u...)x series. See {foo}, {bar}, {baz}, {quux}. This appears to be a recent mutation from {quux}, and many versions (especially older versions) of the standard series just run {foo}, {bar}, {baz}, {quux}, ....
:QWERTY: /kwer'tee/ /adj./ [from the keycaps at the upper left] Pertaining to a standard English-language typewriter keyboard (sometimes called the Sholes keyboard after its inventor), as opposed to Dvorak or foreign-language layouts or a {space-cadet keyboard} or APL keyboard.
Historical note: The QWERTY layout is a fine example of a {fossil}. It is sometimes said that it was designed to slow down the typist, but this is wrong; it was designed to allow *faster* typing -- under a constraint now long obsolete. In early typewriters, fast typing using nearby type-bars jammed the mechanism. So Sholes fiddled the layout to separate the letters of many common digraphs (he did a far from perfect job, though; `th', `tr', `ed', and `er', for example, each use two nearby keys). Also, putting the letters of `typewriter' on one line allowed it to be typed with particular speed and accuracy for {demo}s. The jamming problem was essentially solved soon afterward by a suitable use of springs, but the keyboard layout lives on.
= R = =====
:rabbit job: /n./ [Cambridge] A batch job that does little, if any, real work, but creates one or more copies of itself, breeding like rabbits. Compare {wabbit}, {fork bomb}.
:rain dance: /n./ 1. Any ceremonial action taken to correct a hardware problem, with the expectation that nothing will be accomplished. This especially applies to reseating printed circuit boards, reconnecting cables, etc. "I can't boot up the machine. We'll have to wait for Greg to do his rain dance." 2. Any arcane sequence of actions performed with computers or software in order to achieve some goal; the term is usually restricted to rituals that include both an {incantation} or two and physical activity or motion. Compare {magic}, {voodoo programming}, {black art}, {cargo cult programming}, {wave a dead chicken}; see also {casting the runes}.
:rainbow series: /n./ Any of several series of technical manuals distinguished by cover color. The original rainbow series was the NCSC security manuals (see {Orange Book}, {crayola books}); the term has also been commonly applied to the PostScript reference set (see {Red Book}, {Green Book}, {Blue Book}, {White Book}). Which books are meant by "`the' rainbow series" unqualified is thus dependent on one's local technical culture.
:random: /adj./ 1. Unpredictable (closest to mathematical definition); weird. "The system's been behaving pretty randomly." 2. Assorted; undistinguished. "Who was at the conference?" "Just a bunch of random business types." 3. (pejorative) Frivolous; unproductive; undirected. "He's just a random loser." 4. Incoherent or inelegant; poorly chosen; not well organized. "The program has a random set of misfeatures." "That's a random name for that function." "Well, all the names were chosen pretty randomly." 5. In no particular order, though deterministic. "The I/O channels are in a pool, and when a file is opened one is chosen randomly." 6. Arbitrary. "It generates a random name for the scratch file." 7. Gratuitously wrong, i.e., poorly done and for no good apparent reason. For example, a program that handles file name defaulting in a particularly useless way, or an assembler routine that could easily have been coded using only three registers, but redundantly uses seven for values with non-overlapping lifetimes, so that no one else can invoke it without first saving four extra registers. What {randomness}! 8. /n./ A random hacker; used particularly of high-school students who soak up computer time and generally get in the way. 9. n. Anyone who is not a hacker (or, sometimes, anyone not known to the hacker speaking); the noun form of sense 2. "I went to the talk, but the audience was full of randoms asking bogus questions". 10. /n./ (occasional MIT usage) One who lives at Random Hall. See also {J. Random}, {some random X}.
:random numbers:: /n./ When one wishes to specify a large but random number of things, and the context is inappropriate for {N}, certain numbers are preferred by hacker tradition (that is, easily recognized as placeholders). These include the following:
17 Long described at MIT as `the least random number'; see 23. 23 Sacred number of Eris, Goddess of Discord (along with 17 and 5). 42 The Answer to the Ultimate Question of Life, the Universe, and Everything. (Note that this answer is completely fortuitous. `:-)') 69 From the sexual act. This one was favored in MIT's ITS culture. 105 69 hex = 105 decimal, and 69 decimal = 105 octal. 666 The Number of the Beast.
For further enlightenment, study the "Principia Discordia", "{The Hitchhiker's Guide to the Galaxy}", "The Joy of Sex", and the Christian Bible (Revelation 13:18). See also {Discordianism} or consult your pineal gland. See also {for values of}.
:randomness: /n./ 1. An inexplicable misfeature; gratuitous inelegance. 2. A {hack} or {crock} that depends on a complex combination of coincidences (or, possibly, the combination upon which the crock depends for its accidental failure to malfunction). "This hack can output characters 40--57 by putting the character in the four-bit accumulator field of an XCT and then extracting six bits -- the low 2 bits of the XCT opcode are the right thing." "What randomness!" 3. Of people, synonymous with `flakiness'. The connotation is that the person so described is behaving weirdly, incompetently, or inappropriately for reasons which are (a) too tiresome to bother inquiring into, (b) are probably as inscrutable as quantum phenomena anyway, and (c) are likely to pass with time. "Maybe he has a real complaint, or maybe it's just randomness. See if he calls back."
:rape: /vt./ 1. To {screw} someone or something, violently; in particular, to destroy a program or information irrecoverably. Often used in describing file-system damage. "So-and-so was running a program that did absolute disk I/O and ended up raping the master directory." 2. To strip a piece of hardware for parts. 3. [CMU/Pitt] To mass-copy files from an anonymous ftp site. "Last night I raped Simtel's dskutl directory."
:rare mode: /adj./ [Unix] CBREAK mode (character-by-character with interrupts enabled). Distinguished from {raw mode} and {cooked mode}; the phrase "a sort of half-cooked (rare?) mode" is used in the V7/BSD manuals to describe the mode. Usage: rare.
:raster blaster: /n./ [Cambridge] Specialized hardware for {bitblt} operations (a {blitter}). Allegedly inspired by `Rasta Blasta', British slang for the sort of portable stereo Americans call a `boom box' or `ghetto blaster'.
:raster burn: /n./ Eyestrain brought on by too many hours of looking at low-res, poorly tuned, or glare-ridden monitors, esp. graphics monitors. See {terminal illness}.
:rat belt: /n./ A cable tie, esp. the sawtoothed, self-locking plastic kind that you can remove only by cutting (as opposed to a random twist of wire or a twist tie or one of those humongous metal clip frobs). Small cable ties are `mouse belts'.
:rat dance: /n./ [From the {Dilbert} comic strip of November 14, 1995] A {hacking run} that produces results which, while superficially coherent, have little or nothing to do with its original objectives. There are strong connotations that the coding process and the objectives themselves were pretty {random}. (In the original comic strip, the Ratbert is invited to dance on Dilbert's keyboard in order to produce bugs for him to fix, and authors a Web browser instead.) Compare {Infinite-Monkey Theorem}.
This term seems to have become widely recognized quite rapidly after the original strip, a fact which testifies to Dilbert's huge popularity among hackers. All too many find the perverse incentives and Kafkaesque atmosphere of Dilbert's mythical workplace reflective of their own experiences.
:rave: /vi./ [WPI] 1. To persist in discussing a specific subject. 2. To speak authoritatively on a subject about which one knows very little. 3. To complain to a person who is not in a position to correct the difficulty. 4. To purposely annoy another person verbally. 5. To evangelize. See {flame}. 6. Also used to describe a less negative form of blather, such as friendly bullshitting. `Rave' differs slightly from {flame} in that `rave' implies that it is the persistence or obliviousness of the person speaking that is annoying, while {flame} implies somewhat more strongly that the tone or content is offensive as well.
:rave on!: /imp./ Sarcastic invitation to continue a {rave}, often by someone who wishes the raver would get a clue but realizes this is unlikely.
:ravs: /ravz/, also `Chinese ravs' /n./ Jiao-zi (steamed or boiled) or Guo-tie (pan-fried). A Chinese appetizer, known variously in the plural as dumplings, pot stickers (the literal translation of guo-tie), and (around Boston) `Peking Ravioli'. The term `rav' is short for `ravioli', and among hackers always means the Chinese kind rather than the Italian kind. Both consist of a filling in a pasta shell, but the Chinese kind includes no cheese, uses a thinner pasta, has a pork-vegetable filling (good ones include Chinese chives), and is cooked differently, either by steaming or frying. A rav or dumpling can be cooked any way, but a potsticker is always the fried kind (so called because it sticks to the frying pot and has to be scraped off). "Let's get hot-and-sour soup and three orders of ravs." See also {{oriental food}}.
:raw mode: /n./ A mode that allows a program to transfer bits directly to or from an I/O device (or, under {bogus} systems that make a distinction, a disk file) without any processing, abstraction, or interpretation by the operating system. Compare {rare mode}, {cooked mode}. This is techspeak under Unix, jargon elsewhere.
:rc file: /R-C fi:l/ /n./ [Unix: from `runcom files' on the {CTSS} system ca.1955, via the startup script `/etc/rc'] Script file containing startup instructions for an application program (or an entire operating system), usually a text file containing commands of the sort that might have been invoked manually once the system was running but are to be executed automatically each time the system starts up. See also {dot file}, {profile} (sense 1).
:RE: /R-E/ /n./ Common spoken and written shorthand for {regexp}.
:read-only user: /n./ Describes a {luser} who uses computers almost exclusively for reading Usenet, bulletin boards, and/or email, rather than writing code or purveying useful information. See {twink}, {terminal junkie}, {lurker}.
:README file: /n./ Hacker's-eye introduction traditionally included in the top-level directory of a Unix source distribution, containing a pointer to more detailed documentation, credits, miscellaneous revision history, notes, etc. (The file may be named README, or READ.ME, or rarely ReadMe or readme.txt or some other variant.) In the Mac and PC worlds, software is not usually distributed in source form, and the README is more likely to contain user-oriented material like last-minute documentation changes, error workarounds, and restrictions. When asked, hackers invariably relate the README convention to the famous scene in Lewis Carroll's "Alice's Adventures In Wonderland" in which Alice confronts magic munchies labeled "Eat Me" and "Drink Me".
:real: /adj./ Not simulated. Often used as a specific antonym to {virtual} in any of its jargon senses.
:real estate: /n./ May be used for any critical resource measured in units of area. Most frequently used of `chip real estate', the area available for logic on the surface of an integrated circuit (see also {nanoacre}). May also be used of floor space in a {dinosaur pen}, or even space on a crowded desktop (whether physical or electronic).
:real hack: /n./ A {crock}. This is sometimes used affectionately; see {hack}.
:real operating system: /n./ The sort the speaker is used to. People from the BSDophilic academic community are likely to issue comments like "System V? Why don't you use a *real* operating system?", people from the commercial/industrial Unix sector are known to complain "BSD? Why don't you use a *real* operating system?", and people from IBM object "Unix? Why don't you use a *real* operating system?" Only {MS-DOS} is universally considered unreal. See {holy wars}, {religious issues}, {proprietary}, {Get a real computer!}
:Real Programmer: /n./ [indirectly, from the book "Real Men Don't Eat Quiche"] A particular sub-variety of hacker: one possessed of a flippant attitude toward complexity that is arrogant even when justified by experience. The archetypal `Real Programmer' likes to program on the {bare metal} and is very good at same, remembers the binary opcodes for every machine he has ever programmed, thinks that HLLs are sissy, and uses a debugger to edit his code because full-screen editors are for wimps. Real Programmers aren't satisfied with code that hasn't been {bum}med into a state of {tense}ness just short of rupture. Real Programmers never use comments or write documentation: "If it was hard to write", says the Real Programmer, "it should be hard to understand." Real Programmers can make machines do things that were never in their spec sheets; in fact, they are seldom really happy unless doing so. A Real Programmer's code can awe with its fiendish brilliance, even as its crockishness appalls. Real Programmers live on junk food and coffee, hang line-printer art on their walls, and terrify the crap out of other programmers -- because someday, somebody else might have to try to understand their code in order to change it. Their successors generally consider it a {Good Thing} that there aren't many Real Programmers around any more. For a famous (and somewhat more positive) portrait of a Real Programmer, see "{The Story of Mel, a Real Programmer}" in Appendix A. The term itself was popularized by a 1983 Datamation article "Real Programmers Don't Use Pascal" by Ed Post, still circulating on Usenet and Internet in on-line form.
You can browse "Real Programmers Don't Use Pascal" from the Datamation home page http://www.datamation.com.
:Real Soon Now: /adv./ [orig. from SF's fanzine community, popularized by Jerry Pournelle's column in "BYTE"] 1. Supposed to be available (or fixed, or cheap, or whatever) real soon now according to somebody, but the speaker is quite skeptical. 2. When one's gods, fates, or other time commitments permit one to get to it (in other words, don't hold your breath). Often abbreviated RSN. Compare {copious free time}.
:real time: 1. [techspeak] /adj./ Describes an application which requires a program to respond to stimuli within some small upper limit of response time (typically milli- or microseconds). Process control at a chemical plant is the classic example. Such applications often require special operating systems (because everything else must take a back seat to response time) and speed-tuned hardware. 2. /adv./ In jargon, refers to doing something while people are watching or waiting. "I asked her how to find the calling procedure's program counter on the stack and she came up with an algorithm in real time."
:real user: /n./ 1. A commercial user. One who is paying *real* money for his computer usage. 2. A non-hacker. Someone using the system for an explicit purpose (a research project, a course, etc.) other than pure exploration. See {user}. Hackers who are also students may also be real users. "I need this fixed so I can do a problem set. I'm not complaining out of randomness, but as a real user." See also {luser}.
:Real World: /n./ 1. Those institutions at which `programming' may be used in the same sentence as `FORTRAN', `{COBOL}', `RPG', `{IBM}', `DBASE', etc. Places where programs do such commercially necessary but intellectually uninspiring things as generating payroll checks and invoices. 2. The location of non-programmers and activities not related to programming. 3. A bizarre dimension in which the standard dress is shirt and tie and in which a person's working hours are defined as 9 to 5 (see {code grinder}). 4. Anywhere outside a university. "Poor fellow, he's left MIT and gone into the Real World." Used pejoratively by those not in residence there. In conversation, talking of someone who has entered the Real World is not unlike speaking of a deceased person. It is also noteworthy that on the campus of Cambridge University in England, there is a gaily-painted lamp-post which bears the label `REALITY CHECKPOINT'. It marks the boundary between university and the Real World; check your notions of reality before passing. This joke is funnier because the Cambridge `campus' is actually coextensive with the center of Cambridge town. See also {fear and loathing}, {mundane}, and {uninteresting}.
:reality check: /n./ 1. The simplest kind of test of software or hardware; doing the equivalent of asking it what 2 + 2 is and seeing if you get 4. The software equivalent of a {smoke test}. 2. The act of letting a {real user} try out prototype software. Compare {sanity check}.
:reaper: /n./ A {prowler} that {GFR}s files. A file removed in this way is said to have been `reaped'.
:rectangle slinger: /n./ See {polygon pusher}.
:recursion: /n./ See {recursion}. See also {tail recursion}.
:recursive acronym:: /n./ A hackish (and especially MIT) tradition is to choose acronyms/abbreviations that refer humorously to themselves or to other acronyms/abbreviations. The classic examples were two MIT editors called EINE ("EINE Is Not EMACS") and ZWEI ("ZWEI Was EINE Initially"). More recently, there is a Scheme compiler called LIAR (Liar Imitates Apply Recursively), and {GNU} (q.v., sense 1) stands for "GNU's Not Unix!" -- and a company with the name CYGNUS, which expands to "Cygnus, Your GNU Support". See also {mung}, {EMACS}.
:Red Book: /n./ 1. Informal name for one of the three standard references on {{PostScript}} ("PostScript Language Reference Manual", Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN 0-201-10174-2, or the 1990 second edition ISBN 0-201-18127-4); the others are known as the {Green Book}, the {Blue Book}, and the {White Book} (sense 2). 2. Informal name for one of the 3 standard references on Smalltalk ("Smalltalk-80: The Interactive Programming Environment" by Adele Goldberg (Addison-Wesley, 1984; QA76.8.S635G638; ISBN 0-201-11372-4); this too is associated with blue and green books). 3. Any of the 1984 standards issued by the CCITT eighth plenary assembly. These include, among other things, the X.400 email spec and the Group 1 through 4 fax standards. 4. The new version of the {Green Book} (sense 4) -- IEEE 1003.1-1990, a.k.a ISO 9945-1 -- is (because of the color and the fact that it is printed on A4 paper) known in the USA as "the Ugly Red Book That Won't Fit On The Shelf" and in Europe as "the Ugly Red Book That's A Sensible Size". 5. The NSA "Trusted Network Interpretation" companion to the {Orange Book}. See also {{book titles}}.
:red wire: /n./ [IBM] Patch wires installed by programmers who have no business mucking with the hardware. It is said that the only thing more dangerous than a hardware guy with a code patch is a {softy} with a soldering iron.... Compare {blue wire}, {yellow wire}, {purple wire}.
:regexp: /reg'eksp/ /n./ [Unix] (alt. `regex' or `reg-ex') 1. Common written and spoken abbreviation for `regular expression', one of the wildcard patterns used, e.g., by Unix utilities such as `grep(1)', `sed(1)', and `awk(1)'. These use conventions similar to but more elaborate than those described under {glob}. For purposes of this lexicon, it is sufficient to note that regexps also allow complemented character sets using `^'; thus, one can specify `any non-alphabetic character' with `[^A-Za-z]'. 2. Name of a well-known PD regexp-handling package in portable C, written by revered Usenetter Henry Spencer <henry@zoo.toronto.edu>.
:register dancing: /n./ Many older processor architectures suffer from a serious shortage of general-purpose registers. This is especially a problem for compiler-writers, because their generated code needs places to store temporaries for things like intermediate values in expression evaluation. Some designs with this problem, like the Intel 80x86, do have a handful of special-purpose registers that can be pressed into service, providing suitable care is taken to avoid unpleasant side effects on the state of the processor: while the special-purpose register is being used to hold an intermediate value, a delicate minuet is required in which the previous value of the register is saved and then restored just before the official function (and value) of the special-purpose register is again needed.
:reincarnation, cycle of: /n./ See {cycle of reincarnation}.
:reinvent the wheel: /v./ To design or implement a tool equivalent to an existing one or part of one, with the implication that doing so is silly or a waste of time. This is often a valid criticism. On the other hand, automobiles don't use wooden rollers, and some kinds of wheel have to be reinvented many times before you get them right. On the third hand, people reinventing the wheel do tend to come up with the moral equivalent of a trapezoid with an offset axle.
:religion of CHI: /ki:/ /n./ [Case Western Reserve University] Yet another hackish parody religion (see also {Church of the SubGenius}, {Discordianism}). In the mid-70s, the canonical "Introduction to Programming" courses at CWRU were taught in Algol, and student exercises were punched on cards and run on a Univac 1108 system using a homebrew operating system named CHI. The religion had no doctrines and but one ritual: whenever the worshipper noted that a digital clock read 11:08, he or she would recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN, ARCCOS, ARCTAN." The last five words were the first five functions in the appropriate chapter of the Algol manual; note the special pronunciations /obz/ and /ark'sin/ rather than the more common /ahbz/ and /ark'si:n/. Using an alarm clock to warn of 11:08's arrival was {considered harmful}.
:religious issues: /n./ Questions which seemingly cannot be raised without touching off {holy wars}, such as "What is the best operating system (or editor, language, architecture, shell, mail reader, news reader)?", "What about that Heinlein guy, eh?", "What should we add to the new Jargon File?" See {holy wars}; see also {theology}, {bigot}.
This term is a prime example of {ha ha only serious}. People actually develop the most amazing and religiously intense attachments to their tools, even when the tools are intangible. The most constructive thing one can do when one stumbles into the crossfire is mumble {Get a life!} and leave -- unless, of course, one's *own* unassailably rational and obviously correct choices are being slammed.
:replicator: /n./ Any construct that acts to produce copies of itself; this could be a living organism, an idea (see {meme}), a program (see {quine}, {worm}, {wabbit}, {fork bomb}, and {virus}), a pattern in a cellular automaton (see {life}, sense 1), or (speculatively) a robot or {nanobot}. It is even claimed by some that {{Unix}} and {C} are the symbiotic halves of an extremely successful replicator; see {Unix conspiracy}.
:reply: /n./ See {followup}.
:restriction: /n./ A {bug} or design error that limits a program's capabilities, and which is sufficiently egregious that nobody can quite work up enough nerve to describe it as a {feature}. Often used (esp. by {marketroid} types) to make it sound as though some crippling bogosity had been intended by the designers all along, or was forced upon them by arcane technical constraints of a nature no mere user could possibly comprehend (these claims are almost invariably false).
Old-time hacker Joseph M. Newcomer advises that whenever choosing a quantifiable but arbitrary restriction, you should make it either a power of 2 or a power of 2 minus 1. If you impose a limit of 107 items in a list, everyone will know it is a random number -- on the other hand, a limit of 15 or 16 suggests some deep reason (involving 0- or 1-based indexing in binary) and you will get less {flamage} for it. Limits which are round numbers in base 10 are always especially suspect.
:retcon: /ret'kon/ [short for `retroactive continuity', from the Usenet newsgroup rec.arts.comics] 1. /n./ The common situation in pulp fiction (esp. comics or soap operas) where a new story `reveals' things about events in previous stories, usually leaving the `facts' the same (thus preserving continuity) while completely changing their interpretation. For example, revealing that a whole season of "Dallas" was a dream was a retcon. 2. /vt./ To write such a story about a character or fictitious object. "Byrne has retconned Superman's cape so that it is no longer unbreakable." "Marvelman's old adventures were retconned into synthetic dreams." "Swamp Thing was retconned from a transformed person into a sentient vegetable." "Darth Vader was retconned into Luke Skywalker's father in "The Empire Strikes Back".
[This term is included because it is a good example of hackish linguistic innovation in a field completely unrelated to computers. The word `retcon' will probably spread through comics fandom and lose its association with hackerdom within a couple of years; for the record, it started here. --ESR]
[1993 update: some comics fans on the net now claim that retcon was independently in use in comics fandom before rec.arts.comics. In lexicography, nothing is ever simple. --ESR]
:RETI: /v./ Syn. {RTI}
:retrocomputing: /ret'-roh-k*m-pyoo'ting/ /n./ Refers to emulations of way-behind-the-state-of-the-art hardware or software, or implementations of never-was-state-of-the-art; esp. if such implementations are elaborate practical jokes and/or parodies, written mostly for {hack value}, of more `serious' designs. Perhaps the most widely distributed retrocomputing utility was the `pnch(6)' or `bcd(6)' program on V7 and other early Unix versions, which would accept up to 80 characters of text argument and display the corresponding pattern in {{punched card}} code. Other well-known retrocomputing hacks have included the programming language {INTERCAL}, a {JCL}-emulating shell for Unix, the card-punch-emulating editor named 029, and various elaborate PDP-11 hardware emulators and RT-11 OS emulators written just to keep an old, sourceless {Zork} binary running.
A tasty selection of retrocomputing programs are made available at the Retrocomputing Museum, http://www.ccil.org/retro.
:return from the dead: /v./ To regain access to the net after a long absence. Compare {person of no account}.
:RFC: /R-F-C/ /n./ [Request For Comment] One of a long-established series of numbered Internet informational documents and standards widely followed by commercial software and freeware in the Internet and Unix communities. Perhaps the single most influential one has been RFC-822 (the Internet mail-format standard). The RFCs are unusual in that they are floated by technical experts acting on their own initiative and reviewed by the Internet at large, rather than formally promulgated through an institution such as ANSI. For this reason, they remain known as RFCs even once adopted as standards.
The RFC tradition of pragmatic, experience-driven, after-the-fact standard writing done by individuals or small working groups has important advantages over the more formal, committee-driven process typical of ANSI or ISO. Emblematic of some of these advantages is the existence of a flourishing tradition of `joke' RFCs; usually at least one a year is published, usually on April 1st. Well-known joke RFCs have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22 June 1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin; 1 April 1978), and 1149 ("A Standard for the Transmission of IP Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April 1990). The first was a Lewis Carroll pastiche; the second a parody of the TCP-IP documentation style, and the third a deadpan skewering of standards-document legalese, describing protocols for transmitting Internet data packets by carrier pigeon.
The RFCs are most remarkable for how well they work -- they manage to have neither the ambiguities that are usually rife in informal specifications, nor the committee-perpetrated misfeatures that often haunt formal standards, and they define a network that has grown to truly worldwide proportions.
:RFE: /R-F-E/ /n./ 1. [techspeak] Request For Enhancement (compare {RFC}). 2. [from `Radio Free Europe', Bellcore and Sun] Radio Free Ethernet, a system (originated by Peter Langston) for broadcasting audio among Sun SPARCstations over the ethernet.
:rib site: /n./ [by analogy with {backbone site}] A machine that has an on-demand high-speed link to a {backbone site} and serves as a regional distribution point for lots of third-party traffic in email and Usenet news. Compare {leaf site}, {backbone site}.
:rice box: /n./ [from ham radio slang] Any Asian-made commodity computer, esp. an 80x86-based machine built to IBM PC-compatible ISA or EISA-bus standards.
:Right Thing: /n./ That which is *compellingly* the correct or appropriate thing to use, do, say, etc. Often capitalized, always emphasized in speech as though capitalized. Use of this term often implies that in fact reasonable people may disagree. "What's the right thing for LISP to do when it sees `(mod a 0)'? Should it return `a', or give a divide-by-0 error?" Oppose {Wrong Thing}.
:RL: // /n./ [MUD community] Real Life. "Firiss laughs in RL" means that Firiss's player is laughing. Oppose {VR}.
:roach: /vt./ [Bell Labs] To destroy, esp. of a data structure. Hardware gets {toast}ed or {fried}, software gets roached.
:robot: /n./ [IRC, MUD] An {IRC} or {MUD} user who is actually a program. On IRC, typically the robot provides some useful service. Examples are NickServ, which tries to prevent random users from adopting {nick}s already claimed by others, and MsgServ, which allows one to send asynchronous messages to be delivered when the recipient signs on. Also common are `annoybots', such as KissServ, which perform no useful function except to send cute messages to other people. Service robots are less common on MUDs; but some others, such as the `Julia' robot active in 1990--91, have been remarkably impressive Turing-test experiments, able to pass as human for as long as ten or fifteen minutes of conversation.
:robust: /adj./ Said of a system that has demonstrated an ability to recover gracefully from the whole range of exceptional inputs and situations in a given environment. One step below {bulletproof}. Carries the additional connotation of elegance in addition to just careful attention to detail. Compare {smart}, oppose {brittle}.
:rococo: /adj./ Terminally {baroque}. Used to imply that a program has become so encrusted with the software equivalent of gold leaf and curlicues that they have completely swamped the underlying design. Called after the later and more extreme forms of Baroque architecture and decoration prevalent during the mid-1700s in Europe. Alan Perlis said: "Every program eventually becomes rococo, and then rubble." Compare {critical mass}.
:rogue: /n./ [Unix] A Dungeons-and-Dragons-like game using character graphics, written under BSD Unix and subsequently ported to other Unix systems. The original BSD `curses(3)' screen-handling package was hacked together by Ken Arnold to support `rogue(6)' and has since become one of Unix's most important and heavily used application libraries. Nethack, Omega, Larn, and an entire subgenre of computer dungeon games all took off from the inspiration provided by `rogue(6)'. See also {nethack}.
:room-temperature IQ: /quant./ [IBM] 80 or below (nominal room temperature is 72 degrees Fahrenheit, 22 degrees Celsius). Used in describing the expected intelligence range of the {luser}. "Well, but how's this interface going to play with the room-temperature IQ crowd?" See {drool-proof paper}. This is a much more insulting phrase in countries that use Celsius thermometers.
:root: /n./ [Unix] 1. The {superuser} account (with user name `root') that ignores permission bits, user number 0 on a Unix system. The term {avatar} is also used. 2. The top node of the system directory structure; historically the home directory of the root user, but probably named after the root of an (inverted) tree. 3. By extension, the privileged system-maintenance login on any OS. See {root mode}, {go root}, see also {wheel}.
:root mode: /n./ Syn. with {wizard mode} or `wheel mode'. Like these, it is often generalized to describe privileged states in systems other than OSes.
:rot13: /rot ther'teen/ /n.,v./ [Usenet: from `rotate alphabet 13 places'] The simple Caesar-cypher encryption that replaces each English letter with the one 13 places forward or back along the alphabet, so that "The butler did it!" becomes "Gur ohgyre qvq vg!" Most Usenet news reading and posting programs include a rot13 feature. It is used to enclose the text in a sealed wrapper that the reader must choose to open -- e.g., for posting things that might offend some readers, or {spoiler}s. A major advantage of rot13 over rot(N) for other N is that it is self-inverse, so the same code can be used for encoding and decoding.
:rotary debugger: /n./ [Commodore] Essential equipment for those late-night or early-morning debugging sessions. Mainly used as sustenance for the hacker. Comes in many decorator colors, such as Sausage, Pepperoni, and Garbage. See {pizza, ANSI standard}.
:round tape: /n./ Industry-standard 1/2-inch magnetic tape (7- or 9-track) on traditional circular reels. See {macrotape}, oppose {square tape}.
:RSN: /R-S-N/ /adj./ See {Real Soon Now}.
:RTBM: /R-T-B-M/ /imp./ [Unix] Commonwealth Hackish variant of {RTFM}; expands to `Read The Bloody Manual'. RTBM is often the entire text of the first reply to a question from a {newbie}; the *second* would escalate to "RTFM".
:RTFAQ: /R-T-F-A-Q/ /imp./ [Usenet: primarily written, by analogy with {RTFM}] Abbrev. for `Read the FAQ!', an exhortation that the person addressed ought to read the newsgroup's {FAQ list} before posting questions.
:RTFB: /R-T-F-B/ /imp./ [Unix] Acronym for `Read The Fucking Binary'. Used when neither documentation nor source for the problem at hand exists, and the only thing to do is use some debugger or monitor and directly analyze the assembler or even the machine code. "No source for the buggy port driver? Aaargh! I *hate* proprietary operating systems. Time to RTFB."
Of the various RTF? forms, `RTFB' is the least pejorative against anyone asking a question for which RTFB is the answer; the anger here is directed at the absence of both source *and* adequate documentation.
:RTFM: /R-T-F-M/ /imp./ [Unix] Acronym for `Read The Fucking Manual'. 1. Used by {guru}s to brush off questions they consider trivial or annoying. Compare {Don't do that, then!}. 2. Used when reporting a problem to indicate that you aren't just asking out of {randomness}. "No, I can't figure out how to interface Unix to my toaster, and yes, I have RTFM." Unlike sense 1, this use is considered polite. See also {FM}, {RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which mutated from RTFM, and compare {UTSL}.
:RTFS: /R-T-F-S/ [Unix] 1. /imp./ Acronym for `Read The Fucking Source'. Variant form of {RTFM}, used when the problem at hand is not necessarily obvious and not answerable from the manuals -- or the manuals are not yet written and maybe never will be. For even trickier situations, see {RTFB}. Unlike RTFM, the anger inherent in RTFS is not usually directed at the person asking the question, but rather at the people who failed to provide adequate documentation. 2. /imp./ `Read The Fucking Standard'; this oath can only be used when the problem area (e.g., a language or operating system interface) has actually been codified in a ratified standards document. The existence of these standards documents (and the technically inappropriate but politically mandated compromises that they inevitably contain, and the impenetrable {legalese} in which they are invariably written, and the unbelievably tedious bureaucratic process by which they are produced) can be unnerving to hackers, who are used to a certain amount of ambiguity in the specifications of the systems they use. (Hackers feel that such ambiguities are acceptable as long as the {Right Thing} to do is obvious to any thinking observer; sadly, this casual attitude towards specifications becomes unworkable when a system becomes popular in the {Real World}.) Since a hacker is likely to feel that a standards document is both unnecessary and technically deficient, the deprecation inherent in this term may be directed as much against the standard as against the person who ought to read it.
:RTI: /R-T-I/ /interj./ The mnemonic for the `return from interrupt' instruction on many computers including the 6502 and 6800. The variant `RETI' is found among former Z80 hackers (almost nobody programs these things in assembler anymore). Equivalent to "Now, where was I?" or used to end a conversational digression. See {pop}; see also {POPJ}.
:RTM: /R-T-M/ [Usenet: abbreviation for `Read The Manual'] 1. Politer variant of {RTFM}. 2. Robert T. Morris, perpetrator of the great Internet worm of 1988 (see {Great Worm, the}); villain to many, naive hacker gone wrong to a few. Morris claimed that the worm that brought the Internet to its knees was a benign experiment that got out of control as the result of a coding error. After the storm of negative publicity that followed this blunder, Morris's username on ITS was hacked from RTM to {RTFM}.
:RTS: /R-T-S/ /imp./ Acronym for `Read The Screen'. Mainly used by hackers in the microcomputer world. Refers to what one would like to tell the {suit} one is forced to explain an extremely simple application to. Particularly appropriate when the suit failed to notice the `Press any key to continue' prompt, and wishes to know `why won't it do anything'. Also seen as `RTFS' in especially deserving cases.
:rude: [WPI] /adj./ 1. (of a program) Badly written. 2. Functionally poor, e.g., a program that is very difficult to use because of gratuitously poor (random?) design decisions. Oppose {cuspy}. 3. Anything that manipulates a shared resource without regard for its other users in such a way as to cause a (non-fatal) problem. Examples: programs that change tty modes without resetting them on exit, or windowing programs that keep forcing themselves to the top of the window stack. Compare {all-elbows}.
:runes: /pl.n./ 1. Anything that requires {heavy wizardry} or {black art} to {parse}: core dumps, JCL commands, APL, or code in a language you haven't a clue how to read. Not quite as bad as {line noise}, but close. Compare {casting the runes}, {Great Runes}. 2. Special display characters (for example, the high-half graphics on an IBM PC). 3. [borderline techspeak] 16-bit characters from the Unicode multilingual character set.
:runic: /adj./ Syn. {obscure}. VMS fans sometimes refer to Unix as `Runix'; Unix fans return the compliment by expanding VMS to `Very Messy Syntax' or `Vachement Mauvais Syst`eme' (French idiom, "Hugely Bad System").
:rusty iron: /n./ Syn. {tired iron}. It has been claimed that this is the inevitable fate of {water MIPS}.
:rusty memory: /n./ Mass-storage that uses iron-oxide-based magnetic media (esp. tape and the pre-Winchester removable disk packs used in {washing machine}s). Compare {donuts}.
:rusty wire: /n./ [Amateur Packet Radio] Any very noisy network medium, in which the packets are subject to frequent corruption. Most prevalent in reference to wireless links subject to all the vagaries of RF noise and marginal propagation conditions. "Yes, but how good is your whizbang new protocol on really rusty wire?".
= S = =====
:S/N ratio: // /n./ (also `s/n ratio', `s:n ratio'). Syn. {signal-to-noise ratio}. Often abbreviated `SNR'.
:sacred: /adj./ Reserved for the exclusive use of something (an extension of the standard meaning). Often means that anyone may look at the sacred object, but clobbering it will screw whatever it is sacred to. The comment "Register 7 is sacred to the interrupt handler" appearing in a program would be interpreted by a hacker to mean that if any *other* part of the program changes the contents of register 7, dire consequences are likely to ensue.
:saga: /n./ [WPI] A cuspy but bogus raving story about N random broken people.
Here is a classic example of the saga form, as told by Guy L. Steele:
Jon L. White (login name JONL) and I (GLS) were office mates at MIT for many years. One April, we both flew from Boston to California for a week on research business, to consult face-to-face with some people at Stanford, particularly our mutual friend Richard P. Gabriel (RPG; see {gabriel}).
RPG picked us up at the San Francisco airport and drove us back to Palo Alto (going {logical} south on route 101, parallel to {El Camino Bignum}). Palo Alto is adjacent to Stanford University and about 40 miles south of San Francisco. We ate at The Good Earth, a `health food' restaurant, very popular, the sort whose milkshakes all contain honey and protein powder. JONL ordered such a shake -- the waitress claimed the flavor of the day was "lalaberry". I still have no idea what that might be, but it became a running joke. It was the color of raspberry, and JONL said it tasted rather bitter. I ate a better tostada there than I have ever had in a Mexican restaurant.
After this we went to the local Uncle Gaylord's Old Fashioned Ice Cream Parlor. They make ice cream fresh daily, in a variety of intriguing flavors. It's a chain, and they have a slogan: "If you don't live near an Uncle Gaylord's -- MOVE!" Also, Uncle Gaylord (a real person) wages a constant battle to force big-name ice cream makers to print their ingredients on the package (like air and plastic and other non-natural garbage). JONL and I had first discovered Uncle Gaylord's the previous August, when we had flown to a computer-science conference in Berkeley, California, the first time either of us had been on the West Coast. When not in the conference sessions, we had spent our time wandering the length of Telegraph Avenue, which (like Harvard Square in Cambridge) was lined with picturesque street vendors and interesting little shops. On that street we discovered Uncle Gaylord's Berkeley store. The ice cream there was very good. During that August visit JONL went absolutely bananas (so to speak) over one particular flavor, ginger honey.
Therefore, after eating at The Good Earth -- indeed, after every lunch and dinner and before bed during our April visit -- a trip to Uncle Gaylord's (the one in Palo Alto) was mandatory. We had arrived on a Wednesday, and by Thursday evening we had been there at least four times. Each time, JONL would get ginger honey ice cream, and proclaim to all bystanders that "Ginger was the spice that drove the Europeans mad! That's why they sought a route to the East! They used it to preserve their otherwise off-taste meat." After the third or fourth repetition RPG and I were getting a little tired of this spiel, and began to paraphrase him: "Wow! Ginger! The spice that makes rotten meat taste good!" "Say! Why don't we find some dog that's been run over and sat in the sun for a week and put some *ginger* on it for dinner?!" "Right! With a lalaberry shake!" And so on. This failed to faze JONL; he took it in good humor, as long as we kept returning to Uncle Gaylord's. He loves ginger honey ice cream.
Now RPG and his then-wife KBT (Kathy Tracy) were putting us up (putting up with us?) in their home for our visit, so to thank them JONL and I took them out to a nice French restaurant of their choosing. I unadventurously chose the filet mignon, and KBT had je ne sais quoi du jour, but RPG and JONL had lapin (rabbit). (Waitress: "Oui, we have fresh rabbit, fresh today." RPG: "Well, JONL, I guess we won't need any *ginger*!")
We finished the meal late, about 11 P.M., which is 2 A.M Boston time, so JONL and I were rather droopy. But it wasn't yet midnight. Off to Uncle Gaylord's!
Now the French restaurant was in Redwood City, north of Palo Alto. In leaving Redwood City, we somehow got onto route 101 going north instead of south. JONL and I wouldn't have known the difference had RPG not mentioned it. We still knew very little of the local geography. I did figure out, however, that we were headed in the direction of Berkeley, and half-jokingly suggested that we continue north and go to Uncle Gaylord's in Berkeley.
RPG said "Fine!" and we drove on for a while and talked. I was drowsy, and JONL actually dropped off to sleep for 5 minutes. When he awoke, RPG said, "Gee, JONL, you must have slept all the way over the bridge!", referring to the one spanning San Francisco Bay. Just then we came to a sign that said "University Avenue". I mumbled something about working our way over to Telegraph Avenue; RPG said "Right!" and maneuvered some more. Eventually we pulled up in front of an Uncle Gaylord's.
Now, I hadn't really been paying attention because I was so sleepy, and I didn't really understand what was happening until RPG let me in on it a few moments later, but I was just alert enough to notice that we had somehow come to the Palo Alto Uncle Gaylord's after all.
JONL noticed the resemblance to the Palo Alto store, but hadn't caught on. (The place is lit with red and yellow lights at night, and looks much different from the way it does in daylight.) He said, "This isn't the Uncle Gaylord's I went to in Berkeley! It looked like a barn! But this place looks *just like* the one back in Palo Alto!"
RPG deadpanned, "Well, this is the one *I* always come to when I'm in Berkeley. They've got two in San Francisco, too. Remember, they're a chain."
JONL accepted this bit of wisdom. And he was not totally ignorant --- he knew perfectly well that University Avenue was in Berkeley, not far from Telegraph Avenue. What he didn't know was that there is a completely different University Avenue in Palo Alto.
JONL went up to the counter and asked for ginger honey. The guy at the counter asked whether JONL would like to taste it first, evidently their standard procedure with that flavor, as not too many people like it.
JONL said, "I'm sure I like it. Just give me a cone." The guy behind the counter insisted that JONL try just a taste first. "Some people think it tastes like soap." JONL insisted, "Look, I *love* ginger. I eat Chinese food. I eat raw ginger roots. I already went through this hassle with the guy back in Palo Alto. I *know* I like that flavor!"
At the words "back in Palo Alto" the guy behind the counter got a very strange look on his face, but said nothing. KBT caught his eye and winked. Through my stupor I still hadn't quite grasped what was going on, and thought RPG was rolling on the floor laughing and clutching his stomach just because JONL had launched into his spiel ("makes rotten meat a dish for princes") for the forty-third time. At this point, RPG clued me in fully.
RPG, KBT, and I retreated to a table, trying to stifle our chuckles. JONL remained at the counter, talking about ice cream with the guy b.t.c., comparing Uncle Gaylord's to other ice cream shops and generally having a good old time.
At length the g.b.t.c. said, "How's the ginger honey?" JONL said, "Fine! I wonder what exactly is in it?" Now Uncle Gaylord publishes all his recipes and even teaches classes on how to make his ice cream at home. So the g.b.t.c. got out the recipe, and he and JONL pored over it for a while. But the g.b.t.c. could contain his curiosity no longer, and asked again, "You really like that stuff, huh?" JONL said, "Yeah, I've been eating it constantly back in Palo Alto for the past two days. In fact, I think this batch is about as good as the cones I got back in Palo Alto!"
G.b.t.c. looked him straight in the eye and said, "You're *in* Palo Alto!"
JONL turned slowly around, and saw the three of us collapse in a fit of giggles. He clapped a hand to his forehead and exclaimed, "I've been hacked!"
[My spies on the West Coast inform me that there is a close relative of the raspberry found out there called an `ollalieberry' --ESR]
[Ironic footnote: it appears that the {meme} about ginger vs. rotting meat may be an urban legend. It's not borne out by an examination of medieval recipes or period purchase records for spices, and appears full-blown in the works of Samuel Pegge, a gourmand and notorious flake case who originated numerous food myths. --ESR]
:sagan: /say'gn/ /n./ [from Carl Sagan's TV series "Cosmos"; think "billions and billions"] A large quantity of anything. "There's a sagan different ways to tweak EMACS." "The U.S. Government spends sagans on bombs and welfare -- hard to say which is more destructive."
:SAIL:: /sayl/, not /S-A-I-L/ /n./ 1. The Stanford Artificial Intelligence Lab. An important site in the early development of LISP; with the MIT AI Lab, BBN, CMU, XEROX PARC, and the Unix community, one of the major wellsprings of technical innovation and hacker-culture traditions (see the {{WAITS}} entry for details). The SAIL machines were shut down in late May 1990, scant weeks after the MIT AI Lab's ITS cluster was officially decommissioned. 2. The Stanford Artificial Intelligence Language used at SAIL (sense 1). It was an Algol-60 derivative with a coroutining facility and some new data types intended for building search trees and association lists.
:salescritter: /sayls'kri`tr/ /n./ Pejorative hackerism for a computer salesperson. Hackers tell the following joke:
Q. What's the difference between a used-car dealer and a computer salesman? A. The used-car dealer knows he's lying. [Some versions add: ...and probably knows how to drive.]
This reflects the widespread hacker belief that salescritters are self-selected for stupidity (after all, if they had brains and the inclination to use them, they'd be in programming). The terms `salesthing' and `salesdroid' are also common. Compare {marketroid}, {suit}, {droid}.
:salt: /n./ A tiny bit of near-random data inserted where too much regularity would be undesirable; a data {frob} (sense 1). For example, the Unix crypt(3) man page mentions that "the salt string is used to perturb the DES algorithm in one of 4096 different ways."
:salt mines: /n./ Dense quarters housing large numbers of programmers working long hours on grungy projects, with some hope of seeing the end of the tunnel in N years. Noted for their absence of sunshine. Compare {playpen}, {sandbox}.
:salt substrate: /n./ [MIT] Collective noun used to refer to potato chips, pretzels, saltines, or any other form of snack food designed primarily as a carrier for sodium chloride. Also `sodium substrate'. From the technical term `chip substrate', used to refer to the silicon on the top of which the active parts of integrated circuits are deposited.
:same-day service: /n./ Ironic term used to describe long response time, particularly with respect to {{MS-DOS}} system calls (which ought to require only a tiny fraction of a second to execute). Such response time is a major incentive for programmers to write programs that are not {well-behaved}. See also {PC-ism}.
:samizdat: /sahm-iz-daht/ /n./ [Russian, literally "self publishing"] The process of disseminating documentation via underground channels. Originally referred to underground duplication and distribution of banned books in the Soviet Union; now refers by obvious extension to any less-than-official promulgation of textual material, esp. rare, obsolete, or never-formally-published computer documentation. Samizdat is obviously much easier when one has access to high-bandwidth networks and high-quality laser printers. Note that samizdat is properly used only with respect to documents which contain needed information (see also {hacker ethic}) but which are for some reason otherwise unavailable, but *not* in the context of documents which are available through normal channels, for which unauthorized duplication would be unethical copyright violation. See {Lions Book} for a historical example.
:samurai: /n./ A hacker who hires out for legal cracking jobs, snooping for factions in corporate political fights, lawyers pursuing privacy-rights and First Amendment cases, and other parties with legitimate reasons to need an electronic locksmith. In 1991, mainstream media reported the existence of a loose-knit culture of samurai that meets electronically on BBS systems, mostly bright teenagers with personal micros; they have modeled themselves explicitly on the historical samurai of Japan and on the "net cowboys" of William Gibson's {cyberpunk} novels. Those interviewed claim to adhere to a rigid ethic of loyalty to their employers and to disdain the vandalism and theft practiced by criminal crackers as beneath them and contrary to the hacker ethic; some quote Miyamoto Musashi's "Book of Five Rings", a classic of historical samurai doctrine, in support of these principles. See also {sneaker}, {Stupids}, {social engineering}, {cracker}, {hacker ethic}, and {dark-side hacker}.
:sandbender: /n./ [IBM] A person involved with silicon lithography and the physical design of chips. Compare {ironmonger}, {polygon pusher}.
:sandbox: /n./ 1. (also `sandbox, the') Common term for the R&D department at many software and computer companies (where hackers in commercial environments are likely to be found). Half-derisive, but reflects the truth that research is a form of creative play. Compare {playpen}. 2. Syn. {link farm}.
:sanity check: /n./ 1. The act of checking a piece of code (or anything else, e.g., a Usenet posting) for completely stupid mistakes. Implies that the check is to make sure the author was sane when it was written; e.g., if a piece of scientific software relied on a particular formula and was giving unexpected results, one might first look at the nesting of parentheses or the coding of the formula, as a `sanity check', before looking at the more complex I/O or data structure manipulation routines, much less the algorithm itself. Compare {reality check}. 2. A run-time test, either validating input or ensuring that the program hasn't screwed up internally (producing an inconsistent value or state).
:Saturday-night special: /n./ [from police slang for a cheap handgun] A {quick-and-dirty} program or feature kluged together during off hours, under a deadline, and in response to pressure from a {salescritter}. Such hacks are dangerously unreliable, but all too often sneak into a production release after insufficient review.
:say: /vt./ 1. To type to a terminal. "To list a directory verbosely, you have to say `ls -l'." Tends to imply a {newline}-terminated command (a `sentence'). 2. A computer may also be said to `say' things to you, even if it doesn't have a speech synthesizer, by displaying them on a terminal in response to your commands. Hackers find it odd that this usage confuses {mundane}s.
:scag: /vt./ To destroy the data on a disk, either by corrupting the filesystem or by causing media damage. "That last power hit scagged the system disk." Compare {scrog}, {roach}.
:scanno: /skan'oh/ /n./ An error in a document caused by a scanner glitch, analogous to a typo or {thinko}.
:schroedinbug: /shroh'din-buhg/ /n./ [MIT: from the Schroedinger's Cat thought-experiment in quantum physics] A design or implementation bug in a program that doesn't manifest until someone reading source or using the program in an unusual way notices that it never should have worked, at which point the program promptly stops working for everybody until fixed. Though (like {bit rot}) this sounds impossible, it happens; some programs have harbored latent schroedinbugs for years. Compare {heisenbug}, {Bohr bug}, {mandelbug}.
:science-fiction fandom:: /n./ Another voluntary subculture having a very heavy overlap with hackerdom; most hackers read SF and/or fantasy fiction avidly, and many go to `cons' (SF conventions) or are involved in fandom-connected activities such as the Society for Creative Anachronism. Some hacker jargon originated in SF fandom; see {defenestration}, {great-wall}, {cyberpunk}, {h}, {ha ha only serious}, {IMHO}, {mundane}, {neep-neep}, {Real Soon Now}. Additionally, the jargon terms {cowboy}, {cyberspace}, {de-rezz}, {go flatline}, {ice}, {phage}, {virus}, {wetware}, {wirehead}, and {worm} originated in SF stories.
:scram switch: /n./ [from the nuclear power industry] An emergency-power-off switch (see {Big Red Switch}), esp. one positioned to be easily hit by evacuating personnel. In general, this is *not* something you {frob} lightly; these often initiate expensive events (such as Halon dumps) and are installed in a {dinosaur pen} for use in case of electrical fire or in case some luckless {field servoid} should put 120 volts across himself while {Easter egging}. (See also {molly-guard}, {TMRC}.)
:scratch: 1. [from `scratchpad'] /adj./ Describes a data structure or recording medium attached to a machine for testing or temporary-use purposes; one that can be {scribble}d on without loss. Usually in the combining forms `scratch memory', `scratch register', `scratch disk', `scratch tape', `scratch volume'. See also {scratch monkey}. 2. [primarily IBM] /vt./ To delete (as in a file).
:scratch monkey: /n./ As in "Before testing or reconfiguring, always mount a {scratch monkey}", a proverb used to advise caution when dealing with irreplaceable data or devices. Used to refer to any scratch volume hooked to a computer during any risky operation as a replacement for some precious resource or data that might otherwise get trashed.
This term preserves the memory of Mabel, the Swimming Wonder Monkey, star of a biological research program at the University of Toronto. Mabel was not (so the legend goes) your ordinary monkey; the university had spent years teaching her how to swim, breathing through a regulator, in order to study the effects of different gas mixtures on her physiology. Mabel suffered an untimely demise one day when a DEC engineer troubleshooting a crash on the program's VAX inadvertently interfered with some custom hardware that was wired to Mabel.
It is reported that, after calming down an understandably irate customer sufficiently to ascertain the facts of the matter, a DEC troubleshooter called up the {field circus} manager responsible and asked him sweetly, "Can you swim?"
Not all the consequences to humans were so amusing; the sysop of the machine in question was nearly thrown in jail at the behest of certain clueless {droid}s at the local `humane' society. The moral is clear: When in doubt, always mount a scratch monkey.
[The actual incident occured in 1979 or 1980. There is a version of this story, complete with reported dialogue between one of the project people and DEC field service, that has been circulating on Internet since 1986. It is hilarious and mythic, but gets some facts wrong. For example, it reports the machine as a PDP-11 and alleges that Mabel's demise occurred when DEC {PM}ed the machine. Earlier versions of this entry were based on that story; this one has been corrected from an interview with the hapless sysop. --ESR]
:scream and die: /v./ Syn. {cough and die}, but connotes that an error message was printed or displayed before the program crashed.
:screaming tty: /n./ [Unix] A terminal line which spews an infinite number of random characters at the operating system. This can happen if the terminal is either disconnected or connected to a powered-off terminal but still enabled for login; misconfiguration, misimplementation, or simple bad luck can start such a terminal screaming. A screaming tty or two can seriously degrade the performance of a vanilla Unix system; the arriving "characters" are treated as userid/password pairs and tested as such. The Unix password encryption algorithm is designed to be computationally intensive in order to foil brute-force crack attacks, so although none of the logins succeeds; the overhead of rejecting them all can be substantial.
:screw: /n./ [MIT] A {lose}, usually in software. Especially used for user-visible misbehavior caused by a bug or misfeature. This use has become quite widespread outside MIT.
:screwage: /skroo'*j/ /n./ Like {lossage} but connotes that the failure is due to a designed-in misfeature rather than a simple inadequacy or a mere bug.
:scribble: /n./ To modify a data structure in a random and unintentionally destructive way. "Bletch! Somebody's disk-compactor program went berserk and scribbled on the i-node table." "It was working fine until one of the allocation routines scribbled on low core." Synonymous with {trash}; compare {mung}, which conveys a bit more intention, and {mangle}, which is more violent and final.
:scrog: /skrog/ /vt./ [Bell Labs] To damage, trash, or corrupt a data structure. "The list header got scrogged." Also reported as `skrog', and ascribed to the comic strip "The Wizard of Id". Compare {scag}; possibly the two are related. Equivalent to {scribble} or {mangle}.
:scrool: /skrool/ /n./ [from the pioneering Roundtable chat system in Houston ca. 1984; prob. originated as a typo for `scroll'] The log of old messages, available for later perusal or to help one get back in synch with the conversation. It was originally called the `scrool monster', because an early version of the roundtable software had a bug where it would dump all 8K of scrool on a user's terminal.
:scrozzle: /skroz'l/ /vt./ Used when a self-modifying code segment runs incorrectly and corrupts the running program or vital data. "The damn compiler scrozzled itself again!"
:scruffies: /n./ See {neats vs. scruffies}.
:SCSI: /n./ [Small Computer System Interface] A bus-independent standard for system-level interfacing between a computer and intelligent devices. Typically annotated in literature with `sexy' (/sek'see/), `sissy' (/sis'ee/), and `scuzzy' (/skuh'zee/) as pronunciation guides -- the last being the overwhelmingly predominant form, much to the dismay of the designers and their marketing people. One can usually assume that a person who pronounces it /S-C-S-I/ is clueless.
:ScumOS: /skuhm'os/ or /skuhm'O-S/ /n./ Unflattering hackerism for SunOS, the BSD Unix variant supported on Sun Microsystems's Unix workstations (see also {sun-stools}), and compare {AIDX}, {Macintrash}, {Nominal Semidestructor}, {Open DeathTrap}, {HP-SUX}. Despite what this term might suggest, Sun was founded by hackers and still enjoys excellent relations with hackerdom; usage is more often in exasperation than outright loathing.
:search-and-destroy mode: /n./ Hackerism for a noninteractive search-and-replace facility in an editor, so called because an incautiously chosen match pattern can cause {infinite} damage.
:second-system effect: /n./ (sometimes, more euphoniously, `second-system syndrome') When one is designing the successor to a relatively small, elegant, and successful system, there is a tendency to become grandiose in one's success and design an {elephantine} feature-laden monstrosity. The term was first used by Fred Brooks in his classic "The Mythical Man-Month: Essays on Software Engineering" (Addison-Wesley, 1975; ISBN 0-201-00650-2). It described the jump from a set of nice, simple operating systems on the IBM 70xx series to OS/360 on the 360 series. A similar effect can also happen in an evolving system; see {Brooks's Law}, {creeping elegance}, {creeping featurism}. See also {{Multics}}, {OS/2}, {X}, {software bloat}.
This version of the jargon lexicon has been described (with altogether too much truth for comfort) as an example of second-system effect run amok on jargon-1....
:secondary damage: /n./ When a fatal error occurs (esp. a {segfault}) the immediate cause may be that a pointer has been trashed due to a previous {fandango on core}. However, this fandango may have been due to an *earlier* fandango, so no amount of analysis will reveal (directly) how the damage occurred. "The data structure was clobbered, but it was secondary damage."
By extension, the corruption resulting from N cascaded fandangoes on core is `Nth-level damage'. There is at least one case on record in which 17 hours of {grovel}ling with `adb' actually dug up the underlying bug behind an instance of seventh-level damage! The hacker who accomplished this near-superhuman feat was presented with an award by his fellows.
:security through obscurity: (alt. `security by obscurity') A term applied by hackers to most OS vendors' favorite way of coping with security holes -- namely, ignoring them, documenting neither any known holes nor the underlying security algorithms, trusting that nobody will find out about them and that people who do find out about them won't exploit them. This "strategy" never works for long and occasionally sets the world up for debacles like the {RTM} worm of 1988 (see {Great Worm, the}), but once the brief moments of panic created by such events subside most vendors are all too willing to turn over and go back to sleep. After all, actually fixing the bugs would siphon off the resources needed to implement the next user-interface frill on marketing's wish list -- and besides, if they started fixing security bugs customers might begin to *expect* it and imagine that their warranties of merchantability gave them some sort of *right* to a system with fewer holes in it than a shotgunned Swiss cheese, and *then* where would we be?
Historical note: There are conflicting stories about the origin of this term. It has been claimed that it was first used in the Usenet newsgroup in comp.sys.apollo during a campaign to get HP/Apollo to fix security problems in its Unix-{clone} Aegis/DomainOS (they didn't change a thing). {ITS} fans, on the other hand, say it was coined years earlier in opposition to the incredibly paranoid {Multics} people down the hall, for whom security was everything. In the ITS culture it referred to (1) the fact that by the time a tourist figured out how to make trouble he'd generally gotten over the urge to make it, because he felt part of the community; and (2) (self-mockingly) the poor coverage of the documentation and obscurity of many commands. One instance of *deliberate* security through obscurity is recorded; the command to allow patching the running ITS system ({altmode} altmode control-R) echoed as $$^D. If you actually typed alt alt ^D, that set a flag that would prevent patching the system even if you later got it right.
:SED: /S-E-D/ /n./ [TMRC, from `Light-Emitting Diode'] Smoke-emitting diode. A {friode} that lost the war. See also {LER}.
:segfault: /n.,vi./ Syn. {segment}, {segmentation fault}.
:seggie: /seg'ee/ /n./ [Unix] Shorthand for {segmentation fault} reported from Britain.
:segment: /seg'ment/ /vi./ To experience a {segmentation fault}. Confusingly, this is often pronounced more like the noun `segment' than like mainstream /v./ segment; this is because it is actually a noun shorthand that has been verbed.
:segmentation fault: /n./ [Unix] 1. An error in which a running program attempts to access memory not allocated to it and {core dump}s with a segmentation violation error. 2. To lose a train of thought or a line of reasoning. Also uttered as an exclamation at the point of befuddlement.
:segv: /seg'vee/ /n.,vi./ Yet another synonym for {segmentation fault} (actually, in this case, `segmentation violation').
:self-reference: /n./ See {self-reference}.
:selvage: /sel'v*j/ /n./ [from sewing and weaving] See {chad} (sense 1).
:semi: /se'mee/ or /se'mi:/ 1. /n./ Abbreviation for `semicolon', when speaking. "Commands to {grind} are prefixed by semi-semi-star" means that the prefix is `;;*', not 1/4 of a star. 2. A prefix used with words such as `immediately' as a qualifier. "When is the system coming up?" "Semi-immediately." (That is, maybe not for an hour.) "We did consider that possibility semi-seriously." See also {infinite}.
:semi-infinite: /n./ See {infinite}.
:senior bit: /n./ [IBM] Syn. {meta bit}.
:server: /n./ A kind of {daemon} that performs a service for the requester and which often runs on a computer other than the one on which the server runs. A particularly common term on the Internet, which is rife with `web servers', `name servers', `domain servers', `news servers', `finger servers', and the like.
:SEX: /seks/ [Sun Users' Group & elsewhere] /n./ 1. Software EXchange. A technique invented by the blue-green algae hundreds of millions of years ago to speed up their evolution, which had been terribly slow up until then. Today, SEX parties are popular among hackers and others (of course, these are no longer limited to exchanges of genetic software). In general, SEX parties are a {Good Thing}, but unprotected SEX can propagate a {virus}. See also {pubic directory}. 2. The rather Freudian mnemonic often used for Sign EXtend, a machine instruction found in the PDP-11 and many other architectures. The RCA 1802 chip used in the early Elf and SuperElf personal computers had a `SEt X register' SEX instruction, but this seems to have had little folkloric impact.
DEC's engineers nearly got a PDP-11 assembler that used the `SEX' mnemonic out the door at one time, but (for once) marketing wasn't asleep and forced a change. That wasn't the last time this happened, either. The author of "The Intel 8086 Primer", who was one of the original designers of the 8086, noted that there was originally a `SEX' instruction on that processor, too. He says that Intel management got cold feet and decreed that it be changed, and thus the instruction was renamed `CBW' and `CWD' (depending on what was being extended). Amusingly, the Intel 8048 (the microcontroller used in IBM PC keyboards) is also missing straight `SEX' but has logical-or and logical-and instructions `ORL' and `ANL'.
The Motorola 6809, used in the U.K.'s `Dragon 32' personal computer, actually had an official `SEX' instruction; the 6502 in the Apple II with which it competed did not. British hackers thought this made perfect mythic sense; after all, it was commonly observed, you could (on some theoretical level) have sex with a dragon, but you can't have sex with an apple.
:sex changer: /n./ Syn. {gender mender}.
:shambolic link: /sham-bol'ik link/ /n./ A Unix symbolic link, particularly when it confuses you, points to nothing at all, or results in your ending up in some completely unexpected part of the filesystem....
:shar file: /shar' fi:l/ /n./ Syn. {sharchive}.
:sharchive: /shar'ki:v/ /n./ [Unix and Usenet; from /bin/sh archive] A {flatten}ed representation of a set of one or more files, with the unique property that it can be unflattened (the original files restored) by feeding it through a standard Unix shell; thus, a sharchive can be distributed to anyone running Unix, and no special unpacking software is required. Sharchives are also intriguing in that they are typically created by shell scripts; the script that produces sharchives is thus a script which produces self-unpacking scripts, which may themselves contain scripts. (The downsides of sharchives are that they are an ideal venue for {Trojan horse} attacks and that, for recipients not running Unix, no simple un-sharchiving program is possible; sharchives can and do make use of arbitrarily-powerful shell features.) Sharchives are also commonly referred to as `shar files' after the name of the most common program for generating them.
:Share and enjoy!: /imp./ 1. Commonly found at the end of software release announcements and {README file}s, this phrase indicates allegiance to the hacker ethic of free information sharing (see {hacker ethic}, sense 1). 2. The motto of the Sirius Cybernetics Corporation (the ultimate gaggle of incompetent {suit}s) in Douglas Adams's "Hitch Hiker's Guide to the Galaxy". The irony of using this as a cultural recognition signal appeals to freeware hackers.
:shareware: /sheir'weir/ /n./ A kind of {freeware} (sense 1) for which the author requests some payment, usually in the accompanying documentation files or in an announcement made by the software itself. Such payment may or may not buy additional support or functionality. See also {careware}, {charityware}, {crippleware}, {FRS}, {guiltware}, {postcardware}, and {-ware}; compare {payware}.
:shelfware: /shelf'weir/ /n./ Software purchased on a whim (by an individual user) or in accordance with policy (by a corporation or government agency), but not actually required for any particular use. Therefore, it often ends up on some shelf.
:shell: [orig. {{Multics}} /n./ techspeak, widely propagated via Unix] 1. [techspeak] The command interpreter used to pass commands to an operating system; so called because it is the part of the operating system that interfaces with the outside world. 2. More generally, any interface program that mediates access to a special resource or {server} for convenience, efficiency, or security reasons; for this meaning, the usage is usually `a shell around' whatever. This sort of program is also called a `wrapper'. 3. A skeleton program, created by hand or by another program (like, say, a parser generator), which provides the necessary {incantation}s to set up some task and the control flow to drive it (the term {driver} is sometimes used synonymously). The user is meant to fill in whatever code is needed to get real work done. This usage is common in the AI and Microsoft Windows worlds, and confuses Unix hackers.
Historical note: Apparently, the original Multics shell (sense 1) was so called because it was a shell (sense 3); it ran user programs not by starting up separate processes, but by dynamically linking the programs into its own code, calling them as subroutines, and then dynamically de-linking them on return. The VMS command interpreter still does something very like this.
:shell out: /n./ [Unix] To spawn an interactive subshell from within a program (e.g., a mailer or editor). "Bang foo runs foo in a subshell, while bang alone shells out."
:shift left (or right) logical: [from any of various machines' instruction sets] 1. /vi./ To move oneself to the left (right). To move out of the way. 2. imper. "Get out of that (my) seat! You can shift to that empty one to the left (right)." Often used without the `logical', or as `left shift' instead of `shift left'. Sometimes heard as LSH /lish/, from the {PDP-10} instruction set. See {Programmer's Cheer}.
:shim: /n./ A small piece of data inserted in order to achieve a desired memory alignment or other addressing property. For example, the PDP-11 Unix linker, in split I&D (instructions and data) mode, inserts a two-byte shim at location 0 in data space so that no data object will have an address of 0 (and be confused with the C null pointer). See also {loose bytes}.
:shitogram: /shit'oh-gram/ /n./ A *really* nasty piece of email. Compare {nastygram}, {flame}.
:short card: /n./ A half-length IBM XT expansion card or adapter that will fit in one of the two short slots located towards the right rear of a standard chassis (tucked behind the floppy disk drives). See also {tall card}.
:shotgun debugging: /n./ The software equivalent of {Easter egging}; the making of relatively undirected changes to software in the hope that a bug will be perturbed out of existence. This almost never works, and usually introduces more bugs.
:shovelware: /shuh'v*l-weir`/ /n./ Extra software dumped onto a CD-ROM or tape to fill up the remaining space on the medium after the software distribution it's intended to carry, but not integrated with the distribution.
:showstopper: /n./ A hardware or (especially) software bug that makes an implementation effectively unusable; one that absolutely has to be fixed before development can go on. Opposite in connotation from its original theatrical use, which refers to something stunningly *good*.
:shriek: /n./ See {excl}. Occasional CMU usage, also in common use among APL fans and mathematicians, especially category theorists.
:Shub-Internet: /shuhb' in't*r-net/ /n./ [MUD: from H. P. Lovecraft's evil fictional deity Shub-Niggurath, the Black Goat with a Thousand Young] The harsh personification of the Internet, Beast of a Thousand Processes, Eater of Characters, Avatar of Line Noise, and Imp of Call Waiting; the hideous multi-tendriled entity formed of all the manifold connections of the net. A sect of MUDders worships Shub-Internet, sacrificing objects and praying for good connections. To no avail -- its purpose is malign and evil, and is the cause of all network slowdown. Often heard as in "Freela casts a tac nuke at Shub-Internet for slowing her down." (A forged response often follows along the lines of: "Shub-Internet gulps down the tac nuke and burps happily.") Also cursed by users of the Web, {FTP} and {TELNET} when the system slows down. The dread name of Shub-Internet is seldom spoken aloud, as it is said that repeating it three times will cause the being to wake, deep within its lair beneath the Pentagon.
[January 1996: It develops that one of the computer administrators in the basement of the Pentagon read this entry and fell over laughing. As a result, you too can now poke Shub-Internet by {ping}ing shub-internet.ims.disa.mil. See also {kremvax}. -- ESR]
:sidecar: /n./ 1. Syn. {slap on the side}. Esp. used of add-ons for the late and unlamented IBM PCjr. 2. The IBM PC compatibility box that could be bolted onto the side of an Amiga. Designed and produced by Commodore, it broke all of the company's own design rules. If it worked with any other peripherals, it was by {magic}. 3. More generally, any of various devices designed to be connected to the expansion slot on the left side of the Amiga 500 (and later, 600 & 1200), which included a hard drive controller, a hard drive, and additional memory.
:SIG: /sig/ /n./ (also common as a prefix in combining forms) A Special Interest Group, in one of several technical areas, sponsored by the Association for Computing Machinery; well-known ones include SIGPLAN (the Special Interest Group on Programming Languages), SIGARCH (the Special Interest Group for Computer Architecture) and SIGGRAPH (the Special Interest Group for Computer Graphics). Hackers, not surprisingly, like to overextend this naming convention to less formal associations like SIGBEER (at ACM conferences) and SIGFOOD (at University of Illinois).
:sig block: /sig blok/ /n./ [Unix; often written `.sig' there] Short for `signature', used specifically to refer to the electronic signature block that most Unix mail- and news-posting software will {automagically} append to outgoing mail and news. The composition of one's sig can be quite an art form, including an ASCII logo or one's choice of witty sayings (see {sig quote}, {fool file, the}); but many consider large sigs a waste of {bandwidth}, and it has been observed that the size of one's sig block is usually inversely proportional to one's longevity and level of prestige on the net. See also {doubled sig}.
:sig quote: /sig kwoht/ /n./ [Usenet] A maxim, quote, proverb, joke, or slogan embedded in one's {sig block} and intended to convey something of one's philosophical stance, pet peeves, or sense of humor. "Calm down, it's only ones and zeroes."
:sig virus: /n./ A parasitic {meme} embedded in a {sig block}. There was a {meme plague} or fad for these on Usenet in late 1991. Most were equivalents of "I am a .sig virus. Please reproduce me in your .sig block.". Of course, the .sig virus's memetic hook is the giggle value of going along with the gag; this, however, was a self-limiting phenomenon as more and more people picked up on the idea. There were creative variants on it; some people stuck `sig virus antibody' texts in their sigs, and there was at least one instance of a sig virus eater.
:signal-to-noise ratio: [from analog electronics] /n./ Used by hackers in a generalization of its technical meaning. `Signal' refers to useful information conveyed by some communications medium, and `noise' to anything else on that medium. Hence a low ratio implies that it is not worth paying attention to the medium in question. Figures for such metaphorical ratios are never given. The term is most often applied to {Usenet} newsgroups during {flame war}s. Compare {bandwidth}. See also {coefficient of X}, {lost in the noise}.
:silicon: /n./ Hardware, esp. ICs or microprocessor-based computer systems (compare {iron}). Contrasted with software. See also {sandbender}.
:silly walk: /vi./ [from Monty Python's Flying Circus] 1. A ridiculous procedure required to accomplish a task. Like {grovel}, but more {random} and humorous. "I had to silly-walk through half the /usr directories to find the maps file." 2. Syn. {fandango on core}.
:silo: /n./ The FIFO input-character buffer in an RS-232 line card. So called from DEC terminology used on DH and DZ line cards for the VAX and PDP-11, presumably because it was a storage space for fungible stuff that went in at the top and came out at the bottom.
:Silver Book: /n./ Jensen and Wirth's infamous "Pascal User Manual and Report", so called because of the silver cover of the widely distributed Springer-Verlag second edition of 1978 (ISBN 0-387-90144-2). See {{book titles}}, {Pascal}.
:since time T equals minus infinity: /adv./ A long time ago; for as long as anyone can remember; at the time that some particular frob was first designed. Usually the word `time' is omitted. See also {time T}; contrast {epoch}.
:sitename: /si:t'naym/ /n./ [Unix/Internet] The unique electronic name of a computer system, used to identify it in UUCP mail, Usenet, or other forms of electronic information interchange. The folklore interest of sitenames stems from the creativity and humor they often display. Interpreting a sitename is not unlike interpreting a vanity license plate; one has to mentally unpack it, allowing for mono-case and length restrictions and the lack of whitespace. Hacker tradition deprecates dull, institutional-sounding names in favor of punchy, humorous, and clever coinages (except that it is considered appropriate for the official public gateway machine of an organization to bear the organization's name or acronym). Mythological references, cartoon characters, animal names, and allusions to SF or fantasy literature are probably the most popular sources for sitenames (in roughly descending order). The obligatory comment when discussing these is Harris's Lament: "All the good ones are taken!" See also {network address}.
:skrog: /v./ Syn. {scrog}.
:skulker: /n./ Syn. {prowler}.
:slab: [Apple] 1. /n./ A continuous horizontal line of pixels, all with the same color. 2. /vi./ To paint a slab on an output device. Apple's QuickDraw, like most other professional-level graphics systems, renders polygons and lines not with Bresenham's algorithm, but by calculating `slab points' for each scan line on the screen in succession, and then slabbing in the actual image pixels.
:slack: /n./ 1. Space allocated to a disk file but not actually used to store useful information. The techspeak equivalent is `internal fragmentation'. Antonym: {hole}. 2. In the theology of the {Church of the SubGenius}, a mystical substance or quality that is the prerequisite of all human happiness.
Since Unix files are stored compactly, except for the unavoidable wastage in the last block or fragment, it might be said that "Unix has no slack". See {ha ha only serious}.
:slap on the side: /n./ (also called a {sidecar}, or abbreviated `SOTS'.) A type of external expansion hardware marketed by computer manufacturers (e.g., Commodore for the Amiga 500/1000 series and IBM for the hideous failure called `PCjr'). Various SOTS boxes provided necessities such as memory, hard drive controllers, and conventional expansion slots.
:slash: /n./ Common name for the slant (`/', ASCII 0101111) character. See {ASCII} for other synonyms.
:sleep: /vi./ 1. [techspeak] To relinquish a claim (of a process on a multitasking system) for service; to indicate to the scheduler that a process may be deactivated until some given event occurs or a specified time delay elapses. 2. In jargon, used very similarly to /v./ {block}; also in `sleep on', syn. with `block on'. Often used to indicate that the speaker has relinquished a demand for resources until some (possibly unspecified) external event: "They can't get the fix I've been asking for into the next release, so I'm going to sleep on it until the release, then start hassling them again."
:slim: /n./ A small, derivative change (e.g., to code).
:slop: /n./ 1. A one-sided {fudge factor}, that is, an allowance for error but in only one of two directions. For example, if you need a piece of wire 10 feet long and have to guess when you cut it, you make very sure to cut it too long, by a large amount if necessary, rather than too short by even a little bit, because you can always cut off the slop but you can't paste it back on again. When discrete quantities are involved, slop is often introduced to avoid the possibility of being on the losing side of a {fencepost error}. 2. The percentage of `extra' code generated by a compiler over the size of equivalent assembler code produced by {hand-hacking}; i.e., the space (or maybe time) you lose because you didn't do it yourself. This number is often used as a measure of the goodness of a compiler; slop below 5% is very good, and 10% is usually acceptable. With modern compiler technology, esp. on RISC machines, the compiler's slop may actually be *negative*; that is, humans may be unable to generate code as good. This is one of the reasons assembler programming is no longer common.
:slopsucker: /slop'suhk-r/ /n./ A lowest-priority task that waits around until everything else has `had its fill' of machine resources. Only when the machine would otherwise be idle is the task allowed to `suck up the slop'. Also called a `hungry puppy' or `bottom feeder'. One common variety of slopsucker hunts for large prime numbers. Compare {background}.
:slurp: /vt./ To read a large data file entirely into {core} before working on it. This may be contrasted with the strategy of reading a small piece at a time, processing it, and then reading the next piece. "This program slurps in a 1K-by-1K matrix and does an FFT." See also {sponge}.
:smart: /adj./ Said of a program that does the {Right Thing} in a wide variety of complicated circumstances. There is a difference between calling a program smart and calling it intelligent; in particular, there do not exist any intelligent programs (yet -- see {AI-complete}). Compare {robust} (smart programs can be {brittle}).
:smart terminal: /n./ 1. A terminal that has enough computing capability to render graphics or to offload some kind of front-end processing from the computer it talks to. The development of workstations and personal computers has made this term and the product it describes semi-obsolescent, but one may still hear variants of the phrase `act like a smart terminal' used to describe the behavior of workstations or PCs with respect to programs that execute almost entirely out of a remote {server}'s storage, using local devices as displays. 2. obs. Any terminal with an addressable cursor; the opposite of a {glass tty}. Today, a terminal with merely an addressable cursor, but with none of the more-powerful features mentioned in sense 1, is called a {dumb terminal}.
There is a classic quote from Rob Pike (inventor of the {blit} terminal): "A smart terminal is not a smart*ass* terminal, but rather a terminal you can educate." This illustrates a common design problem: The attempt to make peripherals (or anything else) intelligent sometimes results in finicky, rigid `special features' that become just so much dead weight if you try to use the device in any way the designer didn't anticipate. Flexibility and programmability, on the other hand, are *really* smart. Compare {hook}.
:smash case: /vi./ To lose or obliterate the uppercase/lowercase distinction in text input. "MS-DOS will automatically smash case in the names of all the files you create." Compare {fold case}.
:smash the stack: /n./ [C programming] To corrupt the execution stack by writing past the end of a local array or other data structure. Code that smashes the stack can cause a return from the routine to jump to a random address, resulting in some of the most insidious data-dependent bugs known to mankind. Variants include `trash' the stack, {scribble} the stack, {mangle} the stack; the term **{mung} the stack is not used, as this is never done intentionally. See {spam}; see also {aliasing bug}, {fandango on core}, {memory leak}, {memory smash}, {precedence lossage}, {overrun screw}.
:smiley: /n./ See {emoticon}.
:smoke: /vi./ 1. To {crash} or blow up, usually spectacularly. "The new version smoked, just like the last one." Used for both hardware (where it often describes an actual physical event), and software (where it's merely colorful). 2. [from automotive slang] To be conspicuously fast. "That processor really smokes." Compare {magic smoke}.
:smoke and mirrors: /n./ Marketing deceptions. The term is mainstream in this general sense. Among hackers it's strongly associated with bogus demos and crocked {benchmark}s (see also {MIPS}, {machoflops}). "They claim their new box cranks 50 MIPS for under $5000, but didn't specify the instruction mix --- sounds like smoke and mirrors to me." The phrase, popularized by newspaper columnist Jimmy Breslin c.1975, has been said to derive from carnie slang for magic acts and `freak show' displays that depend on `trompe l'oeil' effects, but also calls to mind the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") for whom the hearts of huge numbers of human sacrificial victims were regularly cut out. Upon hearing about a rigged demo or yet another round of fantasy-based marketing promises, hackers often feel analogously disheartened. See also {stealth manager}.
:smoke test: /n./ 1. A rudimentary form of testing applied to electronic equipment following repair or reconfiguration, in which power is applied and the tester checks for sparks, smoke, or other dramatic signs of fundamental failure. See {magic smoke}. 2. By extension, the first run of a piece of software after construction or a critical change. See and compare {reality check}.
There is an interesting semi-parallel to this term among typographers and printers: When new typefaces are being punch-cut by hand, a `smoke test' (hold the letter in candle smoke, then press it onto paper) is used to check out new dies.
:smoking clover: /n./ [ITS] A {display hack} originally due to Bill Gosper. Many convergent lines are drawn on a color monitor in {AOS} mode (so that every pixel struck has its color incremented). The lines all have one endpoint in the middle of the screen; the other endpoints are spaced one pixel apart around the perimeter of a large square. The color map is then repeatedly rotated. This results in a striking, rainbow-hued, shimmering four-leaf clover. Gosper joked about keeping it hidden from the FDA (the U.S.'s Food and Drug Administration) lest its hallucinogenic properties cause it to be banned.
:SMOP: /S-M-O-P/ /n./ [Simple (or Small) Matter of Programming] 1. A piece of code, not yet written, whose anticipated length is significantly greater than its complexity. Used to refer to a program that could obviously be written, but is not worth the trouble. Also used ironically to imply that a difficult problem can be easily solved because a program can be written to do it; the irony is that it is very clear that writing such a program will be a great deal of work. "It's easy to enhance a FORTRAN compiler to compile COBOL as well; it's just an SMOP." 2. Often used ironically by the intended victim when a suggestion for a program is made which seems easy to the suggester, but is obviously (to the victim) a lot of work.
:smurf: /smerf/ /n./ [from the soc.motss newsgroup on Usenet, after some obnoxiously gooey cartoon characters] A newsgroup regular with a habitual style that is irreverent, silly, and cute. Like many other hackish terms for people, this one may be praise or insult depending on who uses it. In general, being referred to as a smurf is probably not going to make your day unless you've previously adopted the label yourself in a spirit of irony. Compare {old fart}.
:SNAFU principle: /sna'foo prin'si-pl/ /n./ [from a WWII Army acronym for `Situation Normal, All Fucked Up'] "True communication is possible only between equals, because inferiors are more consistently rewarded for telling their superiors pleasant lies than for telling the truth." -- a central tenet of {Discordianism}, often invoked by hackers to explain why authoritarian hierarchies screw up so reliably and systematically. The effect of the SNAFU principle is a progressive disconnection of decision-makers from reality. This lightly adapted version of a fable dating back to the early 1960s illustrates the phenomenon perfectly:
In the beginning was the plan, and then the specification; And the plan was without form, and the specification was void.
And darkness was on the faces of the implementors thereof; And they spake unto their leader, saying: "It is a crock of shit, and smells as of a sewer."
And the leader took pity on them, and spoke to the project leader: "It is a crock of excrement, and none may abide the odor thereof."
And the project leader spake unto his section head, saying: "It is a container of excrement, and it is very strong, such that none may abide it."
The section head then hurried to his department manager, and informed him thus: "It is a vessel of fertilizer, and none may abide its strength."
The department manager carried these words to his general manager, and spoke unto him saying: "It containeth that which aideth the growth of plants, and it is very strong."
And so it was that the general manager rejoiced and delivered the good news unto the Vice President. "It promoteth growth, and it is very powerful."
The Vice President rushed to the President's side, and joyously exclaimed: "This powerful new software product will promote the growth of the company!"
And the President looked upon the product, and saw that it was very good.
After the subsequent and inevitable disaster, the {suit}s protect themselves by saying "I was misinformed!", and the implementors are demoted or fired.
:snail: /vt./ To {snail-mail} something. "Snail me a copy of those graphics, will you?"
:snail-mail: /n./ Paper mail, as opposed to electronic. Sometimes written as the single word `SnailMail'. One's postal address is, correspondingly, a `snail address'. Derives from earlier coinage `USnail' (from `U.S. Mail'), for which there have even been parody posters and stamps made. Also (less commonly) called `P-mail', from `paper mail' or `physical mail'. Oppose {email}.
:snap: /v./ To replace a pointer to a pointer with a direct pointer; to replace an old address with the forwarding address found there. If you telephone the main number for an institution and ask for a particular person by name, the operator may tell you that person's extension before connecting you, in the hopes that you will `snap your pointer' and dial direct next time. The underlying metaphor may be that of a rubber band stretched through a number of intermediate points; if you remove all the thumbtacks in the middle, it snaps into a straight line from first to last. See {chase pointers}.
Often, the behavior of a {trampoline} is to perform an error check once and then snap the pointer that invoked it so as henceforth to bypass the trampoline (and its one-shot error check). In this context one also speaks of `snapping links'. For example, in a LISP implementation, a function interface trampoline might check to make sure that the caller is passing the correct number of arguments; if it is, and if the caller and the callee are both compiled, then snapping the link allows that particular path to use a direct procedure-call instruction with no further overhead.
:snarf: /snarf/ /vt./ 1. To grab, esp. to grab a large document or file for the purpose of using it with or without the author's permission. See also {BLT}. 2. [in the Unix community] To fetch a file or set of files across a network. See also {blast}. This term was mainstream in the late 1960s, meaning `to eat piggishly'. It may still have this connotation in context. "He's in the snarfing phase of hacking -- {FTP}ing megs of stuff a day." 3. To acquire, with little concern for legal forms or politesse (but not quite by stealing). "They were giving away samples, so I snarfed a bunch of them." 4. Syn. for {slurp}. "This program starts by snarfing the entire database into core, then...." 5. [GEnie] To spray food or {programming fluid}s due to laughing at the wrong moment. "I was drinking coffee, and when I read your post I snarfed all over my desk." "If I keep reading this topic, I think I'll have to snarf-proof my computer with a keyboard {condom}." [This sense appears to be widespread among mundane teenagers --ESR]
:snarf & barf: /snarf'n-barf`/ /n./ Under a {WIMP environment}, the act of grabbing a region of text and then stuffing the contents of that region into another region (or the same one) to avoid retyping a command line. In the late 1960s, this was a mainstream expression for an `eat now, regret it later' cheap-restaurant expedition.
:snarf down: /v./ To {snarf}, with the connotation of absorbing, processing, or understanding. "I'll snarf down the latest version of the {nethack} user's guide -- it's been a while since I played last and I don't know what's changed recently."
:snark: /n./ [Lewis Carroll, via the Michigan Terminal System] 1. A system failure. When a user's process bombed, the operator would get the message "Help, Help, Snark in MTS!" 2. More generally, any kind of unexplained or threatening event on a computer (especially if it might be a boojum). Often used to refer to an event or a log file entry that might indicate an attempted security violation. See {snivitz}. 3. UUCP name of snark.thyrsus.com, home site of the Jargon File versions from 2.*.* on (i.e., this lexicon).
:sneaker: /n./ An individual hired to break into places in order to test their security; analogous to {tiger team}. Compare {samurai}.
:sneakernet: /snee'ker-net/ /n./ Term used (generally with ironic intent) for transfer of electronic information by physically carrying tape, disks, or some other media from one machine to another. "Never underestimate the bandwidth of a station wagon filled with magtape, or a 747 filled with CD-ROMs." Also called `Tennis-Net', `Armpit-Net', `Floppy-Net' or `Shoenet'.
:sniff: /v.,n./ Synonym for {poll}.
:snivitz: /sniv'itz/ /n./ A hiccup in hardware or software; a small, transient problem of unknown origin (less serious than a {snark}). Compare {glitch}.
:SO: /S-O/ /n./ 1. (also `S.O.') Abbrev. for Significant Other, almost invariably written abbreviated and pronounced /S-O/ by hackers. Used to refer to one's primary relationship, esp. a live-in to whom one is not married. See {MOTAS}, {MOTOS}, {MOTSS}. 2. [techspeak] The Shift Out control character in ASCII (Control-N, 0001110).
:social engineering: /n./ Term used among {cracker}s and {samurai} for cracking techniques that rely on weaknesses in {wetware} rather than software; the aim is to trick people into revealing passwords or other information that compromises a target system's security. Classic scams include phoning up a mark who has the required information and posing as a field service tech or a fellow employee with an urgent access problem. See also the {tiger team} story in the {patch} entry.
:social science number: /n./ [IBM] A statistic that is {content-free}, or nearly so. A measure derived via methods of questionable validity from data of a dubious and vague nature. Predictively, having a social science number in hand is seldom much better than nothing, and can be considerably worse. As a rule, {management} loves them. See also {numbers}, {math-out}, {pretty pictures}.
:sodium substrate: /n./ Syn {salt substrate}.
:soft boot: /n./ See {boot}.
:softcopy: /soft'kop-ee/ /n./ [by analogy with `hardcopy'] A machine-readable form of corresponding hardcopy. See {bits}, {machinable}.
:software bloat: /n./ The results of {second-system effect} or {creeping featuritis}. Commonly cited examples include `ls(1)', {X}, {BSD}, {Missed'em-five}, and {OS/2}.
:software hoarding: /n./ Pejorative term employed by members and adherents of the {GNU} project to describe the act of holding software proprietary, keeping it under trade secret or license terms which prohibit free redistribution and modification. Used primarily in Free Software Foundation propaganda. For a summary of related issues, see {GNU}.
:software laser: /n./ An optical laser works by bouncing photons back and forth between two mirrors, one totally reflective and one partially reflective. If the lasing material (usually a crystal) has the right properties, photons scattering off the atoms in the crystal will excite cascades of more photons, all in lockstep. Eventually the beam will escape through the partially-reflective mirror. One kind of {sorcerer's apprentice mode} involving {bounce message}s can produce closely analogous results, with a {cascade} of messages escaping to flood nearby systems. By mid-1993 there had been at least two publicized incidents of this kind.
:software rot: /n./ Term used to describe the tendency of software that has not been used in a while to {lose}; such failure may be semi-humorously ascribed to {bit rot}. More commonly, `software rot' strikes when a program's assumptions become out of date. If the design was insufficiently {robust}, this may cause it to fail in mysterious ways.
For example, owing to endemic shortsightedness in the design of COBOL programs, most will succumb to software rot when their 2-digit year counters {wrap around} at the beginning of the year 2000. Actually, related lossages often afflict centenarians who have to deal with computer software designed by unimaginative clods. One such incident became the focus of a minor public flap in 1990, when a gentleman born in 1889 applied for a driver's license renewal in Raleigh, North Carolina. The new system refused to issue the card, probably because with 2-digit years the ages 101 and 1 cannot be distinguished.
Historical note: Software rot in an even funnier sense than the mythical one was a real problem on early research computers (e.g., the R1; see {grind crank}). If a program that depended on a peculiar instruction hadn't been run in quite a while, the user might discover that the opcodes no longer did the same things they once did. ("Hey, so-and-so needs an instruction to do such-and-such. We can {snarf} this opcode, right? No one uses it.")
Another classic example of this sprang from the time an MIT hacker found a simple way to double the speed of the unconditional jump instruction on a PDP-6, so he patched the hardware. Unfortunately, this broke some fragile timing software in a music-playing program, throwing its output out of tune. This was fixed by adding a defensive initialization routine to compare the speed of a timing loop with the real-time clock; in other words, it figured out how fast the PDP-6 was that day, and corrected appropriately.
Compare {bit rot}.
:softwarily: /soft-weir'i-lee/ /adv./ In a way pertaining to software. "The system is softwarily unreliable." The adjective **`softwary' is *not* used. See {hardwarily}.
:softy: /n./ [IBM] Hardware hackers' term for a software expert who is largely ignorant of the mysteries of hardware.
:some random X: /adj./ Used to indicate a member of class X, with the implication that Xs are interchangeable. "I think some random cracker tripped over the guest timeout last night." See also {J. Random}.
:sorcerer's apprentice mode: /n./ [from Goethe's "Der Zauberlehrling" via Paul Dukas's "L'apprenti sorcier" the film "Fantasia"] A bug in a protocol where, under some circumstances, the receipt of a message causes multiple messages to be sent, each of which, when received, triggers the same bug. Used esp. of such behavior caused by {bounce message} loops in {email} software. Compare {broadcast storm}, {network meltdown}, {software laser}, {ARMM}.
:SOS: /S-O-S/ /n. obs./ 1. An infamously {losing} text editor. Once, back in the 1960s, when a text editor was needed for the PDP-6, a hacker crufted together a {quick-and-dirty} `stopgap editor' to be used until a better one was written. Unfortunately, the old one was never really discarded when new ones (in particular, {TECO}) came along. SOS is a descendant (`Son of Stopgap') of that editor, and many PDP-10 users gained the dubious pleasure of its acquaintance. Since then other programs similar in style to SOS have been written, notably the early font editor BILOS /bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion `Bastard Issue, Loins of Stopgap' has been proposed). 2. /sos/ /vt./ To decrease; inverse of {AOS}, from the PDP-10 instruction set.
:source of all good bits: /n./ A person from whom (or a place from which) useful information may be obtained. If you need to know about a program, a {guru} might be the source of all good bits. The title is often applied to a particularly competent secretary.
:space-cadet keyboard: /n./ A now-legendary device used on MIT LISP machines, which inspired several still-current jargon terms and influenced the design of {EMACS}. It was equipped with no fewer than *seven* shift keys: four keys for {bucky bits} (`control', `meta', `hyper', and `super') and three like regular shift keys, called `shift', `top', and `front'. Many keys had three symbols on them: a letter and a symbol on the top, and a Greek letter on the front. For example, the `L' key had an `L' and a two-way arrow on the top, and the Greek letter lambda on the front. By pressing this key with the right hand while playing an appropriate `chord' with the left hand on the shift keys, you could get the following results:
L lowercase l
shift-L uppercase L
front-L lowercase lambda
front-shift-L uppercase lambda
top-L two-way arrow (front and shift are ignored)
And of course each of these might also be typed with any combination of the control, meta, hyper, and super keys. On this keyboard, you could type over 8000 different characters! This allowed the user to type very complicated mathematical text, and also to have thousands of single-character commands at his disposal. Many hackers were actually willing to memorize the command meanings of that many characters if it reduced typing time (this attitude obviously shaped the interface of EMACS). Other hackers, however, thought having that many bucky bits was overkill, and objected that such a keyboard can require three or four hands to operate. See {bucky bits}, {cokebottle}, {double bucky}, {meta bit}, {quadruple bucky}.
Note: early versions of this entry incorrectly identified the space-cadet keyboard with the `Knight keyboard'. Though both were designed by Tom Knight, the latter term was properly applied only to a keyboard used for ITS on the PDP-10 and modeled on the Stanford keyboard (as described under {bucky bits}). The true space-cadet keyboard evolved from the first Knight keyboard.
:spaceship operator: /n./ The glyph `<=>', so-called apparently because in the low-resolution constant-width font used on many terminals it vaguely resembles a flying saucer. {Perl} uses this to denote the signum-of-difference operation.
:SPACEWAR: /n./ A space-combat simulation game, inspired by E. E. "Doc" Smith's "Lensman" books, in which two spaceships duel around a central sun, shooting torpedoes at each other and jumping through hyperspace. This game was first implemented on the PDP-1 at MIT in 1960--61. SPACEWAR aficionados formed the core of the early hacker culture at MIT. Nine years later, a descendant of the game motivated Ken Thompson to build, in his spare time on a scavenged PDP-7, the operating system that became {{Unix}}. Less than nine years after that, SPACEWAR was commercialized as one of the first video games; descendants are still {feep}ing in video arcades everywhere.
:spaghetti code: /n./ Code with a complex and tangled control structure, esp. one using many GOTOs, exceptions, or other `unstructured' branching constructs. Pejorative. The synonym `kangaroo code' has been reported, doubtless because such code has so many jumps in it.
:spaghetti inheritance: /n./ [encountered among users of object-oriented languages that use inheritance, such as Smalltalk] A convoluted class-subclass graph, often resulting from carelessly deriving subclasses from other classes just for the sake of reusing their code. Coined in a (successful) attempt to discourage such practice, through guilt-by-association with {spaghetti code}.
:spam: /vt.,vi.,n./ [from "Monty Python's Flying Circus"] 1. To crash a program by overrunning a fixed-size buffer with excessively large input data. See also {buffer overflow}, {overrun screw}, {smash the stack}. 2. To cause a newsgroup to be flooded with irrelevant or inappropriate messages. You can spam a newsgroup with as little as one well- (or ill-) planned message (e.g. asking "What do you think of abortion?" on soc.women). This is often done with {cross-post}ing (e.g. any message which is crossposted to alt.rush-limbaugh and alt.politics.homosexuality will almost inevitably spam both groups). 3. To send many identical or nearly-identical messages separately to a large number of Usenet newsgroups. This is one sure way to infuriate nearly everyone on the Net.
The second and third definitions have become much more prevalent as the Internet has opened up to non-techies, and to many Usenetters sense 3 is now (1995) primary. In this sense the term has apparantly begun to go mainstream, though without its original sense or folkloric freight -- there is apparently a widespread belief among {luser}s that "spamming" is what happens when you dump cans of Spam into a revolving fan.
:special-case: /vt./ To write unique code to handle input to or situations arising in a program that are somehow distinguished from normal processing. This would be used for processing of mode switches or interrupt characters in an interactive interface (as opposed, say, to text entry or normal commands), or for processing of {hidden flag}s in the input of a batch program or {filter}.
:speedometer: /n./ A pattern of lights displayed on a linear set of LEDs (today) or nixie tubes (yesterday, on ancient mainframes). The pattern is shifted left every N times the operating system goes through its {main loop}. A swiftly moving pattern indicates that the system is mostly idle; the speedometer slows down as the system becomes overloaded. The speedometer on Sun Microsystems hardware bounces back and forth like the eyes on one of the Cylons from the wretched "Battlestar Galactica" TV series.
Historical note: One computer, the GE 600 (later Honeywell 6000) actually had an *analog* speedometer on the front panel, calibrated in instructions executed per second.
:spell: /n./ Syn. {incantation}.
:spelling flame: /n./ [Usenet] A posting ostentatiously correcting a previous article's spelling as a way of casting scorn on the point the article was trying to make, instead of actually responding to that point (compare {dictionary flame}). Of course, people who are more than usually slovenly spellers are prone to think *any* correction is a spelling flame. It's an amusing comment on human nature that spelling flames themselves often contain spelling errors.
:spiffy: /spi'fee/ /adj./ 1. Said of programs having a pretty, clever, or exceptionally well-designed interface. "Have you seen the spiffy {X} version of {empire} yet?" 2. Said sarcastically of a program that is perceived to have little more than a flashy interface going for it. Which meaning should be drawn depends delicately on tone of voice and context. This word was common mainstream slang during the 1940s, in a sense close to 1.
:spike: /v./ To defeat a selection mechanism by introducing a (sometimes temporary) device that forces a specific result. The word is used in several industries; telephone engineers refer to spiking a relay by inserting a pin to hold the relay in either the closed or open state, and railroaders refer to spiking a track switch so that it cannot be moved. In programming environments it normally refers to a temporary change, usually for testing purposes (as opposed to a permanent change, which would be called {hardwired}).
:spin: /vi./ Equivalent to {buzz}. More common among C and Unix programmers.
:spl: /S-P-L/ [abbrev, from Set Priority Level] The way traditional Unix kernels implement mutual exclusion by running code at high interrupt levels. Used in jargon to describe the act of tuning in or tuning out ordinary communication. Classically, spl levels run from 1 to 7; "Fred's at spl 6 today" would mean that he is very hard to interrupt. "Wait till I finish this; I'll spl down then." See also {interrupts locked out}.
:splash screen: /n./ [Mac users] Syn. {banner}, sense 3.
:splat: /n./ 1. Name used in many places (DEC, IBM, and others) for the asterisk (`*') character (ASCII 0101010). This may derive from the `squashed-bug' appearance of the asterisk on many early line printers. 2. [MIT] Name used by some people for the `#' character (ASCII 0100011). 3. [Rochester Institute of Technology] The {feature key} on a Mac (same as {alt}, sense 2). 4. obs. Name used by some people for the Stanford/ITS extended ASCII circle-x character. This character is also called `blobby' and `frob', among other names; it is sometimes used by mathematicians as a notation for `tensor product'. 5. obs. Name for the semi-mythical Stanford extended ASCII circle-plus character. See also {{ASCII}}.
:spod: /n./ [UK] A lower form of life found on {talker system}s and {MUD}s. The spod has few friends in {RL} and uses talkers instead, finding communication easier and preferable over the net. He has all the negative traits of the {computer geek} without having any interest in computers per se. Lacking any knowledge of or interest in how networks work, and considering his access a God-given right, he is a major irritant to sysadmins, clogging up lines in order to reach new MUDs, following passed-on instructions on how to sneak his way onto Internet ("Wow! It's in America!") and complaining when he is not allowed to use busy routes. A true spod will start any conversation with "Are you male or female?" (and follow it up with "Got any good numbers/IDs/passwords?") and will not talk to someone physically present in the same terminal room until they log onto the same machine that he is using and enter talk mode. Compare {newbie}, {tourist}, {weenie}, {twink}, {terminal junkie}, {warez d00dz}.
:spoiler: /n./ [Usenet] 1. A remark which reveals important plot elements from books or movies, thus denying the reader (of the article) the proper suspense when reading the book or watching the movie. 2. Any remark which telegraphs the solution of a problem or puzzle, thus denying the reader the pleasure of working out the correct answer (see also {interesting}). Either sense readily forms compounds like `total spoiler', `quasi-spoiler' and even `pseudo-spoiler'.
By convention, articles which are spoilers in either sense should contain the word `spoiler' in the Subject: line, or guarantee via various tricks that the answer appears only after several screens-full of warning, or conceal the sensitive information via {rot13}, or some combination of these techniques.
:sponge: /n./ [Unix] A special case of a {filter} that reads its entire input before writing any output; the canonical example is a sort utility. Unlike most filters, a sponge can conveniently overwrite the input file with the output data stream. If a file system has versioning (as ITS did and VMS does now) the sponge/filter distinction loses its usefulness, because directing filter output would just write a new version. See also {slurp}.
:spool: /vi./ [from early IBM `Simultaneous Peripheral Operation On-Line', but this acronym is widely thought to have been contrived for effect] To send files to some device or program (a `spooler') that queues them up and does something useful with them later. Without qualification, the spooler is the `print spooler' controlling output of jobs to a printer; but the term has been used in connection with other peripherals (especially plotters and graphics devices) and occasionally even for input devices. See also {demon}.
:spool file: /n./ Any file to which data is {spool}ed to await the next stage of processing. Especially used in circumstances where spooling the data copes with a mismatch between speeds in two devices or pieces of software. For example, when you send mail under Unix, it's typically copied to a spool file to await a transport {demon}'s attentions. This is borderline techspeak.
:square tape: /n./ Mainframe magnetic tape cartridges for use with IBM 3480 or compatible tape drives; or QIC tapes used on workstations and micros. The term comes from the square (actually rectangular) shape of the cartridges; contrast {round tape}.
:squirrelcide: /n./ [common on Usenet's comp.risks newsgroup.] (alt. `squirrelicide') What all too frequently happens when a squirrel decides to exercise its species's unfortunate penchant for shorting out power lines with their little furry bodies. Result: one dead squirrel, one down computer installation. In this situation, the computer system is said to have been squirrelcided.
:stack: /n./ The set of things a person has to do in the future. One speaks of the next project to be attacked as having risen to the top of the stack. "I'm afraid I've got real work to do, so this'll have to be pushed way down on my stack." "I haven't done it yet because every time I pop my stack something new gets pushed." If you are interrupted several times in the middle of a conversation, "My stack overflowed" means "I forget what we were talking about." The implication is that more items were pushed onto the stack than could be remembered, so the least recent items were lost. The usual physical example of a stack is to be found in a cafeteria: a pile of plates or trays sitting on a spring in a well, so that when you put one on the top they all sink down, and when you take one off the top the rest spring up a bit. See also {push} and {pop}.
At MIT, {pdl} used to be a more common synonym for {stack} in all these contexts, and this may still be true. Everywhere else {stack} seems to be the preferred term. {Knuth} ("The Art of Computer Programming", second edition, vol. 1, p. 236) says:
Many people who realized the importance of stacks and queues independently have given other names to these structures: stacks have been called push-down lists, reversion storages, cellars, nesting stores, piles, last-in-first-out ("LIFO") lists, and even yo-yo lists!
:stack puke: /n./ Some processor architectures are said to `puke their guts onto the stack' to save their internal state during exception processing. The Motorola 68020, for example, regurgitates up to 92 bytes on a bus fault. On a pipelined machine, this can take a while.
:stale pointer bug: /n./ Synonym for {aliasing bug} used esp. among microcomputer hackers.
:star out: /v./ [University of York, England] To replace a user's encrypted password in /etc/passwd with a single asterisk. Under Unix this is not a legal encryption of any password; hence the user is not permitted to log in. In general, accounts like adm, news, and daemon are permanently "starred out"; occasionally a real user might have the this inflicted upon him/her as a punishment, e.g. "Graham was starred out for playing Omega in working hours". Also occasionally known as The Order Of The Gold Star in this context. "Don't do that, or you'll be awarded the Order of the Gold Star..." Compare {disusered}.
:state: /n./ 1. Condition, situation. "What's the state of your latest hack?" "It's winning away." "The system tried to read and write the disk simultaneously and got into a totally {wedged} state." The standard question "What's your state?" means "What are you doing?" or "What are you about to do?" Typical answers are "about to gronk out", or "hungry". Another standard question is "What's the state of the world?", meaning "What's new?" or "What's going on?". The more terse and humorous way of asking these questions would be "State-p?". Another way of phrasing the first question under sense 1 would be "state-p latest hack?". 2. Information being maintained in non-permanent memory (electronic or human).
:stealth manager: /n./ [Corporate DP] A manager that appears out of nowhere, promises undeliverable software to unknown end users, and vanishes before the programming staff realizes what has happened. See {smoke and mirrors}.
:steam-powered: /adj./ Old-fashioned or underpowered; archaic. This term does not have a strong negative loading and may even be used semi-affectionately for something that clanks and wheezes a lot but hangs in there doing the job.
:stiffy: /n./ [University of Lowell, Massachusetts.] 3.5-inch {microfloppies}, so called because their jackets are more rigid than those of the 5.25-inch and the (now totally obsolete) 8-inch floppy. Elsewhere this might be called a `firmy'.
:stir-fried random: /n./ (alt. `stir-fried mumble') Term used for the best dish of many of those hackers who can cook. Consists of random fresh veggies and meat wokked with random spices. Tasty and economical. See {random}, {great-wall}, {ravs}, {{laser chicken}}, {{oriental food}}; see also {mumble}.
:stomp on: /vt./ To inadvertently overwrite something important, usually automatically. "All the work I did this weekend got stomped on last night by the nightly server script." Compare {scribble}, {mangle}, {trash}, {scrog}, {roach}.
:Stone Age: /n.,adj./ 1. In computer folklore, an ill-defined period from ENIAC (ca. 1943) to the mid-1950s; the great age of electromechanical {dinosaur}s. Sometimes used for the entire period up to 1960--61 (see {Iron Age}); however, it is funnier and more descriptive to characterize the latter period in terms of a `Bronze Age' era of transistor-logic, pre-ferrite-{core} machines with drum or CRT mass storage (as opposed to just mercury delay lines and/or relays). See also {Iron Age}. 2. More generally, a pejorative for any crufty, ancient piece of hardware or software technology. Note that this is used even by people who were there for the {Stone Age} (sense 1).
:stone knives and bearskins: /n./ [from the Star Trek Classic episode "The City on the Edge of Forever"] A term traditionally used to describe (and deprecate) computing environments that are grotesquely primitive in light of what is known about good ways to design things. As in "Don't get too used to the facilities here. Once you leave SAIL it's stone knives and bearskins as far as the eye can see". Compare {steam-powered}.
:stoppage: /sto'p*j/ /n./ Extreme {lossage} that renders something (usually something vital) completely unusable. "The recent system stoppage was caused by a {fried} transformer."
:store: /n./ [prob. from techspeak `main store'] In some varieties of Commonwealth hackish, the preferred synonym for {core}. Thus, `bringing a program into store' means not that one is returning shrink-wrapped software but that a program is being {swap}ped in.
:strided: /stri:'d*d/ /adj./ [scientific computing] Said of a sequence of memory reads and writes to addresses, each of which is separated from the last by a constant interval called the `stride length'. These can be a worst-case access pattern for the standard memory-caching schemes when the stride length is a multiple of the cache line size. Strided references are often generated by loops through an array, and (if your data is large enough that access-time is significant) it can be worthwhile to tune for better locality by inverting double loops or by partially unrolling the outer loop of a loop nest. This usage is borderline techspeak; the related term `memory stride' is definitely techspeak.
:stroke: /n./ Common name for the slant (`/', ASCII 0101111) character. See {ASCII} for other synonyms.
:strudel: /n./ Common (spoken) name for the at-sign (`@', ASCII 1000000) character. See {ASCII} for other synonyms.
:stubroutine: /stuhb'roo-teen/ /n./ [contraction of `stub subroutine'] Tiny, often vacuous placeholder for a subroutine that is to be written or fleshed out later.
:studly: /adj./ Impressive; powerful. Said of code and designs which exhibit both complexity and a virtuoso flair. Has connotations similar to {hairy} but is more positive in tone. Often in the emphatic `most studly' or as noun-form `studliness'. "Smail 3.0's configuration parser is most studly."
:studlycaps: /stuhd'lee-kaps/ /n./ A hackish form of silliness similar to {BiCapitalization} for trademarks, but applied randomly and to arbitrary text rather than to trademarks. ThE oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.
:stunning: /adj./ Mind-bogglingly stupid. Usually used in sarcasm. "You want to code *what* in ADA? That's a ... stunning idea!"
:stupid-sort: /n./ Syn. {bogo-sort}.
:Stupids: /n./ Term used by {samurai} for the {suit}s who employ them; succinctly expresses an attitude at least as common, though usually better disguised, among other subcultures of hackers. There may be intended reference here to an SF story originally published in 1952 but much anthologized since, Mark Clifton's "Star, Bright". In it, a super-genius child classifies humans into a very few `Brights' like herself, a huge majority of `Stupids', and a minority of `Tweens', the merely ordinary geniuses.
:Sturgeon's Law: /prov./ "Ninety percent of everything is crap". Derived from a quote by science fiction author Theodore Sturgeon, who once said, "Sure, 90% of science fiction is crud. That's because 90% of everything is crud." Oddly, when Sturgeon's Law is cited, the final word is almost invariably changed to `crap'. Compare {Hanlon's Razor}, {Ninety-Ninety Rule}. Though this maxim originated in SF fandom, most hackers recognize it and are all too aware of its truth.
:sucking mud: [Applied Data Research] /adj./ (also `pumping mud') Crashed or {wedged}. Usually said of a machine that provides some service to a network, such as a file server. This Dallas regionalism derives from the East Texas oilfield lament, "Shut 'er down, Ma, she's a-suckin' mud". Often used as a query. "We are going to reconfigure the network, are you ready to suck mud?"
:sufficiently small: /adj./ Syn. {suitably small}.
:suit: /n./ 1. Ugly and uncomfortable `business clothing' often worn by non-hackers. Invariably worn with a `tie', a strangulation device that partially cuts off the blood supply to the brain. It is thought that this explains much about the behavior of suit-wearers. Compare {droid}. 2. A person who habitually wears suits, as distinct from a techie or hacker. See {loser}, {burble}, {management}, {Stupids}, {SNAFU principle}, and {brain-damaged}. English, by the way, is relatively kind; our Moscow correspondent informs us that the corresponding idiom in Russian hacker jargon is `sovok', lit. a tool for grabbing garbage.
:suitable win: /n./ See {win}.
:suitably small: /adj./ [perverted from mathematical jargon] An expression used ironically to characterize unquantifiable behavior that differs from expected or required behavior. For example, suppose a newly created program came up with a correct full-screen display, and one publicly exclaimed: "It works!" Then, if the program dumped core on the first mouse click, one might add: "Well, for suitably small values of `works'." Compare the characterization of pi under {{random numbers}}.
:sun lounge: /n./ [UK] The room where all the Sun workstations live. The humor in this term comes from the fact that it's also in mainstream use to describe a solarium, and all those Sun workstations clustered together give off an amazing amount of heat.
:sun-stools: /n./ Unflattering hackerism for SunTools, a pre-X windowing environment notorious in its day for size, slowness, and misfeatures. {X}, however, is larger and slower; see {second-system effect}.
:sunspots: /n./ 1. Notional cause of an odd error. "Why did the program suddenly turn the screen blue?" "Sunspots, I guess." 2. Also the cause of {bit rot} -- from the myth that sunspots will increase {cosmic rays}, which can flip single bits in memory. See also {phase of the moon}.
:super source quench: /n./ A special packet designed to shut up an Internet host. The Internet Protocol (IP) has a control message called Source Quench that asks a host to transmit more slowly on a particular connection to avoid congestion. It also has a Redirect control message intended to instruct a host to send certain packets to a different local router. A "super source quench" is actually a redirect control packet, forged to look like it came from a local router, that instructs a host to send all packets to its own local loopback address. This will effectively tie many Internet hosts up in knots. Compare {Godzillagram}, {breath-of-life packet}.
:superloser: /n./ [Unix] A superuser with no clue -- someone with root privileges on a Unix system and no idea what he/she is doing, the moral equivalent of a three-year-old with an unsafetied Uzi. Anyone who thinks this is an uncommon situation reckons without the territorial urges of {management}.
:superprogrammer: /n./ A prolific programmer; one who can code exceedingly well and quickly. Not all hackers are superprogrammers, but many are. (Productivity can vary from one programmer to another by three orders of magnitude. For example, one programmer might be able to write an average of 3 lines of working code in one day, while another, with the proper tools, might be able to write 3,000. This range is astonishing; it is matched in very few other areas of human endeavor.) The term `superprogrammer' is more commonly used within such places as IBM than in the hacker community. It tends to stress naive measures of productivity and to underweight creativity, ingenuity, and getting the job *done* -- and to sidestep the question of whether the 3,000 lines of code do more or less useful work than three lines that do the {Right Thing}. Hackers tend to prefer the terms {hacker} and {wizard}.
:superuser: /n./ [Unix] Syn. {root}, {avatar}. This usage has spread to non-Unix environments; the superuser is any account with all {wheel} bits on. A more specific term than {wheel}.
:support: /n./ After-sale handholding; something many software vendors promise but few deliver. To hackers, most support people are useless -- because by the time a hacker calls support he or she will usually know the software and the relevant manuals better than the support people (sadly, this is *not* a joke or exaggeration). A hacker's idea of `support' is a t^ete-`a-t^ete with the software's designer.
:surf: /v./ [from the `surf' idiom for rapidly flipping TV channels] To traverse the Internet in search of interesting stuff, used esp. if one is doing so with a World Wide Web browser. It is also common to speak of `surfing in' to a particular resource.
:Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank Zappa's `Suzy Creamcheese'] /n./ A coder straight out of training school who knows everything except the value of comments in plain English. Also (fashionable among personkind wishing to avoid accusations of sexism) `Sammy Cobol' or (in some non-IBM circles) `Cobol Charlie'. 2. [proposed] Meta-name for any {code grinder}, analogous to {J. Random Hacker}.
:swab: /swob/ [From the mnemonic for the PDP-11 `SWAp Byte' instruction, as immortalized in the `dd(1)' option `conv=swab' (see {dd})] 1. /vt./ To solve the {NUXI problem} by swapping bytes in a file. 2. /n./ The program in V7 Unix used to perform this action, or anything functionally equivalent to it. See also {big-endian}, {little-endian}, {middle-endian}, {bytesexual}.
:swap: /vt./ 1. [techspeak] To move information from a fast-access memory to a slow-access memory (`swap out'), or vice versa (`swap in'). Often refers specifically to the use of disks as `virtual memory'. As pieces of data or program are needed, they are swapped into {core} for processing; when they are no longer needed they may be swapped out again. 2. The jargon use of these terms analogizes people's short-term memories with core. Cramming for an exam might be spoken of as swapping in. If you temporarily forget someone's name, but then remember it, your excuse is that it was swapped out. To `keep something swapped in' means to keep it fresh in your memory: "I reread the TECO manual every few months to keep it swapped in." If someone interrupts you just as you got a good idea, you might say "Wait a moment while I swap this out", implying that a piece of paper is your extra-somatic memory and that if you don't swap the idea out by writing it down it will get overwritten and lost as you talk. Compare {page in}, {page out}.
:swap space: /n./ Storage space, especially temporary storage space used during a move or reconfiguration. "I'm just using that corner of the machine room for swap space."
:swapped in: /n./ See {swap}. See also {page in}.
:swapped out: /n./ See {swap}. See also {page out}.
:swizzle: /v./ To convert external names, array indices, or references within a data structure into address pointers when the data structure is brought into main memory from external storage (also called `pointer swizzling'); this may be done for speed in chasing references or to simplify code (e.g., by turning lots of name lookups into pointer dereferences). The converse operation is sometimes termed `unswizzling'. See also {snap}.
:sync: /sink/ n., /vi./ (var. `synch') 1. To synchronize, to bring into synchronization. 2. [techspeak] To force all pending I/O to the disk; see {flush}, sense 2. 3. More generally, to force a number of competing processes or agents to a state that would be `safe' if the system were to crash; thus, to checkpoint (in the database-theory sense).
:syntactic salt: /n./ The opposite of {syntactic sugar}, a feature designed to make it harder to write bad code. Specifically, syntactic salt is a hoop the programmer must jump through just to prove that he knows what's going on, rather than to express a program action. Some programmers consider required type declarations to be syntactic salt. A requirement to write `end if', `end while', `end do', etc. to terminate the last block controlled by a control construct (as opposed to just `end') would definitely be syntactic salt. Syntactic salt is like the real thing in that it tends to raise hackers' blood pressures in an unhealthy way. Compare {candygrammar}.
:syntactic sugar: /n./ [coined by Peter Landin] Features added to a language or other formalism to make it `sweeter' for humans, features which do not affect the expressiveness of the formalism (compare {chrome}). Used esp. when there is an obvious and trivial translation of the `sugar' feature into other constructs already present in the notation. C's `a[i]' notation is syntactic sugar for `*(a + i)'. "Syntactic sugar causes cancer of the semicolon." -- Alan Perlis.
The variants `syntactic saccharin' and `syntactic syrup' are also recorded. These denote something even more gratuitous, in that syntactic sugar serves a purpose (making something more acceptable to humans), but syntactic saccharin or syrup serve no purpose at all. Compare {candygrammar}, {syntactic salt}.
:sys-frog: /sis'frog/ /n./ [the PLATO system] Playful variant of `sysprog', which is in turn short for `systems programmer'.
:sysadmin: /sis'ad-min/ /n./ Common contraction of `system admin'; see {admin}.
:sysape: /sys'ayp/ /n./ A rather derogatory term for a computer operator; a play on {sysop} common at sites that use the banana hierarchy of problem complexity (see {one-banana problem}).
:sysop: /sis'op/ /n./ [esp. in the BBS world] The operator (and usually the owner) of a bulletin-board system. A common neophyte mistake on {FidoNet} is to address a message to `sysop' in an international {echo}, thus sending it to hundreds of sysops around the world.
:system: /n./ 1. The supervisor program or OS on a computer. 2. The entire computer system, including input/output devices, the supervisor program or OS, and possibly other software. 3. Any large-scale program. 4. Any method or algorithm. 5. `System hacker': one who hacks the system (in senses 1 and 2 only; for sense 3 one mentions the particular program: e.g., `LISP hacker')
:systems jock: /n./ See {jock}, sense 2.
:system mangler: /n./ Humorous synonym for `system manager', poss. from the fact that one major IBM OS had a {root} account called SYSMANGR. Refers specifically to a systems programmer in charge of administration, software maintenance, and updates at some site. Unlike {admin}, this term emphasizes the technical end of the skills involved.
:SysVile: /sis-vi:l'/ /n./ See {Missed'em-five}.
= T = =====
:T: /T/ 1. [from LISP terminology for `true'] Yes. Used in reply to a question (particularly one asked using {The `-P' convention}). In LISP, the constant T means `true', among other things. Some Lisp hackers use `T' and `NIL' instead of `Yes' and `No' almost reflexively. This sometimes causes misunderstandings. When a waiter or flight attendant asks whether a hacker wants coffee, he may absently respond `T', meaning that he wants coffee; but of course he will be brought a cup of tea instead. Fortunately, most hackers (particularly those who frequent Chinese restaurants) like tea at least as well as coffee -- so it is not that big a problem. 2. See {time T} (also {since time T equals minus infinity}). 3. [techspeak] In transaction-processing circles, an abbreviation for the noun `transaction'. 4. [Purdue] Alternate spelling of {tee}. 5. A dialect of {LISP} developed at Yale. (There is an intended allusion to NIL, "New Implementation of Lisp", another dialect of Lisp developed for the {VAX})
:tail recursion: /n./ If you aren't sick of it already, see {tail recursion}.
:talk mode: /n./ A feature supported by Unix, ITS, and some other OSes that allows two or more logged-in users to set up a real-time on-line conversation. It combines the immediacy of talking with all the precision (and verbosity) that written language entails. It is difficult to communicate inflection, though conventions have arisen for some of these (see the section on writing style in the Prependices for details).
Talk mode has a special set of jargon words, used to save typing, which are not used orally. Some of these are identical to (and probably derived from) Morse-code jargon used by ham-radio amateurs since the 1920s.
AFAIK as far as I know BCNU be seeing you BTW by the way BYE? are you ready to unlink? (this is the standard way to end a talk-mode conversation; the other person types `BYE' to confirm, or else continues the conversation) CUL see you later ENQ? are you busy? (expects `ACK' or `NAK' in return) FOO? are you there? (often used on unexpected links, meaning also "Sorry if I butted in ..." (linker) or "What's up?" (linkee)) FWIW for what it's worth FYI for your information FYA for your amusement GA go ahead (used when two people have tried to type simultaneously; this cedes the right to type to the other) GRMBL grumble (expresses disquiet or disagreement) HELLOP hello? (an instance of the `-P' convention) IIRC if I recall correctly JAM just a minute (equivalent to `SEC....') MIN same as `JAM' NIL no (see {NIL}) O over to you OO over and out / another form of "over to you" (from x/y as "x over y") \ lambda (used in discussing LISPy things) OBTW oh, by the way OTOH on the other hand R U THERE? are you there? SEC wait a second (sometimes written `SEC...') T yes (see the main entry for {T}) TNX thanks TNX 1.0E6 thanks a million (humorous) TNXE6 another form of "thanks a million" WRT with regard to, or with respect to. WTF the universal interrogative particle; WTF knows what it means? WTH what the hell? <double newline> When the typing party has finished, he/she types two newlines to signal that he/she is done; this leaves a blank line between `speeches' in the conversation, making it easier to reread the preceding text. <name>: When three or more terminals are linked, it is conventional for each typist to {prepend} his/her login name or handle and a colon (or a hyphen) to each line to indicate who is typing (some conferencing facilities do this automatically). The login name is often shortened to a unique prefix (possibly a single letter) during a very long conversation. /\/\/\ A giggle or chuckle. On a MUD, this usually means `earthquake fault'.
Most of the above sub-jargon is used at both Stanford and MIT. Several of these expressions are also common in {email}, esp. FYI, FYA, BTW, BCNU, WTF, and CUL. A few other abbreviations have been reported from commercial networks, such as GEnie and CompuServe, where on-line `live' chat including more than two people is common and usually involves a more `social' context, notably the following:
<g> grin <gr&d> grinning, running, and ducking BBL be back later BRB be right back HHOJ ha ha only joking HHOK ha ha only kidding HHOS {ha ha only serious} IMHO in my humble opinion (see {IMHO}) LOL laughing out loud NHOH Never Heard of Him/Her (often used in {initgame}) ROTF rolling on the floor ROTFL rolling on the floor laughing AFK away from keyboard b4 before CU l8tr see you later MORF male or female? TTFN ta-ta for now TTYL talk to you later OIC oh, I see rehi hello again
Most of these are not used at universities or in the Unix world, though ROTF and TTFN have gained some currency there and IMHO is common; conversely, most of the people who know these are unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.
The {MUD} community uses a mixture of Usenet/Internet emoticons, a few of the more natural of the old-style talk-mode abbrevs, and some of the `social' list above; specifically, MUD respondents report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH. The use of `rehi' is also common; in fact, mudders are fond of re- compounds and will frequently `rehug' or `rebonk' (see {bonk/oif}) people. The word `re' by itself is taken as `regreet'. In general, though, MUDders express a preference for typing things out in full rather than using abbreviations; this may be due to the relative youth of the MUD cultures, which tend to include many touch typists and to assume high-speed links. The following uses specific to MUDs are reported:
CU l8er see you later (mutant of `CU l8tr') FOAD fuck off and die (use of this is generally OTT) OTT over the top (excessive, uncalled for) ppl abbrev for "people" THX thanks (mutant of `TNX'; clearly this comes in batches of 1138 (the Lucasian K)). UOK? are you OK?
Some {B1FF}isms (notably the variant spelling `d00d') appear to be passing into wider use among some subgroups of MUDders.
One final note on talk mode style: neophytes, when in talk mode, often seem to think they must produce letter-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.
See also {hakspek}, {emoticon}.
:talker system: /n./ British hackerism for software that enables real-time chat or {talk mode}.
:tall card: /n./ A PC/AT-size expansion card (these can be larger than IBM PC or XT cards because the AT case is bigger). See also {short card}. When IBM introduced the PS/2 model 30 (its last gasp at supporting the ISA) they made the case lower and many industry-standard tall cards wouldn't fit; this was felt to be a reincarnation of the {connector conspiracy}, done with less style.
:tanked: /adj./ Same as {down}, used primarily by Unix hackers. See also {hosed}. Popularized as a synonym for `drunk' by Steve Dallas in the late lamented "Bloom County" comic strip.
:TANSTAAFL: /tan'stah-fl/ [acronym, from Robert Heinlein's classic "The Moon is a Harsh Mistress".] "There Ain't No Such Thing As A Free Lunch", often invoked when someone is balking at the prospect of using an unpleasantly {heavyweight} technique, or at the poor quality of some piece of free software, or at the {signal-to-noise ratio} of unmoderated Usenet newsgroups. "What? Don't tell me I have to implement a database back end to get my address book program to work!" "Well, TANSTAAFL you know." This phrase owes some of its popularity to the high concentration of science-fiction fans and political libertarians in hackerdom (see {A Portrait of J. Random Hacker} in Appendix B).
:tar and feather: /vi./ [from Unix `tar(1)'] To create a transportable archive from a group of files by first sticking them together with `tar(1)' (the Tape ARchiver) and then compressing the result (see {compress}). The latter action is dubbed `feathering' partly for euphony and (if only for contrived effect) by analogy to what you do with an airplane propeller to decrease wind resistance, or with an oar to reduce water resistance; smaller files, after all, slip through comm links more easily.
:taste: [primarily MIT] /n./ 1. The quality in a program that tends to be inversely proportional to the number of features, hacks, and kluges programmed into it. Also `tasty', `tasteful', `tastefulness'. "This feature comes in N tasty flavors." Although `tasty' and `flavorful' are essentially synonyms, `taste' and {flavor} are not. Taste refers to sound judgment on the part of the creator; a program or feature can *exhibit* taste but cannot *have* taste. On the other hand, a feature can have {flavor}. Also, {flavor} has the additional meaning of `kind' or `variety' not shared by `taste'. The marked sense of {flavor} is more popular than `taste', though both are widely used. See also {elegant}. 2. Alt. sp. of {tayste}.
:tayste: /tayst/ /n./ Two bits; also as {taste}. Syn. {crumb}, {quarter}. See {nybble}.
:TCB: /T-C-B/ /n./ [IBM] 1. Trouble Came Back. An intermittent or difficult-to-reproduce problem that has failed to respond to neglect or {shotgun debugging}. Compare {heisenbug}. Not to be confused with: 2. Trusted Computing Base, an `official' jargon term from the {Orange Book}.
:TCP/IP: /T'C-P I'P/ /n./ 1. [Transmission Control Protocol/Internet Protocol] The wide-area-networking protocol that makes the Internet work, and the only one most hackers can speak the name of without laughing or retching. Unlike such allegedly `standard' competitors such as X.25, DECnet, and the ISO 7-layer stack, TCP/IP evolved primarily by actually being *used*, rather than being handed down from on high by a vendor or a heavily-politicized standards committee. Consequently, it (a) works, (b) actually promotes cheap cross-platform connectivity, and (c) annoys the hell out of corporate and governmental empire-builders everywhere. Hackers value all three of these properties. See {creationism}. 2. [Amateur Packet Radio] Sometimes expanded as "The Crap Phil Is Pushing". The reference is to Phil Karn, KA9Q, and the context is an ongoing technical/political war between the majority of sites still running AX.25 and a growing minority of TCP/IP relays.
:tea, ISO standard cup of: /n./ [South Africa] A cup of tea with milk and one teaspoon of sugar, where the milk is poured into the cup before the tea. Variations are ISO 0, with no sugar; ISO 2, with two spoons of sugar; and so on.
Like many ISO standards, this one has a faintly alien ring in North America, where hackers generally shun the decadent British practice of adulterating perfectly good tea with dairy products and prefer instead to add a wedge of lemon, if anything. If one were feeling extremely silly, one might hypothesize an analogous `ANSI standard cup of tea' and wind up with a political situation distressingly similar to several that arise in much more serious technical contexts. Milk and lemon don't mix very well.
:TechRef: /tek'ref/ /n./ [MS-DOS] The original "IBM PC Technical Reference Manual", including the BIOS listing and complete schematics for the PC. The only PC documentation in the original-issue package that was considered serious by real hackers.
:TECO: /tee'koh/ /n.,v. obs./ 1. [originally an acronym for `[paper] Tape Editor and COrrector'; later, `Text Editor and COrrector'] /n./ A text editor developed at MIT and modified by just about everybody. With all the dialects included, TECO may have been the most prolific editor in use before {EMACS}, to which it was directly ancestral. Noted for its powerful programming-language-like features and its unspeakably hairy syntax. It is literally the case that every string of characters is a valid TECO program (though probably not a useful one); one common game used to be mentally working out what the TECO commands corresponding to human names did. 2. /vt./ Originally, to edit using the TECO editor in one of its infinite variations (see below). 3. vt.,obs. To edit even when TECO is *not* the editor being used! This usage is rare and now primarily historical.
As an example of TECO's obscurity, here is a TECO program that takes a list of names such as:
Loser, J. Random Quux, The Great Dick, Moby
sorts them alphabetically according to surname, and then puts the surname last, removing the comma, to produce the following:
Moby Dick J. Random Loser The Great Quux
The program is
[1 J^P$L$$ J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$
(where ^B means `Control-B' (ASCII 0000010) and $ is actually an {alt} or escape (ASCII 0011011) character).
In fact, this very program was used to produce the second, sorted list from the first list. The first hack at it had a {bug}: GLS (the author) had accidentally omitted the `@' in front of `F^B', which as anyone can see is clearly the {Wrong Thing}. It worked fine the second time. There is no space to describe all the features of TECO, but it may be of interest that `^P' means `sort' and `J<.-Z; ... L>' is an idiomatic series of commands for `do once for every line'.
In mid-1991, TECO is pretty much one with the dust of history, having been replaced in the affections of hackerdom by {EMACS}. Descendants of an early (and somewhat lobotomized) version adopted by DEC can still be found lurking on VMS and a couple of crufty PDP-11 operating systems, however, and ports of the more advanced MIT versions remain the focus of some antiquarian interest. See also {retrocomputing}, {write-only language}.
:tee: /n.,vt./ [Purdue] A carbon copy of an electronic transmission. "Oh, you're sending him the {bits} to that? Slap on a tee for me." From the Unix command `tee(1)', itself named after a pipe fitting (see {plumbing}). Can also mean `save one for me', as in "Tee a slice for me!" Also spelled `T'.
:teledildonics: /tel`*-dil-do'-niks/ /n./ Sex in a computer simulated virtual reality, esp. computer-mediated sexual interaction between the {VR} presences of two humans. This practice is not yet possible except in the rather limited form of erotic conversation on {MUD}s and the like. The term, however, is widely recognized in the VR community as a {ha ha only serious} projection of things to come. "When we can sustain a multi-sensory surround good enough for teledildonics, *then* we'll know we're getting somewhere." See also {hot chat}.
:Telerat: /tel'*-rat/ /n. obs./ Unflattering hackerism for `Teleray', a now-extinct line of extremely losing terminals. Compare {AIDX}, {Macintrash} {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {HP-SUX}.
:TELNET: /tel'net/ /vt./ (also commonly lowercased as `telnet') To communicate with another Internet host using the TELNET ({RFC} 854) protocol (usually using a program of the same name). TOPS-10 people used the word IMPCOM, since that was the program name for them. Sometimes abbreviated to TN /T-N/. "I usually TN over to SAIL just to read the AP News."
:ten-finger interface: /n./ The interface between two networks that cannot be directly connected for security reasons; refers to the practice of placing two terminals side by side and having an operator read from one and type into the other.
:tense: /adj./ Of programs, very clever and efficient. A tense piece of code often got that way because it was highly {bum}med, but sometimes it was just based on a great idea. A comment in a clever routine by Mike Kazar, once a grad-student hacker at CMU: "This routine is so tense it will bring tears to your eyes." A tense programmer is one who produces tense code.
:tentacle: /n./ A covert {pseudo}, sense 1. An artificial identity created in cyberspace for nefarious and deceptive purposes. The implication is that a single person may have multiple tentacles. This term was originally floated in some paranoid ravings on the cypherpunks list (see {cypherpunk}), and adopted in a spirit of irony by other, saner members. It has since shown up, used seriously, in the documentation for some remailer software, and is now (1994) widely recognized on the net.
:tenured graduate student: /n./ One who has been in graduate school for 10 years (the usual maximum is 5 or 6): a `ten-yeared' student (get it?). Actually, this term may be used of any grad student beginning in his seventh year. Students don't really get tenure, of course, the way professors do, but a tenth-year graduate student has probably been around the university longer than any untenured professor.
:tera-: /te'r*/ /pref./ [SI] See {{quantifiers}}.
:teraflop club: /te'r*-flop kluhb/ /n./ [FLOP = Floating Point Operation] A mythical association of people who consume outrageous amounts of computer time in order to produce a few simple pictures of glass balls with intricate ray-tracing techniques. Caltech professor James Kajiya is said to have been the founder. Compare {Knights of the Lambda Calculus}.
:terminak: /ter'mi-nak`/ /n./ [Caltech, ca. 1979] Any malfunctioning computer terminal. A common failure mode of Lear-Siegler ADM 3a terminals caused the `L' key to produce the `K' code instead; complaints about this tended to look like "Terminak #3 has a bad keyboard. Pkease fix." Compare {dread high-bit disease}, {frogging}; see also {AIDX}, {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {Telerat}, {HP-SUX}.
:terminal brain death: /n./ The extreme form of {terminal illness} (sense 1). What someone who has obviously been hacking continuously for far too long is said to be suffering from.
:terminal illness: /n./ 1. Syn. {raster burn}. 2. The `burn-in' condition your CRT tends to get if you don't have a screen saver.
:terminal junkie: /n./ [UK] A {wannabee} or early {larval stage} hacker who spends most of his or her time wandering the directory tree and writing {noddy} programs just to get a fix of computer time. Variants include `terminal jockey', `console junkie', and {console jockey}. The term `console jockey' seems to imply more expertise than the other three (possibly because of the exalted status of the {{console}} relative to an ordinary terminal). See also {twink}, {read-only user}.
:terpri: /ter'pree/ /vi./ [from LISP 1.5 (and later, MacLISP)] To output a {newline}. Now rare as jargon, though still used as techspeak in Common LISP. It is a contraction of `TERminate PRInt line', named for the fact that, on some early OSes and hardware, no characters would be printed until a complete line was formed, so this operation terminated the line and emitted the output.
:test: /n./ 1. Real users bashing on a prototype long enough to get thoroughly acquainted with it, with careful monitoring and followup of the results. 2. Some bored random user trying a couple of the simpler features with a developer looking over his or her shoulder, ready to pounce on mistakes. Judging by the quality of most software, the second definition is far more prevalent. See also {demo}.
:TeX:: /tekh/ /n./ An extremely powerful {macro}-based text formatter written by Donald E. {Knuth}, very popular in the computer-science community (it is good enough to have displaced Unix {{troff}}, the other favored formatter, even at many Unix installations). TeX fans insist on the correct (guttural) pronunciation, and the correct spelling (all caps, squished together, with the E depressed below the baseline; the mixed-case `TeX' is considered an acceptable kluge on ASCII-only devices). Fans like to proliferate names from the word `TeX' -- such as TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster (competent TeX programmer), TeXhax, and TeXnique. See also {CrApTeX}.
Knuth began TeX because he had become annoyed at the declining quality of the typesetting in volumes I--III of his monumental "Art of Computer Programming" (see {Knuth}, also {bible}). In a manifestation of the typical hackish urge to solve the problem at hand once and for all, he began to design his own typesetting language. He thought he would finish it on his sabbatical in 1978; he was wrong by only about 8 years. The language was finally frozen around 1985, but volume IV of "The Art of Computer Programming" is not expected to appear until 2002. The impact and influence of TeX's design has been such that nobody minds this very much. Many grand hackish projects have started as a bit of {toolsmith}ing on the way to something else; Knuth's diversion was simply on a grander scale than most.
TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth used to offer monetary awards to people who found and reported bugs in it; as the years wore on and the few remaining bugs were fixed (and new ones even harder to find), the bribe went up. Though well-written, TeX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every Pascal system it has been compiled with.
:text: /n./ 1. [techspeak] Executable code, esp. a `pure code' portion shared between multiple instances of a program running in a multitasking OS. Compare {English}. 2. Textual material in the mainstream sense; data in ordinary {{ASCII}} or {{EBCDIC}} representation (see {flat-ASCII}). "Those are text files; you can review them using the editor." These two contradictory senses confuse hackers, too.
:thanks in advance: [Usenet] Conventional net.politeness ending a posted request for information or assistance. Sometimes written `advTHANKSance' or `aTdHvAaNnKcSe' or abbreviated `TIA'. See {net.-}, {netiquette}.
:That's not a bug, that's a feature!: The {canonical} first parry in a debate about a purported bug. The complainant, if unconvinced, is likely to retort that the bug is then at best a {misfeature}. See also {feature}.
:the X that can be Y is not the true X: Yet another instance of hackerdom's peculiar attraction to mystical references -- a common humorous way of making exclusive statements about a class of things. The template is from the "Tao te Ching": "The Tao which can be spoken of is not the true Tao." The implication is often that the X is a mystery accessible only to the enlightened. See the {trampoline} entry for an example, and compare {has the X nature}.
:theology: /n./ 1. Ironically or humorously used to refer to {religious issues}. 2. Technical fine points of an abstruse nature, esp. those where the resolution is of theoretical interest but is relatively {marginal} with respect to actual use of a design or system. Used esp. around software issues with a heavy AI or language-design component, such as the smart-data vs. smart-programs dispute in AI.
:theory: /n./ The consensus, idea, plan, story, or set of rules that is currently being used to inform a behavior. This usage is a generalization and (deliberate) abuse of the technical meaning. "What's the theory on fixing this TECO loss?" "What's the theory on dinner tonight?" ("Chinatown, I guess.") "What's the current theory on letting lusers on during the day?" "The theory behind this change is to fix the following well-known screw...."
:thinko: /thing'koh/ /n./ [by analogy with `typo'] A momentary, correctable glitch in mental processing, especially one involving recall of information learned by rote; a bubble in the stream of consciousness. Syn. {braino}; see also {brain fart}. Compare {mouso}.
:This can't happen: Less clipped variant of {can't happen}.
:This time, for sure!: /excl./ Ritual affirmation frequently uttered during protracted debugging sessions involving numerous small obstacles (e.g., attempts to bring up a UUCP connection). For the proper effect, this must be uttered in a fruity imitation of Bullwinkle J. Moose. Also heard: "Hey, Rocky! Watch me pull a rabbit out of my hat!" The {canonical} response is, of course, "But that trick *never* works!" See {{hacker humor}}.
:thrash: /vi./ To move wildly or violently, without accomplishing anything useful. Paging or swapping systems that are overloaded waste most of their time moving data into and out of core (rather than performing useful computation) and are therefore said to thrash. Someone who keeps changing his mind (esp. about what to work on next) is said to be thrashing. A person frantically trying to execute too many tasks at once (and not spending enough time on any single task) may also be described as thrashing. Compare {multitask}.
:thread: /n./ [Usenet, GEnie, CompuServe] Common abbreviation of `topic thread', a more or less continuous chain of postings on a single topic. To `follow a thread' is to read a series of Usenet postings sharing a common subject or (more correctly) which are connected by Reference headers. The better newsreaders can present news in thread order automatically.
Interestingly, this is far from a neologism. The OED says: "That which connects the successive points in anything, esp. a narrative, train of thought, or the like; the sequence of events or ideas continuing throughout the whole course of anything;" Citations are given going back to 1642!
:three-finger salute: /n./ Syn. {Vulcan nerve pinch}.
:thud: /n./ 1. Yet another {metasyntactic variable} (see {foo}). It is reported that at CMU from the mid-1970s the canonical series of these was `foo', `bar', `thud', `blat'. 2. Rare term for the hash character, `#' (ASCII 0100011). See {ASCII} for other synonyms.
:thumb: /n./ The slider on a window-system scrollbar. So called because moving it allows you to browse through the contents of a text window in a way analogous to thumbing through a book.
:thunk: /thuhnk/ /n./ 1. "A piece of coding which provides an address", according to P. Z. Ingerman, who invented thunks in 1961 as a way of binding actual parameters to their formal definitions in Algol-60 procedure calls. If a procedure is called with an expression in the place of a formal parameter, the compiler generates a thunk which computes the expression and leaves the address of the result in some standard location. 2. Later generalized into: an expression, frozen together with its environment, for later evaluation if and when needed (similar to what in techspeak is called a `closure'). The process of unfreezing these thunks is called `forcing'. 3. A {stubroutine}, in an overlay programming environment, that loads and jumps to the correct overlay. Compare {trampoline}. 4. People and activities scheduled in a thunklike manner. "It occurred to me the other day that I am rather accurately modeled by a thunk -- I frequently need to be forced to completion." --- paraphrased from a {plan file}.
Historical note: There are a couple of onomatopoeic myths circulating about the origin of this term. The most common is that it is the sound made by data hitting the stack; another holds that the sound is that of the data hitting an accumulator. Yet another suggests that it is the sound of the expression being unfrozen at argument-evaluation time. In fact, according to the inventors, it was coined after they realized (in the wee hours after hours of discussion) that the type of an argument in Algol-60 could be figured out in advance with a little compile-time thought, simplifying the evaluation machinery. In other words, it had `already been thought of'; thus it was christened a `thunk', which is "the past tense of `think' at two in the morning".
:tick: /n./ 1. A {jiffy} (sense 1). 2. In simulations, the discrete unit of time that passes between iterations of the simulation mechanism. In AI applications, this amount of time is often left unspecified, since the only constraint of interest is the ordering of events. This sort of AI simulation is often pejoratively referred to as `tick-tick-tick' simulation, especially when the issue of simultaneity of events with long, independent chains of causes is {handwave}d. 3. In the FORTH language, a single quote character.
:tick-list features: /n./ [Acorn Computers] Features in software or hardware that customers insist on but never use (calculators in desktop TSRs and that sort of thing). The American equivalent would be `checklist features', but this jargon sense of the phrase has not been reported.
:tickle a bug: /vt./ To cause a normally hidden bug to manifest itself through some known series of inputs or operations. "You can tickle the bug in the Paradise VGA card's highlight handling by trying to set bright yellow reverse video."
:tiger team: /n./ [U.S. military jargon] 1. Originally, a team (of {sneaker}s) whose purpose is to penetrate security, and thus test security measures. These people are paid professionals who do hacker-type tricks, e.g., leave cardboard signs saying "bomb" in critical defense installations, hand-lettered notes saying "Your codebooks have been stolen" (they usually haven't been) inside safes, etc. After a successful penetration, some high-ranking security type shows up the next morning for a `security review' and finds the sign, note, etc., and all hell breaks loose. Serious successes of tiger teams sometimes lead to early retirement for base commanders and security officers (see the {patch} entry for an example). 2. Recently, and more generally, any official inspection team or special {firefighting} group called in to look at a problem.
A subset of tiger teams are professional {cracker}s, testing the security of military computer installations by attempting remote attacks via networks or supposedly `secure' comm channels. Some of their escapades, if declassified, would probably rank among the greatest hacks of all times. The term has been adopted in commercial computer-security circles in this more specific sense.
:time bomb: /n./ A subspecies of {logic bomb} that is triggered by reaching some preset time, either once or periodically. There are numerous legends about time bombs set up by programmers in their employers' machines, to go off if the programmer is fired or laid off and is not present to perform the appropriate suppressing action periodically.
Interestingly, the only such incident for which we have been pointed to documentary evidence took place in the Soviet Union in 1986! A disgruntled programmer at the Volga Automobile Plant (where the Fiat clones called Ladas were manufactured) planted a time bomb which, a week after he'd left on vacation, stopped the entire main assembly line for a day. The case attracted lots of attention in the Soviet Union because it was the first cracking case to make it to court there. The perpetrator got a suspended sentence of 3 years in jail and was barred from future work as a programmer.
:time sink: /n./ [poss. by analogy with `heat sink' or `current sink'] A project that consumes unbounded amounts of time.
:time T: /ti:m T/ /n./ 1. An unspecified but usually well-understood time, often used in conjunction with a later time T+1. "We'll meet on campus at time T or at Louie's at time T+1" means, in the context of going out for dinner: "We can meet on campus and go to Louie's, or we can meet at Louie's itself a bit later." (Louie's was a Chinese restaurant in Palo Alto that was a favorite with hackers.) Had the number 30 been used instead of the number 1, it would have implied that the travel time from campus to Louie's is 30 minutes; whatever time T is (and that hasn't been decided on yet), you can meet half an hour later at Louie's than you could on campus and end up eating at the same time. See also {since time T equals minus infinity}.
:times-or-divided-by: /quant./ [by analogy with `plus-or-minus'] Term occasionally used when describing the uncertainty associated with a scheduling estimate, for either humorous or brutally honest effect. For a software project, the scheduling uncertainty factor is usually at least 2.
:Tinkerbell program: /n./ [Great Britain] A monitoring program used to scan incoming network calls and generate alerts when calls are received from particular sites, or when logins are attempted using certain IDs. Named after `Project Tinkerbell', an experimental phone-tapping program developed by British Telecom in the early 1980s.
:tip of the ice-cube: /n./ [IBM] The visible part of something small and insignificant. Used as an ironic comment in situations where `tip of the iceberg' might be appropriate if the subject were at all important.
:tired iron: /n./ [IBM] Hardware that is perfectly functional but far enough behind the state of the art to have been superseded by new products, presumably with sufficient improvement in bang-per-buck that the old stuff is starting to look a bit like a {dinosaur}.
:tits on a keyboard: /n./ Small bumps on certain keycaps to keep touch-typists registered (usually on the `5' of a numeric keypad, and on the `F' and `J' of a {QWERTY} keyboard; but the Mac, perverse as usual, has them on the `D' and `K' keys).
:TLA: /T-L-A/ /n./ [Three-Letter Acronym] 1. Self-describing abbreviation for a species with which computing terminology is infested. 2. Any confusing acronym. Examples include MCA, FTP, SNA, CPU, MMU, SCCS, DMU, FPU, NNTP, TLA. People who like this looser usage argue that not all TLAs have three letters, just as not all four-letter words have four letters. One also hears of `ETLA' (Extended Three-Letter Acronym, pronounced /ee tee el ay/) being used to describe four-letter acronyms. The term `SFLA' (Stupid Four-Letter Acronym) has also been reported. See also {YABA}.
The self-effacing phrase "TDM TLA" (Too Damn Many...) is often used to bemoan the plethora of TLAs in use. In 1989, a random of the journalistic persuasion asked hacker Paul Boutin "What do you think will be the biggest problem in computing in the 90s?" Paul's straight-faced response: "There are only 17,000 three-letter acronyms." (To be exact, there are 26^3 = 17,576.)
:TMRC: /tmerk'/ /n./ The Tech Model Railroad Club at MIT, one of the wellsprings of hacker culture. The 1959 "Dictionary of the TMRC Language" compiled by Peter Samson included several terms that became basics of the hackish vocabulary (see esp. {foo}, {mung}, and {frob}).
By 1962, TMRC's legendary layout was already a marvel of complexity (and has grown in the thirty years since; all the features described here are still present). The control system alone featured about 1200 relays. There were {scram switch}es located at numerous places around the room that could be thwacked if something undesirable was about to occur, such as a train going full-bore at an obstruction. Another feature of the system was a digital clock on the dispatch board, which was itself something of a wonder in those bygone days before cheap LEDs and seven-segment displays. When someone hit a scram switch the clock stopped and the display was replaced with the word `FOO'; at TMRC the scram switches are therefore called `foo switches'.
Steven Levy, in his book "Hackers" (see the {Bibliography} in Appendix C), gives a stimulating account of those early years. TMRC's Power and Signals group included most of the early PDP-1 hackers and the people who later became the core of the MIT AI Lab staff. Thirty years later that connection is still very much alive, and this lexicon accordingly includes a number of entries from a recent revision of the TMRC dictionary.
:TMRCie: /tmerk'ee/, /n./ [MIT] A denizen of {TMRC}.
:to a first approximation: /adj./ 1. [techspeak] When one is doing certain numerical computations, an approximate solution may be computed by any of several heuristic methods, then refined to a final value. By using the starting point of a first approximation of the answer, one can write an algorithm that converges more quickly to the correct result. 2. In jargon, a preface to any comment that indicates that the comment is only approximately true. The remark "To a first approximation, I feel good" might indicate that deeper questioning would reveal that not all is perfect (e.g., a nagging cough still remains after an illness).
:to a zeroth approximation: [from `to a first approximation'] A *really* sloppy approximation; a wild guess. Compare {social science number}.
:toad: /vt./ [MUD] 1. Notionally, to change a {MUD} player into a toad. 2. To permanently and totally exile a player from the MUD. A very serious action, which can only be done by a MUD {wizard}; often involves a lot of debate among the other characters first. See also {frog}, {FOD}.
:toast: 1. /n./ Any completely inoperable system or component, esp. one that has just crashed and burned: "Uh, oh ... I think the serial board is toast." 2. /vt./ To cause a system to crash accidentally, especially in a manner that requires manual rebooting. "Rick just toasted the {firewall machine} again." Compare {fried}.
:toaster: /n./ 1. The archetypal really stupid application for an embedded microprocessor controller; often used in comments that imply that a scheme is inappropriate technology (but see {elevator controller}). "{DWIM} for an assembler? That'd be as silly as running Unix on your toaster!" 2. A very, very dumb computer. "You could run this program on any dumb toaster." See {bitty box}, {Get a real computer!}, {toy}, {beige toaster}. 3. A Macintosh, esp. the Classic Mac. Some hold that this is implied by sense 2. 4. A peripheral device. "I bought my box without toasters, but since then I've added two boards and a second disk drive."
:toeprint: /n./ A {footprint} of especially small size.
:toggle: /vt./ To change a {bit} from whatever state it is in to the other state; to change from 1 to 0 or from 0 to 1. This comes from `toggle switches', such as standard light switches, though the word `toggle' actually refers to the mechanism that keeps the switch in the position to which it is flipped rather than to the fact that the switch has two positions. There are four things you can do to a bit: set it (force it to be 1), clear (or zero) it, leave it alone, or toggle it. (Mathematically, one would say that there are four distinct boolean-valued functions of one boolean argument, but saying that is much less fun than talking about toggling bits.)
:tool: 1. /n./ A program used primarily to create, manipulate, modify, or analyze other programs, such as a compiler or an editor or a cross-referencing program. Oppose {app}, {operating system}. 2. [Unix] An application program with a simple, `transparent' (typically text-stream) interface designed specifically to be used in programmed combination with other tools (see {filter}, {plumbing}). 3. [MIT: general to students there] /vi./ To work; to study (connotes tedium). The TMRC Dictionary defined this as "to set one's brain to the grindstone". See {hack}. 4. /n./ [MIT] A student who studies too much and hacks too little. (MIT's student humor magazine rejoices in the name "Tool and Die".)
:toolsmith: /n./ The software equivalent of a tool-and-die specialist; one who specializes in making the {tool}s with which other programmers create applications. Many hackers consider this more fun than applications per se; to understand why, see {uninteresting}. Jon Bentley, in the "Bumper-Sticker Computer Science" chapter of his book "More Programming Pearls", quotes Dick Sites from DEC as saying "I'd rather write programs to write programs than write programs".
:topic drift: /n./ Term used on GEnie, Usenet and other electronic fora to describe the tendency of a {thread} to drift away from the original subject of discussion (and thus, from the Subject header of the originating message), or the results of that tendency. Often used in gentle reminders that the discussion has strayed off any useful track. "I think we started with a question about Niven's last book, but we've ended up discussing the sexual habits of the common marmoset. Now *that's* topic drift!"
:topic group: /n./ Syn. {forum}.
:TOPS-10:: /tops-ten/ /n./ DEC's proprietary OS for the fabled {PDP-10} machines, long a favorite of hackers but now effectively extinct. A fountain of hacker folklore; see Appendix A. See also {{ITS}}, {{TOPS-20}}, {{TWENEX}}, {VMS}, {operating system}. TOPS-10 was sometimes called BOTS-10 (from `bottoms-ten') as a comment on the inappropriateness of describing it as the top of anything.
:TOPS-20:: /tops-twen'tee/ /n./ See {{TWENEX}}.
:tourist: /n./ [ITS] A guest on the system, especially one who generally logs in over a network from a remote location for {comm mode}, email, games, and other trivial purposes. One step below {luser}. Hackers often spell this {turist}, perhaps by some sort of tenuous analogy with {luser} (this also expresses the ITS culture's penchant for six-letterisms). Compare {twink}, {read-only user}.
:tourist information: /n./ Information in an on-line display that is not immediately useful, but contributes to a viewer's gestalt of what's going on with the software or hardware behind it. Whether a given piece of info falls in this category depends partly on what the user is looking for at any given time. The `bytes free' information at the bottom of an MS-DOS `dir' display is tourist information; so (most of the time) is the TIME information in a Unix `ps(1)' display.
:touristic: /adj./ Having the quality of a {tourist}. Often used as a pejorative, as in `losing touristic scum'. Often spelled `turistic' or `turistik', so that phrase might be more properly rendered `lusing turistic scum'.
:toy: /n./ A computer system; always used with qualifiers. 1. `nice toy': One that supports the speaker's hacking style adequately. 2. `just a toy': A machine that yields insufficient {computron}s for the speaker's preferred uses. This is not condemnatory, as is {bitty box}; toys can at least be fun. It is also strongly conditioned by one's expectations; Cray XMP users sometimes consider the Cray-1 a `toy', and certainly all RISC boxes and mainframes are toys by their standards. See also {Get a real computer!}.
:toy language: /n./ A language useful for instructional purposes or as a proof-of-concept for some aspect of computer-science theory, but inadequate for general-purpose programming. {Bad Thing}s can result when a toy language is promoted as a general purpose solution for programming (see {bondage-and-discipline language}); the classic example is {{Pascal}}. Several moderately well-known formalisms for conceptual tasks such as programming Turing machines also qualify as toy languages in a less negative sense. See also {MFTL}.
:toy problem: /n./ [AI] A deliberately oversimplified case of a challenging problem used to investigate, prototype, or test algorithms for a real problem. Sometimes used pejoratively. See also {gedanken}, {toy program}.
:toy program: /n./ 1. One that can be readily comprehended; hence, a trivial program (compare {noddy}). 2. One for which the effort of initial coding dominates the costs through its life cycle. See also {noddy}.
:trampoline: /n./ An incredibly {hairy} technique, found in some {HLL} and program-overlay implementations (e.g., on the Macintosh), that involves on-the-fly generation of small executable (and, likely as not, self-modifying) code objects to do indirection between code sections. These pieces of {live data} are called `trampolines'. Trampolines are notoriously difficult to understand in action; in fact, it is said by those who use this term that the trampoline that doesn't bend your brain is not the true trampoline. See also {snap}.
:trap: 1. /n./ A program interrupt, usually an interrupt caused by some exceptional situation in the user program. In most cases, the OS performs some action, then returns control to the program. 2. /vi./ To cause a trap. "These instructions trap to the monitor." Also used transitively to indicate the cause of the trap. "The monitor traps all input/output instructions."
This term is associated with assembler programming (`interrupt' or `exception' is more common among {HLL} programmers) and appears to be fading into history among programmers as the role of assembler continues to shrink. However, it is still important to computer architects and systems hackers (see {system}, sense 1), who use it to distinguish deterministically repeatable exceptions from timing-dependent ones (such as I/O interrupts).
:trap door: /n./ (alt. `trapdoor') 1. Syn. {back door} -- a {Bad Thing}. 2. [techspeak] A `trap-door function' is one which is easy to compute but very difficult to compute the inverse of. Such functions are {Good Thing}s with important applications in cryptography, specifically in the construction of public-key cryptosystems.
:trash: /vt./ To destroy the contents of (said of a data structure). The most common of the family of near-synonyms including {mung}, {mangle}, and {scribble}.
:trawl: /v./ To sift through large volumes of data (e.g., Usenet postings, FTP archives, or the Jargon File) looking for something of interest.
:tree-killer: /n./ [Sun] 1. A printer. 2. A person who wastes paper. This epithet should be interpreted in a broad sense; `wasting paper' includes the production of {spiffy} but {content-free} documents. Thus, most {suit}s are tree-killers. The negative loading of this term may reflect the epithet `tree-killer' applied by Treebeard the Ent to the Orcs in J.R.R. Tolkien's "Lord of the Rings" (see also {elvish}, {elder days}).
:treeware: /tree'weir/ /n./ Printouts, books, and other information media made from pulped dead trees. Compare {tree-killer}, see {documentation}.
:trit: /trit/ /n./ [by analogy with `bit'] One base-3 digit; the amount of information conveyed by a selection among one of three equally likely outcomes (see also {bit}). Trits arise, for example, in the context of a {flag} that should actually be able to assume *three* values -- such as yes, no, or unknown. Trits are sometimes jokingly called `3-state bits'. A trit may be semi-seriously referred to as `a bit and a half', although it is linearly equivalent to 1.5849625 bits (that is, log2(3) bits).
:trivial: /adj./ 1. Too simple to bother detailing. 2. Not worth the speaker's time. 3. Complex, but solvable by methods so well known that anyone not utterly {cretinous} would have thought of them already. 4. Any problem one has already solved (some claim that hackish `trivial' usually evaluates to `I've seen it before'). Hackers' notions of triviality may be quite at variance with those of non-hackers. See {nontrivial}, {uninteresting}.
The physicist Richard Feynman, who had the hacker nature to an amazing degree (see his essay "Los Alamos From Below" in "Surely You're Joking, Mr. Feynman!"), defined `trivial theorem' as "one that has already been proved".
:troff:: /T'rof/ or /trof/ /n./ [Unix] The gray eminence of Unix text processing; a formatting and phototypesetting program, written originally in PDP-11 assembler and then in barely-structured early C by the late Joseph Ossanna, modeled after the earlier ROFF which was in turn modeled after Multics' RUNOFF by Jerome Saltzer (*that* name came from the expression "to run off a copy"). A companion program, {nroff}, formats output for terminals and line printers.
In 1979, Brian Kernighan modified troff so that it could drive phototypesetters other than the Graphic Systems CAT. His paper describing that work ("A Typesetter-independent troff," AT&T CSTR #97) explains troff's durability. After discussing the program's "obvious deficiencies -- a rebarbative input syntax, mysterious and undocumented properties in some areas, and a voracious appetite for computer resources" and noting the ugliness and extreme hairiness of the code and internals, Kernighan concludes:
None of these remarks should be taken as denigrating Ossanna's accomplishment with TROFF. It has proven a remarkably robust tool, taking unbelievable abuse from a variety of preprocessors and being forced into uses that were never conceived of in the original design, all with considerable grace under fire.
The success of {{TeX}} and desktop publishing systems have reduced `troff''s relative importance, but this tribute perfectly captures the strengths that secured `troff' a place in hacker folklore; indeed, it could be taken more generally as an indication of those qualities of good programs that, in the long run, hackers most admire.
:troglodyte: /n./ [Commodore] 1. A hacker who never leaves his cubicle. The term `Gnoll' (from Dungeons & Dragons) is also reported. 2. A curmudgeon attached to an obsolescent computing environment. The combination `ITS troglodyte' was flung around some during the Usenet and email wringle-wrangle attending the 2.x.x revision of the Jargon File; at least one of the people it was intended to describe adopted it with pride.
:troglodyte mode: /n./ [Rice University] Programming with the lights turned off, sunglasses on, and the terminal inverted (black on white) because you've been up for so many days straight that your eyes hurt (see {raster burn}). Loud music blaring from a stereo stacked in the corner is optional but recommended. See {larval stage}, {hack mode}.
:Trojan horse: /n./ [coined by MIT-hacker-turned-NSA-spook Dan Edwards] A malicious, security-breaking program that is disguised as something benign, such as a directory lister, archiver, game, or (in one notorious 1990 case on the Mac) a program to find and destroy viruses! See {back door}, {virus}, {worm}, {phage}, {mockingbird}.
:troll: /v.,n./ [From the Usenet group alt.folklore.urban] To utter a posting on {Usenet} designed to attract predictable responses or {flame}s. Derives from the phrase "trolling for {newbie}s" which in turn comes from mainstream "trolling", a style of fishing in which one trails bait through a likely spot hoping for a bite. The well-constructed troll is a post that induces lots of newbies and flamers to make themselves look even more clueless than they already do, while subtly conveying to the more savvy and experienced that it is in fact a deliberate troll. If you don't fall for the joke, you get to be in on it.
Some people claim that the troll is properly a narrower category than {flame bait}, that a troll is categorized by containing some assertion that is wrong but not overtly controversial.
:tron: /v./ [NRL, CMU; prob. fr. the movie "Tron"] To become inaccessible except via email or `talk(1)', especially when one is normally available via telephone or in person. Frequently used in the past tense, as in: "Ran seems to have tronned on us this week" or "Gee, Ran, glad you were able to un-tron yourself". One may also speak of `tron mode'; compare {spod}.
:true-hacker: /n./ [analogy with `trufan' from SF fandom] One who exemplifies the primary values of hacker culture, esp. competence and helpfulness to other hackers. A high compliment. "He spent 6 hours helping me bring up UUCP and netnews on my FOOBAR 4000 last week -- manifestly the act of a true-hacker." Compare {demigod}, oppose {munchkin}.
:tty: /T-T-Y/, /tit'ee/ /n./ The latter pronunciation was primarily ITS, but some Unix people say it this way as well; this pronunciation is *not* considered to have sexual undertones. 1. A terminal of the teletype variety, characterized by a noisy mechanical printer, a very limited character set, and poor print quality. Usage: antiquated (like the TTYs themselves). See also {bit-paired keyboard}. 2. [especially Unix] Any terminal at all; sometimes used to refer to the particular terminal controlling a given job. 3. [Unix] Any serial port, whether or not the device connected to it is a terminal; so called because under Unix such devices have names of the form tty*. Ambiguity between senses 2 and 3 is common but seldom bothersome.
:tube: 1. /n./ A CRT terminal. Never used in the mainstream sense of TV; real hackers don't watch TV, except for Loony Toons, Rocky & Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy old swashbuckler movie. 2. [IBM] To send a copy of something to someone else's terminal. "Tube me that note?"
:tube time: /n./ Time spent at a terminal or console. More inclusive than hacking time; commonly used in discussions of what parts of one's environment one uses most heavily. "I find I'm spending too much of my tube time reading mail since I started this revision."
:tunafish: /n./ In hackish lore, refers to the mutated punchline of an age-old joke to be found at the bottom of the manual pages of `tunefs(8)' in the original {BSD} 4.2 distribution. The joke was removed in later releases once commercial sites started using 4.2. Tunefs relates to the `tuning' of file-system parameters for optimum performance, and at the bottom of a few pages of wizardly inscriptions was a `BUGS' section consisting of the line "You can tune a file system, but you can't tunafish". Variants of this can be seen in other BSD versions, though it has been excised from some versions by humorless management {droid}s. The [nt]roff source for SunOS 4.1.1 contains a comment apparently designed to prevent this: "Take this out and a Unix Demon will dog your steps from now until the `time_t''s wrap around."
[It has since been pointed out that indeed you can tunafish. Usually at a canning factory... --ESR]
:tune: /vt./ [from automotive or musical usage] To optimize a program or system for a particular environment, esp. by adjusting numerical parameters designed as {hook}s for tuning, e.g., by changing `#define' lines in C. One may `tune for time' (fastest execution), `tune for space' (least memory use), or `tune for configuration' (most efficient use of hardware). See {bum}, {hot spot}, {hand-hacking}.
:turbo nerd: /n./ See {computer geek}.
:Turing tar-pit: /n./ 1. A place where anything is possible but nothing of interest is practical. Alan Turing helped lay the foundations of computer science by showing that all machines and languages capable of expressing a certain very primitive set of operations are logically equivalent in the kinds of computations they can carry out, and in principle have capabilities that differ only in speed from those of the most powerful and elegantly designed computers. However, no machine or language exactly matching Turing's primitive set has ever been built (other than possibly as a classroom exercise), because it would be horribly slow and far too painful to use. A `Turing tar-pit' is any computer language or other tool that shares this property. That is, it's theoretically universal -- but in practice, the harder you struggle to get any real work done, the deeper its inadequacies suck you in. Compare {bondage-and-discipline language}. 2. The perennial {holy wars} over whether language A or B is the "most powerful".
:turist: /too'rist/ /n./ Var. sp. of {tourist}, q.v. Also in adjectival form, `turistic'. Poss. influenced by {luser} and `Turing'.
:tweak: /vt./ 1. To change slightly, usually in reference to a value. Also used synonymously with {twiddle}. If a program is almost correct, rather than figure out the precise problem you might just keep tweaking it until it works. See {frobnicate} and {fudge factor}; also see {shotgun debugging}. 2. To {tune} or {bum} a program; preferred usage in the U.K.
:tweeter: /n./ [University of Waterloo] Syn. {perf}, {chad} (sense 1). This term (like {woofer}) has been in use at Waterloo since 1972 but is elsewhere unknown. In audio jargon, the word refers to the treble speaker(s) on a hi-fi.
:TWENEX:: /twe'neks/ /n./ The TOPS-20 operating system by DEC -- the second proprietary OS for the PDP-10 -- preferred by most PDP-10 hackers over TOPS-10 (that is, by those who were not {{ITS}} or {{WAITS}} partisans). TOPS-20 began in 1969 as Bolt, Beranek & Newman's TENEX operating system using special paging hardware. By the early 1970s, almost all of the systems on the ARPANET ran TENEX. DEC purchased the rights to TENEX from BBN and began work to make it their own. The first in-house code name for the operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that `krans' meant `funeral wreath' in Swedish (though some Swedish speakers have since said it means simply `wreath'; this part of the story may be apocryphal). Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community, mindful of its origins, quickly dubbed it TWENEX (a contraction of `twenty TENEX'), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T V6 Unix and BSD). DEC people cringed when they heard "TWENEX", but the term caught on nevertheless (the written abbreviation `20x' was also used). TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix or ITS -- but DEC's decision to scrap all the internal rivals to the VAX architecture and its relatively stodgy VMS OS killed the DEC-20 and put a sad end to TWENEX's brief day in the sun. DEC attempted to convince TOPS-20 users to convert to {VMS}, but instead, by the late 1980s, most of the TOPS-20 hackers had migrated to Unix.
:twiddle: /n./ 1. Tilde (ASCII 1111110, `~'). Also called `squiggle', `sqiggle' (sic -- pronounced /skig'l/), and `twaddle', but twiddle is the most common term. 2. A small and insignificant change to a program. Usually fixes one bug and generates several new ones (see also {shotgun debugging}). 3. /vt./ To change something in a small way. Bits, for example, are often twiddled. Twiddling a switch or knob implies much less sense of purpose than toggling or tweaking it; see {frobnicate}. To speak of twiddling a bit connotes aimlessness, and at best doesn't specify what you're doing to the bit; `toggling a bit' has a more specific meaning (see {bit twiddling}, {toggle}).
:twilight zone: /n./ [IRC] Notionally, the area of cyberspace where {IRC} operators live. An {op} is said to have a "connection to the twilight zone".
:twink: /twink/ /n./ [UCSC] Equivalent to {read-only user}. Also reported on the Usenet group soc.motss; may derive from gay slang for a cute young thing with nothing upstairs (compare mainstream `chick').
:twirling baton: /n./ [PLATO] The overstrike sequence -/|\-/|\- which produces an animated twirling baton. If you output it with a single backspace between characters, the baton spins in place. If you output the sequence BS SP between characters, the baton spins from left to right. If you output BS SP BS BS between characters, the baton spins from right to left.
The twirling baton was a popular component of animated signature files on the pioneering PLATO educational timesharing system. The `archie' Internet service is perhaps the best-known baton program today; it uses the twirling baton as an idler indicating that the program is working on a query.
:two pi: /quant./ The number of years it takes to finish one's thesis. Occurs in stories in the following form: "He started on his thesis; 2 pi years later..."
:two-to-the-N: /quant./ An amount much larger than {N} but smaller than {infinity}. "I have 2-to-the-N things to do before I can go out for lunch" means you probably won't show up.
:twonkie: /twon'kee/ /n./ The software equivalent of a Twinkie (a variety of sugar-loaded junk food, or (in gay slang with a small t) the male equivalent of `chick'); a useless `feature' added to look sexy and placate a {marketroid} (compare {Saturday-night special}). The term may also be related to "The Twonky", title menace of a classic SF short story by Lewis Padgett (Henry Kuttner and C. L. Moore), first published in the September 1942 "Astounding Science Fiction" and subsequently much anthologized.
= U = =====
:u-: /pref./ Written shorthand for {micro-}; techspeak when applied to metric units, jargon when used otherwise. Derived from the Greek letter "mu", the first letter of "micro" (and which letter looks a lot like the English letter "u").
:UBD: /U-B-D/ /n./ [abbreviation for `User Brain Damage'] An abbreviation used to close out trouble reports obviously due to utter cluelessness on the user's part. Compare {pilot error}; oppose {PBD}; see also {brain-damaged}.
:UN*X: /n./ Used to refer to the Unix operating system (a trademark of AT&T) in writing, but avoiding the need for the ugly {(TM)} typography. Also used to refer to any or all varieties of Unixoid operating systems. Ironically, lawyers now say that the requirement for the TM-postfix has no legal force, but the asterisk usage is entrenched anyhow. It has been suggested that there may be a psychological connection to practice in certain religions (especially Judaism) in which the name of the deity is never written out in full, e.g., `YHWH' or `G--d' is used. See also {glob}.
:undefined external reference: /excl./ [Unix] A message from Unix's linker. Used in speech to flag loose ends or dangling references in an argument or discussion.
:under the hood: /adj./ [hot-rodder talk] 1. Used to introduce the underlying implementation of a product (hardware, software, or idea). Implies that the implementation is not intuitively obvious from the appearance, but the speaker is about to enable the listener to {grok} it. "Let's now look under the hood to see how ...." 2. Can also imply that the implementation is much simpler than the appearance would indicate: "Under the hood, we are just fork/execing the shell." 3. Inside a chassis, as in "Under the hood, this baby has a 40MHz 68030!"
:undocumented feature: /n./ See {feature}.
:uninteresting: /adj./ 1. Said of a problem that, although {nontrivial}, can be solved simply by throwing sufficient resources at it. 2. Also said of problems for which a solution would neither advance the state of the art nor be fun to design and code.
Hackers regard uninteresting problems as intolerable wastes of time, to be solved (if at all) by lesser mortals. *Real* hackers (see {toolsmith}) generalize uninteresting problems enough to make them interesting and solve them -- thus solving the original problem as a special case (and, it must be admitted, occasionally turning a molehill into a mountain, or a mountain into a tectonic plate). See {WOMBAT}, {SMOP}; compare {toy problem}, oppose {interesting}.
:Unix:: /yoo'niks/ /n./ [In the authors' words, "A weak pun on Multics"; very early on it was `UNICS'] (also `UNIX') An interactive time-sharing system invented in 1969 by Ken Thompson after Bell Labs left the Multics project, originally so he could play games on his scavenged PDP-7. Dennis Ritchie, the inventor of C, is considered a co-author of the system. The turning point in Unix's history came when it was reimplemented almost entirely in C during 1972--1974, making it the first source-portable OS. Unix subsequently underwent mutations and expansions at the hands of many different people, resulting in a uniquely flexible and developer-friendly environment. By 1991, Unix had become the most widely used multiuser general-purpose operating system in the world. Many people consider this the most important victory yet of hackerdom over industry opposition (but see {Unix weenie} and {Unix conspiracy} for an opposing point of view). See {Version 7}, {BSD}, {USG Unix}, {Linux}.
Some people are confused over whether this word is appropriately `UNIX' or `Unix'; both forms are common, and used interchangeably. Dennis Ritchie says that the `UNIX' spelling originally happened in CACM's 1974 paper "The UNIX Time-Sharing System" because "we had a new typesetter and {troff} had just been invented and we were intoxicated by being able to produce small caps." Later, dmr tried to get the spelling changed to `Unix' in a couple of Bell Labs papers, on the grounds that the word is not acronymic. He failed, and eventually (his words) "wimped out" on the issue. So, while the trademark today is `UNIX', both capitalizations are grounded in ancient usage; the Jargon File uses `Unix' in deference to dmr's wishes.
:Unix brain damage: /n./ Something that has to be done to break a network program (typically a mailer) on a non-Unix system so that it will interoperate with Unix systems. The hack may qualify as `Unix brain damage' if the program conforms to published standards and the Unix program in question does not. Unix brain damage happens because it is much easier for other (minority) systems to change their ways to match non-conforming behavior than it is to change all the hundreds of thousands of Unix systems out there.
An example of Unix brain damage is a {kluge} in a mail server to recognize bare line feed (the Unix newline) as an equivalent form to the Internet standard newline, which is a carriage return followed by a line feed. Such things can make even a hardened {jock} weep.
:Unix conspiracy: /n./ [ITS] According to a conspiracy theory long popular among {{ITS}} and {{TOPS-20}} fans, Unix's growth is the result of a plot, hatched during the 1970s at Bell Labs, whose intent was to hobble AT&T's competitors by making them dependent upon a system whose future evolution was to be under AT&T's control. This would be accomplished by disseminating an operating system that is apparently inexpensive and easily portable, but also relatively unreliable and insecure (so as to require continuing upgrades from AT&T). This theory was lent a substantial impetus in 1984 by the paper referenced in the {back door} entry.
In this view, Unix was designed to be one of the first computer viruses (see {virus}) -- but a virus spread to computers indirectly by people and market forces, rather than directly through disks and networks. Adherents of this `Unix virus' theory like to cite the fact that the well-known quotation "Unix is snake oil" was uttered by DEC president Kenneth Olsen shortly before DEC began actively promoting its own family of Unix workstations. (Olsen now claims to have been misquoted.)
[If there was ever such a conspiracy, it got thoroughly out of the plotters' control after 1990. AT&T sold its UNIX operation to Novell around the same time {Linux} and other free-UNIX distributions were beginning to make noise. --ESR]
:Unix weenie: /n./ [ITS] 1. A derogatory play on `Unix wizard', common among hackers who use Unix by necessity but would prefer alternatives. The implication is that although the person in question may consider mastery of Unix arcana to be a wizardly skill, the only real skill involved is the ability to tolerate (and the bad taste to wallow in) the incoherence and needless complexity that is alleged to infest many Unix programs. "This shell script tries to parse its arguments in 69 bletcherous ways. It must have been written by a real Unix weenie." 2. A derogatory term for anyone who engages in uncritical praise of Unix. Often appearing in the context "stupid Unix weenie". See {Weenix}, {Unix conspiracy}. See also {weenie}.
:unixism: /n./ A piece of code or a coding technique that depends on the protected multi-tasking environment with relatively low process-spawn overhead that exists on virtual-memory Unix systems. Common {unixism}s include: gratuitous use of `fork(2)'; the assumption that certain undocumented but well-known features of Unix libraries such as `stdio(3)' are supported elsewhere; reliance on {obscure} side-effects of system calls (use of `sleep(2)' with a 0 argument to clue the scheduler that you're willing to give up your time-slice, for example); the assumption that freshly allocated memory is zeroed; and the assumption that fragmentation problems won't arise from never `free()'ing memory. Compare {vaxocentrism}; see also {New Jersey}.
:unswizzle: /v./ See {swizzle}.
:unwind the stack: /vi./ 1. [techspeak] During the execution of a procedural language, one is said to `unwind the stack' from a called procedure up to a caller when one discards the stack frame and any number of frames above it, popping back up to the level of the given caller. In C this is done with `longjmp'/`setjmp', in LISP with `throw/catch'. See also {smash the stack}. 2. People can unwind the stack as well, by quickly dealing with a bunch of problems: "Oh heck, let's do lunch. Just a second while I unwind my stack."
:unwind-protect: /n./ [MIT: from the name of a LISP operator] A task you must remember to perform before you leave a place or finish a project. "I have an unwind-protect to call my advisor."
:up: /adj./ 1. Working, in order. "The down escalator is up." Oppose {down}. 2. `bring up': /vt./ To create a working version and start it. "They brought up a down system." 3. `come up' /vi./ To become ready for production use.
:upload: /uhp'lohd/ /v./ 1. [techspeak] To transfer programs or data over a digital communications link from a smaller or peripheral `client' system to a larger or central `host' one. A transfer in the other direction is, of course, called a {download} (but see the note about ground-to-space comm under that entry). 2. [speculatively] To move the essential patterns and algorithms that make up one's mind from one's brain into a computer. Those who are convinced that such patterns and algorithms capture the complete essence of the self view this prospect with pleasant anticipation.
:upthread: /adv./ Earlier in the discussion (see {thread}), i.e., `above'. "As Joe pointed out upthread, ..." See also {followup}.
:urchin: /n./ See {munchkin}.
:URL: /U-R-L/ or /erl/ /n./ Uniform Resource Locator, an address widget that identifies a document or resource on the World Wide Web. This entry is here primarily to record the fact that the term is commonly pronounced both /erl/, and /U-R-L/ (the latter predominates in more formal contexts).
:Usenet: /yoos'net/ or /yooz'net/ /n./ [from `Users' Network'; the original spelling was USENET, but the mixed-case form is now widely preferred] A distributed {bboard} (bulletin board) system supported mainly by Unix machines. Originally implemented in 1979--1980 by Steve Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke University, it has swiftly grown to become international in scope and is now probably the largest decentralized information utility in existence. As of early 1996, it hosts over 10,000 {newsgroup}s and an average of over 500 megabytes (the equivalent of several thousand paper pages) of new technical articles, news, discussion, chatter, and {flamage} every day.
By the year the Internet hit the mainstream (1994) the original UUCP transport for Usenet was fading out of use (see {UUCPNET}) -- almost all Usenet connections were over Internet links. A lot of newbies and journalists began to refer to "Internet newsgroups" as though Usenet was and always had been just another Internet service. This ignorance greatly annoys experienced Usenetters.
:user: /n./ 1. Someone doing `real work' with the computer, using it as a means rather than an end. Someone who pays to use a computer. See {real user}. 2. A programmer who will believe anything you tell him. One who asks silly questions. [GLS observes: This is slightly unfair. It is true that users ask questions (of necessity). Sometimes they are thoughtful or deep. Very often they are annoying or downright stupid, apparently because the user failed to think for two seconds or look in the documentation before bothering the maintainer.] See {luser}. 3. Someone who uses a program from the outside, however skillfully, without getting into the internals of the program. One who reports bugs instead of just going ahead and fixing them.
The general theory behind this term is that there are two classes of people who work with a program: there are implementors (hackers) and {luser}s. The users are looked down on by hackers to some extent because they don't understand the full ramifications of the system in all its glory. (The few users who do are known as `real winners'.) The term is a relative one: a skilled hacker may be a user with respect to some program he himself does not hack. A LISP hacker might be one who maintains LISP or one who uses LISP (but with the skill of a hacker). A LISP user is one who uses LISP, whether skillfully or not. Thus there is some overlap between the two terms; the subtle distinctions must be resolved by context.
:user-friendly: /adj./ Programmer-hostile. Generally used by hackers in a critical tone, to describe systems that hold the user's hand so obsessively that they make it painful for the more experienced and knowledgeable to get any work done. See {menuitis}, {drool-proof paper}, {Macintrash}, {user-obsequious}.
:user-obsequious: /adj./ Emphatic form of {user-friendly}. Connotes a system so verbose, inflexible, and determinedly simple-minded that it is nearly unusable. "Design a system any fool can use and only a fool will want to use it." See {WIMP environment}, {Macintrash}.
:USG Unix: /U-S-G yoo'niks/ /n./ Refers to AT&T Unix commercial versions after {Version 7}, especially System III and System V releases 1, 2, and 3. So called because during most of the lifespan of those versions AT&T's support crew was called the `Unix Support Group'. See {BSD}, {{Unix}}.
:UTSL: // /n./ [Unix] On-line acronym for `Use the Source, Luke' (a pun on Obi-Wan Kenobi's "Use the Force, Luke!" in "Star Wars") -- analogous to {RTFS} (sense 1), but more polite. This is a common way of suggesting that someone would be better off reading the source code that supports whatever feature is causing confusion, rather than making yet another futile pass through the manuals, or broadcasting questions on Usenet that haven't attracted {wizard}s to answer them.
Once upon a time in {elder days}, everyone running Unix had source. After 1978, AT&T's policy tightened up, so this objurgation was in theory appropriately directed only at associates of some outfit with a Unix source license. In practice, bootlegs of Unix source code (made precisely for reference purposes) were so ubiquitous that one could utter it at almost anyone on the network without concern.
Nowadays, free Unix clones have become widely enough distributed that anyone can read source legally. The most widely distributed is certainly Linux, with variants of the NET/2 and 4.4BSD distributions running second. Cheap commercial Unixes with source such as BSD/OS are accelerating this trend.
:UUCPNET: /n. obs./ The store-and-forward network consisting of all the world's connected Unix machines (and others running some clone of the UUCP (Unix-to-Unix CoPy) software). Any machine reachable only via a {bang path} is on UUCPNET. This term has been rendered obsolescent by the spread of cheap Internet connections in the 1990s; the few remaining UUCP links are essentially slow channels to the Internet rather than an autonomous network. See {network address}.
= V = =====
:V7: /V'sev'en/ /n./ See {Version 7}.
:vadding: /vad'ing/ /n./ [from VAD, a permutation of ADV (i.e., {ADVENT}), used to avoid a particular {admin}'s continual search-and-destroy sweeps for the game] A leisure-time activity of certain hackers involving the covert exploration of the `secret' parts of large buildings -- basements, roofs, freight elevators, maintenance crawlways, steam tunnels, and the like. A few go so far as to learn locksmithing in order to synthesize vadding keys. The verb is `to vad' (compare {phreaking}; see also {hack}, sense 9). This term dates from the late 1970s, before which such activity was simply called `hacking'; the older usage is still prevalent at MIT.
The most extreme and dangerous form of vadding is `elevator rodeo', a.k.a. `elevator surfing', a sport played by wrasslin' down a thousand-pound elevator car with a 3-foot piece of string, and then exploiting this mastery in various stimulating ways (such as elevator hopping, shaft exploration, rat-racing, and the ever-popular drop experiments). Kids, don't try this at home! See also {hobbit} (sense 2).
:vanilla: /adj./ [from the default flavor of ice cream in the U.S.] Ordinary {flavor}, standard. When used of food, very often does not mean that the food is flavored with vanilla extract! For example, `vanilla wonton soup' means ordinary wonton soup, as opposed to hot-and-sour wonton soup. Applied to hardware and software, as in "Vanilla Version 7 Unix can't run on a vanilla 11/34." Also used to orthogonalize chip nomenclature; for instance, a 74V00 means what TI calls a 7400, as distinct from a 74LS00, etc. This word differs from {canonical} in that the latter means `default', whereas vanilla simply means `ordinary'. For example, when hackers go on a {great-wall}, hot-and-sour soup is the {canonical} soup to get (because that is what most of them usually order) even though it isn't the vanilla (wonton) soup.
:vannevar: /van'*-var/ /n./ A bogus technological prediction or a foredoomed engineering concept, esp. one that fails by implicitly assuming that technologies develop linearly, incrementally, and in isolation from one another when in fact the learning curve tends to be highly nonlinear, revolutions are common, and competition is the rule. The prototype was Vannevar Bush's prediction of `electronic brains' the size of the Empire State Building with a Niagara-Falls-equivalent cooling system for their tubes and relays, a prediction made at a time when the semiconductor effect had already been demonstrated. Other famous vannevars have included magnetic-bubble memory, LISP machines, {videotex}, and a paper from the late 1970s that computed a purported ultimate limit on areal density for ICs that was in fact less than the routine densities of 5 years later.
:vaporware: /vay'pr-weir/ /n./ Products announced far in advance of any release (which may or may not actually take place). See also {brochureware}.
:var: /veir/ or /var/ /n./ Short for `variable'. Compare {arg}, {param}.
:VAX: /vaks/ /n./ 1. [from Virtual Address eXtension] The most successful minicomputer design in industry history, possibly excepting its immediate ancestor, the PDP-11. Between its release in 1978 and its eclipse by {killer micro}s after about 1986, the VAX was probably the hacker's favorite machine of them all, esp. after the 1982 release of 4.2 BSD Unix (see {BSD}). Esp. noted for its large, assembler-programmer-friendly instruction set -- an asset that became a liability after the RISC revolution. 2. A major brand of vacuum cleaner in Britain. Cited here because its sales pitch, "Nothing sucks like a VAX!" became a sort of battle-cry of RISC partisans. It is even sometimes claimed that DEC actually entered a cross-licensing deal with the vacuum-Vax people that allowed them to market VAX computers in the U.K. in return for not challenging the vacuum cleaner trademark in the U.S.
A rival brand actually pioneered the slogan: its original form was "Nothing sucks like Electrolux". It has apparently become a classic example (used in advertising textbooks) of the perils of not knowing the local idiom. But in 1996, the press manager of Electrolux AB, while confirming that the company used this slogan in the late 1960s, also tells us that their marketing people were fully aware of the possible double entendre and intended it to gain attention.
And gain attention it did -- the VAX-vacuum-cleaner people thought the slogan a sufficiently good idea to copy it. Several British hackers report that VAX's promotions used it in 1986--1987, and we have one report from a New Zealander that the infamous slogan surfaced there in TV ads for the product in 1992.
:VAXectomy: /vak-sek't*-mee/ /n./ [by analogy with `vasectomy'] A VAX removal. DEC's Microvaxen, especially, are much slower than newer RISC-based workstations such as the SPARC. Thus, if one knows one has a replacement coming, VAX removal can be cause for celebration.
:VAXen: /vak'sn/ /n./ [from `oxen', perhaps influenced by `vixen'] (alt. `vaxen') The plural canonically used among hackers for the DEC VAX computers. "Our installation has four PDP-10s and twenty vaxen." See {boxen}.
:vaxherd: /vaks'herd/ /n. obs./ [from `oxherd'] A VAX operator. The image is reinforced because VAXen actually did tend to come in herds, technically known as `clusters'.
:vaxism: /vak'sizm/ /n./ A piece of code that exhibits {vaxocentrism} in critical areas. Compare {PC-ism}, {unixism}.
:vaxocentrism: /vak`soh-sen'trizm/ /n./ [analogy with `ethnocentrism'] A notional disease said to afflict C programmers who persist in coding according to certain assumptions that are valid (esp. under Unix) on {VAXen} but false elsewhere. Among these are:
1. The assumption that dereferencing a null pointer is safe because it is all bits 0, and location 0 is readable and 0. Problem: this may instead cause an illegal-address trap on non-VAXen, and even on VAXen under OSes other than BSD Unix. Usually this is an implicit assumption of sloppy code (forgetting to check the pointer before using it), rather than deliberate exploitation of a misfeature.
2. The assumption that characters are signed.
3. The assumption that a pointer to any one type can freely be cast into a pointer to any other type. A stronger form of this is the assumption that all pointers are the same size and format, which means you don't have to worry about getting the casts or types correct in calls. Problem: this fails on word-oriented machines or others with multiple pointer formats.
4. The assumption that the parameters of a routine are stored in memory, on a stack, contiguously, and in strictly ascending or descending order. Problem: this fails on many RISC architectures.
5. The assumption that pointer and integer types are the same size, and that pointers can be stuffed into integer variables (and vice-versa) and drawn back out without being truncated or mangled. Problem: this fails on segmented architectures or word-oriented machines with funny pointer formats.
6. The assumption that a data type of any size may begin at any byte address in memory (for example, that you can freely construct and dereference a pointer to a word- or greater-sized object at an odd char address). Problem: this fails on many (esp. RISC) architectures better optimized for {HLL} execution speed, and can cause an illegal address fault or bus error.
7. The (related) assumption that there is no padding at the end of types and that in an array you can thus step right from the last byte of a previous component to the first byte of the next one. This is not only machine- but compiler-dependent.
8. The assumption that memory address space is globally flat and that the array reference `foo[-1]' is necessarily valid. Problem: this fails at 0, or other places on segment-addressed machines like Intel chips (yes, segmentation is universally considered a {brain-damaged} way to design machines (see {moby}), but that is a separate issue).
9. The assumption that objects can be arbitrarily large with no special considerations. Problem: this fails on segmented architectures and under non-virtual-addressing environments.
10. The assumption that the stack can be as large as memory. Problem: this fails on segmented architectures or almost anything else without virtual addressing and a paged stack.
11. The assumption that bits and addressable units within an object are ordered in the same way and that this order is a constant of nature. Problem: this fails on {big-endian} machines.
12. The assumption that it is meaningful to compare pointers to different objects not located within the same array, or to objects of different types. Problem: the former fails on segmented architectures, the latter on word-oriented machines or others with multiple pointer formats.
13. The assumption that an `int' is 32 bits, or (nearly equivalently) the assumption that `sizeof(int) == sizeof(long)'. Problem: this fails on PDP-11s, 286-based systems and even on 386 and 68000 systems under some compilers.
14. The assumption that `argv[]' is writable. Problem: this fails in many embedded-systems C environments and even under a few flavors of Unix.
Note that a programmer can validly be accused of vaxocentrism even if he or she has never seen a VAX. Some of these assumptions (esp. 2--5) were valid on the PDP-11, the original C machine, and became endemic years before the VAX. The terms `vaxocentricity' and `all-the-world's-a-VAX syndrome' have been used synonymously.
:vdiff: /vee'dif/ /v.,n./ Visual diff. The operation of finding differences between two files by {eyeball search}. The term `optical diff' has also been reported, and is sometimes more specifically used for the act of superimposing two nearly identical printouts on one another and holding them up to a light to spot differences. Though this method is poor for detecting omissions in the `rear' file, it can also be used with printouts of graphics, a claim few if any diff programs can make. See {diff}.
:veeblefester: /vee'b*l-fes`tr/ /n./ [from the "Born Loser" comix via Commodore; prob. originally from "Mad" Magazine's `Veeblefeetzer' parodies ca. 1960] Any obnoxious person engaged in the (alleged) professions of marketing or management. Antonym of {hacker}. Compare {suit}, {marketroid}.
:ventilator card: /n./ Syn. {lace card}.
:Venus flytrap: /n./ [after the insect-eating plant] See {firewall machine}.
:verbage: /ver'b*j/ /n./ A deliberate misspelling and mispronunciation of {verbiage} that assimilates it to the word `garbage'. Compare {content-free}. More pejorative than `verbiage'.
:verbiage: /n./ When the context involves a software or hardware system, this refers to {{documentation}}. This term borrows the connotations of mainstream `verbiage' to suggest that the documentation is of marginal utility and that the motives behind its production have little to do with the ostensible subject.
:Version 7: alt. V7 /vee' se'vn/ /n./ The first widely distributed version of {Unix}, released unsupported by Bell Labs in 1978. The term is used adjectivally to describe Unix features and programs that date from that release, and are thus guaranteed to be present and portable in all Unix versions (this was the standard gauge of portability before the POSIX and IEEE 1003 standards). Note that this usage does *not* derive from the release being the "seventh version of {Unix}"; research {Unix} at Bell Labs has traditionally been numbered according to the edition of the associated documentation. Indeed, only the widely-distributed Sixth and Seventh Editions are widely known as V[67]; the OS that might today be known as `V10' is instead known in full as "Tenth Edition Research Unix" or just "Tenth Edition" for short. For this reason, "V7" is often read by cognoscenti as "Seventh Edition". See {BSD}, {USG Unix}, {{Unix}}. Some old-timers impatient with commercialization and kernel bloat still maintain that V7 was the Last True Unix.
:vgrep: /vee'grep/ /v.,n./ Visual grep. The operation of finding patterns in a file optically rather than digitally (also called an `optical grep'). See {grep}; compare {vdiff}.
:vi: /V-I/, *not* /vi:/ and *never* /siks/ /n./ [from `Visual Interface'] A screen editor crufted together by Bill Joy for an early {BSD} release. Became the de facto standard Unix editor and a nearly undisputed hacker favorite outside of MIT until the rise of {EMACS} after about 1984. Tends to frustrate new users no end, as it will neither take commands while expecting input text nor vice versa, and the default setup provides no indication of which mode the editor is in (one correspondent accordingly reports that he has often heard the editor's name pronounced /vi:l/). Nevertheless it is still widely used (about half the respondents in a 1991 Usenet poll preferred it), and even EMACS fans often resort to it as a mail editor and for small editing jobs (mainly because it starts up faster than the bulkier versions of EMACS). See {holy wars}.
:videotex: /n. obs./ An electronic service offering people the privilege of paying to read the weather on their television screens instead of having somebody read it to them for free while they brush their teeth. The idea bombed everywhere it wasn't government-subsidized, because by the time videotex was practical the installed base of personal computers could hook up to timesharing services and do the things for which videotex might have been worthwhile better and cheaper. Videotex planners badly overestimated both the appeal of getting information from a computer and the cost of local intelligence at the user's end. Like the {gorilla arm} effect, this has been a cautionary tale to hackers ever since. See also {vannevar}.
:virgin: /adj./ Unused; pristine; in a known initial state. "Let's bring up a virgin system and see if it crashes again." (Esp. useful after contracting a {virus} through {SEX}.) Also, by extension, buffers and the like within a program that have not yet been used.
:virtual: /adj./ [via the technical term `virtual memory', prob. from the term `virtual image' in optics] 1. Common alternative to {logical}; often used to refer to the artificial objects (like addressable virtual memory larger than physical memory) simulated by a computer system as a convenient way to manage access to shared resources. 2. Simulated; performing the functions of something that isn't really there. An imaginative child's doll may be a virtual playmate. Oppose {real}.
:virtual Friday: /n./ (also `logical Friday') The last day before an extended weekend, if that day is not a `real' Friday. For example, the U.S. holiday Thanksgiving is always on a Thursday. The next day is often also a holiday or taken as an extra day off, in which case Wednesday of that week is a virtual Friday (and Thursday is a virtual Saturday, as is Friday). There are also `virtual Mondays' that are actually Tuesdays, after the three-day weekends associated with many national holidays in the U.S.
:virtual reality: /n./ 1. Computer simulations that use 3-D graphics and devices such as the Dataglove to allow the user to interact with the simulation. See {cyberspace}. 2. A form of network interaction incorporating aspects of role-playing games, interactive theater, improvisational comedy, and `true confessions' magazines. In a virtual reality forum (such as Usenet's alt.callahans newsgroup or the {MUD} experiments on Internet), interaction between the participants is written like a shared novel complete with scenery, `foreground characters' that may be personae utterly unlike the people who write them, and common `background characters' manipulable by all parties. The one iron law is that you may not write irreversible changes to a character without the consent of the person who `owns' it. Otherwise anything goes. See {bamf}, {cyberspace}, {teledildonics}.
:virtual shredder: /n./ The jargonic equivalent of the {bit bucket} at shops using IBM's VM/CMS operating system. VM/CMS officially supports a whole bestiary of virtual card readers, virtual printers, and other phantom devices; these are used to supply some of the same capabilities Unix gets from pipes and I/O redirection.
:virus: /n./ [from the obvious analogy with biological viruses, via SF] A cracker program that searches out other programs and `infects' them by embedding a copy of itself in them, so that they become {Trojan horse}s. When these programs are executed, the embedded virus is executed too, thus propagating the `infection'. This normally happens invisibly to the user. Unlike a {worm}, a virus cannot infect other computers without assistance. It is propagated by vectors such as humans trading programs with their friends (see {SEX}). The virus may do nothing but propagate itself and then allow the program to run normally. Usually, however, after propagating silently for a while, it starts doing things like writing cute messages on the terminal or playing strange tricks with the display (some viruses include nice {display hack}s). Many nasty viruses, written by particularly perversely minded {cracker}s, do irreversible damage, like nuking all the user's files.
In the 1990s, viruses have become a serious problem, especially among IBM PC and Macintosh users (the lack of security on these machines enables viruses to spread easily, even infecting the operating system). The production of special anti-virus software has become an industry, and a number of exaggerated media reports have caused outbreaks of near hysteria among users; many {luser}s tend to blame *everything* that doesn't work as they had expected on virus attacks. Accordingly, this sense of `virus' has passed not only into techspeak but into also popular usage (where it is often incorrectly used to denote a {worm} or even a {Trojan horse}). See {phage}; compare {back door}; see also {Unix conspiracy}.
:visionary: /n./ 1. One who hacks vision, in the sense of an Artificial Intelligence researcher working on the problem of getting computers to `see' things using TV cameras. (There isn't any problem in sending information from a TV camera to a computer. The problem is, how can the computer be programmed to make use of the camera information? See {SMOP}, {AI-complete}.) 2. [IBM] One who reads the outside literature. At IBM, apparently, such a penchant is viewed with awe and wonder.
:VMS: /V-M-S/ /n./ DEC's proprietary operating system for its VAX minicomputer; one of the seven or so environments that loom largest in hacker folklore. Many Unix fans generously concede that VMS would probably be the hacker's favorite commercial OS if Unix didn't exist; though true, this makes VMS fans furious. One major hacker gripe with VMS concerns its slowness -- thus the following limerick:
There once was a system called VMS Of cycles by no means abstemious. It's chock-full of hacks And runs on a VAX And makes my poor stomach all squeamious. -- The Great Quux
See also {VAX}, {{TOPS-10}}, {{TOPS-20}}, {{Unix}}, {runic}.
:voice: /vt./ To phone someone, as opposed to emailing them or connecting in {talk mode}. "I'm busy now; I'll voice you later."
:voice-net: /n./ Hackish way of referring to the telephone system, analogizing it to a digital network. Usenet {sig block}s not uncommonly include the sender's phone next to a "Voice:" or "Voice-Net:" header; common variants of this are "Voicenet" and "V-Net". Compare {paper-net}, {snail-mail}.
:voodoo programming: /n./ [from George Bush's "voodoo economics"] The use by guess or cookbook of an {obscure} or {hairy} system, feature, or algorithm that one does not truly understand. The implication is that the technique may not work, and if it doesn't, one will never know why. Almost synonymous with {black magic}, except that black magic typically isn't documented and *nobody* understands it. Compare {magic}, {deep magic}, {heavy wizardry}, {rain dance}, {cargo cult programming}, {wave a dead chicken}.
:VR: // [MUD] /n./ On-line abbrev for {virtual reality}, as opposed to {RL}.
:Vulcan nerve pinch: /n./ [from the old "Star Trek" TV series via Commodore Amiga hackers] The keyboard combination that forces a soft-boot or jump to ROM monitor (on machines that support such a feature). On many micros this is Ctrl-Alt-Del; on Suns, L1-A; on some Macintoshes, it is <Cmd>-<Power switch>! Also called {three-finger salute}. Compare {quadruple bucky}.
:vulture capitalist: /n./ Pejorative hackerism for `venture capitalist', deriving from the common practice of pushing contracts that deprive inventors of control over their own innovations and most of the money they ought to have made from them.
= W = =====
:wabbit: /wab'it/ /n./ [almost certainly from Elmer Fudd's immortal line "You wascawwy wabbit!"] 1. A legendary early hack reported on a System/360 at RPI and elsewhere around 1978; this may have descended (if only by inspiration) from a hack called RABBITS reported from 1969 on a Burroughs 5500 at the University of Washington Computer Center. The program would make two copies of itself every time it was run, eventually crashing the system. 2. By extension, any hack that includes infinite self-replication but is not a {virus} or {worm}. See {fork bomb} and {rabbit job}, see also {cookie monster}.
:WAITS:: /wayts/ /n./ The mutant cousin of {{TOPS-10}} used on a handful of systems at {{SAIL}} up to 1990. There was never an `official' expansion of WAITS (the name itself having been arrived at by a rather sideways process), but it was frequently glossed as `West-coast Alternative to ITS'. Though WAITS was less visible than ITS, there was frequent exchange of people and ideas between the two communities, and innovations pioneered at WAITS exerted enormous indirect influence. The early screen modes of {EMACS}, for example, were directly inspired by WAITS's `E' editor -- one of a family of editors that were the first to do `real-time editing', in which the editing commands were invisible and where one typed text at the point of insertion/overwriting. The modern style of multi-region windowing is said to have originated there, and WAITS alumni at XEROX PARC and elsewhere played major roles in the developments that led to the XEROX Star, the Macintosh, and the Sun workstations. Also invented there were {bucky bits} -- thus, the ALT key on every IBM PC is a WAITS legacy. One notable WAITS feature seldom duplicated elsewhere was a news-wire interface that allowed WAITS hackers to read, store, and filter AP and UPI dispatches from their terminals; the system also featured a still-unusual level of support for what is now called `multimedia' computing, allowing analog audio and video signals to be switched to programming terminals.
:waldo: /wol'doh/ /n./ [From Robert A. Heinlein's story "Waldo"] 1. A mechanical agent, such as a gripper arm, controlled by a human limb. When these were developed for the nuclear industry in the mid-1940s they were named after the invention described by Heinlein in the story, which he wrote in 1942. Now known by the more generic term `telefactoring', this technology is of intense interest to NASA for tasks like space station maintenance. 2. At Harvard (particularly by Tom Cheatham and students), this is used instead of {foobar} as a metasyntactic variable and general nonsense word. See {foo}, {bar}, {foobar}, {quux}.
:walk: /n.,vt./ Traversal of a data structure, especially an array or linked-list data structure in {core}. See also {codewalker}, {silly walk}, {clobber}.
:walk off the end of: /vt./ To run past the end of an array, list, or medium after stepping through it -- a good way to land in trouble. Often the result of an {off-by-one error}. Compare {clobber}, {roach}, {smash the stack}.
:walking drives: /n./ An occasional failure mode of magnetic-disk drives back in the days when they were huge, clunky {washing machine}s. Those old {dinosaur} parts carried terrific angular momentum; the combination of a misaligned spindle or worn bearings and stick-slip interactions with the floor could cause them to `walk' across a room, lurching alternate corners forward a couple of millimeters at a time. There is a legend about a drive that walked over to the only door to the computer room and jammed it shut; the staff had to cut a hole in the wall in order to get at it! Walking could also be induced by certain patterns of drive access (a fast seek across the whole width of the disk, followed by a slow seek in the other direction). Some bands of old-time hackers figured out how to induce disk-accessing patterns that would do this to particular drive models and held disk-drive races.
:wall: /interj./ [WPI] 1. An indication of confusion, usually spoken with a quizzical tone: "Wall??" 2. A request for further explication. Compare {octal forty}. 3. [Unix, from `write all'] /v./ To send a message to everyone currently logged in, esp. with the wall(8) utility.
It is said that sense 1 came from the idiom `like talking to a blank wall'. It was originally used in situations where, after you had carefully answered a question, the questioner stared at you blankly, clearly having understood nothing that was explained. You would then throw out a "Hello, wall?" to elicit some sort of response from the questioner. Later, confused questioners began voicing "Wall?" themselves.
:wall follower: /n./ A person or algorithm that compensates for lack of sophistication or native stupidity by efficiently following some simple procedure shown to have been effective in the past. Used of an algorithm, this is not necessarily pejorative; it recalls `Harvey Wallbanger', the winning robot in an early AI contest (named, of course, after the cocktail). Harvey successfully solved mazes by keeping a `finger' on one wall and running till it came out the other end. This was inelegant, but it was mathematically guaranteed to work on simply-connected mazes --- and, in fact, Harvey outperformed more sophisticated robots that tried to `learn' each maze by building an internal representation of it. Used of humans, the term *is* pejorative and implies an uncreative, bureaucratic, by-the-book mentality. See also {code grinder}; compare {droid}.
:wall time: /n./ (also `wall clock time') 1. `Real world' time (what the clock on the wall shows), as opposed to the system clock's idea of time. 2. The real running time of a program, as opposed to the number of {tick}s required to execute it (on a timesharing system these always differ, as no one program gets all the ticks, and on multiprocessor systems with good thread support one may get more processor time than real time).
:wallpaper: /n./ 1. A file containing a listing (e.g., assembly listing) or a transcript, esp. a file containing a transcript of all or part of a login session. (The idea was that the paper for such listings was essentially good only for wallpaper, as evidenced at Stanford, where it was used to cover windows.) Now rare, esp. since other systems have developed other terms for it (e.g., PHOTO on TWENEX). However, the Unix world doesn't have an equivalent term, so perhaps {wallpaper} will take hold there. The term probably originated on ITS, where the commands to begin and end transcript files were `:WALBEG' and `:WALEND', with default file `WALL PAPER' (the space was a path delimiter). 2. The background pattern used on graphical workstations (this is techspeak under the `Windows' graphical user interface to MS-DOS). 3. `wallpaper file' /n./ The file that contains the wallpaper information before it is actually printed on paper. (Even if you don't intend ever to produce a real paper copy of the file, it is still called a wallpaper file.)
:wango: /wang'goh/ /n./ Random bit-level {grovel}ling going on in a system during some unspecified operation. Often used in combination with {mumble}. For example: "You start with the `.o' file, run it through this postprocessor that does mumble-wango -- and it comes out a snazzy object-oriented executable."
:wank: /wangk/ /n.,v.,adj./ [Columbia University: prob. by mutation from Commonwealth slang /v./ `wank', to masturbate] Used much as {hack} is elsewhere, as a noun denoting a clever technique or person or the result of such cleverness. May describe (negatively) the act of hacking for hacking's sake ("Quit wanking, let's go get supper!") or (more positively) a {wizard}. Adj. `wanky' describes something particularly clever (a person, program, or algorithm). Conversations can also get wanky when there are too many wanks involved. This excess wankiness is signalled by an overload of the `wankometer' (compare {bogometer}). When the wankometer overloads, the conversation's subject must be changed, or all non-wanks will leave. Compare `neep-neeping' (under {neep-neep}). Usage: U.S. only. In Britain and the Commonwealth this word is *extremely* rude and is best avoided unless one intends to give offense.
:wannabee: /won'*-bee/ /n./ (also, more plausibly, spelled `wannabe') [from a term recently used to describe Madonna fans who dress, talk, and act like their idol; prob. originally from biker slang] A would-be {hacker}. The connotations of this term differ sharply depending on the age and exposure of the subject. Used of a person who is in or might be entering {larval stage}, it is semi-approving; such wannabees can be annoying but most hackers remember that they, too, were once such creatures. When used of any professional programmer, CS academic, writer, or {suit}, it is derogatory, implying that said person is trying to cuddle up to the hacker mystique but doesn't, fundamentally, have a prayer of understanding what it is all about. Overuse of terms from this lexicon is often an indication of the {wannabee} nature. Compare {newbie}.
Historical note: The wannabee phenomenon has a slightly different flavor now (1993) than it did ten or fifteen years ago. When the people who are now hackerdom's tribal elders were in {larval stage}, the process of becoming a hacker was largely unconscious and unaffected by models known in popular culture -- communities formed spontaneously around people who, *as individuals*, felt irresistibly drawn to do hackerly things, and what wannabees experienced was a fairly pure, skill-focused desire to become similarly wizardly. Those days of innocence are gone forever; society's adaptation to the advent of the microcomputer after 1980 included the elevation of the hacker as a new kind of folk hero, and the result is that some people semi-consciously set out to *be hackers* and borrow hackish prestige by fitting the popular image of hackers. Fortunately, to do this really well, one has to actually become a wizard. Nevertheless, old-time hackers tend to share a poorly articulated disquiet about the change; among other things, it gives them mixed feelings about the effects of public compendia of lore like this one.
:war dialer: /n./ A cracking tool, a program that calls a given list or range of phone numbers and records those which answer with handshake tones (and so might be entry points to computer or telecommunications systems). Some of these programs have become quite sophisticated, and can now detect modem, fax, or PBX tones and log each one separately. The war dialer is one of the most important tools in the {phreaker}'s kit. These programs evolved from early {demon dialer}s.
:warez: /weirz/ /n./ Widely used in {cracker} subcultures to denote cracked version of commercial software, that is versions from which copy-protection has been stripped. Hackers recognize this term but don't use it themselves. See {warez d00dz}.
:warez d00dz: /weirz doodz/ /n./ A substantial subculture of {cracker}s refer to themselves as `warez d00dz'; there is evidently some connection with {B1FF} here. As `Ozone Pilot', one former warez d00d, wrote:
Warez d00dz get illegal copies of copyrighted software. If it has copy protection on it, they break the protection so the software can be copied. Then they distribute it around the world via several gateways. Warez d00dz form badass group names like RAZOR and the like. They put up boards that distribute the latest ware, or pirate program. The whole point of the Warez sub-culture is to get the pirate program released and distributed before any other group. I know, I know. But don't ask, and it won't hurt as much. This is how they prove their poweress [sic]. It gives them the right to say, "I released King's Quest IVXIX before you so obviously my testicles are larger." Again don't ask...
The studly thing to do if one is a warez d00d, it appears, is emit `0-day warez', that is copies of commercial software copied and cracked on the same day as its retail release. Warez d00ds also hoard software in a big way, collecting untold megabytes of arcade-style games, pornographic GIFs, and applications they'll never use onto their hard disks. As Ozone Pilot acutely observes:
[BELONG] is the only word you will need to know. Warez d00dz want to belong. They have been shunned by everyone, and thus turn to cyberspace for acceptance. That is why they always start groups like TGW, FLT, USA and the like. Structure makes them happy. [...] Warez d00dz will never have a handle like "Pink Daisy" because warez d00dz are insecure. Only someone who is very secure with a good dose of self-esteem can stand up to the cries of fag and girlie-man. More likely you will find warez d00dz with handles like: Doctor Death, Deranged Lunatic, Hellraiser, Mad Prince, Dreamdevil, The Unknown, Renegade Chemist, Terminator, and Twin Turbo. They like to sound badass when they can hide behind their terminals. More likely, if you were given a sample of 100 people, the person whose handle is Hellraiser is the last person you'd associate with the name.
The contrast with Internet hackers is stark and instructive. See {cracker}, {wannabee}, {handle}, {elite}; compare {weenie}, {spod}.
:warlording: /v./ [from the Usenet group alt.fan.warlord] The act of excoriating a bloated, ugly, or derivative {sig block}. Common grounds for warlording include the presence of a signature rendered in a {BUAF}, over-used or cliched {sig quote}s, ugly {ASCII art}, or simply excessive size. The original `Warlord' was a {B1FF}-like {newbie} c.1991 who featured in his sig a particularly large and obnoxious ASCII graphic resembling the sword of Conan the Barbarian in the 1981 John Milius movie; the group name alt.fan.warlord was sarcasm, and the characteristic mode of warlording is devastatingly sarcastic praise.
:warm boot: /n./ See {boot}.
:wart: /n./ A small, {crock}y {feature} that sticks out of an otherwise {clean} design. Something conspicuous for localized ugliness, especially a special-case exception to a general rule. For example, in some versions of `csh(1)', single quotes literalize every character inside them except `!'. In ANSI C, the `??' syntax used for obtaining ASCII characters in a foreign environment is a wart. See also {miswart}.
:washing machine: /n./ 1. Old-style 14-inch hard disks in floor-standing cabinets. So called because of the size of the cabinet and the `top-loading' access to the media packs -- and, of course, they were always set on `spin cycle'. The washing-machine idiom transcends language barriers; it is even used in Russian hacker jargon. See also {walking drives}. The thick channel cables connecting these were called `bit hoses' (see {hose}, sense 3). 2. [CMU] A machine used exclusively for {washing software}. CMU has clusters of these.
:washing software: /n./ The process of recompiling a software distribution (used more often when the recompilation is occuring from scratch) to pick up and merge together all of the various changes that have been made to the source.
:water MIPS: /n./ (see {MIPS}, sense 2) Large, water-cooled machines of either today's ECL-supercomputer flavor or yesterday's traditional {mainframe} type.
:wave a dead chicken: /v./ To perform a ritual in the direction of crashed software or hardware that one believes to be futile but is nevertheless necessary so that others are satisfied that an appropriate degree of effort has been expended. "I'll wave a dead chicken over the source code, but I really think we've run into an OS bug." Compare {voodoo programming}, {rain dance}.
:weasel: /n./ [Cambridge] A naive user, one who deliberately or accidentally does things that are stupid or ill-advised. Roughly synonymous with {loser}.
:web pointer: /n./ A World Wide Web {URL}. See also {hotlink}, which has slightly different connotations.
:webmaster: /n./ [WWW: from {postmaster}] The person at a site providing World Wide Web information who is responsible for maintaining the public pages and keeping the Web server running and properly configured.
:wedged: /adj./ 1. To be stuck, incapable of proceeding without help. This is different from having crashed. If the system has crashed, it has become totally non-functioning. If the system is wedged, it is trying to do something but cannot make progress; it may be capable of doing a few things, but not be fully operational. For example, a process may become wedged if it {deadlock}s with another (but not all instances of wedging are deadlocks). See also {gronk}, {locked up}, {hosed}. 2. Often refers to humans suffering misconceptions. "He's totally wedged -- he's convinced that he can levitate through meditation." 3. [Unix] Specifically used to describe the state of a TTY left in a losing state by abort of a screen-oriented program or one that has messed with the line discipline in some obscure way.
There is some dispute over the origin of this term. It is usually thought to derive from a common description of recto-cranial inversion; however, it may actually have originated with older `hot-press' printing technology in which physical type elements were locked into type frames with wedges driven in by mallets. Once this had been done, no changes in the typesetting for that page could be made.
:wedgie: /n./ [Fairchild] A bug. Prob. related to {wedged}.
:wedgitude: /wedj'i-t[y]ood/ /n./ The quality or state of being {wedged}.
:weeble: /weeb'l/ /interj./ [Cambridge] Used to denote frustration, usually at amazing stupidity. "I stuck the disk in upside down." "Weeble...." Compare {gurfle}.
:weeds: /n./ 1. Refers to development projects or algorithms that have no possible relevance or practical application. Comes from `off in the weeds'. Used in phrases like "lexical analysis for microcode is serious weeds...." 2. At CDC/ETA before its demise, the phrase `go off in the weeds' was equivalent to IBM's {branch to Fishkill} and mainstream hackerdom's {jump off into never-never land}.
:weenie: /n./ 1. [on BBSes] Any of a species of luser resembling a less amusing version of {B1FF} that infests many {BBS} systems. The typical weenie is a teenage boy with poor social skills travelling under a grandiose {handle} derived from fantasy or heavy-metal rock lyrics. Among sysops, `the weenie problem' refers to the marginally literate and profanity-laden {flamage} weenies tend to spew all over a newly-discovered BBS. Compare {spod}, {computer geek}, {terminal junkie}, {warez d00dz}. 2. [Among hackers] When used with a qualifier (for example, as in {Unix weenie}, VMS weenie, IBM weenie) this can be either an insult or a term of praise, depending on context, tone of voice, and whether or not it is applied by a person who considers him or herself to be the same sort of weenie. Implies that the weenie has put a major investment of time, effort, and concentration into the area indicated; whether this is good or bad depends on the hearer's judgment of how the speaker feels about that area. See also {bigot}. 3. The semicolon character, `;' (ASCII 0111011).
:Weenix: /wee'niks/ /n./ [ITS] A derogatory term for {{Unix}}, derived from {Unix weenie}. According to one noted ex-ITSer, it is "the operating system preferred by Unix Weenies: typified by poor modularity, poor reliability, hard file deletion, no file version numbers, case sensitivity everywhere, and users who believe that these are all advantages". (Some ITS fans behave as though they believe Unix stole a future that rightfully belonged to them. See {{ITS}}, sense 2.)
:well-behaved: /adj./ 1. [primarily {{MS-DOS}}] Said of software conforming to system interface guidelines and standards. Well-behaved software uses the operating system to do chores such as keyboard input, allocating memory and drawing graphics. Oppose {ill-behaved}. 2. Software that does its job quietly and without counterintuitive effects. Esp. said of software having an interface spec sufficiently simple and well-defined that it can be used as a {tool} by other software. See {cat}.
:well-connected: /adj./ Said of a computer installation, asserts that it has reliable email links with the network and/or that it relays a large fraction of available {Usenet} newsgroups. `Well-known' can be almost synonymous, but also implies that the site's name is familiar to many (due perhaps to an archive service or active Usenet users).
:wetware: /wet'weir/ /n./ [prob. from the novels of Rudy Rucker] 1. The human nervous system, as opposed to computer hardware or software. "Wetware has 7 plus or minus 2 temporary registers." 2. Human beings (programmers, operators, administrators) attached to a computer system, as opposed to the system's hardware or software. See {liveware}, {meatware}.
:whack: /v./ According to arch-hacker James Gosling (designer of {NeWS}, {GOSMACS} and Java), to "...modify a program with no idea whatsoever how it works." (See {whacker}.) It is actually possible to do this in nontrivial circumstances if the change is small and well-defined and you are very good at {glark}ing things from context. As a trivial example, it is relatively easy to change all `stderr' writes to `stdout' writes in a piece of C filter code which remains otherwise mysterious.
:whacker: /n./ [University of Maryland: from {hacker}] 1. A person, similar to a {hacker}, who enjoys exploring the details of programmable systems and how to stretch their capabilities. Whereas a hacker tends to produce great hacks, a whacker only ends up whacking the system or program in question. Whackers are often quite egotistical and eager to claim {wizard} status, regardless of the views of their peers. 2. A person who is good at programming quickly, though rather poorly and ineptly.
:whales: /n./ See {like kicking dead whales down the beach}.
:whalesong: /n./ The peculiar clicking and whooshing sounds made by a PEP modem such as the Telebit Trailblazer as it tries to synchronize with another PEP modem for their special high-speed mode. This sound isn't anything like the normal two-tone handshake between conventional V-series modems and is instantly recognizable to anyone who has heard it more than once. It sounds, in fact, very much like whale songs. This noise is also called "the moose call" or "moose tones".
:What's a spline?: [XEROX PARC] This phrase expands to: "You have just used a term that I've heard for a year and a half, and I feel I should know, but don't. My curiosity has finally overcome my guilt." The PARC lexicon adds "Moral: don't hesitate to ask questions, even if they seem obvious."
:wheel: /n./ [from slang `big wheel' for a powerful person] A person who has an active {wheel bit}. "We need to find a wheel to unwedge the hung tape drives." (See {wedged}, sense 1.) The traditional name of security group zero in {BSD} (to which the major system-internal users like {root} belong) is `wheel'. Some vendors have expanded on this usage, modifying Unix so that only members of group `wheel' can {go root}.
:wheel bit: /n./ A privilege bit that allows the possessor to perform some restricted operation on a timesharing system, such as read or write any file on the system regardless of protections, change or look at any address in the running monitor, crash or reload the system, and kill or create jobs and user accounts. The term was invented on the TENEX operating system, and carried over to TOPS-20, XEROX-IFS, and others. The state of being in a privileged logon is sometimes called `wheel mode'. This term entered the Unix culture from TWENEX in the mid-1980s and has been gaining popularity there (esp. at university sites). See also {root}.
:wheel wars: /n./ [Stanford University] A period in {larval stage} during which student hackers hassle each other by attempting to log each other out of the system, delete each other's files, and otherwise wreak havoc, usually at the expense of the lesser users.
:White Book: /n./ 1. Syn. {K&R}. 2. Adobe's fourth book in the PostScript series, describing the previously-secret format of Type 1 fonts; "Adobe Type 1 Font Format, version 1.1", (Addison-Wesley, 1990, ISBN 0-201-57044-0). See also {Red Book}, {Green Book}, {Blue Book}.
:whizzy: /adj./ (alt. `wizzy') [Sun] Describes a {cuspy} program; one that is feature-rich and well presented.
:wibble: [UK] 1. /n.,v./ Commonly used to describe chatter, content-free remarks or other essentially meaningless contributions to threads in newsgroups. "Oh, rspence is wibbling again". Compare {humma}. 2. One of the preferred {metasyntactic variable}s in the UK, forming a series with `wobble', `wubble', and `flob' (attributed to the hilarious historical comedy "Blackadder").
:WIBNI: // /n./ [Bell Labs: Wouldn't It Be Nice If] What most requirements documents and specifications consist entirely of. Compare {IWBNI}.
:widget: /n./ 1. A meta-thing. Used to stand for a real object in didactic examples (especially database tutorials). Legend has it that the original widgets were holders for buggy whips. "But suppose the parts list for a widget has 52 entries...." 2. [poss. evoking `window gadget'] A user interface object in {X} graphical user interfaces.
:wiggles: /n./ [scientific computation] In solving partial differential equations by finite difference and similar methods, wiggles are sawtooth (up-down-up-down) oscillations at the shortest wavelength representable on the grid. If an algorithm is unstable, this is often the most unstable waveform, so it grows to dominate the solution. Alternatively, stable (though inaccurate) wiggles can be generated near a discontinuity by a Gibbs phenomenon.
:WIMP environment: /n./ [acronym: `Window, Icon, Menu, Pointing device (or Pull-down menu)'] A graphical-user-interface environment such as {X} or the Macintosh interface, esp. as described by a hacker who prefers command-line interfaces for their superior flexibility and extensibility. However, it is also used without negative connotations; one must pay attention to voice tone and other signals to interpret correctly. See {menuitis}, {user-obsequious}.
:win: [MIT] 1. /vi./ To succeed. A program wins if no unexpected conditions arise, or (especially) if it sufficiently {robust} to take exceptions in stride. 2. /n./ Success, or a specific instance thereof. A pleasing outcome. "So it turned out I could use a {lexer} generator instead of hand-coding my own pattern recognizer. What a win!" Emphatic forms: `moby win', `super win', `hyper-win' (often used interjectively as a reply). For some reason `suitable win' is also common at MIT, usually in reference to a satisfactory solution to a problem. Oppose {lose}; see also {big win}, which isn't quite just an intensification of `win'.
:win big: /vi./ To experience serendipity. "I went shopping and won big; there was a 2-for-1 sale." See {big win}.
:win win: /excl./ Expresses pleasure at a {win}.
:Winchester:: /n./ Informal generic term for sealed-enclosure magnetic-disk drives in which the read-write head planes over the disk surface on an air cushion. There is a legend that the name arose because the original 1973 engineering prototype for what later became the IBM 3340 featured two 30-megabyte volumes; 30--30 became `Winchester' when somebody noticed the similarity to the common term for a famous Winchester rifle (in the latter, the first 30 referred to caliber and the second to the grain weight of the charge). Others claim, however, that Winchester was simply the laboratory in which the technology was developed.
:windoid: /n./ In the Macintosh world, a style of window with much less adornment (smaller or missing title bar, zoom box, etc, etc) than a standard window.
:window shopping: /n./ [US Geological Survey] Among users of {WIMP environment}s like {X} or the Macintosh, extended experimentation with new window colors, fonts, and icon shapes. This activity can take up hours of what might otherwise have been productive working time. "I spent the afternoon window shopping until I found the coolest shade of green for my active window borders -- now they perfectly match my medium slate blue background." Serious window shoppers will spend their days with bitmap editors, creating new and different icons and background patterns for all to see. Also: `window dressing', the act of applying new fonts, colors, etc. See {fritterware}, compare {macdink}.
:Windoze: /win'dohz/ /n./ See {Microsloth Windows}.
:winged comments: /n./ Comments set on the same line as code, as opposed to {boxed comments}. In C, for example:
d = sqrt(x*x + y*y); /* distance from origin */
Generally these refer only to the action(s) taken on that line.
:winkey: /n./ (alt. `winkey face') See {emoticon}.
:winnage: /win'*j/ /n./ The situation when a lossage is corrected, or when something is winning.
:winner: 1. /n./ An unexpectedly good situation, program, programmer, or person. 2. `real winner': Often sarcastic, but also used as high praise (see also the note under {user}). "He's a real winner -- never reports a bug till he can duplicate it and send in an example."
:winnitude: /win'*-t[y]ood/ /n./ The quality of winning (as opposed to {winnage}, which is the result of winning). "Guess what? They tweaked the microcode and now the LISP interpreter runs twice as fast as it used to." "That's really great! Boy, what winnitude!" "Yup. I'll probably get a half-hour's winnage on the next run of my program." Perhaps curiously, the obvious antonym `lossitude' is rare.
:wired: /n./ See {hardwired}.
:wirehead: /wi:r'hed/ /n./ [prob. from SF slang for an electrical-brain-stimulation addict] 1. A hardware hacker, especially one who concentrates on communications hardware. 2. An expert in local-area networks. A wirehead can be a network software wizard too, but will always have the ability to deal with network hardware, down to the smallest component. Wireheads are known for their ability to lash up an Ethernet terminator from spare resistors, for example.
:wirewater: /n./ Syn. {programming fluid}. This melds the mainstream slang adjective `wired' (stimulated, up, hyperactive) with `firewater'; however, it refers to caffeinacious rather than alcoholic beverages.
:wish list: /n./ A list of desired features or bug fixes that probably won't get done for a long time, usually because the person responsible for the code is too busy or can't think of a clean way to do it. "OK, I'll add automatic filename completion to the wish list for the new interface." Compare {tick-list features}.
:within delta of: /adj./ See {delta}.
:within epsilon of: /adj./ See {epsilon}.
:wizard: /n./ 1. A person who knows how a complex piece of software or hardware works (that is, who {grok}s it); esp. someone who can find and fix bugs quickly in an emergency. Someone is a {hacker} if he or she has general hacking ability, but is a wizard with respect to something only if he or she has specific detailed knowledge of that thing. A good hacker could become a wizard for something given the time to study it. 2. A person who is permitted to do things forbidden to ordinary people; one who has {wheel} privileges on a system. 3. A Unix expert, esp. a Unix systems programmer. This usage is well enough established that `Unix Wizard' is a recognized job title at some corporations and to most headhunters. See {guru}, {lord high fixer}. See also {deep magic}, {heavy wizardry}, {incantation}, {magic}, {mutter}, {rain dance}, {voodoo programming}, {wave a dead chicken}.
:Wizard Book: /n./ "Structure and Interpretation of Computer Programs" (Hal Abelson, Jerry Sussman and Julie Sussman; MIT Press, 1984, 1996; ISBN 0-262-01153-0), an excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the {bible}s of the LISP/Scheme world. Also, less commonly, known as the {Purple Book}.
:wizard mode: /n./ [from {rogue}] A special access mode of a program or system, usually passworded, that permits some users godlike privileges. Generally not used for operating systems themselves (`root mode' or `wheel mode' would be used instead). This term is often used with respect to games that have editable state.
:wizardly: /adj./ Pertaining to wizards. A wizardly {feature} is one that only a wizard could understand or use properly.
:wok-on-the-wall: /n./ A small microwave dish antenna used for cross-campus private network circuits, from the obvious resemblance between a microwave dish and the Chinese culinary utensil.
:womb box: /n./ 1. [TMRC] Storage space for equipment. 2. [proposed] A variety of hard-shell equipment case with heavy interior padding and/or shaped carrier cutouts in a foam-rubber matrix; mundanely called a `flight case'. Used for delicate test equipment, electronics, and musical instruments.
:WOMBAT: /wom'bat/ /adj./ [acronym: Waste Of Money, Brains, And Time] Applied to problems which are both profoundly {uninteresting} in themselves and unlikely to benefit anyone interesting even if solved. Often used in fanciful constructions such as `wrestling with a wombat'. See also {crawling horror}, {SMOP}. Also note the rather different usage as a metasyntactic variable in {{Commonwealth Hackish}}.
Users of the PDP-11 database program DATATRIEVE adopted the wombat as their notional mascot; the program's help file responded to "HELP WOMBAT" with factual information about Real World wombats.
:wonky: /wong'kee/ /adj./ [from Australian slang] Yet another approximate synonym for {broken}. Specifically connotes a malfunction that produces behavior seen as crazy, humorous, or amusingly perverse. "That was the day the printer's font logic went wonky and everybody's listings came out in Tengwar." Also in `wonked out'. See {funky}, {demented}, {bozotic}.
:woofer: /n./ [University of Waterloo] Some varieties of wide paper for printers have a perforation 8.5 inches from the left margin that allows the excess on the right-hand side to be torn off when the print format is 80 columns or less wide. The right-hand excess may be called `woofer'. This term (like {tweeter}) has been in use at Waterloo since 1972, but is elsewhere unknown. In audio jargon, the word refers to the bass speaker(s) on a hi-fi.
:workaround: /n./ 1. A temporary {kluge} used to bypass, mask, or otherwise avoid a {bug} or {misfeature} in some system. Theoretically, workarounds are always replaced by {fix}es; in practice, customers often find themselves living with workarounds for long periods of time. "The code died on NUL characters in the input, so I fixed it to interpret them as spaces." "That's not a fix, that's a workaround!" 2. A procedure to be employed by the user in order to do what some currently non-working feature should do. Hypothetical example: "Using META-F7 {crash}es the 4.43 build of Weemax, but as a workaround you can type CTRL-R, then SHIFT-F5, and delete the remaining {cruft} by hand."
:working as designed: /adj./ [IBM] 1. In conformance to a wrong or inappropriate specification; useful, but misdesigned. 2. Frequently used as a sardonic comment on a program's utility. 3. Unfortunately also used as a bogus reason for not accepting a criticism or suggestion. At {IBM}, this sense is used in official documents! See {BAD}.
:worm: /n./ [from `tapeworm' in John Brunner's novel "The Shockwave Rider", via XEROX PARC] A program that propagates itself over a network, reproducing itself as it goes. Compare {virus}. Nowadays the term has negative connotations, as it is assumed that only {cracker}s write worms. Perhaps the best-known example was Robert T. Morris's `Internet Worm' of 1988, a `benign' one that got out of control and hogged hundreds of Suns and VAXen across the U.S. See also {cracker}, {RTM}, {Trojan horse}, {ice}, and {Great Worm, the}.
:wormhole: /werm'hohl/ /n./ [from the `wormhole' singularities hypothesized in some versions of General Relativity theory] 1. obs. A location in a monitor which contains the address of a routine, with the specific intent of making it easy to substitute a different routine. This term is now obsolescent; modern operating systems use clusters of wormholes extensively (for modularization of I/O handling in particular, as in the Unix device-driver organization) but the preferred techspeak for these clusters is `device tables', `jump tables' or `capability tables'. 2. [Amateur Packet Radio] A network path using a commercial satellite link to join two or more amateur VHF networks. So called because traffic routed through a wormhole leaves and re-enters the amateur network over great distances with usually little clue in the message routing header as to how it got from one relay to the other. Compare {gopher hole} (sense 2).
:wound around the axle: /adj./ In an infinite loop. Often used by older computer types.
:wrap around: /vi./ (also /n./ `wraparound' and /v./ shorthand `wrap') 1. [techspeak] The action of a counter that starts over at zero or at `minus infinity' (see {infinity}) after its maximum value has been reached, and continues incrementing, either because it is programmed to do so or because of an overflow (as when a car's odometer starts over at 0). 2. To change {phase} gradually and continuously by maintaining a steady wake-sleep cycle somewhat longer than 24 hours, e.g., living six long (28-hour) days in a week (or, equivalently, sleeping at the rate of 10 microhertz). This sense is also called {phase-wrapping}.
:write-only code: /n./ [a play on `read-only memory'] Code so arcane, complex, or ill-structured that it cannot be modified or even comprehended by anyone but its author, and possibly not even by him/her. A {Bad Thing}.
:write-only language: /n./ A language with syntax (or semantics) sufficiently dense and bizarre that any routine of significant size is automatically {write-only code}. A sobriquet applied occasionally to C and often to APL, though {INTERCAL} and {TECO} certainly deserve it more.
:write-only memory: /n./ The obvious antonym to `read-only memory'. Out of frustration with the long and seemingly useless chain of approvals required of component specifications, during which no actual checking seemed to occur, an engineer at Signetics once created a specification for a write-only memory and included it with a bunch of other specifications to be approved. This inclusion came to the attention of Signetics {management} only when regular customers started calling and asking for pricing information. Signetics published a corrected edition of the data book and requested the return of the `erroneous' ones. Later, around 1974, Signetics bought a double-page spread in "Electronics" magazine's April issue and used the spec as an April Fools' Day joke. Instead of the more conventional characteristic curves, the 25120 "fully encoded, 9046 x N, Random Access, write-only-memory" data sheet included diagrams of "bit capacity vs. Temp.", "Iff vs. Vff", "Number of pins remaining vs. number of socket insertions", and "AQL vs. selling price". The 25120 required a 6.3 VAC VFF supply, a +10V VCC, and VDD of 0V, +/- 2%.
:Wrong Thing: /n./ A design, action, or decision that is clearly incorrect or inappropriate. Often capitalized; always emphasized in speech as if capitalized. The opposite of the {Right Thing}; more generally, anything that is not the Right Thing. In cases where `the good is the enemy of the best', the merely good -- although good -- is nevertheless the Wrong Thing. "In C, the default is for module-level declarations to be visible everywhere, rather than just within the module. This is clearly the Wrong Thing."
:wugga wugga: /wuh'g* wuh'g*/ /n./ Imaginary sound that a computer program makes as it labors with a tedious or difficult task. Compare {cruncha cruncha cruncha}, {grind} (sense 4).
:wumpus: /wuhm'p*s/ /n./ The central monster (and, in many versions, the name) of a famous family of very early computer games called "Hunt The Wumpus", dating back at least to 1972 (several years before {ADVENT}) on the Dartmouth Time-Sharing System. The wumpus lived somewhere in a cave with the topology of an dodecahedron's edge/vertex graph (later versions supported other topologies, including an icosahedron and M"obius strip). The player started somewhere at random in the cave with five `crooked arrows'; these could be shot through up to three connected rooms, and would kill the wumpus on a hit (later versions introduced the wounded wumpus, which got very angry). Unfortunately for players, the movement necessary to map the maze was made hazardous not merely by the wumpus (which would eat you if you stepped on him) but also by bottomless pits and colonies of super bats that would pick you up and drop you at a random location (later versions added `anaerobic termites' that ate arrows, bat migrations, and earthquakes that randomly changed pit locations).
This game appears to have been the first to use a non-random graph-structured map (as opposed to a rectangular grid like the even older Star Trek games). In this respect, as in the dungeon-like setting and its terse, amusing messages, it prefigured {ADVENT} and {Zork} and was directly ancestral to the latter (Zork acknowledged this heritage by including a super-bat colony). Today, a port is distributed with SunOS and as freeware for the Mac. A C emulation of the original Basic game is available at the Retrocomputing Museum, http://www.ccil.org/retro.
:WYSIAYG: /wiz'ee-ayg/ /adj./ Describes a user interface under which "What You See Is *All* You Get"; an unhappy variant of {WYSIWYG}. Visual, `point-and-shoot'-style interfaces tend to have easy initial learning curves, but also to lack depth; they often frustrate advanced users who would be better served by a command-style interface. When this happens, the frustrated user has a WYSIAYG problem. This term is most often used of editors, word processors, and document formatting programs. WYSIWYG `desktop publishing' programs, for example, are a clear win for creating small documents with lots of fonts and graphics in them, especially things like newsletters and presentation slides. When typesetting book-length manuscripts, on the other hand, scale changes the nature of the task; one quickly runs into WYSIAYG limitations, and the increased power and flexibility of a command-driven formatter like {{TeX}} or Unix's {{troff}} becomes not just desirable but a necessity. Compare {YAFIYGI}.
:WYSIWYG: /wiz'ee-wig/ /adj./ Describes a user interface under which "What You See Is What You Get", as opposed to one that uses more-or-less obscure commands that do not result in immediate visual feedback. True WYSIWYG in environments supporting multiple fonts or graphics is a a rarely-attained ideal; there are variants of this term to express real-world manifestations including WYSIAWYG (What You See Is *Almost* What You Get) and WYSIMOLWYG (What You See Is More or Less What You Get). All these can be mildly derogatory, as they are often used to refer to dumbed-down {user-friendly} interfaces targeted at non-programmers; a hacker has no fear of obscure commands (compare {WYSIAYG}). On the other hand, {EMACS} was one of the very first WYSIWYG editors, replacing (actually, at first overlaying) the extremely obscure, command-based {TECO}. See also {WIMP environment}. [Oddly enough, WYSIWYG has already made it into the OED, in lower case yet. --ESR]
= X = =====
:X: /X/ /n./ 1. Used in various speech and writing contexts (also in lowercase) in roughly its algebraic sense of `unknown within a set defined by context' (compare {N}). Thus, the abbreviation 680x0 stands for 68000, 68010, 68020, 68030, or 68040, and 80x86 stands for 80186, 80286 80386 or 80486 (note that a Unix hacker might write these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86 respectively; see {glob}). 2. [after the name of an earlier window system called `W'] An over-sized, over-featured, over-engineered and incredibly over-complicated window system developed at MIT and widely used on Unix systems.
:XEROX PARC: /zee'roks park'/ /n./ The famed Palo Alto Research Center. For more than a decade, from the early 1970s into the mid-1980s, PARC yielded an astonishing volume of groundbreaking hardware and software innovations. The modern mice, windows, and icons style of software interface was invented there. So was the laser printer and the local-area network; and PARC's series of D machines anticipated the powerful personal computers of the 1980s by a decade. Sadly, the prophets at PARC were without honor in their own company, so much so that it became a standard joke to describe PARC as a place that specialized in developing brilliant ideas for everyone else.
The stunning shortsightedness and obtusity of XEROX's top-level {suit}s has been well anatomized in "Fumbling The Future: How XEROX Invented, Then Ignored, the First Personal Computer" by Douglas K. Smith and Robert C. Alexander (William Morrow & Co., 1988, ISBN 0-688-09511-9).
:XOFF: /X-of/ /n./ Syn. {control-S}.
:XON: /X-on/ /n./ Syn. {control-Q}.
:xor: /X'or/, /kzor/ /conj./ Exclusive or. `A xor B' means `A or B, but not both'. "I want to get cherry pie xor a banana split." This derives from the technical use of the term as a function on truth-values that is true if exactly one of its two arguments is true.
:xref: /X'ref/ /v.,n./ Hackish standard abbreviation for `cross-reference'.
:XXX: /X-X-X/ /n./ A marker that attention is needed. Commonly used in program comments to indicate areas that are kluged up or need to be. Some hackers liken `XXX' to the notional heavy-porn movie rating. Compare {FIXME}.
:xyzzy: /X-Y-Z-Z-Y/, /X-Y-ziz'ee/, /ziz'ee/, or /ik-ziz'ee/ /adj./ [from the ADVENT game] The {canonical} `magic word'. This comes from {ADVENT}, in which the idea is to explore an underground cave with many rooms and to collect the treasures you find there. If you type `xyzzy' at the appropriate time, you can move instantly between two otherwise distant points. If, therefore, you encounter some bit of {magic}, you might remark on this quite succinctly by saying simply "Xyzzy!" "Ordinarily you can't look at someone else's screen if he has protected it, but if you type quadruple-bucky-clear the system will let you do it anyway." "Xyzzy!"
Xyzzy has actually been implemented as an undocumented no-op command on several OSes; in Data General's AOS/VS, for example, it would typically respond "Nothing happens", just as {ADVENT} did if the magic was invoked at the wrong spot or before a player had performed the action that enabled the word. In more recent 32-bit versions, by the way, AOS/VS responds "Twice as much happens".
The popular `minesweeper' game under Microsoft Windows has a cheat mode triggered by the command `xyzzy<enter><right-shift>' that turns the top-left pixel of the screen different colors depending on whether or not the cursor is over a bomb.
= Y = =====
:YA-: /abbrev./ [Yet Another] In hackish acronyms this almost invariably expands to {Yet Another}, following the precedent set by Unix `yacc(1)' (Yet Another Compiler-Compiler). See {YABA}.
:YABA: /ya'b*/ /n./ [Cambridge] Yet Another Bloody Acronym. Whenever some program is being named, someone invariably suggests that it be given a name that is acronymic. The response from those with a trace of originality is to remark ironically that the proposed name would then be `YABA-compatible'. Also used in response to questions like "What is WYSIWYG?" See also {TLA}.
:YAFIYGI: /yaf'ee-y*-gee/ /adj./ [coined in response to WYSIWYG] Describes the command-oriented ed/vi/nroff/TeX style of word processing or other user interface, the opposite of {WYSIWYG}. Stands for "You asked for it, you got it", because what you actually asked for is often not apparent until long after it is too late to do anything about it. Used to denote perversity ("Real Programmers use YAFIYGI tools...and *like* it!") or, less often, a necessary tradeoff ("Only a YAFIYGI tool can have full programmable flexibility in its interface.").
This precise sense of "You asked for it, you got it" seems to have first appeared in Ed Post's classic parody "Real Programmers don't use Pascal" (see {Real Programmer}s); the acronym is a more recent invention.
:YAUN: /yawn/ /n./ [Acronym for `Yet Another Unix Nerd'] Reported from the San Diego Computer Society (predominantly a microcomputer users' group) as a good-natured punning insult aimed at Unix zealots.
:Yellow Book: /n./ The print version of this Jargon File; "The New Hacker's Dictionary" from MIT Press; The book includes essentially all the material the File, plus a Foreword by Guy L. Steele Jr. and a Preface by Eric S. Raymond. Most importantly, the book version is nicely typeset and includes almost all of the infamous Crunchly cartoons by the Great Quux, each attached to an appropriate entry. The first edition (1991, ISBN 0-262-68069-6) corresponded to the Jargon File version 2.9.6. The second edition (1993, ISBN 0-262-68079-3) corresponded to the Jargon File 3.0.0. The third (1996, ISBN 0-262-68092-0) will correspond to 4.0.0.
:yellow wire: /n./ [IBM] Repair wires used when connectors (especially ribbon connectors) got broken due to some schlemiel pinching them, or to reconnect cut traces after the FE mistakenly cut one. Compare {blue wire}, {purple wire}, {red wire}.
:Yet Another: /adj./ [From Unix's `yacc(1)', `Yet Another Compiler-Compiler', a LALR parser generator] 1. Of your own work: A humorous allusion often used in titles to acknowledge that the topic is not original, though the content is. As in `Yet Another AI Group' or `Yet Another Simulated Annealing Algorithm'. 2. Of others' work: Describes something of which there are already far too many. See also {YA-}, {YABA}, {YAUN}.
:YKYBHTLW: // /abbrev./ Abbreviation of `You know you've been hacking too long when...', which became established on the Usenet group alt.folklore.computers during extended discussion of the indicated entry in the Jargon File.
:YMMV: // /cav./ Abbreviation for {Your mileage may vary} common on Usenet.
:You are not expected to understand this: [Unix] /cav./ The canonical comment describing something {magic} or too complicated to bother explaining properly. From an infamous comment in the context-switching code of the V6 Unix kernel.
:You know you've been hacking too long when...: The set-up line for a genre of one-liners told by hackers about themselves. These include the following:
* not only do you check your email more often than your paper mail, but you remember your {network address} faster than your postal one. * your {SO} kisses you on the neck and the first thing you think is "Uh, oh, {priority interrupt}." * you go to balance your checkbook and discover that you're doing it in octal. * your computers have a higher street value than your car. * in your universe, `round numbers' are powers of 2, not 10. * more than once, you have woken up recalling a dream in some programming language. * you realize you have never seen half of your best friends.
[An early version of this entry said "All but one of these have been reliably reported as hacker traits (some of them quite often). Even hackers may have trouble spotting the ringer." The ringer was balancing one's checkbook in octal, which I made up out of whole cloth. Although more respondents picked that one out as fiction than any of the others, I also received multiple independent reports of its actually happening, most famously to Grace Hopper while she was working with BINAC in 1949. --ESR]
:Your mileage may vary: /cav./ [from the standard disclaimer attached to EPA mileage ratings by American car manufacturers] 1. A ritual warning often found in Unix freeware distributions. Translates roughly as "Hey, I tried to write this portably, but who *knows* what'll happen on your system?" 2. More generally, a qualifier attached to advice. "I find that sending flowers works well, but your mileage may vary."
:Yow!: /yow/ /interj./ [from "Zippy the Pinhead" comix] A favored hacker expression of humorous surprise or emphasis. "Yow! Check out what happens when you twiddle the foo option on this display hack!" Compare {gurfle}.
:yoyo mode: /n./ The state in which the system is said to be when it rapidly alternates several times between being up and being down. Interestingly (and perhaps not by coincidence), many hardware vendors give out free yoyos at Usenix exhibits.
Sun Microsystems gave out logoized yoyos at SIGPLAN '88. Tourists staying at one of Atlanta's most respectable hotels were subsequently treated to the sight of 200 of the country's top computer scientists testing yo-yo algorithms in the lobby.
:Yu-Shiang Whole Fish: /yoo-shyang hohl fish/ /n. obs./ The character gamma (extended SAIL ASCII 0001001), which with a loop in its tail looks like a little fish swimming down the page. The term is actually the name of a Chinese dish in which a fish is cooked whole (not {parse}d) and covered with Yu-Shiang (or Yu-Hsiang) sauce. Usage: primarily by people on the MIT LISP Machine, which could display this character on the screen. Tends to elicit incredulity from people who hear about it second-hand.
= Z = =====
:zap: 1. /n./ Spiciness. 2. /vt./ To make food spicy. 3. /vt./ To make someone `suffer' by making his food spicy. (Most hackers love spicy food. Hot-and-sour soup is considered wimpy unless it makes you wipe your nose for the rest of the meal.) See {zapped}. 4. /vt./ To modify, usually to correct; esp. used when the action is performed with a debugger or binary patching tool. Also implies surgical precision. "Zap the debug level to 6 and run it again." In the IBM mainframe world, binary patches are applied to programs or to the OS with a program called `superzap', whose file name is `IMASPZAP' (possibly contrived from I M A SuPerZAP). 5. /vt./ To erase or reset. 6. To {fry} a chip with static electricity. "Uh oh -- I think that lightning strike may have zapped the disk controller."
:zapped: /adj./ Spicy. This term is used to distinguish between food that is hot (in temperature) and food that is *spicy*-hot. For example, the Chinese appetizer Bon Bon Chicken is a kind of chicken salad that is cold but zapped; by contrast, {vanilla} wonton soup is hot but not zapped. See also {{oriental food}}, {laser chicken}. See {zap}, senses 1 and 2.
:zen: /vt./ To figure out something by meditation or by a sudden flash of enlightenment. Originally applied to bugs, but occasionally applied to problems of life in general. "How'd you figure out the buffer allocation problem?" "Oh, I zenned it." Contrast {grok}, which connotes a time-extended version of zenning a system. Compare {hack mode}. See also {guru}.
:zero: /vt./ 1. To set to 0. Usually said of small pieces of data, such as bits or words (esp. in the construction `zero out'). 2. To erase; to discard all data from. Said of disks and directories, where `zeroing' need not involve actually writing zeroes throughout the area being zeroed. One may speak of something being `logically zeroed' rather than being `physically zeroed'. See {scribble}.
:zero-content: /adj./ Syn. {content-free}.
:Zero-One-Infinity Rule: /prov./ "Allow none of {foo}, one of {foo}, or any number of {foo}." A rule of thumb for software design, which instructs one to not place {random} limits on the number of instances of a given entity (such as: windows in a window system, letters in an OS's filenames, etc.). Specifically, one should either disallow the entity entirely, allow exactly one instance (an "exception"), or allow as many as the user wants -- address space and memory permitting.
The logic behind this rule is that there are often situations where it makes clear sense to allow one of something instead of none. However, if one decides to go further and allow N (for N > 1), then why not N+1? And if N+1, then why not N+2, and so on? Once above 1, there's no excuse not to allow any N; hence, {infinity}.
Many hackers recall in this connection Isaac Asimov's SF novel "The Gods Themselves" in which a character announces that the number 2 is impossible -- if you're going to believe in more than one universe, you might as well believe in an infinite number of them.
:zeroth: /zee'rohth/ /adj./ First. Among software designers, comes from C's and LISP's 0-based indexing of arrays. Hardware people also tend to start counting at 0 instead of 1; this is natural since, e.g., the 256 states of 8 bits correspond to the binary numbers 0, 1, ..., 255 and the digital devices known as `counters' count in this way.
Hackers and computer scientists often like to call the first chapter of a publication `Chapter 0', especially if it is of an introductory nature (one of the classic instances was in the First Edition of {K&R}). In recent years this trait has also been observed among many pure mathematicians (who have an independent tradition of numbering from 0). Zero-based numbering tends to reduce {fencepost error}s, though it cannot eliminate them entirely.
:zigamorph: /zig'*-morf/ /n./ 1. Hex FF (11111111) when used as a delimiter or {fence} character. Usage: primarily at IBM shops. 2. [proposed] /n./ The Unicode non-character U+FFFF (1111111111111111), a character code which is not assigned to any character, and so is usable as end-of-string. (Unicode (a subset of ISO 10646) is a 16-bit character code intended to cover all of the world's writing systems, including Roman, Greek, Cyrillic, Chinese, hiragana, katakana, Devanagari, Ethiopic, Thai, Laotian and many other languages (support for {elvish} is planned for a future release).
:zip: /vt./ [primarily MS-DOS] To create a compressed archive from a group of files using PKWare's PKZIP or a compatible archiver. Its use is spreading now that portable implementations of the algorithm have been written. Commonly used as follows: "I'll zip it up and send it to you." See {tar and feather}.
:zipperhead: /n./ [IBM] A person with a closed mind.
:zombie: /n./ [Unix] A process that has died but has not yet relinquished its process table slot (because the parent process hasn't executed a `wait(2)' for it yet). These can be seen in `ps(1)' listings occasionally. Compare {orphan}.
:zorch: /zorch/ 1. [TMRC] /v./ To attack with an inverse heat sink. 2. [TMRC] /v./ To travel, with v approaching c [that is, with velocity approaching lightspeed --ESR]. 3. [MIT] /v./ To propel something very quickly. "The new comm software is very fast; it really zorches files through the network." 4. [MIT] /n./ Influence. Brownie points. Good karma. The intangible and fuzzy currency in which favors are measured. "I'd rather not ask him for that just yet; I think I've used up my quota of zorch with him for the week." 5. [MIT] /n./ Energy, drive, or ability. "I think I'll {punt} that change for now; I've been up for 30 hours and I've run out of zorch." 6. [MIT] /v./ To flunk an exam or course.
:Zork: /zork/ /n./ The second of the great early experiments in computer fantasy gaming; see {ADVENT}. Originally written on MIT-DM during 1977-1979, later distributed with BSD Unix (as a patched, sourceless RT-11 FORTRAN binary; see {retrocomputing}) and commercialized as `The Zork Trilogy' by {Infocom}. The FORTRAN source was later rewritten for portability and released to Usenet under the name "Dungeon". Both FORTRAN "Dungeon" and translated C versions are available at many FTP sites.
:zorkmid: /zork'mid/ /n./ The canonical unit of currency in hacker-written games. This originated in {Zork} but has spread to {nethack} and is referred to in several other games.
= [^A-Za-z] = =============
:<bobbit>: /n./ [Usenet: alt.folklore.urban and elsewhere] Commonly used as a placeholder for omitted text in a followup message (not copying the whole parent message is considered good form). Refers, of course, to the celebrated mutilation of John Bobbitt.
:4.2: /for' poynt too'/ /n./ Without a prefix, this almost invariably refers to {BSD} Unix release 4.2. Note that it is an indication of cluelessness to say "version 4.2", and "release 4.2" is rare; the number stands on its own, or is used in the more explicit forms 4.2BSD or (less commonly) BSD 4.2. Similar remarks apply to "4.3", "4.4" and to earlier, less-widespread releases 4.1 and 2.9.
:'Snooze: /snooz/ [FidoNet] /n./ Fidonews, the weekly official on-line newsletter of FidoNet. As the editorial policy of Fidonews is "anything that arrives, we print", there are often large articles completely unrelated to FidoNet, which in turn tend to elicit {flamage} in subsequent issues.
:(TM): // [Usenet] ASCII rendition of the trademark-superscript symbol appended to phrases that the author feels should be recorded for posterity, perhaps in future editions of this lexicon. Sometimes used ironically as a form of protest against the recent spate of software and algorithm patents and `look and feel' lawsuits. See also {UN*X}.
:-oid: /suff./ [from `android'] 1. Used as in mainstream English to indicate a poor imitation, a counterfeit, or some otherwise slightly bogus resemblance. Hackers will happily use it with all sorts of non-Greco/Latin stem words that wouldn't keep company with it in mainstream English. For example, "He's a nerdoid" means that he superficially resembles a nerd but can't make the grade; a `modemoid' might be a 300-baud box (Real Modems run at 9600 or up); a `computeroid' might be any {bitty box}. The word `keyboid' could be used to describe a {chiclet keyboard}, but would have to be written; spoken, it would confuse the listener as to the speaker's city of origin. 2. More specifically, an indicator for `resembling an android' which in the past has been confined to science-fiction fans and hackers. It too has recently (in 1991) started to go mainstream (most notably in the term `trendoid' for victims of terminal hipness). This is probably traceable to the popularization of the term {droid} in "Star Wars" and its sequels. (See also {windoid}.)
Coinages in both forms have been common in science fiction for at least fifty years, and hackers (who are often SF fans) have probably been making `-oid' jargon for almost that long [though GLS and I can personally confirm only that they were already common in the mid-1970s --ESR].
:-ware: /suff./ [from `software'] Commonly used to form jargon terms for classes of software. For examples, see {careware}, {crippleware}, {crudware}, {freeware}, {fritterware}, {guiltware}, {liveware}, {meatware}, {payware}, {psychedelicware}, {shareware}, {shelfware}, {vaporware}, {wetware}.
:/dev/null: /dev-nuhl/ /n./ [from the Unix null device, used as a data sink] A notional `black hole' in any information space being discussed, used, or referred to. A controversial posting, for example, might end "Kudos to rasputin@kremlin.org, flames to /dev/null". See {bit bucket}.
:0: Numeric zero, as opposed to the letter `O' (the 15th letter of the English alphabet). In their unmodified forms they look a lot alike, and various kluges invented to make them visually distinct have compounded the confusion. If your zero is center-dotted and letter-O is not, or if letter-O looks almost rectangular but zero looks more like an American football stood on end (or the reverse), you're probably looking at a modern character display (though the dotted zero seems to have originated as an option on IBM 3270 controllers). If your zero is slashed but letter-O is not, you're probably looking at an old-style ASCII graphic set descended from the default typewheel on the venerable ASR-33 Teletype (Scandinavians, for whom Slashed-O is a letter, curse this arrangement). If letter-O has a slash across it and the zero does not, your display is tuned for a very old convention used at IBM and a few other early mainframe makers (Scandinavians curse *this* arrangement even more, because it means two of their letters collide). Some Burroughs/Unisys equipment displays a zero with a *reversed* slash. And yet another convention common on early line printers left zero unornamented but added a tail or hook to the letter-O so that it resembled an inverted Q or cursive capital letter-O (this was endorsed by a draft ANSI standard for how to draw ASCII characters, but the final standard changed the distinguisher to a tick-mark in the upper-left corner). Are we sufficiently confused yet?
:1TBS: // /n./ The "One True Brace Style"; see {indent style}.
:120 reset: /wuhn-twen'tee ree'set/ /n./ [from 120 volts, U.S. wall voltage] To cycle power on a machine in order to reset or unjam it. Compare {Big Red Switch}, {power cycle}.
:2: /infix./ In translation software written by hackers, infix 2 often represents the syllable *to* with the connotation `translate to': as in dvi2ps (DVI to PostScript), int2string (integer to string), and texi2roff (Texinfo to [nt]roff).
:@-party: /at'par`tee/ /n./ [from the @-sign in an Internet address] (alt. `@-sign party' /at'si:n par`tee/) A semi-closed party thrown for hackers at a science-fiction convention (esp. the annual World Science Fiction Convention or "Worldcon"); one must have a {network address} to get in, or at least be in company with someone who does. One of the most reliable opportunities for hackers to meet face to face with people who might otherwise be represented by mere phosphor dots on their screens. Compare {boink}.
The first recorded @-party was held at the Westercon (a California SF convention) over the July 4th weekend in 1980. It is not clear exactly when the canonical @-party venue shifted to the Worldcon but it had certainly become established by Constellation in 1983.
:@Begin: // See {\begin}.
:\begin: // [from the LaTeX command] With \end, used humorously in writing to indicate a context or to remark on the surrounded text. For example:
\begin{flame} Predicate logic is the only good programming language. Anyone who would use anything else is an idiot. Also, all computers should be tredecimal instead of binary. \end{flame}
The Scribe users at CMU and elsewhere used to use @Begin/@End in an identical way (LaTeX was built to resemble Scribe). On Usenet, this construct would more frequently be rendered as `<FLAME ON>' and `<FLAME OFF>', or `#ifdef FLAME' and `#endif FLAME''.
:(Lexicon Entries End Here):
:Hacker Folklore: *****************
This appendix contains several legends and fables that illuminate the meaning of various entries in the lexicon.
:The Meaning of `Hack': =======================
"The word {hack} doesn't really have 69 different meanings", according to MIT hacker Phil Agre. "In fact, {hack} has only one meaning, an extremely subtle and profound 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.
An important secondary meaning of {hack} is `a creative practical joke'. This kind of hack is easier to explain to non-hackers than the programming kind. Of course, some hacks have both natures; see the lexicon entries for {pseudo} and {kgbvax}. But here are some examples of pure practical jokes that illustrate the hacking spirit:
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 a blank direction sheet for the card stunts. They then had a printer run off 2300 copies of the blank. 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 made new instructions for three of the stunts on the duplicated blanks. Finally, they broke in once more, replacing the stolen master plans and substituting the stack of diddled instruction sheets for the original set.
The result was that three of the pictures were totally different. Instead of `WASHINGTON', the word ``CALTECH' was flashed. Another stunt showed the word `HUSKIES', the Washington nickname, but spelled it backwards. And what was supposed to have been a picture of a husky instead showed a beaver. (Both Caltech and MIT use the beaver --- nature's engineer -- as a mascot.)
After the game, the Washington faculty athletic representative said: "Some thought it ingenious; others were indignant." The Washington 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.
Here is another classic hack:
On November 20, 1982, MIT hacked the Harvard-Yale football game. Just after Harvard's second touchdown against Yale, in the first 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.
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. They made eight separate expeditions to Harvard Stadium between 1 and 5 A.M., locating an unused 110-volt circuit in the stadium and running buried wires from the stadium circuit to the 40-yard line, where they buried 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 unduly 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 anything to do with it, but I wish there were."
The hacks above are verifiable history; they can be proved to have happened. Many other classic-hack stories from MIT and elsewhere, though retold as history, have the characteristics of what Jan Brunvand has called `urban folklore' (see {FOAF}). Perhaps the best known of these is the legend of the infamous trolley-car hack, an alleged incident in which engineering students are said to have welded a trolley car to its tracks with thermite. Numerous versions of this have been recorded from the 1940s to the present, most set at MIT but at least one very detailed version set at CMU.
Brian Leibowitz has researched MIT hacks both real and mythical extensively; the interested reader is referred to his delightful pictorial compendium "The Journal of the Institute for Hacks, Tomfoolery, and Pranks" (MIT Museum, 1990; ISBN 0-917027-03-5). The Institute has a World Wide Web page at http://fishwrap.mit.edu/Hacks/Gallery.html.
Finally, here is a story about one of the classic computer hacks.
Back in the mid-1970s, several of the system support staff at Motorola discovered a relatively simple way to crack system security on the Xerox CP-V timesharing system. Through a simple programming strategy, it was possible for a user program to trick the system into running a portion of the program in `master mode' (supervisor state), in which memory protection does not apply. The program could then poke a large value into its `privilege level' byte (normally write-protected) and could then proceed to bypass all levels of security within the file-management system, patch the system monitor, and do numerous other interesting things. In short, the barn door was wide open.
Motorola quite properly reported this problem to Xerox via an official `level 1 SIDR' (a bug report with an intended urgency of `needs to be fixed yesterday'). Because the text of each SIDR was entered into a database that could be viewed by quite a number of people, Motorola followed the approved procedure: they simply reported the problem as `Security SIDR', and attached all of the necessary documentation, ways-to-reproduce, etc.
The CP-V people at Xerox sat on their thumbs; they either didn't realize the severity of the problem, or didn't assign the necessary operating-system-staff resources to develop and distribute an official patch.
Months passed. The Motorola guys pestered their Xerox field-support rep, to no avail. Finally they decided to take direct action, to demonstrate to Xerox management just how easily the system could be cracked and just how thoroughly the security safeguards could be subverted.
They dug around in the operating-system listings and devised a thoroughly devilish set of patches. These patches were then incorporated into a pair of programs called `Robin Hood' and `Friar Tuck'. Robin Hood and Friar Tuck were designed to run as `ghost jobs' (daemons, in Unix terminology); they would use the existing loophole to subvert system security, install the necessary patches, and then keep an eye on one another's statuses in order to keep the system operator (in effect, the superuser) from aborting them.
One fine day, the system operator on the main CP-V software development system in El Segundo was surprised by a number of unusual phenomena. These included the following:
* Tape drives would rewind and dismount their tapes in the middle of a job. * Disk drives would seek back and forth so rapidly that they would attempt to walk across the floor (see {walking drives}). * The card-punch output device would occasionally start up of itself and punch a {lace card}. These would usually jam in the punch. * The console would print snide and insulting messages from Robin Hood to Friar Tuck, or vice versa. * The Xerox card reader had two output stackers; it could be instructed to stack into A, stack into B, or stack into A (unless a card was unreadable, in which case the bad card was placed into stacker B). One of the patches installed by the ghosts added some code to the card-reader driver... after reading a card, it would flip over to the opposite stacker. As a result, card decks would divide themselves in half when they were read, leaving the operator to recollate them manually.
Naturally, the operator called in the operating-system developers. They found the bandit ghost jobs running, and {gun}ned them... and were once again surprised. When Robin Hood was gunned, the following sequence of events took place:
!X id1
id1: Friar Tuck... I am under attack! Pray save me! id1: Off (aborted)
id2: Fear not, friend Robin! I shall rout the Sheriff of Nottingham's men!
id1: Thank you, my good fellow!
Each ghost-job would detect the fact that the other had been killed, and would start a new copy of the recently slain program within a few milliseconds. The only way to kill both ghosts was to kill them simultaneously (very difficult) or to deliberately crash the system.
Finally, the system programmers did the latter -- only to find that the bandits appeared once again when the system rebooted! It turned out that these two programs had patched the boot-time OS image (the kernel file, in Unix terms) and had added themselves to the list of programs that were to be started at boot time (this is similar to the way MS-DOS viruses propagate).
The Robin Hood and Friar Tuck ghosts were finally eradicated when the system staff rebooted the system from a clean boot-tape and reinstalled the monitor. Not long thereafter, Xerox released a patch for this problem.
It is alleged that Xerox filed a complaint with Motorola's management about the merry-prankster actions of the two employees in question. It is not recorded that any serious disciplinary action was taken against either of them.
:TV Typewriters: A Tale of Hackish Ingenuity ============================================
Here is a true story about a glass tty: One day an MIT hacker was in a motorcycle accident and broke his leg. He had to stay in the hospital quite a while, and got restless because he couldn't {hack}. Two of his friends therefore took a terminal and a modem for it to the hospital, so that he could use the computer by telephone from his hospital bed.
Now this happened some years before the spread of home computers, and computer terminals were not a familiar sight to the average person. When the two friends got to the hospital, a guard stopped them and asked what they were carrying. They explained that they wanted to take a computer terminal to their friend who was a patient.
The guard got out his list of things that patients were permitted to have in their rooms: TV, radio, electric razor, typewriter, tape player, ... no computer terminals. Computer terminals weren't on the list, so the guard wouldn't let it in. Rules are rules, you know. (This guard was clearly a {droid}.)
Fair enough, said the two friends, and they left again. They were frustrated, of course, because they knew that the terminal was as harmless as a TV or anything else on the list... which gave them an idea.
The next day they returned, and the same thing happened: a guard stopped them and asked what they were carrying. They said: "This is a TV typewriter!" The guard was skeptical, so they plugged it in and demonstrated it. "See? You just type on the keyboard and what you type shows up on the TV screen." Now the guard didn't stop to think about how utterly useless a typewriter would be that didn't produce any paper copies of what you typed; but this was clearly a TV typewriter, no doubt about it. So he checked his list: "A TV is all right, a typewriter is all right ... okay, take it on in!"
[Historical note: Many years ago, "Popular Electronics" published solder-it-yourself plans for a TV typewriter. Despite the essential uselessness of the device, it was an enormously popular project. Steve Ciarcia, the man behind "Byte" magazine's "Circuit Cellar" feature, resurrected this ghost in one of his books of the early 1980s. He ascribed its popularity (no doubt correctly) to the feeling of power the builder could achieve by being able to decide himself what would be shown on the TV. --ESR]
[Antihistorical note: On September 23rd, 1992, the L.A. Times ran the following bit of filler:
Solomon Waters of Altadena, a 6-year-old first-grader, came home from his first day of school and excitedly told his mother how he had written on "a machine that looks like a computer -- but without the TV screen." She asked him if it could have been a "typewriter." "Yeah! Yeah!" he said. "That's what it was called."
I have since investigated this matter and determined that many of today's teenagers have never seen a slide rule, either.... -- ESR]
:A Story About `Magic': =======================
Some years ago, I (GLS) was snooping around in the cabinets that housed the MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no one knows who).
You don't touch an unknown switch on a computer without knowing what it does, because you might crash the computer. The switch was labeled in a most unhelpful way. It had two positions, and scrawled in pencil on the metal switch body were the words `magic' and `more magic'. The switch was in the `more magic' position.
I called another hacker over to look at it. He had never seen the switch before either. Closer examination revealed that the switch had only one wire running to it! The other end of the wire did disappear into the maze of wires inside the computer, but it's a basic fact of electricity that a switch can't do anything unless there are two wires connected to it. This switch had a wire connected on one side and no wire on its other side.
It was clear that this switch was someone's idea of a silly joke. Convinced by our reasoning that the switch was inoperative, we flipped it. The computer instantly crashed.
Imagine our utter astonishment. We wrote it off as coincidence, but nevertheless restored the switch to the `more magic' position before reviving the computer.
A year later, I told this story to yet another hacker, David Moon as I recall. He clearly doubted my sanity, or suspected me of a supernatural belief in the power of this switch, or perhaps thought I was fooling him with a bogus saga. To prove it to him, I showed him the very switch, still glued to the cabinet frame with only one wire connected to it, still in the `more magic' position. We scrutinized the switch and its lone connection, and found that the other end of the wire, though connected to the computer wiring, was connected to a ground pin. That clearly made the switch doubly useless: not only was it electrically nonoperative, but it was connected to a place that couldn't affect anything anyway. So we flipped the switch.
The computer promptly crashed.
This time we ran for Richard Greenblatt, a long-time MIT hacker, who was close at hand. He had never noticed the switch before, either. He inspected it, concluded it was useless, got some diagonal cutters and {dike}d it out. We then revived the computer and it has run fine ever since.
We still don't know how the switch crashed the machine. There is a theory that some circuit near the ground pin was marginal, and flipping the switch changed the electrical capacitance enough to upset the circuit as millionth-of-a-second pulses went through it. But we'll never know for sure; all we can really say is that the switch was {magic}.
I still have that switch in my basement. Maybe I'm silly, but I usually keep it set on `more magic'.
1994: Another explanation of this story has since been offered. Note that the switch body was metal. Suppose that the non-connected side of the switch was connected to the switch body (usually the body is connected to a separate earth lug, but there are exceptions). The body is connected to the computer case, which is, presumably, grounded. Now the circuit ground within the machine isn't necessarily at the same potential as the case ground, so flipping the switch connected the circuit ground to the case ground, causing a voltage drop/jump which reset the machine. This was probably discovered by someone who found out the hard way that there was a potential difference between the two, and who then wired in the switch as a joke.
:AI Koans: ==========
These are some of the funniest examples of a genre of jokes told at the MIT AI Lab about various noted hackers. The original koans were composed by Danny Hillis. In reading these, it is at least useful to know that Minsky, Sussman, and Drescher are AI researchers of note, that Tom Knight was one of the Lisp machine's principal designers, and that David Moon wrote much of Lisp Machine Lisp.
* * *
A novice was trying to fix a broken Lisp machine by turning the power off and on.
Knight, seeing what the student was doing, spoke sternly: "You cannot fix a machine by just power-cycling it with no understanding of what is going wrong."
Knight turned the machine off and on.
The machine worked.
* * *
One day a student came to Moon and said: "I understand how to make a better garbage collector. We must keep a reference count of the pointers to each cons."
Moon patiently told the student the following story:
"One day a student came to Moon and said: `I understand how to make a better garbage collector...
[Ed. note: Pure reference-count garbage collectors have problems with circular structures that point to themselves.]
* * *
In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
"What are you doing?", asked Minsky.
"I am training a randomly wired neural net to play Tic-Tac-Toe" Sussman replied.
"Why is the net wired randomly?", asked Minsky.
"I do not want it to have any preconceptions of how to play", Sussman said.
Minsky then shut his eyes.
"Why do you close your eyes?", Sussman asked his teacher.
"So that the room will be empty."
At that moment, Sussman was enlightened.
* * *
A disciple of another sect once came to Drescher as he was eating his morning meal.
"I would like to give you this personality test", said the outsider, "because I want you to be happy."
Drescher took the paper that was offered him and put it into the toaster, saying: "I wish the toaster to be happy, too."
:OS and JEDGAR: ===============
This story says a lot about the ITS ethos.
On the ITS system there was a program that allowed you to see what was being printed on someone else's terminal. It spied on the other guy's output by examining the insides of the monitor system. The output spy program was called OS. Throughout the rest of the computer science (and at IBM too) OS means `operating system', but among old-time ITS hackers it almost always meant `output spy'.
OS could work because ITS purposely had very little in the way of `protection' that prevented one user from trespassing on another's areas. Fair is fair, however. There was another program that would automatically notify you if anyone started to spy on your output. It worked in exactly the same way, by looking at the insides of the operating system to see if anyone else was looking at the insides that had to do with your output. This `counterspy' program was called JEDGAR (a six-letterism pronounced as two syllables: /jed'gr/), in honor of the former head of the FBI.
But there's more. JEDGAR would ask the user for `license to kill'. If the user said yes, then JEDGAR would actually {gun} the job of the {luser} who was spying. Unfortunately, people found that this made life too violent, especially when tourists learned about it. One of the systems hackers solved the problem by replacing JEDGAR with another program that only pretended to do its job. It took a long time to do this, because every copy of JEDGAR had to be patched. To this day no one knows how many people never figured out that JEDGAR had been defanged.
Interestingly, there is still a security module named JEDGAR alive as of late 1994 -- in the Unisys MCP for large systems. It is unknown to us whether the name is tribute or independent invention.
:The Story of Mel, a Real Programmer: =====================================
This was posted to Usenet by its author, Ed Nather (utastro!nather), on May 21, 1983.
A recent article devoted to the *macho* side of programming made the bald and unvarnished statement:
Real Programmers write in FORTRAN.
Maybe they do now, in this decadent era of Lite beer, hand calculators, and "user-friendly" software but back in the Good Old Days, when the term "software" sounded funny and Real Computers were made out of drums and vacuum tubes, Real Programmers wrote in machine code. Not FORTRAN. Not RATFOR. Not, even, assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly.
Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.
I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary of the typewriter company. The firm manufactured the LGP-30, a small, cheap (by the standards of the day) drum-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster -- drum-memory computer. Cores cost too much, and weren't here to stay, anyway. (That's why you haven't heard of the company, or the computer.)
I had been hired to write a FORTRAN compiler for this new marvel and Mel was my guide to its wonders. Mel didn't approve of compilers.
"If a program can't rewrite its own code", he asked, "what good is it?"
Mel had written, in hexadecimal, the most popular computer program the company owned. It ran on the LGP-30 and played blackjack with potential customers at computer shows. Its effect was always dramatic. The LGP-30 booth was packed at every show, and the IBM salesmen stood around talking to each other. Whether or not this actually sold computers was a question we never discussed.
Mel's job was to re-write the blackjack program for the RPC-4000. (Port? What does that mean?) The new computer had a one-plus-one addressing scheme, in which each machine instruction, in addition to the operation code and the address of the needed operand, had a second address that indicated where, on the revolving drum, the next instruction was located.
In modern parlance, every single instruction was followed by a GO TO! Put *that* in Pascal's pipe and smoke it.
Mel loved the RPC-4000 because he could optimize his code: that is, locate instructions on the drum so that just as one finished its job, the next would be just arriving at the "read head" and available for immediate execution. There was a program to do that job, an "optimizing assembler", but Mel refused to use it.
"You never know where it's going to put things", he explained, "so you'd have to use separate constants".
It was a long time before I understood that remark. Since Mel knew the numerical value of every operation code, and assigned his own drum addresses, every instruction he wrote could also be considered a numerical constant. He could pick up an earlier "add" instruction, say, and multiply by it, if it had the right numeric value. His code was not easy for someone else to modify.
I compared Mel's hand-optimized programs with the same code massaged by the optimizing assembler program, and Mel's always ran faster. That was because the "top-down" method of program design hadn't been invented yet, and Mel wouldn't have used it anyway. He wrote the innermost parts of his program loops first, so they would get first choice of the optimum address locations on the drum. The optimizing assembler wasn't smart enough to do it that way.
Mel never wrote time-delay loops, either, even when the balky Flexowriter required a delay between output characters to work right. He just located instructions on the drum so each successive one was just *past* the read head when it was needed; the drum had to execute another complete revolution to find the next instruction. He coined an unforgettable term for this procedure. Although "optimum" is an absolute term, like "unique", it became common verbal practice to make it relative: "not quite optimum" or "less optimum" or "not very optimum". Mel called the maximum time-delay locations the "most pessimum".
After he finished the blackjack program and got it to run ("Even the initializer is optimized", he said proudly), he got a Change Request from the sales department. The program used an elegant (optimized) random number generator to shuffle the "cards" and deal from the "deck", and some of the salesmen felt it was too fair, since sometimes the customers lost. They wanted Mel to modify the program so, at the setting of a sense switch on the console, they could change the odds and let the customer win.
Mel balked. He felt this was patently dishonest, which it was, and that it impinged on his personal integrity as a programmer, which it did, so he refused to do it. The Head Salesman talked to Mel, as did the Big Boss and, at the boss's urging, a few Fellow Programmers. Mel finally gave in and wrote the code, but he got the test backwards, and, when the sense switch was turned on, the program would cheat, winning every time. Mel was delighted with this, claiming his subconscious was uncontrollably ethical, and adamantly refused to fix it.
After Mel had left the company for greener pa$ture$, the Big Boss asked me to look at the code and see if I could find the test and reverse it. Somewhat reluctantly, I agreed to look. Tracking Mel's code was a real adventure.
I have often felt that programming is an art form, whose real value can only be appreciated by another versed in the same arcane art; there are lovely gems and brilliant coups hidden from human view and admiration, sometimes forever, by the very nature of the process. You can learn a lot about an individual just by reading through his code, even in hexadecimal. Mel was, I think, an unsung genius.
Perhaps my greatest shock came when I found an innocent loop that had no test in it. No test. *None*. Common sense said it had to be a closed loop, where the program would circle, forever, endlessly. Program control passed right through it, however, and safely out the other side. It took me two weeks to figure it out.
The RPC-4000 computer had a really modern facility called an index register. It allowed the programmer to write a program loop that used an indexed instruction inside; each time through, the number in the index register was added to the address of that instruction, so it would refer to the next datum in a series. He had only to increment the index register each time through. Mel never used it.
Instead, he would pull the instruction into a machine register, add one to its address, and store it back. He would then execute the modified instruction right from the register. The loop was written so this additional execution time was taken into account --- just as this instruction finished, the next one was right under the drum's read head, ready to go. But the loop had no test in it.
The vital clue came when I noticed the index register bit, the bit that lay between the address and the operation code in the instruction word, was turned on --- yet Mel never used the index register, leaving it zero all the time. When the light went on it nearly blinded me.