The New Hacker’s Dictionary version 4.211

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 in C (the opening brace tends to get lost against the right paren of the guard part in an if or while, which is a
This page contains affiliate links. As Amazon Associates we earn from qualifying purchases.
FREE Audible 30 days

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 in C (the opening brace tends to get lost against the right paren of the guard part in an if or while, which is a [7168]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.

The Java Language Specification legislates not only the capitalization of identifiers, but where nouns, adjectives, and verbs should be in method, class, interface, and variable names (section 6.8). While the specification stops short of also standardizing on a bracing style, all source code originating from Sun Laboratories uses the K&R style. This has set a precedent for Java programmers, which most follow.
Doubtless these issues will continue to be the subject of [7169]holy wars.
Node:index of X, Next:[7170]infant mortality, Previous:[7171]indent style, Up:[7172]= I =

index of X n.

See [7173]coefficient of X.
Node:infant mortality, Next:[7174]infinite, Previous:[7175]index of X, Up:[7176]= I =

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 [7177]bathtub curve, [7178]burn-in period. _________________________________________________________________
Node:infinite, Next:[7179]infinite loop, Previous:[7180]infant mortality, Up:[7181]= I =

infinite adj.

[common] 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 [7182]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 [7183]semi.
Node:infinite loop, Next:[7184]Infinite-Monkey Theorem, Previous:[7185]infinite, Up:[7186]= I =
infinite loop n.

One that never terminates (that is, the machine [7187]spins or [7188]buzzes forever and goes [7189]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!”
Node:Infinite-Monkey Theorem, Next:[7190]infinity, Previous:[7191]infinite loop, Up:[7192]= I =
Infinite-Monkey Theorem n.

“If you put an [7193]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 [7194]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 [7195]brute force method; the implication is that, with enough resources thrown at it, any technical challenge becomes a [7196]one-banana problem. This argument gets more respect since [7197]Linux justified the [7198]bazaar mode of development.
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”. On 1 April 2000 the usage acquired its own Internet standard, [7199] (Infinite Monkey Protocol Suite).
Node:infinity, Next:[7200]inflate, Previous:[7201]Infinite-Monkey Theorem, Up:[7202]= I =

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.
Node:inflate, Next:[7203]Infocom, Previous:[7204]infinity, Up:[7205]= I =

inflate vt.

To decompress or [7206]puff a file. Rare among Internet hackers, used primarily by MS-DOS/Windows types.
Node:Infocom, Next:[7207]initgame, Previous:[7208]inflate, Up:[7209]= I =

Infocom n.

A now-legendary games company, active from 1979 to 1989, that commercialized the MDL parser technology used for [7210]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. After being acquired by Activision in 1989 they did a few more “modern” (e.g. graphics-intensive) games which were less successful than reissues of their classics.
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 not only freeware emulators for that interpreter but an actual compiler as well have been written to permit the P-code to be run on platforms the games never originally graced. In fact, new games written in this P-code are still bering written. (Emulators that can run Infocom game ZIPs, and new games, are available at [7211] _________________________________________________________________
Node:initgame, Next:[7212]insanely great, Previous:[7213]Infocom, Up:[7214]= I =

initgame /in-it’gaym/ n.

[IRC] An [7215]IRC version of the trivia game “Botticelli”, in which one user changes his [7216]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 [7217]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] _________________________________________________________________
Node:insanely great, Next:[7218]installfest, Previous:[7219]initgame, Up:[7220]= I =

insanely great adj.

[Mac community, from Steve Jobs; also BSD Unix people via Bill Joy] Something so incredibly [7221]elegant that it is imaginable only to someone possessing the most puissant of [7222]hacker-natures. _________________________________________________________________
Node:installfest, Next:[7223]INTERCAL, Previous:[7224]insanely great, Up:[7225]= I =


[Linux community since c.1998] Common portmanteau word for “installation festival”; Linux user groups frequently run these. Computer users are invited to bring their machines to have Linux installed on their machines. The idea is to get them painlessly over the biggest hump in migrating to Linux, which is initially installing and configuring it for the user’s machine. _________________________________________________________________
Node:INTERCAL, Next:[7226]interesting, Previous:[7227]installfest, Up:[7228]= I =

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.

Inevitably, INTERCAL has a home page on the Web: [7229] An extended version, implemented in (what else?) [7230]Perl and adding object-oriented features, is available at [7231] See also [7232]Befunge.
Node:interesting, Next:[7233]Internet, Previous:[7234]INTERCAL, Up:[7235]= I =

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 [7236]trivial, [7237]uninteresting.
Node:Internet, Next:[7238]Internet address, Previous:[7239]interesting, Up:[7240]= I =
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 [7241]DEC [7242]PDP-10s and [7243]PDP-20s, running [7244]TOPS-10 and [7245]TOPS-20, to PDP-11s and VAXes and Suns running [7246]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 [7247]TCP/IP in 1982 and the implementation of Domain Name Service in 1983. 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 [7248]killer app was not the anticipated one – rather, what caught the public imagination was the hypertext and multimedia features of the World Wide Web. Subsequently 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 the proprietary networks built during the second wave of wide-area networking after 1980. It is now (1996) 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 [7249]the network and [7250]Internet address.
Node:Internet address, Next:[7251]Internet Death Penalty, Previous:[7252]Internet, Up:[7253]= I =
Internet address n.

1. [techspeak] An absolute network address of the form foo@bar.baz, where foo is a user name, bar is a [7254]sitename, and baz is a `domain’ name, possibly including periods itself. Contrast with [7255]bang path; see also [7256]the network and [7257]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 [7258]PD software written since 1980 or so. See also [7259]bang path, [7260]domainist. 2. More loosely, any network address reachable through Internet; this includes [7261]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:

commercial organizations

educational institutions

U.S. government civilian sites
U.S. military sites

Note that most of the sites in the com and edu domains are in the U.S. or Canada.

sites in the U.S. outside the functional domains
sites in the ex-Soviet Union (see [7262]kremvax).
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.
Node:Internet Death Penalty, Next:[7263]Internet Exploder, Previous:[7264]Internet address, Up:[7265]= I =
Internet Death Penalty

[Usenet] (often abbreviated IDP) The ultimate sanction against [7266]spam-emitting sites – complete shunning at the router level of all mail and packets, as well as Usenet messages, from the offending domain(s). Compare [7267]Usenet Death Penalty, with which it is sometimes confused.
Node:Internet Exploder, Next:[7268]Internet Exploiter, Previous:[7269]Internet Death Penalty, Up:[7270]= I =
Internet Exploder

[very common] Pejorative hackerism for Microsoft’s “Internet Explorer” web browser (also “Internet Exploiter”). Compare [7271]HP-SUX, [7272]AIDX, [7273]buglix, [7274]Macintrash, [7275]Telerat, [7276]ScumOS, [7277]sun-stools, [7278]Slowlaris. _________________________________________________________________
Node:Internet Exploiter, Next:[7279]interrupt, Previous:[7280]Internet Exploder, Up:[7281]= I =

Internet Exploiter n.

Another common name-of-insult for Internet Explorer, Microsoft’s overweight Web Browser; more hostile than [7282]Internet Exploder. Reflects widespread hostility to Microsoft and a sense that it is seeking to hijack, monopolize, and corrupt the Internet. Compare [7283]Exploder and the less pejorative [7284]Netscrape. _________________________________________________________________
Node:interrupt, Next:[7285]interrupt list, Previous:[7286]Internet Exploiter, Up:[7287]= I =


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 [7288]trap. 2. interj. A request for attention from a hacker. Often explicitly spoken. “Interrupt — have you seen Joe recently?” See [7289]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 [7290]interrupt list) and because programmers so often have to bypass the OS (going directly to a BIOS interrupt) to get reasonable performance.
Node:interrupt list, Next:[7291]interrupts locked out, Previous:[7292]interrupt, Up:[7293]= I =
interrupt list 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 [7294], 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. He has a website at [7585] _________________________________________________________________
Node:kiboze, Next:[7586]kibozo, Previous:[7587]KIBO, Up:[7588]= K =
kiboze v.

[Usenet] To [7589]grep the Usenet news for a string, especially with the intention of posting a follow-up. This activity was popularised by Kibo (see [7590]KIBO, sense 2).
Node:kibozo, Next:[7591]kick, Previous:[7592]kiboze, Up:[7593]= K =
kibozo /ki:-boh’zoh/ n.

[Usenet] One who [7594]kibozes but is not Kibo (see [7595]KIBO, sense 2).
Node:kick, Next:[7596]kill file, Previous:[7597]kibozo, Up:[7598]= K =
kick v.

1. [IRC] To cause somebody to be removed from a [7599]IRC channel, an option only available to channel ops. This is an extreme measure, often used to combat extreme [7600]flamage or [7601]flooding, but sometimes used at the [7602]CHOP’s whim. Compare [7603]gun. 2. To reboot a machine or kill a running process. “The server’s down, let me go kick it.”
Node:kill file, Next:[7604]killer app, Previous:[7605]kick, Up:[7606]= K =

kill file n.

[Usenet; very common] (alt. `KILL file’) Per-user file(s) used by some [7607]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 [7608]plonk. _________________________________________________________________
Node:killer app, Next:[7609]killer micro, Previous:[7610]kill file, Up:[7611]= K =

killer app

The application that actually makes a sustaining 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?”
Node:killer micro, Next:[7612]killer poke, Previous:[7613]killer app, Up:[7614]= K =

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 [7615]canonical examples of so-bad-it’s-wonderful among hackers). This has even more [7616]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 [7617]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] _________________________________________________________________
Node:killer poke, Next:[7618]kilo-, Previous:[7619]killer micro, Up:[7620]= K =

killer poke n.

A recipe for inducing hardware damage on a machine via insertion of invalid values (see [7621]poke) into a memory-mapped control register; used esp. of various fairly well-known tricks on [7622]bitty boxes without hardware memory management (such as the IBM PC and Commodore PET) that can overload and trash analog electronics in the monitor. See also [7623]HCF.
Node:kilo-, Next:[7624]KIPS, Previous:[7625]killer poke, Up:[7626]= K =

kilo- pref.

[SI] See [7627]quantifiers.
Node:KIPS, Next:[7628]KISS Principle, Previous:[7629]kilo-, Up:[7630]= K =

KIPS /kips/ n.

[abbreviation, by analogy with [7631]MIPS using [7632]K] Thousands (not 1024s) of Instructions Per Second. Usage: rare. _________________________________________________________________
Node:KISS Principle, Next:[7633]kit, Previous:[7634]KIPS, Up:[7635]= K =

KISS Principle /kis’ prin’si-pl/ n.
“Keep It Simple, Stupid”. A maxim often invoked when discussing design to fend off [7636]creeping featurism and control development complexity. Possibly related to the [7637]marketroid maxim on sales presentations, “Keep It Short and Simple”. _________________________________________________________________
Node:kit, Next:[7638]klone, Previous:[7639]KISS Principle, Up:[7640]= K =

kit n.

[Usenet; poss. fr. [7641]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 [7642]README file. The more general term [7643]distribution may imply that special tools or more stringent conditions on the host environment are required. _________________________________________________________________
Node:klone, Next:[7644]kludge, Previous:[7645]kit, Up:[7646]= K =
klone /klohn/ n.

See [7647]clone, sense 4.
Node:kludge, Next:[7648]kluge, Previous:[7649]klone, Up:[7650]= K =
kludge 1. /klooj/ n.

Incorrect (though regrettably common) spelling of [7651]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 [7652]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. [7653]kluge during or after World War II; some Britons from that era use both words in definably different ways, but [7654]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. _________________________________________________________________
Node:kluge, Next:[7655]kluge around, Previous:[7656]kludge, Up:[7657]= K =

kluge /klooj/

[from the German `klug’, clever; poss. related to Polish `klucz’ (a key, a hint, a main point)] 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 [7658]ad-hockery and verges on being a [7659]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 [7660]rude manner.

Nowadays this term is often encountered in the variant spelling `kludge’. Reports from [7661]old farts 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.
[7662]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 [7663]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 [7664]TMRC is also located) during the war.
The variant `kludge’ was apparently popularized by the [7665]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 [7666]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 [7667]kludge was just a mutation of [7668]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.
Node:kluge around, Next:[7669]kluge up, Previous:[7670]kluge, Up:[7671]= K =

kluge around vt.

To avoid a bug or difficult condition by inserting a [7672]kluge. Compare [7673]workaround.
Node:kluge up, Next:[7674]Knights of the Lambda Calculus, Previous:[7675]kluge around, Up:[7676]= K =
kluge up vt.

To lash together a quick hack to perform a task; this is milder than [7677]cruft together and has some of the connotations of [7678]hack up (note, however, that the construction `kluge on’ corresponding to [7679]hack on is never used). “I’ve kluged up this routine to dump the buffer contents to a safe place.”
Node:Knights of the Lambda Calculus, Next:[7680]knobs, Previous:[7681]kluge up, Up:[7682]= K =
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….
Node:knobs, Next:[7683]Knuth, Previous:[7684]Knights of the Lambda Calculus, Up:[7685]= K =

knobs pl.n.

Configurable options, even in software and even those you can’t adjust in real time. Anything you can [7686]twiddle is a knob. “Has this PNG viewer got an alpha knob?” Software may be described as having “knobs and switches” or occasionally “knobs and lights”. _________________________________________________________________
Node:Knuth, Next:[7687]koan, Previous:[7688]knobs, Up:[7689]= K =
Knuth /ka-nooth’/ 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 [7690]the literature. See also [7691]bible. There is a Donald Knuth home page at
[7692]http://www-cs-faculty.Stanford.EDU/~knuth. _________________________________________________________________
Node:koan, Next:[7693]kremvax, Previous:[7694]Knuth, Up:[7695]= K =
koan /koh’an/ n.

A Zen teaching riddle. Classically, koans are attractive paradoxes to be meditated on; their purpose is to help one to enlightenment by temporarily jamming normal cognitive processing so that something more interesting can happen (this practice is associated with Rinzei Zen Buddhism). Hackers are very fond of the koan form and compose their own koans for humororous and/or enlightening effect. See [7696]Some AI Koans, [7697]has the X nature, [7698]hacker humor. _________________________________________________________________
Node:kremvax, Next:[7699]kyrka, Previous:[7700]koan, Up:[7701]= K =
kremvax /krem-vaks/ n.

[from the then large number of [7702]Usenet [7703]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 [7704]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,, 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. _________________________________________________________________
Node:kyrka, Next:[7705]lace card, Previous:[7706]kremvax, Up:[7707]= K =

kyrka /chur’ka/ n.

[Swedish] See [7708]feature key.
Node:= L =, Next:[7709]= M =, Previous:[7710]= K =, Up:[7711]The Jargon Lexicon

= L =

* [7712]lace card:
* [7713]lag:
* [7714]lamer:
* [7715]language lawyer:
* [7716]languages of choice:
* [7717]LART:
* [7718]larval stage:
* [7719]lase:
* [7720]laser chicken:
* [7721]lasherism:
* [7722]laundromat:
* [7723]LDB:
* [7724]leaf site:
* [7725]leak:
* [7726]leaky heap:
* [7727]leapfrog attack:
* [7728]leech:
* [7729]leech mode:
* [7730]legal:
* [7731]legalese:
* [7732]LER:
* [7733]LERP:
* [7734]let the smoke out:
* [7735]letterbomb:
* [7736]lexer:
* [7737]lexiphage:
* [7738]life:
* [7739]Life is hard:
* [7740]light pipe:
* [7741]lightweight:
* [7742]like kicking dead whales down the beach: * [7743]like nailing jelly to a tree: * [7744]line 666:
* [7745]line eater the:
* [7746]line noise:
* [7747]line starve:
* [7748]linearithmic:
* [7749]link farm:
* [7750]link rot:
* [7751]link-dead:
* [7752]lint:
* [7753]Lintel:
* [7754]Linus:
* [7755]Linux:
* [7756]lion food:
* [7757]Lions Book:
* [7758]LISP:
* [7759]list-bomb:
* [7760]lithium lick:
* [7761]little-endian:
* [7762]live:
* [7763]live data:
* [7764]Live Free Or Die!:
* [7765]livelock:
* [7766]liveware:
* [7767]lobotomy:
* [7768]locals the:
* [7769]locked and loaded:
* [7770]locked up:
* [7771]logic bomb:
* [7772]logical:
* [7773]loop through:
* [7774]loose bytes:
* [7775]lord high fixer:
* [7776]lose:
* [7777]lose lose:
* [7778]loser:
* [7779]losing:
* [7780]loss:
* [7781]lossage:
* [7782]lost in the noise:
* [7783]lost in the underflow:
* [7784]lots of MIPS but no I/O: * [7785]low-bandwidth:
* [7786]LPT:
* [7787]Lubarsky’s Law of Cybernetic Entomology: * [7788]Lumber Cartel:
* [7789]lunatic fringe:
* [7790]lurker:
* [7791]luser:
Node:lace card, Next:[7792]lag, Previous:[7793]kyrka, Up:[7794]= L =
lace card n. obs.

A [7795]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.
Node:lag, Next:[7796]lamer, Previous:[7797]lace card, Up:[7798]= L =
lag n.

[MUD, IRC; very common] When used without qualification this is synomous with [7799]netlag. Curiously, people will often complain “I’m really lagged” when in fact it is their server or network connection that is lagging.
Node:lamer, Next:[7800]language lawyer, Previous:[7801]lag, Up:[7802]= L =

lamer n.

[prob. originated in skateboarder slang] 1. Synonym for [7803]luser, not used much by hackers but common among [7804]warez d00dz, crackers, and [7805]phreakers. A person who downloads much, but who never uploads. (Also known as `leecher’). Oppose [7806]elite. Has the same connotations of self-conscious elitism that use of [7807]luser does among hackers. 2. Someone who tries to crack a BBS. 3. Someone who annoys the sysop or other BBS users – for instance, by posting lots of silly messages, uploading virus-ridden software, frequently dropping carrier, etc.

Crackers also use it to refer to cracker [7808]wannabees. In phreak culture, a lamer is one who scams codes off others rather than doing cracks or really understanding the fundamental concepts. In [7809]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).
`Lamer’ is also much used in the IRC world in a similar sense to the above.
Node:language lawyer, Next:[7810]languages of choice, Previous:[7811]lamer, Up:[7812]= L =

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 [7813]wizard, [7814]legal, [7815]legalese.
Node:languages of choice, Next:[7816]LART, Previous:[7817]language lawyer, Up:[7818]= L =

languages of choice n.

[7819]C, [7820]C++, [7821]LISP, and [7822]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 1999 it looks as though [7823]Java has displaced 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. [7824]Python, 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 [7825]Real Programmers, and other hackers consider them a bit odd (see “[7826]The Story of Mel” in Appendix A). Assembler is generally no longer considered interesting or appropriate for anything but [7827]HLL implementation, [7828]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 [7829]Pascal and [7830]Ada, which don’t give them the near-total freedom considered necessary for hacking (see [7831]bondage-and-discipline language), and to regard everything even remotely connected with [7832]COBOL or other traditional [7833]card walloper languages as a total and unmitigated [7834]loss.
Node:LART, Next:[7835]larval stage, Previous:[7836]languages of choice, Up:[7837]= L =


Luser Attitude Readjustment Tool. 1. n. In the collective mythos of [7838]scary devil monastery, this is an essential item in the toolkit of every [7839]BOFH. The LART classic is a 2×4 or other large billet of wood usable as a club, to be applied upside the head of spammers and other people who cause sysadmins more grief than just naturally goes with the job. Perennial debates rage on alt.sysadmin.recovery over what constitutes the truly effective LART; knobkerries, semiautomatic weapons, flamethrowers, and tactical nukes all have their partisans. Compare [7840]clue-by-four. 2. v. To use a LART. Some would add “in malice”, but some sysadmins do prefer to gently lart their users as a first (and sometimes final) warning. 3. interj. Calling for one’s LART, much as a surgeon might call “Scalpel!”. 4. interj. [rare] Used in [7841]flames as a rebuke. “LART! LART! LART!” _________________________________________________________________
Node:larval stage, Next:[7842]lase, Previous:[7843]LART, Up:[7844]= L =

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 [7845]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 [7846]wannabee. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new [7847]OS or programming language.
Node:lase, Next:[7848]laser chicken, Previous:[7849]larval stage, Up:[7850]= L =

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.”
Node:laser chicken, Next:[7851]lasherism, Previous:[7852]lase, Up:[7853]= L =

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 [7854]zap you just like a laser, and the sauce has a red color reminiscent of some laser beams. The dish has also been called `gunpowder chicken’.
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). _________________________________________________________________
Node:lasherism, Next:[7855]laundromat, Previous:[7856]laser chicken, Up:[7857]= L =

lasherism n.

[Harvard] A program that solves a standard problem (such as the Eight Queens puzzle or implementing the [7858]life algorithm) in a deliberately nonstandard way. Distinguished from a [7859]crock or [7860]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 [7861]Obfuscated C Contest, and occasionally in [7862]retrocomputing. Lew Lasher was a student at Harvard around 1980 who became notorious for such behavior. _________________________________________________________________
Node:laundromat, Next:[7863]LDB, Previous:[7864]lasherism, Up:[7865]= L =

laundromat n.

Syn. [7866]disk farm; see [7867]washing machine. _________________________________________________________________
Node:LDB, Next:[7868]leaf site, Previous:[7869]laundromat, Up:[7870]= L =

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 [7871]DPB.
Node:leaf site, Next:[7872]leak, Previous:[7873]LDB, Up:[7874]= L =
leaf site n.,obs.

Before pervasive TCP/IP, this term was used of a machine that merely originated and read Usenet news or mail, and did not relay any third-party traffic. It was often uttered in a critical tone; when the ratio of leaf sites to backbone, rib, and other relay sites got too high, the network tended to develop bottlenecks. Compare [7875]backbone site, [7876]rib site. Now that traffic patterns depend more on the distribution of routers than of host machines this term has largely fallen out of use.
Node:leak, Next:[7877]leaky heap, Previous:[7878]leaf site, Up:[7879]= L =

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. [7880]memory leak and [7881]fd leak have their own entries; one might also refer, to, say, a `window handle leak’ in a window system. _________________________________________________________________
Node:leaky heap, Next:[7882]leapfrog attack, Previous:[7883]leak, Up:[7884]= L =

leaky heap n.

[Cambridge] An [7885]arena with a [7886]memory leak. _________________________________________________________________
Node:leapfrog attack, Next:[7887]leech, Previous:[7888]leaky heap, Up:[7889]= L =

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).
Node:leech, Next:[7890]leech mode, Previous:[7891]leapfrog attack, Up:[7892]= L =


1. n. (Also `leecher’.) Among BBS types, crackers and [7893]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 [7894]lamer, usually) who constantly presses informed sources for information and/or assistance, but has nothing to contribute. 2. v. [common, Toronto area] To instantly fetch a file (other than a mail attachment) whether by FTP or IRC file req or any other method. Seems to be a holdover from the early 1990s when Toronto had a very active BBS and warez scene. _________________________________________________________________
Node:leech mode, Next:[7895]legal, Previous:[7896]leech, Up:[7897]= L =

