Full Text Archive logoFull Text Archive — Books, poems, drama…


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

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]http://www.rfc-editor.org/rfc/rfc2795.txt
(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

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

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]http://www.tuxedo.org/~esr/intercal/. An extended version,
implemented in (what else?) [7230]Perl and adding object-oriented
features, is available at [7231]http://dd-sh.assurdo.com/INTERCAL. 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,

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

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]http://www.kibo.com/.

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

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

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

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, 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.

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

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

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 2x4 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

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

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

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

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

Book of the day: