#======= THIS IS THE JARGON FILE, VERSION 4.0.0, 24 JUL 1996 =======# (continued 6)
Reading edition
In the spirit of universal peace and brotherhood, this lexicon now includes a number of entries attributed to `IBM'; these derive from some rampantly unofficial jargon lists circulated within IBM's own beleaguered hacker underground.
:IBM discount: /n./ A price increase. Outside IBM, this derives from the common perception that IBM products are generally overpriced (see {clone}); inside, it is said to spring from a belief that large numbers of IBM employees living in an area cause prices to rise.
:ICBM address: /n./ (Also `missile address') The form used to register a site with the Usenet mapping project includes a blank for longitude and latitude, preferably to seconds-of-arc accuracy. This is actually used for generating geographically-correct maps of Usenet links on a plotter; however, it has become traditional to refer to this as one's `ICBM address' or `missile address', and many people include it in their {sig block} with that name. (A real missile address would include target altitude.)
:ice: /n./ [coined by Usenetter Tom Maddox, popularized by William Gibson's cyberpunk SF novels: a contrived acronym for `Intrusion Countermeasure Electronics'] Security software (in Gibson's novels, software that responds to intrusion by attempting to immobilize or even literally kill the intruder). Hence, `icebreaker': a program designed for cracking security on a system.
Neither term is in serious use yet as of early 1996, but many hackers find the metaphor attractive, and each may develop a denotation in the future. In the meantime, the speculative usage could be confused with `ICE', an acronym for "in-circuit emulator".
In ironic reference to the speculative usage, however, some hackers and computer scientists formed ICE (International Cryptographic Experiment) in 1994. ICE is a consortium to promote uniform international access to strong cryptography. ICE has a home page at http://www.tis.com/crypto/ice.html.
:idempotent: /adj./ [from mathematical techspeak] Acting as if used only once, even if used multiple times. This term is often used with respect to {C} header files, which contain common definitions and declarations to be included by several source files. If a header file is ever included twice during the same compilation (perhaps due to nested #include files), compilation errors can result unless the header file has protected itself against multiple inclusion; a header file so protected is said to be idempotent. The term can also be used to describe an initialization subroutine that is arranged to perform some critical action exactly once, even if the routine is called several times.
:If you want X, you know where to find it.: There is a legend that Dennis Ritchie, inventor of {C}, once responded to demands for features resembling those of what at the time was a much more popular language by observing "If you want PL/I, you know where to find it." Ever since, this has been hackish standard form for fending off requests to alter a new design to mimic some older (and, by implication, inferior and {baroque}) one. The case X = {Pascal} manifests semi-regularly on Usenet's comp.lang.c newsgroup. Indeed, the case X = X has been reported in discussions of graphics software (see {X}).
:ifdef out: /if'def owt/ /v./ Syn. for {condition out}, specific to {C}.
:ill-behaved: /adj./ 1. [numerical analysis] Said of an algorithm or computational method that tends to blow up because of accumulated roundoff error or poor convergence properties. 2. Software that bypasses the defined {OS} interfaces to do things (like screen, keyboard, and disk I/O) itself, often in a way that depends on the hardware of the machine it is running on or which is nonportable or incompatible with other pieces of software. In the IBM PC/MS-DOS world, there is a folk theorem (nearly true) to the effect that (owing to gross inadequacies and performance penalties in the OS interface) all interesting applications are ill-behaved. See also {bare metal}. Oppose {well-behaved}, compare {PC-ism}. See {mess-dos}.
:IMHO: // /abbrev./ [from SF fandom via Usenet; abbreviation for `In My Humble Opinion'] "IMHO, mixed-case C names should be avoided, as mistyping something in the wrong case can cause hard-to-detect errors — and they look too Pascalish anyhow." Also seen in variant forms such as IMNSHO (In My Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).
:Imminent Death Of The Net Predicted!: /prov./ [Usenet] Since {Usenet} first got off the ground in 1980—81, it has grown exponentially, approximately doubling in size every year. On the other hand, most people feel the {signal-to-noise ratio} of Usenet has dropped steadily. These trends led, as far back as mid-1983, to predictions of the imminent collapse (or death) of the net. Ten years and numerous doublings later, enough of these gloomy prognostications have been confounded that the phrase "Imminent Death Of The Net Predicted!" has become a running joke, hauled out any time someone grumbles about the {S/N ratio} or the huge and steadily increasing volume, or the possible loss of a key node or link, or the potential for lawsuits when ignoramuses post copyrighted material, etc., etc., etc.
:in the extreme: /adj./ A preferred superlative suffix for many hackish terms. See, for example, `obscure in the extreme' under {obscure}, and compare {highly}.
:inc: /ink/ /v./ Verbal (and only rarely written) shorthand for increment, i.e. `increase by one'. Especially used by assembly programmers, as many assembly languages have an `inc' mnemonic. Antonym: {dec}.
:incantation: /n./ Any particularly arbitrary or obscure command that one must mutter at a system to attain a desired result. Not used of passwords or other explicit security features. Especially used of tricks that are so poorly documented that they must be learned from a {wizard}. "This compiler normally locates initialized data in the data segment, but if you {mutter} the right incantation they will be forced into text space."
:include: /vt./ [Usenet] 1. To duplicate a portion (or whole) of another's message (typically with attribution to the source) in a reply or followup, for clarifying the context of one's response. See the discussion of inclusion styles under "Hacker Writing Style". 2. [from {C}] `#include <disclaimer.h>' has appeared in {sig block}s to refer to a notional `standard {disclaimer} file'.
:include war: /n./ Excessive multi-leveled inclusion within a discussion {thread}, a practice that tends to annoy readers. In a forum with high-traffic newsgroups, such as Usenet, this can lead to {flame}s and the urge to start a {kill file}.
:indent style: /n./ [C programmers] The rules one uses to indent code in a readable fashion. There are four major C indent styles, described below; all have the aim of making it easier for the reader to visually track the scope of control constructs. The significant variable is the placement of `{' and `}' with respect to the statement(s) they enclose and to the guard or controlling statement (`if', `else', `for', `while', or `do') on the block, if any.
`K&R style' — Named after Kernighan & Ritchie, because the examples in {K&R} are formatted this way. Also called `kernel style' because the Unix kernel is written in it, and the `One True Brace Style' (abbrev. 1TBS) by its partisans. The basic indent shown here is eight spaces (or one tab) per level; four spaces are occasionally seen, but are much less common.
if (<cond>) { <body> }
`Allman style' — Named for Eric Allman, a Berkeley hacker who wrote a lot of the BSD utilities in it (it is sometimes called `BSD style'). Resembles normal indent style in Pascal and Algol. Basic indent per level shown here is eight spaces, but four spaces are just as common (esp. in C++ code).
if (<cond>) { <body> }
`Whitesmiths style' — popularized by the examples that came with Whitesmiths C, an early commercial C compiler. Basic indent per level shown here is eight spaces, but four spaces are occasionally seen.
if (<cond>) { <body> }
`GNU style' — Used throughout GNU EMACS and the Free Software Foundation code, and just about nowhere else. Indents are always four spaces per level, with `{' and `}' halfway between the outer and inner indent levels.
if (<cond>) { <body> }
Surveys have shown the Allman and Whitesmiths styles to be the most common, with about equal mind shares. K&R/1TBS used to be nearly universal, but is now much less common (the opening brace tends to get lost against the right paren of the guard part in an `if' or `while', which is a {Bad Thing}). Defenders of 1TBS argue that any putative gain in readability is less important than their style's relative economy with vertical space, which enables one to see more code on one's screen at once. Doubtless these issues will continue to be the subject of {holy wars}.
:index: /n./ See {coefficient of X}.
:infant mortality: /n./ It is common lore among hackers (and in the electronics industry at large; this term is possibly techspeak by now) that the chances of sudden hardware failure drop off exponentially with a machine's time since first use (that is, until the relatively distant time at which enough mechanical wear in I/O devices and thermal-cycling stress in components has accumulated for the machine to start going senile). Up to half of all chip and wire failures happen within a new system's first few weeks; such failures are often referred to as `infant mortality' problems (or, occasionally, as `sudden infant death syndrome'). See {bathtub curve}, {burn-in period}.
:infinite: /adj./ Consisting of a large number of objects; extreme. Used very loosely as in: "This program produces infinite garbage." "He is an infinite loser." The word most likely to follow `infinite', though, is {hair}. (It has been pointed out that fractals are an excellent example of infinite hair.) These uses are abuses of the word's mathematical meaning. The term `semi-infinite', denoting an immoderately large amount of some resource, is also heard. "This compiler is taking a semi-infinite amount of time to optimize my program." See also {semi}.
:infinite loop: /n./ One that never terminates (that is, the machine {spin}s or {buzz}es forever and goes {catatonic}). There is a standard joke that has been made about each generation's exemplar of the ultra-fast machine: "The Cray-3 is so fast it can execute an infinite loop in under 2 seconds!"
:Infinite-Monkey Theorem: /n./ "If you put an {infinite} number of monkeys at typewriters, eventually one will bash out the script for Hamlet." (One may also hypothesize a small number of monkeys and a very long period of time.) This theorem asserts nothing about the intelligence of the one {random} monkey that eventually comes up with the script (and note that the mob will also type out all the possible *incorrect* versions of Hamlet). It may be referred to semi-seriously when justifying a {brute force} method; the implication is that, with enough resources thrown at it, any technical challenge becomes a {one-banana problem}.
This theorem was first popularized by the astronomer Sir Arthur Eddington. It became part of the idiom of techies via the classic SF short story "Inflexible Logic" by Russell Maloney, and many younger hackers know it through a reference in Douglas Adams's "Hitchhiker's Guide to the Galaxy".
:infinity: /n./ 1. The largest value that can be represented in a particular type of variable (register, memory location, data type, whatever). 2. `minus infinity': The smallest such value, not necessarily or even usually the simple negation of plus infinity. In N-bit twos-complement arithmetic, infinity is 2^(N-1) - 1 but minus infinity is - (2^(N-1)), not -(2^(N-1) - 1). Note also that this is different from "time T equals minus infinity", which is closer to a mathematician's usage of infinity.
:inflate: /vt./ To decompress or {puff} a file. Rare among Internet hackers, used primarily by MS-DOS/Windows types.
:Infocom: /n./ A now-legendary games company, active from 1979 to 1989, that commercialized the MDL parser technology used for {Zork} to produce a line of text adventure games that remain favorites among hackers. Infocom's games were intelligent, funny, witty, erudite, irreverent, challenging, satirical, and most thoroughly hackish in spirit. The physical game packages from Infocom are now prized collector's items. The software, thankfully, is still extant; Infocom games were written in a kind of P-code and distributed with a P-code interpreter core, and freeware emulators for that interpreter have been written to permit the P-code to be run on platforms the games never originally graced.
:initgame: /in-it'gaym/ /n./ [IRC] An {IRC} version of the venerable trivia game "20 questions", in which one user changes his {nick} to the initials of a famous person or other named entity, and the others on the channel ask yes or no questions, with the one to guess the person getting to be "it" next. As a courtesy, the one picking the initials starts by providing a 4-letter hint of the form sex, nationality, life-status, reality-status. For example, MAAR means "Male, American, Alive, Real" (as opposed to "fictional"). Initgame can be surprisingly addictive. See also {hing}.
[1996 update: a recognizable version of the initgame has become a staple of some radio talk shows in the U.S. We had it first! — ESR]
:insanely great: /adj./ [Mac community, from Steve Jobs; also BSD Unix people via Bill Joy] Something so incredibly {elegant} that it is imaginable only to someone possessing the most puissant of {hacker}-natures.
:INTERCAL: /in't*r-kal/ /n./ [said by the authors to stand for `Compiler Language With No Pronounceable Acronym'] A computer language designed by Don Woods and James Lyons in 1972. INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. An excerpt from the INTERCAL Reference Manual will make the style of the language clear:
It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:
DO :1 <- #0$#256
any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course have happened to turn up, as bosses are wont to do. The effect would be no less devastating for the programmer having been correct.
INTERCAL has many other peculiar features designed to make it even more unspeakable. The Woods-Lyons implementation was actually used by many (well, at least several) people at Princeton. The language has been recently reimplemented as C-INTERCAL and is consequently enjoying an unprecedented level of unpopularity; there is even an alt.lang.intercal newsgroup devoted to the study and … appreciation of the language on Usenet.
An INTERCAL implementation is available at the Retrocomputing Museum, http://www.ccil.org/retro.
:interesting: /adj./ In hacker parlance, this word has strong connotations of `annoying', or `difficult', or both. Hackers relish a challenge, and enjoy wringing all the irony possible out of the ancient Chinese curse "May you live in interesting times". Oppose {trivial}, {uninteresting}.
:Internet:: /n./ The mother of all networks. First incarnated beginning in 1969 as the ARPANET, a U.S. Department of Defense research testbed. Though it has been widely believed that the goal was to develop a network architecture for military command-and-control that could survive disruptions up to and including nuclear war, this is a myth; in fact, ARPANET was conceived from the start as a way to get most economical use out of then-scarce large-computer resources.
As originally imagined, ARPANET's major use would have been to support what is now called remote login and more sophisticated forms of distributed computing, but the infant technology of electronic mail quickly grew to dominate actual usage. Universities, research labs and defense contractors early discovered the Internet's potential as a medium of communication between *humans* and linked up in steadily increasing numbers, connecting together a quirky mix of academics, techies, hippies, SF fans, hackers, and anarchists. The roots of this lexicon lie in those early years.
Over the next quarter-century the Internet evolved in many ways. The typical machine/OS combination moved from DEC {PDP-10}s and {PDP-20}s, running {TOPS-10} and {TOPS-20}, to PDP-11s and VAXes and Suns running {Unix}, and in the 1990s to Unix on Intel microcomputers. The Internet's protocols grew more capable, most notably in the move from NCP/IP to {TCP/IP} in 1982 and the implementation of Domain Name Service in 1983. With TCP/IP and DNS in place. It was around this time that people began referring to the collection of interconnected networks with ARPANET at its core as "the Internet".
The ARPANET had a fairly strict set of participation guidelines — connected institutions had to be involved with a DOD-related research project. By the mid-80s, many of the organizations clamoring to join didn't fit this profile. In 1986, the National Science Foundation built NSFnet to open up access to its five regional supercomputing centers; NSFnet became the backbone of the Internet, replacing the original ARPANET pipes (which were formally shut down in 1990). Between 1990 and late 1994 the pieces of NSFnet were sold to major telecommunications companies until the Internet backbone had gone completely commercial.
That year, 1994, was also the year the mainstream culture discovered the Internet. Once again, the {killer app} was not the anticipated one — rather, what caught the public imagination was the hypertext and multimedia features of the World Wide Web. As of early 1996, the Internet has seen off its only serious challenger (the OSI protocol stack favored by European telecom monopolies) and is in the process of absorbing into itself many of of the proprietary networks built during the second wave of wide-area networking after 1980. It is now a commonplace even in mainstream media to predict that a globally-extended Internet will become the key unifying communications technology of the next century. See also {network, the} and {Internet address}.
:Internet address:: /n./ 1. [techspeak] An absolute network address of the form foo@bar.baz, where foo is a user name, bar is a {sitename}, and baz is a `domain' name, possibly including periods itself. Contrast with {bang path}; see also {network, the} and {network address}. All Internet machines and most UUCP sites can now resolve these addresses, thanks to a large amount of behind-the-scenes magic and {PD} software written since 1980 or so. See also {bang path}, {domainist}. 2. More loosely, any network address reachable through Internet; this includes {bang path} addresses and some internal corporate and government networks.
Reading Internet addresses is something of an art. Here are the four most important top-level functional Internet domains followed by a selection of geographical domains:
com commercial organizations edu educational institutions gov U.S. government civilian sites mil U.S. military sites
Note that most of the sites in the com and edu domains are in the U.S. or Canada.
us sites in the U.S. outside the functional domains su sites in the ex-Soviet Union (see {kremvax}). uk sites in the United Kingdom
Within the us domain, there are subdomains for the fifty states, each generally with a name identical to the state's postal abbreviation. Within the uk domain, there is an ac subdomain for academic sites and a co domain for commercial ones. Other top-level domains may be divided up in similar ways.
:interrupt: 1. [techspeak] /n./ On a computer, an event that interrupts normal processing and temporarily diverts flow-of-control through an "interrupt handler" routine. See also {trap}. 2. /interj./ A request for attention from a hacker. Often explicitly spoken. "Interrupt — have you seen Joe recently?" See {priority interrupt}. 3. Under MS-DOS, nearly synonymous with `system call', because the OS and BIOS routines are both called using the INT instruction (see {{interrupt list, the}}) and because programmers so often have to bypass the OS (going directly to a BIOS interrupt) to get reasonable performance.
:interrupt list, the:: /n./ [MS-DOS] The list of all known software interrupt calls (both documented and undocumented) for IBM PCs and compatibles, maintained and made available for free redistribution by Ralf Brown <ralf@cs.cmu.edu>. As of late 1992, it had grown to approximately two megabytes in length.
:interrupts locked out: /adj./ When someone is ignoring you. In a restaurant, after several fruitless attempts to get the waitress's attention, a hacker might well observe "She must have interrupts locked out". The synonym `interrupts disabled' is also common. Variations abound; "to have one's interrupt mask bit set" and "interrupts masked out" are also heard. See also {spl}.
:IRC: /I-R-C/ /n./ [Internet Relay Chat] A worldwide "party line" network that allows one to converse with others in real time. IRC is structured as a network of Internet servers, each of which accepts connections from client programs, one per user. The IRC community and the {Usenet} and {MUD} communities overlap to some extent, including both hackers and regular folks who have discovered the wonders of computer networks. Some Usenet jargon has been adopted on IRC, as have some conventions such as {emoticon}s. There is also a vigorous native jargon, represented in this lexicon by entries marked `[IRC]'. See also {talk mode}.
:iron: /n./ Hardware, especially older and larger hardware of {mainframe} class with big metal cabinets housing relatively low-density electronics (but the term is also used of modern supercomputers). Often in the phrase {big iron}. Oppose {silicon}. See also {dinosaur}.
:Iron Age: /n./ In the history of computing, 1961—1971 — the formative era of commercial {mainframe} technology, when ferrite-core {dinosaur}s ruled the earth. The Iron Age began, ironically enough, with the delivery of the first minicomputer (the PDP-1) and ended with the introduction of the first commercial microprocessor (the Intel 4004) in 1971. See also {Stone Age}; compare {elder days}.
:iron box: /n./ [Unix/Internet] A special environment set up to trap a {cracker} logging in over remote connections long enough to be traced. May include a modified {shell} restricting the cracker's movements in unobvious ways, and `bait' files designed to keep him interested and logged on. See also {back door}, {firewall machine}, {Venus flytrap}, and Clifford Stoll's account in "{The Cuckoo's Egg}" of how he made and used one (see the {Bibliography} in Appendix C). Compare {padded cell}.
:ironmonger: /n./ [IBM] A hardware specialist (derogatory). Compare {sandbender}, {polygon pusher}.
:ISP: /I-S-P/ Common abbreviation for Internet Service Provider, a kind of company that barely existed before 1993. ISPs sell Internet access to the mass market. While the big nationwide commercial BBSs with Internet access (like America Online, CompuServe, GEnie, Netcom, etc.) are technically ISPs, the term is usually reserved for local or regional small providers (often run by hackers turned entrepreneurs) who resell Internet access cheaply without themselves being information providers or selling advertising. Compare {NSP}.
:ITS:: /I-T-S/ /n./ 1. Incompatible Time-sharing System, an influential though highly idiosyncratic operating system written for PDP-6s and PDP-10s at MIT and long used at the MIT AI Lab. Much AI-hacker jargon derives from ITS folklore, and to have been `an ITS hacker' qualifies one instantly as an old-timer of the most venerable sort. ITS pioneered many important innovations, including transparent file sharing between machines and terminal-independent I/O. After about 1982, most actual work was shifted to newer machines, with the remaining ITS boxes run essentially as a hobby and service to the hacker community. The shutdown of the lab's last ITS machine in May 1990 marked the end of an era and sent old-time hackers into mourning nationwide (see {high moby}). The Royal Institute of Technology in Sweden is maintaining one `live' ITS site at its computer museum (right next to the only TOPS-10 system still on the Internet), so ITS is still alleged to hold the record for OS in longest continuous use (however, {{WAITS}} is a credible rival for this palm). 2. A mythical image of operating-system perfection worshiped by a bizarre, fervent retro-cult of old-time hackers and ex-users (see {troglodyte}, sense 2). ITS worshipers manage somehow to continue believing that an OS maintained by assembly-language hand-hacking that supported only monocase 6-character filenames in one directory per account remains superior to today's state of commercial art (their venom against Unix is particularly intense). See also {holy wars}, {Weenix}.
:IWBNI: // Abbreviation for `It Would Be Nice If'. Compare {WIBNI}.
:IYFEG: // [Usenet] Abbreviation for `Insert Your Favorite Ethnic Group'. Used as a meta-name when telling ethnic jokes on the net to avoid offending anyone. See {JEDR}.
= J = =====
:J. Random: /J rand'm/ /n./ [generalized from {J. Random Hacker}] Arbitrary; ordinary; any one; any old. `J. Random' is often prefixed to a noun to make a name out of it. It means roughly `some particular' or `any specific one'. "Would you let J. Random Loser marry your daughter?" The most common uses are `J. Random Hacker', `J. Random Loser', and `J. Random Nerd' ("Should J. Random Loser be allowed to {gun} down other people?"), but it can be used simply as an elaborate version of {random} in any sense.
:J. Random Hacker: /J rand'm hak'r/ /n./ [MIT] A mythical figure like the Unknown Soldier; the archetypal hacker nerd. See {random}, {Suzie COBOL}. This may originally have been inspired by `J. Fred Muggs', a show-biz chimpanzee whose name was a household word back in the early days of {TMRC}, and was probably influenced by `J. Presper Eckert' (one of the co-inventors of the electronic computer).
:jack in: /v./ To log on to a machine or connect to a network or {BBS}, esp. for purposes of entering a {virtual reality} simulation such as a {MUD} or {IRC} (leaving is "jacking out"). This term derives from {cyberpunk} SF, in which it was used for the act of plugging an electrode set into neural sockets in order to interface the brain directly to a virtual reality. It is primarily used by MUD and IRC fans and younger hackers on BBS systems.
:jaggies: /jag'eez/ /n./ The `stairstep' effect observable when an edge (esp. a linear edge of very shallow or steep slope) is rendered on a pixel device (as opposed to a vector display).
:JCL: /J-C-L/ /n./ 1. IBM's supremely {rude} Job Control Language. JCL is the script language used to control the execution of programs in IBM's batch systems. JCL has a very {fascist} syntax, and some versions will, for example, {barf} if two spaces appear where it expects one. Most programmers confronted with JCL simply copy a working file (or card deck), changing the file names. Someone who actually understands and generates unique JCL is regarded with the mixed respect one gives to someone who memorizes the phone book. It is reported that hackers at IBM itself sometimes sing "Who's the breeder of the crud that mangles you and me? I-B-M, J-C-L, M-o-u-s-e" to the tune of the "Mickey Mouse Club" theme to express their opinion of the beast. 2. A comparative for any very {rude} software that a hacker is expected to use. "That's as bad as JCL." As with {COBOL}, JCL is often used as an archetype of ugliness even by those who haven't experienced it. See also {IBM}, {fear and loathing}.
A (poorly documented, naturally) shell simulating JCL syntax is available at the Retrocomputing Museum http://www.ccil.org/retro.
:JEDR: // /n./ Synonymous with {IYFEG}. At one time, people in the Usenet newsgroup rec.humor.funny tended to use `JEDR' instead of {IYFEG} or `<ethnic>'; this stemmed from a public attempt to suppress the group once made by a loser with initials JEDR after he was offended by an ethnic joke posted there. (The practice was {retcon}ned by the expanding these initials as `Joke Ethnic/Denomination/Race'.) After much sound and fury JEDR faded away; this term appears to be doing likewise. JEDR's only permanent effect on the net.culture was to discredit `sensitivity' arguments for censorship so thoroughly that more recent attempts to raise them have met with immediate and near-universal rejection.
:JFCL: /jif'kl/, /jaf'kl/, /j*-fi'kl/ vt., obs. (alt. `jfcl') To cancel or annul something. "Why don't you jfcl that out?" The fastest do-nothing instruction on older models of the PDP-10 happened to be JFCL, which stands for "Jump if Flag set and then CLear the flag"; this does something useful, but is a very fast no-operation if no flag is specified. Geoff Goodfellow, one of the Steele-1983 co-authors, had JFCL on the license plate of his BMW for years. Usage: rare except among old-time PDP-10 hackers.
:jiffy: /n./ 1. The duration of one tick of the system clock on your computer (see {tick}). Often one AC cycle time (1/60 second in the U.S. and Canada, 1/50 most other places), but more recently 1/100 sec has become common. "The swapper runs every 6 jiffies" means that the virtual memory management routine is executed once for every 6 ticks of the clock, or about ten times a second. 2. Confusingly, the term is sometimes also used for a 1-millisecond {wall time} interval. Even more confusingly, physicists semi-jokingly use `jiffy' to mean the time required for light to travel one foot in a vacuum, which turns out to be close to one *nanosecond*. 3. Indeterminate time from a few seconds to forever. "I'll do it in a jiffy" means certainly not now and possibly never. This is a bit contrary to the more widespread use of the word. Oppose {nano}. See also {Real Soon Now}.
:job security: /n./ When some piece of code is written in a particularly {obscure} fashion, and no good reason (such as time or space optimization) can be discovered, it is often said that the programmer was attempting to increase his job security (i.e., by making himself indispensable for maintenance). This sour joke seldom has to be said in full; if two hackers are looking over some code together and one points at a section and says "job security", the other one may just nod.
:jock: /n./ 1. A programmer who is characterized by large and somewhat brute-force programs. See {brute force}. 2. When modified by another noun, describes a specialist in some particular computing area. The compounds `compiler jock' and `systems jock' seem to be the best-established examples.
:joe code: /joh' kohd`/ /n./ 1. Code that is overly {tense} and unmaintainable. "{Perl} may be a handy program, but if you look at the source, it's complete joe code." 2. Badly written, possibly buggy code.
Correspondents wishing to remain anonymous have fingered a particular Joe at the Lawrence Berkeley Laboratory and observed that usage has drifted slightly; the original sobriquet `Joe code' was intended in sense 1.
1994 update: This term has now generalized to `<name> code', used to designate code with distinct characteristics traceable to its author. "This section doesn't check for a NULL return from malloc()! Oh. No wonder! It's Ed code!". Used most often with a programmer who has left the shop and thus is a convenient scapegoat for anything that is wrong with the project.
:jolix: /joh'liks/ /n.,adj./ 386BSD, the freeware port of the BSD Net/2 release to the Intel i386 architecture by Bill Jolitz and friends. Used to differentiate from BSDI's port based on the same source tape, which used to be called BSD/386 and is now BSD/OS. See {BSD}.
:JR[LN]: /J-R-L/, /J-R-N/ /n./ The names JRL and JRN were sometimes used as example names when discussing a kind of user ID used under {{TOPS-10}} and {WAITS}; they were understood to be the initials of (fictitious) programmers named `J. Random Loser' and `J. Random Nerd' (see {J. Random}). For example, if one said "To log in, type log one comma jay are en" (that is, "log 1,JRN"), the listener would have understood that he should use his own computer ID in place of `JRN'.
:JRST: /jerst/ /v. obs./ [based on the PDP-10 jump instruction] To suddenly change subjects, with no intention of returning to the previous topic. Usage: rather rare except among PDP-10 diehards, and considered silly. See also {AOS}.
:juggling eggs: /vi./ Keeping a lot of {state} in your head while modifying a program. "Don't bother me now, I'm juggling eggs", means that an interrupt is likely to result in the program's being scrambled. In the classic first-contact SF novel "The Mote in God's Eye", by Larry Niven and Jerry Pournelle, an alien describes a very difficult task by saying "We juggle priceless eggs in variable gravity." See also {hack mode}.
:jump off into never-never land: /v./ [from J. M. Barrie's "Peter Pan"] Same as {branch to Fishkill}, but more common in technical cultures associated with non-IBM computers that use the term `jump' rather than `branch'. Compare {hyperspace}.
:jupiter: /vt./ [IRC] To kill an {IRC} {robot} or user and then take its place by adopting its {nick} so that it cannot reconnect. Named after a particular IRC user who did this to NickServ, the robot in charge of preventing people from inadvertently using a nick claimed by another user.
= K = =====
:K: /K/ /n./ [from {kilo-}] A kilobyte. Used both as a spoken word and a written suffix (like {meg} and {gig} for megabyte and gigabyte). See {{quantifiers}}.
:K&R: [Kernighan and Ritchie] /n./ Brian Kernighan and Dennis Ritchie's book "The C Programming Language", esp. the classic and influential first edition (Prentice-Hall 1978; ISBN 0-113-110163-3). Syn. {White Book}, {Old Testament}. See also {New Testament}.
:k-: /pref./ Extremely. Not commonly used among hackers, but quite common among crackers and {warez d00dz} in compounds such as `k-kool' /K'kool'/, `k-rad' /K'rad'/, and `k-awesome' /K'aw`sm/. Also used to intensify negatives; thus, `k-evil', `k-lame', `k-screwed', and `k-annoying'. Overuse of this prefix, or use in more formal or technical contexts, is considered an indicator of {lamer} status.
:kahuna: /k*-hoo'n*/ /n./ [IBM: from the Hawaiian title for a shaman] Synonym for {wizard}, {guru}.
:kamikaze packet: /n./ The `official' jargon for what is more commonly called a {Christmas tree packet}. {RFC}-1025, "TCP and IP Bake Off" says:
10 points for correctly being able to process a "Kamikaze" packet (AKA nastygram, christmas tree packet, lamp test segment, et al.). That is, correctly handle a segment with the maximum combination of features at once (e.g., a SYN URG PUSH FIN segment with options and data).
See also {Chernobyl packet}.
:kangaroo code: /n./ Syn. {spaghetti code}.
:ken: /ken/ /n./ 1. [Unix] Ken Thompson, principal inventor of Unix. In the early days he used to hand-cut distribution tapes, often with a note that read "Love, ken". Old-timers still use his first name (sometimes uncapitalized, because it's a login name and mail address) in third-person reference; it is widely understood (on Usenet, in particular) that without a last name `Ken' refers only to Ken Thompson. Similarly, Dennis without last name means Dennis Ritchie (and he is often known as dmr). See also {demigod}, {{Unix}}. 2. A flaming user. This was originated by the Software Support group at Symbolics because the two greatest flamers in the user community were both named Ken.
:kgbvax: /K-G-B'vaks/ /n./ See {kremvax}.
:KIBO: /ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out. A summary of what happens whenever valid data is passed through an organization (or person) that deliberately or accidentally disregards or ignores its significance. Consider, for example, what an advertising campaign can do with a product's actual specifications. Compare {GIGO}; see also {SNAFU principle}. 2. James Parry <kibo@world.std.com>, a Usenetter infamous for various surrealist net.pranks and an uncanny, machine-assisted knack for joining any thread in which his nom de guerre is mentioned.
:kiboze: /v./ [Usenet] To {grep} the Usenet news for a string, especially with the intention of posting a follow-up. This activity was popularised by Kibo (see {KIBO}, sense 2).
:kibozo: /ki:-boh'zoh/ /n./ [Usenet] One who {kiboze}s but is not Kibo (see {KIBO}, sense 2).
:kick: /v./ [IRC] To cause somebody to be removed from a {IRC} channel, an option only available to {CHOP}s. This is an extreme measure, often used to combat extreme {flamage} or {flood}ing, but sometimes used at the chop's whim. Compare {gun}.
:kill file: /n./ [Usenet] (alt. `KILL file') Per-user file(s) used by some {Usenet} reading programs (originally Larry Wall's `rn(1)') to discard summarily (without presenting for reading) articles matching some particularly uninteresting (or unwanted) patterns of subject, author, or other header lines. Thus to add a person (or subject) to one's kill file is to arrange for that person to be ignored by one's newsreader in future. By extension, it may be used for a decision to ignore the person or subject in other media. See also {plonk}.
:killer app: The application that actually makes a mass market for a promising but under-utilized technology. First used in the mid-1980s to describe Lotus 1-2-3 once it became evident that demand for that product had been the major driver of the early business market for IBM PCs. The term was then restrospectively applied to VisiCalc, which had played a similar role in the success of the Apple II. After 1994 it became commonplace to describe the World Wide Web as the Internet's killer app. One of the standard questions asked about each new personal-computer technology as it emerges has become "what's the killer app?"
:killer micro: /n./ [popularized by Eugene Brooks] A microprocessor-based machine that infringes on mini, mainframe, or supercomputer performance turf. Often heard in "No one will survive the attack of the killer micros!", the battle cry of the downsizers. Used esp. of RISC architectures.
The popularity of the phrase `attack of the killer micros' is doubtless reinforced by the title of the movie "Attack Of The Killer Tomatoes" (one of the {canonical} examples of so-bad-it's-wonderful among hackers). This has even more {flavor} now that killer micros have gone on the offensive not just individually (in workstations) but in hordes (within massively parallel computers).
[1996 update: Eugene Brooks was right. Since this term first entered the Jargon File in 1990, the minicomputer has effectively vanished, the {mainframe} sector is in deep and apparently terminal decline (with IBM but a shadow of its former self), and even the supercomputer business has contracted into a smaller niche. It's networked killer micros as far as the eye can see. —ESR]
:killer poke: /n./ A recipe for inducing hardware damage on a machine via insertion of invalid values (see {poke}) into a memory-mapped control register; used esp. of various fairly well-known tricks on {bitty box}es without hardware memory management (such as the IBM PC and Commodore PET) that can overload and trash analog electronics in the monitor. See also {HCF}.
:kilo-: /pref./ [SI] See {{quantifiers}}.
:KIPS: /kips/ /n./ [abbreviation, by analogy with {MIPS} using {K}] Thousands (*not* 1024s) of Instructions Per Second. Usage: rare.
:KISS Principle: /kis' prin'si-pl/ /n./ "Keep It Simple, Stupid". A maxim often invoked when discussing design to fend off {creeping featurism} and control development complexity. Possibly related to the {marketroid} maxim on sales presentations, "Keep It Short and Simple".
:kit: /n./ [Usenet; poss. fr. DEC slang for a full software distribution, as opposed to a patch or upgrade] A source software distribution that has been packaged in such a way that it can (theoretically) be unpacked and installed according to a series of steps using only standard Unix tools, and entirely documented by some reasonable chain of references from the top-level {README file}. The more general term {distribution} may imply that special tools or more stringent conditions on the host environment are required.
:klone: /klohn/ /n./ See {clone}, sense 4.
:kludge: 1. /klooj/ /n./ Incorrect (though regrettably common) spelling of {kluge} (US). These two words have been confused in American usage since the early 1960s, and widely confounded in Great Britain since the end of World War II. 2. [TMRC] A {crock} that works. (A long-ago "Datamation" article by Jackson Granholme similarly said: "An ill-assorted collection of poorly matching parts, forming a distressing whole.") 3. /v./ To use a kludge to get around a problem. "I've kludged around it for now, but I'll fix it up properly later."
This word appears to have derived from Scots `kludge' or `kludgie' for a common toilet, via British military slang. It apparently became confused with U.S. {kluge} during or after World War II; some Britons from that era use both words in definably different ways, but {kluge} is now uncommon in Great Britain. `Kludge' in Commonwealth hackish differs in meaning from `kluge' in that it lacks the positive senses; a kludge is something no Commonwealth hacker wants to be associated too closely with. Also, `kludge' is more widely known in British mainstream slang than `kluge' is in the U.S.
:kluge: /klooj/ [from the German `klug', clever; poss. related to Polish `klucza', a trick or hook] 1. /n./ A Rube Goldberg (or Heath Robinson) device, whether in hardware or software. 2. /n./ A clever programming trick intended to solve a particular nasty case in an expedient, if not clear, manner. Often used to repair bugs. Often involves {ad-hockery} and verges on being a {crock}. 3. /n./ Something that works for the wrong reason. 4. /vt./ To insert a kluge into a program. "I've kluged this routine to get around that weird bug, but there's probably a better way." 5. [WPI] /n./ A feature that is implemented in a {rude} manner.
Nowadays this term is often encountered in the variant spelling `kludge'. Reports from {old fart}s are consistent that `kluge' was the original spelling, reported around computers as far back as the mid-1950s and, at that time, used exclusively of *hardware* kluges. In 1947, the "New York Folklore Quarterly" reported a classic shaggy-dog story `Murgatroyd the Kluge Maker' then current in the Armed Forces, in which a `kluge' was a complex and puzzling artifact with a trivial function. Other sources report that `kluge' was common Navy slang in the WWII era for any piece of electronics that worked well on shore but consistently failed at sea.
However, there is reason to believe this slang use may be a decade older. Several respondents have connected it to the brand name of a device called a "Kluge paper feeder", an adjunct to mechanical printing presses. Legend has it that the Kluge feeder was designed before small, cheap electric motors and control electronics; it relied on a fiendishly complex assortment of cams, belts, and linkages to both power and synchronize all its operations from one motive driveshaft. It was accordingly temperamental, subject to frequent breakdowns, and devilishly difficult to repair — but oh, so clever! People who tell this story also aver that `Kluge' was the name of a design engineer.
There is in fact a Brandtjen & Kluge Inc., an old family business that manufactures printing equipment — interestingly, their name is pronounced /kloo'gee/! Henry Brandtjen, president of the firm, told me (ESR, 1994) that his company was co-founded by his father and an engineer named Kluge /kloo'gee/, who built and co-designed the original Kluge automatic feeder in 1919. Mr. Brandtjen claims, however, that this was a *simple* device (with only four cams); he says he has no idea how the myth of its complexity took hold.
{TMRC} and the MIT hacker culture of the early '60s seems to have developed in a milieu that remembered and still used some WWII military slang (see also {foobar}). It seems likely that `kluge' came to MIT via alumni of the many military electronics projects that had been located in Cambridge (many in MIT's venerable Building 20, in which {TMRC} is also located) during the war.
The variant `kludge' was apparently popularized by the {Datamation} article mentioned above; it was titled "How to Design a Kludge" (February 1962, pp. 30, 31). This spelling was probably imported from Great Britain, where {kludge} has an independent history (though this fact was largely unknown to hackers on either side of the Atlantic before a mid-1993 debate in the Usenet group alt.folklore.computers over the First and Second Edition versions of this entry; everybody used to think {kludge} was just a mutation of {kluge}). It now appears that the British, having forgotten the etymology of their own `kludge' when `kluge' crossed the Atlantic, repaid the U.S. by lobbing the `kludge' orthography in the other direction and confusing their American cousins' spelling!
The result of this history is a tangle. Many younger U.S. hackers pronounce the word as /klooj/ but spell it, incorrectly for its meaning and pronunciation, as `kludge'. (Phonetically, consider huge, refuge, centrifuge, and deluge as opposed to sludge, judge, budge, and fudge. Whatever its failings in other areas, English spelling is perfectly consistent about this distinction.) British hackers mostly learned /kluhj/ orally, use it in a restricted negative sense and are at least consistent. European hackers have mostly learned the word from written American sources and tend to pronounce it /kluhj/ but use the wider American meaning!
Some observers consider this mess appropriate in view of the word's meaning.
:kluge around: /vt./ To avoid a bug or difficult condition by inserting a {kluge}. Compare {workaround}.
:kluge up: /vt./ To lash together a quick hack to perform a task; this is milder than {cruft together} and has some of the connotations of {hack up} (note, however, that the construction `kluge on' corresponding to {hack on} is never used). "I've kluged up this routine to dump the buffer contents to a safe place."
:Knights of the Lambda Calculus: /n./ A semi-mythical organization of wizardly LISP and Scheme hackers. The name refers to a mathematical formalism invented by Alonzo Church, with which LISP is intimately connected. There is no enrollment list and the criteria for induction are unclear, but one well-known LISPer has been known to give out buttons and, in general, the *members* know who they are….
:Knuth: /knooth'/ /n./ [Donald E. Knuth's "The Art of Computer Programming"] Mythically, the reference that answers all questions about data structures or algorithms. A safe answer when you do not know: "I think you can find that in Knuth." Contrast {literature, the}. See also {bible}. There is a Donald Knuth home page at http://www-cs-faculty.Stanford.EDU/~knuth.
:kremvax: /krem-vaks/ /n./ [from the then large number of {Usenet} {VAXen} with names of the form foovax] Originally, a fictitious Usenet site at the Kremlin, announced on April 1, 1984 in a posting ostensibly originated there by Soviet leader Konstantin Chernenko. The posting was actually forged by Piet Beertema as an April Fool's joke. Other fictitious sites mentioned in the hoax were moskvax and {kgbvax}. This was probably the funniest of the many April Fool's forgeries perpetrated on Usenet (which has negligible security against them), because the notion that Usenet might ever penetrate the Iron Curtain seemed so totally absurd at the time.
In fact, it was only six years later that the first genuine site in Moscow, demos.su, joined Usenet. Some readers needed convincing that the postings from it weren't just another prank. Vadim Antonov, senior programmer at Demos and the major poster from there up to mid-1991, was quite aware of all this, referred to it frequently in his own postings, and at one point twitted some credulous readers by blandly asserting that he *was* a hoax!
Eventually he even arranged to have the domain's gateway site named kremvax, thus neatly turning fiction into fact and demonstrating that the hackish sense of humor transcends cultural barriers. [Mr. Antonov also contributed the Russian-language material for this lexicon. —ESR]
In an even more ironic historical footnote, kremvax became an electronic center of the anti-communist resistance during the bungled hard-line coup of August 1991. During those three days the Soviet UUCP network centered on kremvax became the only trustworthy news source for many places within the USSR. Though the sysops were concentrating on internal communications, cross-border postings included immediate transliterations of Boris Yeltsin's decrees condemning the coup and eyewitness reports of the demonstrations in Moscow's streets. In those hours, years of speculation that totalitarianism would prove unable to maintain its grip on politically-loaded information in the age of computer networking were proved devastatingly accurate — and the original kremvax joke became a reality as Yeltsin and the new Russian revolutionaries of `glasnost' and `perestroika' made kremvax one of the timeliest means of their outreach to the West.
:kyrka: /shir'k*/ /n./ [Swedish] See {feature key}.
= L = =====
:lace card: /n. obs./ A {{punched card}} with all holes punched (also called a `whoopee card' or `ventilator card'). Card readers tended to jam when they got to one of these, as the resulting card had too little structural strength to avoid buckling inside the mechanism. Card punches could also jam trying to produce these things owing to power-supply problems. When some practical joker fed a lace card through the reader, you needed to clear the jam with a `card knife' — which you used on the joker first.
:lamer: /n./ [prob. originated in skateboarder slang] Synonym for {luser}, not used much by hackers but common among {warez d00dz}, crackers, and {phreaker}s. Oppose {elite}. Has the same connotations of self-conscious elitism that use of {luser} does among hackers.
Crackers also use it to refer to cracker {wannabee}s. In phreak culture, a lamer is one who scams codes off others rather than doing cracks or really understanding the fundamental concepts. In {warez d00dz} culture, where the ability to wave around cracked commercial software within days of (or before) release to the commercial market is much esteemed, the lamer might try to upload garbage or shareware or something incredibly old (old in this context is read as a few years to anything older than 3 days).
: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.