leech mode n.

[warez d00dz] “Leech mode” or “leech access” or (simply “leech” as in “You get leech”) is the access mode on a FTP site where one can download as many files as one wants, without having to upload. Leech mode is often promised on banner sites, but rarely obtained. See [7898]ratio site, [7899]banner site.
Node:legal, Next:[7900]legalese, Previous:[7901]leech mode, Up:[7902]= L =

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 [7903]language lawyer, [7904]legalese. _________________________________________________________________
Node:legalese, Next:[7905]LER, Previous:[7906]legal, Up:[7907]= L =
legalese n.

Dense, pedantic verbiage in a language description, product specification, or interface standard; text that seems designed to obfuscate and requires a [7908]language lawyer to [7909]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, [7910]suits, and situations in which hackers generally get the short end of the stick.
Node:LER, Next:[7911]LERP, Previous:[7912]legalese, Up:[7913]= L =

n. 1. [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 [7914]SED. 2. An incandescent light bulb (the filament emits light because it’s resistively heated). _________________________________________________________________
Node:LERP, Next:[7915]let the smoke out, Previous:[7916]LER, Up:[7917]= L =

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.”
Node:let the smoke out, Next:[7918]letterbomb, Previous:[7919]LERP, Up:[7920]= L =

let the smoke out v.

To fry hardware (see [7921]fried). See [7922]magic smoke for a discussion of the underlying mythology. _________________________________________________________________
Node:letterbomb, Next:[7923]lexer, Previous:[7924]let the smoke out, Up:[7925]= L =


1. n. A piece of [7926]email containing [7927]live data intended to do nefarious things to the recipient’s machine or terminal. It used to be possible, for example, to send letterbombs that would lock up some specific kinds of terminals when they are viewed, so thoroughly that the user must cycle power (see [7928]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; fortunately it has been some years since any of the standard Unix/Internet mail software was vulnerable to such an attack (though, as the Melissa virus attack demonstrated in early 1999, Microsoft systems can have serious problems). See also [7929]Trojan horse; compare [7930]nastygram. 2. Loosely, a [7931]mailbomb.
Node:lexer, Next:[7932]lexiphage, Previous:[7933]letterbomb, Up:[7934]= L =

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 =-.”
Node:lexiphage, Next:[7935]life, Previous:[7936]lexer, Up:[7937]= L =
lexiphage /lek’si-fayj`/ n.

A notorious word [7938]chomper on ITS. See [7939]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.
Node:life, Next:[7940]Life is hard, Previous:[7941]lexiphage, Up:[7942]= L =

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 [7943]TECO!; see [7944]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 [7945]Usenet. As in “[7946]Get a life!” _________________________________________________________________
Node:Life is hard, Next:[7947]light pipe, Previous:[7948]life, Up:[7949]= L =

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.
Node:light pipe, Next:[7950]lightweight, Previous:[7951]Life is hard, Up:[7952]= L =

light pipe n.

Fiber optic cable. Oppose [7953]copper. _________________________________________________________________
Node:lightweight, Next:[7954]like kicking dead whales down the beach, Previous:[7955]light pipe, Up:[7956]= L =
lightweight adj.

Opposite of [7957]heavyweight; usually found in combining forms such as `lightweight process’.
Node:like kicking dead whales down the beach, Next:[7958]like nailing jelly to a tree, Previous:[7959]lightweight, Up:[7960]= L =
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 [7961]fear and loathing.
Node:like nailing jelly to a tree, Next:[7962]line 666, Previous:[7963]like kicking dead whales down the beach, Up:[7964]= L =
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