Part 6 out of 11



humor found among hackers, having the following marked
characteristics:

1. Fascination with form-vs.-content jokes, paradoxes, and humor
having to do with confusion of metalevels (see {meta}). One way
to make a hacker laugh: hold a red index card in front of him/her
with "GREEN" written on it, or vice-versa (note, however, that
this is funny only the first time).

2. Elaborate deadpan parodies of large intellectual constructs,
such as specifications (see {write-only memory}), standards
documents, language descriptions (see {INTERCAL}), and even
entire scientific theories (see {quantum bogodynamics},
{computron}).

3. Jokes that involve screwily precise reasoning from bizarre,
ludicrous, or just grossly counter-intuitive premises.

4. Fascination with puns and wordplay.

5. A fondness for apparently mindless humor with subversive
currents of intelligence in it --- for example, old Warner Brothers
and Rocky & Bullwinkle cartoons, the Marx brothers, the early
B-52s, and Monty Python's Flying Circus. Humor that combines this
trait with elements of high camp and slapstick is especially
favored.

6. References to the symbol-object antinomies and associated ideas
in Zen Buddhism and (less often) Taoism. See {has the X nature},
{Discordianism}, {zen}, {ha ha only serious}, {AI koans}.

See also {filk}, {retrocomputing}, and {appendix B}. If you
have an itchy feeling that all 6 of these traits are really aspects
of one thing that is incredibly difficult to talk about exactly,
you are (a) correct and (b) responding like a hacker. These traits
are also recognizable (though in a less marked form) throughout
{{science-fiction fandom}}.

:hung: [from `hung up'] adj. Equivalent to {wedged}, but more
common at UNIX/C sites. Not generally used of people. Syn. with
{locked up}, {wedged}; compare {hosed}. See also {hang}.
A hung state is distinguished from {crash}ed or {down}, where the
program or system is also unusable but because it is not running
rather than because it is waiting for something. However, the
recovery from both situations is often the same.

:hungry puppy: n. Syn. {slopsucker}.

:hungus: /huhng'g*s/ [perhaps related to slang `humongous'] adj.
Large, unwieldy, usually unmanageable. "TCP is a hungus piece of
code." "This is a hungus set of modifications."

:hyperspace: /hi:'per-spays/ n. A memory location that is *far*
away from where the program counter should be pointing, often
inaccessible because it is not even mapped in. "Another core
dump --- looks like the program jumped off to hyperspace
somehow." (Compare {jump off into never-never land}.) This
usage is from the SF notion of a spaceship jumping `into
hyperspace', that is, taking a shortcut through higher-dimensional
space --- in other words, bypassing this universe. The variant
`east hyperspace' is recorded among CMU and Bliss hackers.

= I =
=====

:I didn't change anything!: interj. An aggrieved cry often heard as
bugs manifest during a regression test. The {canonical} reply to
this assertion is "Then it works just the same as it did before,
doesn't it?" See also {one-line fix}. This is also heard from
applications programmers trying to blame an obvious applications
problem on an unrelated systems software change, for example a
divide-by-0 fault after terminals were added to a network.
Usually, their statement is found to be false. Upon close
questioning, they will admit some major restructuring of the
program that shouldn't have broken anything, in their opinion,
but which actually {hosed} the code completely.

:I see no X here.: Hackers (and the interactive computer games they
write) traditionally favor this slightly marked usage over other
possible equivalents such as "There's no X here!" or "X is
missing." or "Where's the X?". This goes back to the original
PDP-10 {ADVENT}, which would respond in this wise if you asked
it to do something involving an object not present at your location
in the game.

:i14y: // n. Abbrev. for `interoperability', with the `14'
replacing fourteen letters. Used in the {X} (windows)
community. Refers to portability and compatibility of data formats
(even binary ones) between different programs or implementations of
the same program on different machines.

:i18n: // n. Abbrev. for `internationali{z,s}ation', with the 18
replacing 18 letters. Used in the {X} (windows) community.

:IBM: /I-B-M/ Inferior But Marketable; It's Better Manually;
Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel
Movement; and a near-{infinite} number of even less complimentary
expansions, including `International Business Machines'. See
{TLA}. These abbreviations illustrate the considerable
antipathy most hackers have long felt toward the `industry leader'
(see {fear and loathing}).

What galls hackers about most IBM machines above the PC level isn't
so much that they are underpowered and overpriced (though that does
count against them), but that the designs are incredibly archaic,
{crufty}, and {elephantine} ... and you can't *fix* them
--- source code is locked up tight, and programming tools are
expensive, hard to find, and bletcherous to use once you've found
them. With the release of the UNIX-based RIOS family this may have
begun to change --- but then, we thought that when the PC-RT came
out, too.

In the spirit of universal peace and brotherhood, this lexicon now
includes a number of entries attributed to `IBM'; these derive from
some rampantly unofficial jargon lists circulated within IBM's own
beleaguered hacker underground.

:IBM discount: n. A price increase. Outside IBM, this derives from
the common perception that IBM products are generally overpriced
(see {clone}); inside, it is said to spring from a belief that
large numbers of IBM employees living in an area cause prices to
rise.

:ICBM address: n. (Also `missile address') The form used to
register a site with the USENET mapping project includes a blank
for longitude and latitude, preferably to seconds-of-arc accuracy.
This is actually used for generating geographically-correct maps of
USENET links on a plotter; however, it has become traditional to
refer to this as one's `ICBM address' or `missile address', and
many people include it in their {sig block} with that name.

:ice: [coined by USENETter Tom Maddox, popularized by William
Gibson's cyberpunk SF novels: a contrived acronym for `Intrusion
Countermeasure Electronics'] Security software (in Gibson's novels,
software that responds to intrusion by attempting to literally kill
the intruder). Also, `icebreaker': a program designed for
cracking security on a system. Neither term is in serious use yet
as of mid-1991, but many hackers find the metaphor attractive, and
each may develop a denotation in the future.

:idempotent: [from mathematical techspeak] adj. Acting exactly
once. This term is often used with respect to {C} header files,
which contain common definitions and declarations to be included by
several source files. If a header file is ever included twice
during the same compilation (perhaps due to nested #include
files), compilation errors can result unless the header file has
protected itself against multiple inclusion; a header file so
protected is said to be idempotent. The term can also be used to
describe an initialization subroutine which is arranged to perform
some critical action exactly once, even if the routine is called
several times.

:If you want X, you know where to find it.: There is a legend that
Dennis Ritchie, inventor of {C}, once responded to demands for
features resembling those of what at the time was a much more
popular language by observing "If you want PL/1, you know where to
find it." Ever since, this has been hackish standard form for
fending off requests to alter a new design to mimic some older
(and, by implication, inferior and {baroque}) one. The case X =
{Pascal} manifests semi-regularly on USENET's comp.lang.c
newsgroup. Indeed, the case X = X has been reported in
discussions of graphics software (see {X}).

:ifdef out: /if'def owt/ v. Syn. for {condition out}, specific
to {C}.

:ill-behaved: adj. 1. [numerical analysis] Said of an algorithm or
computational method that tends to blow up because of accumulated
roundoff error or poor convergence properties. 2. Software that
bypasses the defined {OS} interfaces to do things (like screen,
keyboard, and disk I/O) itself, often in a way that depends on the
hardware of the machine it is running on or which is nonportable or
incompatible with other pieces of software. In the IBM PC/MS-DOS
world, there is a folk theorem (nearly true) to the effect that
(owing to gross inadequacies and performance penalties in the OS
interface) all interesting applications are ill-behaved. See also
{bare metal}. Oppose {well-behaved}, compare {PC-ism}. See
{mess-dos}.

:IMHO: // [from SF fandom via USENET; abbreviation for `In My Humble
Opinion'] "IMHO, mixed-case C names should be avoided, as
mistyping something in the wrong case can cause hard-to-detect
errors --- and they look too Pascalish anyhow." Also seen in
variant forms such as IMNSHO (In My Not-So-Humble Opinion) and IMAO
(In My Arrogant Opinion).

:Imminent Death Of The Net Predicted!: [USENET] prov. Since USENET
first got off the ground in 1980-81, it has grown exponentially,
approximately doubling in size every year. On the other hand, most
people feel the {signal-to-noise ratio} of USENET has dropped
steadily. These trends led, as far back as mid-1983, to predictions of
the imminent collapse (or death) of the net. Ten years and
numerous doublings later, enough of these gloomy prognostications
have been confounded that the phrase "Imminent Death Of The Net
Predicted!" has become a running joke, hauled out any time someone
grumbles about the {S/N ratio} or the huge and steadily
increasing volume.

:in the extreme: adj. A preferred superlative suffix for many hackish
terms. See, for example, `obscure in the extreme' under {obscure},
and compare {highly}.

:incantation: n. Any particularly arbitrary or obscure command that
one must mutter at a system to attain a desired result. Not used
of passwords or other explicit security features. Especially used
of tricks that are so poorly documented they must be learned from a
{wizard}. "This compiler normally locates initialized data
in the data segment, but if you {mutter} the right incantation they
will be forced into text space."

:include: vt. [USENET] 1. To duplicate a portion (or whole) of
another's message (typically with attribution to the source) in a
reply or followup, for clarifying the context of one's response.
See the the discussion of inclusion styles under "Hacker
Writing Style". 2. [from {C}] `#include '
has appeared in {sig block}s to refer to a notional `standard
{disclaimer} file'.

:include war: n. Excessive multi-leveled including within a
discussion {thread}, a practice that tends to annoy readers. In
a forum with high-traffic newsgroups, such as USENET, this can lead
to {flame}s and the urge to start a {kill file}.

:indent style: [C programmers] n. The rules one uses to indent code
in a readable fashion; a subject of {holy wars}. There are four
major C indent styles, described below; all have the aim of
making it easier for the reader to visually track the scope of
control constructs. The significant variable is the placement of
`{' and `}' with respect to the statement(s) they
enclose and the guard or controlling statement (`if',
`else', `for', `while', or `do') on the block,
if any.

`K&R style' --- Named after Kernighan & Ritchie, because the
examples in {K&R} are formatted this way. Also called `kernel
style' because the UNIX kernel is written in it, and the `One True
Brace Style' (abbrev. 1TBS) by its partisans. The basic indent
shown here is eight spaces (or one tab) per level; four are
occasionally seen, but are much less common.

if (cond) {

}

`Allman style' --- Named for Eric Allman, a Berkeley hacker who
wrote a lot of the BSD utilities in it (it is sometimes called
`BSD style'). Resembles normal indent style in Pascal and Algol.
Basic indent per level shown here is eight spaces, but four is just
as common (esp. in C++ code).

if (cond)
{

}

`Whitesmiths style' --- popularized by the examples that came
with Whitesmiths C, an early commercial C compiler. Basic indent
per level shown here is eight spaces, but four is occasionally
seen.

if (cond)
{

}

`GNU style' --- Used throughout GNU EMACS and the Free Software
Foundation code, and just about nowhere else. Indents are always
four spaces per level, with `{' and `}' halfway between the
outer and inner indent levels.

if (cond)
{

}

Surveys have shown the Allman and Whitesmiths styles to be the most
common, with about equal mind shares. K&R/1TBS used to be nearly
universal, but is now much less common (the opening brace tends to
get lost against the right paren of the guard part in an `if'
or `while', which is a {Bad Thing}). Defenders of 1TBS
argue that any putative gain in readability is less important than
their style's relative economy with vertical space, which enables
one to see more code on one's screen at once. Doubtless these
issues will continue to be the subject of {holy wars}.

:index: n. See {coefficient of X}.

:infant mortality: n. It is common lore among hackers (and in the
electronics industry at large; this term is possibly techspeak by
now) that the chances of sudden hardware failure drop off
exponentially with a machine's time since power-up (that is, until
the relatively distant time at which enough mechanical wear in I/O
devices and thermal-cycling stress in components has accumulated
for the machine to start going senile). Up to half of all chip and
wire failures happen within a new system's first few weeks; such
failures are often referred to as `infant mortality' problems
(or, occasionally, as `sudden infant death syndrome'). See
{bathtub curve}, {burn-in period}.

:infinite: adj. Consisting of a large number of objects; extreme.
Used very loosely as in: "This program produces infinite
garbage." "He is an infinite loser." The word most likely to
follow `infinite', though, is {hair} (it has been pointed out
that fractals are an excellent example of infinite hair). These
uses are abuses of the word's mathematical meaning. The term
`semi-infinite', denoting an immoderately large amount of some
resource, is also heard. "This compiler is taking a semi-infinite
amount of time to optimize my program." See also {semi}.

:infinite loop: n. One that never terminates (that is, the machine
{spin}s or {buzz}es forever and goes {catatonic}). There
is a standard joke that has been made about each generation's
exemplar of the ultra-fast machine: "The Cray-3 is so fast it can
execute an infinite loop in under 2 seconds!"

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

:initgame: /in-it'gaym/ [IRC] n. An {IRC} version of the
venerable trivia game "20 questions", in which one user changes
his {nick} to the initials of a famous person or other named
entity, and the others on the channel ask yes or no questions, with
the one to guess the person getting to be "it" next. As a
courtesy, the one picking the initials starts by providing a
4-letter hint of the form sex, nationality, life-status,
reality-status. For example, MAAR means "Male, American, Alive,
Real" (as opposed to "fictional"). Initgame can be surprisingly
addictive. See also {hing}.

:insanely great: adj. [Mac community, from Steve Jobs; also BSD UNIX
people via Bill Joy] Something so incredibly {elegant} that it is
imaginable only to someone possessing the most puissant of
{hacker}-natures.

:INTERCAL: /in't*r-kal/ [said by the authors to stand for
`Compiler Language With No Pronounceable Acronym'] n. A
computer language designed by Don Woods and James Lyon 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.

:interesting: adj. In hacker parlance, this word has strong
connotations of `annoying', or `difficult', or both. Hackers
relish a challenge, and enjoy wringing all the irony possible out
of the ancient Chinese curse "May you live in interesting times".
Oppose {trivial}, {uninteresting}.

:Internet address:: n. 1. [techspeak] An absolute network address of
the form foo@bar.baz, where foo is a user name, bar is a
{sitename}, and baz is a `domain' name, possibly including
periods itself. Contrast with {bang path}; see also {network,
the} and {network address}. All Internet machines and most UUCP
sites can now resolve these addresses, thanks to a large amount of
behind-the-scenes magic and PD software written since 1980 or so.
See also {bang path}, {domainist}. 2. More loosely, any
network address reachable through Internet; this includes {bang
path} addresses and some internal corporate and government
networks.

Reading Internet addresses is something of an art. Here are the
four most important top-level functional Internet domains followed
by a selection of geographical domains:

com
commercial organizations
edu
educational institutions
gov
U.S. government civilian sites
mil
U.S. military sites

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

us
sites in the U.S. outside the functional domains
su
sites in the ex-Soviet Union (see {kremvax}).
uk
sites in the United Kingdom

Within the us domain, there are subdomains for the fifty
states, each generally with a name identical to the state's postal
abbreviation. Within the uk domain, there is an ac subdomain for
academic sites and a co domain for commercial ones. Other
top-level domains may be divided up in similar ways.

:interrupt: 1. [techspeak] n. On a computer, an event that
interrupts normal processing and temporarily diverts
flow-of-control through an "interrupt handler" routine. See also
{trap}. 2. interj. A request for attention from a hacker.
Often explicitly spoken. "Interrupt --- have you seen Joe
recently?" See {priority interrupt}. 3. Under MS-DOS, the
term `interrupt' is nearly synonymous with `system call', because
the OS and BIOS routines are both called using the INT instruction
(see {{interrupt list, the}}) and because programmers so often have
to bypass the OS (going directly to a BIOS interrupt) to get
reasonable performance.

:interrupt list, the:: [MS-DOS] n. 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 . As of early 1991, it had grown to
approximately a megabyte in length.

:interrupts locked out: adj. When someone is ignoring you. In a
restaurant, after several fruitless attempts to get the waitress's
attention, a hacker might well observe "She must have interrupts
locked out". The synonym `interrupts disabled' is also common.
Variations abound; "to have one's interrupt mask bit set" and
"interrupts masked out" is also heard. See also {spl}.

:IRC: /I-R-C/ [Internet Relay Chat] n. A world-wide "party
line" network that allows one to converse with others in real
time. IRC is structured as a network of Internet servers, each of
which accepts connections from client programs, one per user. The
IRC community and the {USENET} and {MUD} communities overlap
to some extent, including both hackers and regular folks who have
discovered the wonders of computer networks. Some USENET jargon
has been adopted on IRC, as have some conventions such as
{emoticon}s. There is also a vigorous native jargon,
represented in this lexicon by entries marked `[IRC]'. See also
{talk mode}.

:iron: n. Hardware, especially older and larger hardware of
{mainframe} class with big metal cabinets housing relatively
low-density electronics (but the term is also used of modern
supercomputers). Often in the phrase {big iron}. Oppose
{silicon}. See also {dinosaur}.

:Iron Age: n. In the history of computing, 1961--1971 --- the
formative era of commercial {mainframe} technology, when {big
iron} {dinosaur}s ruled the earth. These began with the delivery
of the first PDP-1, coincided with the dominance of ferrite
{core}, and ended with the introduction of the first commercial
microprocessor (the Intel 4004) in 1971. See also {Stone Age};
compare {elder days}.

:iron box: [UNIX/Internet] n. A special environment set up to trap
a {cracker} logging in over remote connections long enough to be
traced. May include a modified {shell} restricting the cracker's
movements in unobvious ways, and `bait' files designed to keep
him interested and logged on. See also {back door},
{firewall machine}, {Venus flytrap}, and Clifford Stoll's
account in `{The Cuckoo's Egg}' of how he made and used
one (see the Bibliography in appendix C). Compare {padded
cell}.

:ironmonger: [IBM] n. Derogatory. A hardware specialist. Compare
{sandbender}, {polygon pusher}.

:ITS:: /I-T-S/ n. 1. Incompatible Time-sharing System, an
influential but highly idiosyncratic operating system written for
PDP-6s and PDP-10s at MIT and long used at the MIT AI Lab. Much
AI-hacker jargon derives from ITS folklore, and to have been `an
ITS hacker' qualifies one instantly as an old-timer of the most
venerable sort. ITS pioneered many important innovations,
including transparent file sharing between machines and
terminal-independent I/O. After about 1982, most actual work was
shifted to newer machines, with the remaining ITS boxes run
essentially as a hobby and service to the hacker community. The
shutdown of the lab's last ITS machine in May 1990 marked the end
of an era and sent old-time hackers into mourning nationwide (see
{high moby}). The Royal Institute of Technology in Sweden is
maintaining one `live' ITS site at its computer museum (right next
to the only TOPS-10 system still on the Internet), so ITS is still
alleged to hold the record for OS in longest continuous use
(however, {{WAITS}} is a credible rival for this palm). See
{appendix A}. 2. A mythical image of operating-system perfection
worshiped by a bizarre, fervent retro-cult of old-time hackers and
ex-users (see {troglodyte}, sense 2). ITS worshipers manage
somehow to continue believing that an OS maintained by
assembly-language hand-hacking that supported only monocase
6-character filenames in one directory per account remains superior
to today's state of commercial art (their venom against UNIX is
particularly intense). See also {holy wars},
{Weenix}.

:IWBNI: // [abbreviation] `It Would Be Nice If'. Compare {WIBNI}.

:IYFEG: // [USENET] Abbreviation for `Insert Your Favorite Ethnic
Group'. Used as a meta-name when telling racist jokes on the net
to avoid offending anyone. See {JEDR}.

= J =
=====

:J. Random: /J rand'm/ n. [generalized from {J. Random Hacker}]
Arbitrary; ordinary; any one; any old. `J. Random' is often
prefixed to a noun to make a name out of it. It means roughly
`some particular' or `any specific one'. "Would you let
J. Random Loser marry your daughter?" The most common uses are
`J. Random Hacker', `J. Random Loser', and `J. Random Nerd'
("Should J. Random Loser be allowed to {gun} down other
people?"), but it can be used simply as an elaborate version of
{random} in any sense.

:J. Random Hacker: [MIT] /J rand'm hak'r/ n. A mythical figure
like the Unknown Soldier; the archetypal hacker nerd. See
{random}, {Suzie COBOL}. This may originally have been
inspired by `J. Fred Muggs', a show-biz chimpanzee whose name was a
household word back in the early days of {TMRC}, and was
probably influenced by `J. Presper Eckert' (one of the co-inventors
of the digital computer).

:jack in: v. To log on to a machine or connect to a network or
{BBS}, esp. for purposes of entering a {virtual reality}
simulation such as a {MUD} or {IRC} (leaving is "jacking
out"). This term derives from {cyberpunk} SF, in which it was
used for the act of plugging an electrode set into neural sockets
in order to interface the brain directly to a virtual reality.
It's primarily used by MUD & IRC fans and younger hackers on BBS
systems.

:jaggies: /jag'eez/ n. The `stairstep' effect observable when an
edge (esp. a linear edge of very shallow or steep slope) is
rendered on a pixel device (as opposed to a vector display).

:JCL: /J-C-L/ n. 1. IBM's supremely {rude} Job Control
Language. JCL is the script language used to control the execution
of programs in IBM's batch systems. JCL has a very {fascist}
syntax, and some versions will, for example, {barf} if two
spaces appear where it expects one. Most programmers confronted
with JCL simply copy a working file (or card deck), changing the
file names. Someone who actually understands and generates unique
JCL is regarded with the mixed respect one gives to someone who
memorizes the phone book. It is reported that hackers at IBM
itself sometimes sing "Who's the breeder of the crud that mangles
you and me? I-B-M, J-C-L, M-o-u-s-e" to the tune of the
"Mickey Mouse Club" theme to express their opinion of the
beast. 2. A comparative for any very {rude} software that a
hacker is expected to use. "That's as bad as JCL." As with
{COBOL}, JCL is often used as an archetype of ugliness even by
those who haven't experienced it. See also {IBM}, {fear and
loathing}.

:JEDR: // n. Synonymous with {IYFEG}. At one time, people in
the USENET newsgroup rec.humor.funny tended to use `JEDR'
instead of {IYFEG} or `'; this stemmed from a public
attempt to suppress the group once made by a loser with initials
JEDR after he was offended by an ethnic joke posted there. (The
practice was {retcon}ned by the expanding these initials as
`Joke Ethnic/Denomination/Race'.) After much sound and fury JEDR
faded away; this term appears to be doing likewise. JEDR's only
permanent effect on the net.culture was to discredit
`sensitivity' arguments for censorship so thoroughly that more
recent attempts to raise them have met with immediate and
near-universal rejection.

:JFCL: /jif'kl/, /jaf'kl/, /j*-fi'kl/ vt., obs. (alt.
`jfcl') To cancel or annul something. "Why don't you jfcl that
out?" The fastest do-nothing instruction on older models of the
PDP-10 happened to be JFCL, which stands for "Jump if Flag set and
then CLear the flag"; this does something useful, but is a very
fast no-operation if no flag is specified. Geoff Goodfellow, one
of the jargon-1 co-authors, had JFCL on the license plate of his
BMW for years. Usage: rare except among old-time PDP-10
hackers.

:jiffy: n. 1. The duration of one tick of the system clock on the
computer (see {tick}). Often one AC cycle time (1/60 second in
the U.S. and Canada, 1/50 most other places), but more recently
1/100 sec has become common. "The swapper runs every 6 jiffies"
means that the virtual memory management routine is executed once
for every 6 ticks of the clock, or about ten times a second.
2. Confusingly, the term is sometimes also used for a 1-millisecond
{wall time} interval. Even more confusingly, physicists
semi-jokingly use `jiffy' to mean the time required for light to
travel one foot in a vacuum, which turns out to be close to one
*nanosecond*. 3. Indeterminate time from a few seconds to
forever. "I'll do it in a jiffy" means certainly not now and
possibly never. This is a bit contrary to the more widespread use
of the word. Oppose {nano}. See also {Real Soon Now}.

:job security: n. When some piece of code is written in a
particularly {obscure} fashion, and no good reason (such as time
or space optimization) can be discovered, it is often said that the
programmer was attempting to increase his job security (i.e., by
making himself indispensable for maintenance). This sour joke
seldom has to be said in full; if two hackers are looking over some
code together and one points at a section and says "job security",
the other one may just nod.

:jock: n. 1. A programmer who is characterized by large and somewhat
brute-force programs. See {brute force}. 2. When modified by
another noun, describes a specialist in some particular computing
area. The compounds `compiler jock' and `systems jock' seem to be
the best-established examples of this.

:joe code: /joh' kohd`/ n. 1. Code that is overly {tense} and
unmaintainable. "{Perl} may be a handy program, but if you look
at the source, it's complete joe code." 2. Badly written,
possibly buggy code.

Correspondents wishing to remain anonymous have fingered a
particular Joe at the Lawrence Berkeley Laboratory and observed
that usage has drifted slightly; the original sobriquet `Joe code'
was intended in sense 1.

:jolix: n. /johl'liks/ n.,adj. 386BSD, the freeware port of the
BSD Net/2 release to the Intel i386 architecture by Bill Jolitz and
friends. Used to differentiate from BSDI's port based on the same
source tape, which is called BSD/386. See {BSD}.

:JR[LN]: /J-R-L/, /J-R-N/ n. The names JRL and JRN were
sometimes used as example names when discussing a kind of user ID
used under {{TOPS-10}} and {WAITS}; they were understood to be
the initials of (fictitious) programmers named `J. Random Loser'
and `J. Random Nerd' (see {J. Random}). For example, if one
said "To log in, type log one comma jay are en" (that is,
"log 1,JRN"), the listener would have understood that he should
use his own computer ID in place of `JRN'.

:JRST: /jerst/ [based on the PDP-10 jump instruction] v.,obs. To
suddenly change subjects, with no intention of returning to the
previous topic. Usage: rather rare except among PDP-10 diehards,
and considered silly. See also {AOS}.

:juggling eggs: vi. Keeping a lot of {state} in your head while
modifying a program. "Don't bother me now, I'm juggling eggs",
means that an interrupt is likely to result in the program's being
scrambled. In the classic first-contact SF novel `The Mote in
God's Eye', by Larry Niven and Jerry Pournelle, an alien describes
a very difficult task by saying "We juggle priceless eggs in
variable gravity." That is a very hackish use of language. See
also {hack mode}.

:jump off into never-never land: [from J. M. Barrie's `Peter
Pan'] v. Same as {branch to Fishkill}, but more common in
technical cultures associated with non-IBM computers that use the
term `jump' rather than `branch'. Compare {hyperspace}.

:jupiter: [IRC] vt. To kill an {IRC} {robot} or user, and
then take its place by adopting its {nick} so that it cannot
reconnect. Named after a particular IRC user who did this to
NickServ, the robot in charge of preventing people from
inadvertently using a nick claimed by another user.

= K =
=====

:K: /K/ [from {kilo-}] n. A kilobyte. This is used both as a
spoken word and a written suffix (like {meg} and {gig} for
megabyte and gigabyte). See {{quantifiers}}.

:K&R: [Kernighan and Ritchie] n. Brian Kernighan and Dennis Ritchie's
book `The C Programming Language', esp. the classic and influential
first edition (Prentice-Hall 1978; ISBN 0-113-110163-3). Syn.
{White Book}, {Old Testament}. See also {New Testament}.

:K-line: [IRC] v. To ban a particular person from an {IRC}
server, usually for grossly bad {netiquette}. Comes from the
`K' code used to accomplish this in IRC's configuration file.

:kahuna: /k*-hoo'nuh/ [IBM: from the Hawaiian title for a shaman] n.
Synonym for {wizard}, {guru}.

:kamikaze packet: n. The `official' jargon for what is more commonly
called a {Christmas tree packet}. RFC-1025, `TCP and IP Bake Off'
says:

10 points for correctly being able to process a "Kamikaze"
packet (AKA nastygram, christmas tree packet, lamp test
segment, et al.). That is, correctly handle a segment with the
maximum combination of features at once (e.g., a SYN URG PUSH
FIN segment with options and data).

See also {Chernobyl packet}.

:kangaroo code: n. Syn. {spaghetti code}.

:ken: /ken/ n. 1. [UNIX] Ken Thompson, principal inventor of
UNIX. In the early days he used to hand-cut distribution tapes,
often with a note that read "Love, ken". Old-timers still use
his first name (sometimes uncapitalized, because it's a login name
and mail address) in third-person reference; it is widely
understood (on USENET, in particular) that without a last name
`Ken' refers only to Ken Thompson. Similarly, Dennis without last
name means Dennis Ritchie (and he is often known as dmr). See
also {demigod}, {{UNIX}}. 2. A flaming user. This was
originated by the Software Support group at Symbolics because the
two greatest flamers in the user community were both named Ken.

:kgbvax: /K-G-B'vaks/ n. See {kremvax}.

:KIBO: /kee'boh/ [acronym] Knowledge In, Bullshit Out. A summary
of what happens whenever valid data is passed through an
organization (or person) which deliberately or accidentally
disregards or ignores its significance. Consider, for example,
what advertising campaign can do with a product's actual
specifications. Compare {GIGO}; see also {SNAFU principle}.

:kick: [IRC] v. To cause somebody to be removed from a {IRC}
channel, an option only available to {CHOP}s. This is an
extreme measure, often used to combat extreme {flamage} or
{flood}ing, but sometimes used at the chop's whim.

:kill file: [USENET] n. (alt. `KILL file') Per-user file(s) used
by some {USENET} reading programs (originally Larry Wall's
`rn(1)') to discard summarily (without presenting for reading)
articles matching some particularly uninteresting (or unwanted)
patterns of subject, author, or other header lines. Thus to add
a person (or subject) to one's kill file is to arrange for that
person to be ignored by one's newsreader in future. By extension,
it may be used for a decision to ignore the person or subject in
other media. See also {plonk}.

:killer micro: [popularized by Eugene Brooks] n. 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 movie title "Attack Of The Killer
Tomatoes" (one of the {canonical} examples of
so-bad-it's-wonderful among hackers). This has even more flavor
now that killer micros have gone on the offensive not just
individually (in workstations) but in hordes (within massively
parallel computers).

:killer poke: n. A recipe for inducing hardware damage on a machine
via insertion of invalid values (see {poke}) in a memory-mapped
control register; used esp. of various fairly well-known tricks
on {bitty box}es without hardware memory management (such as the
IBM PC and Commodore PET) that can overload and trash analog
electronics in the monitor. See also {HCF}.

:kilo-: [SI] pref. See {{quantifiers}}.

:KIPS: /kips/ [abbreviation, by analogy with {MIPS} using {K}] n.
Thousands (*not* 1024s) of Instructions Per Second. Usage:
rare.

:KISS Principle: /kis' prin'si-pl/ n. "Keep It Simple, Stupid".
A maxim often invoked when discussing design to fend off
{creeping featurism} and control development complexity.
Possibly related to the {marketroid} maxim on sales
presentations, "Keep It Short and Simple".

:kit: [USENET; poss. fr. DEC slang for a full software
distribution, as opposed to a patch or upgrade] n. A source
software distribution that has been packaged in such a way that it
can (theoretically) be unpacked and installed according to a series
of steps using only standard UNIX tools, and entirely documented by
some reasonable chain of references from the top-level {README
file}. The more general term {distribution} may imply that
special tools or more stringent conditions on the host environment
are required.

:klone: /klohn/ n. See {clone}, sense 4.

:kludge: /kluhj/ n. Common (but incorrect) variant of {kluge}, q.v.

:kluge: /klooj/ [from the German `klug', clever] 1. n. A Rube
Goldberg (or Heath Robinson) device, whether in hardware or
software. (A long-ago `Datamation' article by Jackson Granholme
said: "An ill-assorted collection of poorly matching parts,
forming a distressing whole.") 2. n. A clever programming trick
intended to solve a particular nasty case in an expedient, if not
clear, manner. Often used to repair bugs. Often involves
{ad-hockery} and verges on being a {crock}. In fact, the
TMRC Dictionary defined `kludge' as "a crock that works". 3. n.
Something that works for the wrong reason. 4. vt. To insert a
kluge into a program. "I've kluged this routine to get around
that weird bug, but there's probably a better way." 5. [WPI] n. A
feature that is implemented in a {rude} manner.

Nowadays this term is often encountered in the variant spelling
`kludge'. Reports from {old fart}s are consistent that
`kluge' was the original spelling, reported around computers as
far back as the mid-1950s and, at that time, used exclusively of
*hardware* kluges. In 1947, the `New York Folklore
Quarterly' reported a classic shaggy-dog story `Murgatroyd the
Kluge Maker' then current in the Armed Forces, in which a `kluge'
was a complex and puzzling artifact with a trivial function.

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" dating back at least to
1935, an adjunct to mechanical printing presses. 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
tempermental, subject to frequent breakdowns, and devilishly
difficult to repair --- but oh, so clever! One traditional
folk etymology of `kluge' makes it the name of a design engineer;
in fact, `Kluge' is a surname in German, and the designer of the
Kluge feeder may well have been the man behind this myth.

The variant `kludge' was apparently popularized by the
{Datamation} article mentioned above; it was titled "How
to Design a Kludge" (February 1962, pages 30 and 31). Some people
who encountered the word first in print or on-line jumped to the
reasonable but incorrect conclusion that the word should be
pronounced /kluhj/ (rhyming with `sludge'). The result of this
tangled history is a mess; in 1991, many (perhaps even most)
hackers pronounce the word correctly as /klooj/ but spell it
incorrectly as `kludge' (compare the pronunciation drift of
{mung}). Some observers consider this appropriate in view of
its meaning.

:kluge around: vt. To avoid a bug or difficult condition by
inserting a {kluge}. Compare {workaround}.

:kluge up: vt. To lash together a quick hack to perform a task; this
is milder than {cruft together} and has some of the connotations
of {hack up} (note, however, that the construction `kluge on'
corresponding to {hack on} is never used). "I've kluged up this
routine to dump the buffer contents to a safe place."

:Knights of the Lambda Calculus: n. A semi-mythical organization of
wizardly LISP and Scheme hackers. The name refers to a
mathematical formalism invented by Alonzo Church, with which LISP
is intimately connected. There is no enrollment list and the
criteria for induction are unclear, but one well-known LISPer has
been known to give out buttons and, in general, the *members*
know who they are....

:Knuth: /nooth/ [Donald E. Knuth's `The Art of Computer
Programming'] n. Mythically, the reference that answers all
questions about data structures or algorithms. A safe answer when
you do not know: "I think you can find that in Knuth." Contrast
{literature, the}. See also {bible}.

:kremvax: /krem-vaks/ [from the then large number of {USENET}
{VAXen} with names of the form foovax] n. Originally, a
fictitious USENET site at the Kremlin, announced on April 1, 1984
in a posting ostensibly originated there by Soviet leader
Konstantin Chernenko. The posting was actually forged by Piet
Beertema as an April Fool's joke. Other fictitious sites mentioned
in the hoax were moskvax and {kgbvax}. This was probably
the funniest of the many April Fool's forgeries perpetrated on
USENET (which has negligible security against them), because the
notion that USENET might ever penetrate the Iron Curtain seemed so
totally absurd at the time.

In fact, it was only six years later that the first genuine site in
Moscow, demos.su, joined USENET. Some readers needed
convincing that the postings from it weren't just another prank.
Vadim Antonov, senior programmer at Demos and the major poster from
there up to mid-1991, was quite aware of all this, referred to it
frequently in his own postings, and at one point twitted some
credulous readers by blandly asserting that he *was* a
hoax!

Eventually he even arranged to have the domain's gateway site
*named* kremvax, thus neatly turning fiction into truth
and demonstrating that the hackish sense of humor transcends
cultural barriers. [Mr. Antonov also contributed the
Russian-language material for this lexicon. --- ESR]

In an even more ironic historical footnote, kremvax became an
electronic center of the anti-communist resistance during the
bungled hard-line coup of August 1991. During those three days the
Soviet UUCP network centered on kremvax became the only
trustworthy news source for many places within the USSR. Though
the sysops were concentrating on internal communications,
cross-border postings included immediate transliterations of Boris
Yeltsin's decrees condemning the coup and eyewitness reports of the
demonstrations in Moscow's streets. In those hours, years of
speculation that totalitarianism would prove unable to maintain its
grip on politically-loaded information in the age of computer
networking were proved devastatingly accurate --- and the original
kremvax joke became a reality as Yeltsin and the new Russian
revolutionaries of `glasnost' and `perestroika' made
kremvax one of the timeliest means of their outreach to the
West.

:kyrka: /shir'k*/ n. See {feature key}.

= L =
=====

:lace card: n. obs. A {{punched card}} with all holes punched
(also called a `whoopee 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.

:language lawyer: n. A person, usually an experienced or senior
software engineer, who is intimately familiar with many or most of
the numerous restrictions and features (both useful and esoteric)
applicable to one or more computer programming languages. A
language lawyer is distinguished by the ability to show you the
five sentences scattered through a 200-plus-page manual that
together imply the answer to your question "if only you had
thought to look there". Compare {wizard}, {legal},
{legalese}.

:languages of choice: n. {C} and {LISP}. Nearly every
hacker knows one of these, and most good ones are fluent in both.
Smalltalk and Prolog are also popular in small but influential
communities.

There is also a rapidly dwindling category of older hackers with
FORTRAN, or even assembler, as their language of choice. They
often prefer to be known as {real programmer}s, and other
hackers consider them a bit odd (see "{The Story of Mel, a
Real Programmer}" in {appendix A}). Assembler is generally no longer
considered interesting or appropriate for anything but {HLL}
implementation, {glue}, and a few time-critical and
hardware-specific uses in systems programs. FORTRAN occupies a
shrinking niche in scientific programming.

Most hackers tend to frown on languages like {{Pascal}} and
{{Ada}}, which don't give them the near-total freedom considered
necessary for hacking (see {bondage-and-discipline language}),
and to regard everything that's even remotely connected with
{COBOL} or other traditional {card walloper} languages as a
total and unmitigated {loss}.

:larval stage: n. Describes a period of monomaniacal concentration
on coding apparently passed through by all fledgling hackers.
Common symptoms include the perpetration of more than one 36-hour
{hacking run} in a given week; neglect of all other activities
including usual basics like food, sleep, and personal hygiene; and
a chronic case of advanced bleary-eye. Can last from 6 months to 2
years, the apparent median being around 18 months. A few so
afflicted never resume a more `normal' life, but the ordeal
seems to be necessary to produce really wizardly (as opposed to
merely competent) programmers. See also {wannabee}. A less
protracted and intense version of larval stage (typically lasting
about a month) may recur when one is learning a new {OS} or
programming language.

:lase: /layz/ vt. To print a given document via a laser printer.
"OK, let's lase that sucker and see if all those graphics-macro
calls did the right things."

:laser chicken: n. Kung Pao Chicken, a standard Chinese dish
containing chicken, peanuts, and hot red peppers in a spicy
pepper-oil sauce. Many hackers call it `laser chicken' for
two reasons: It can {zap} you just like a laser, and the
sauce has a red color reminiscent of some laser beams.

In a variation on this theme, it is reported that some Australian
hackers have redesignated the common dish `lemon chicken' as
`Chernobyl Chicken'. The name is derived from the color of the
sauce, which is considered bright enough to glow in the dark (as,
mythically, do some of the inhabitants of Chernobyl).

:Lasherism: [Harvard] n. A program which solves a standard problem
(such as the Eight Queens puzzle or implementing the {life}
algorithm) in a deliberately nonstandard way. Distinguished from a
{crock} or {kluge} by the fact that the programmer did it on
purpose as a mental exercise. Lew Lasher was a student at Harvard
around 1980 who became notorious for such behavior.

:laundromat: n. Syn. {disk farm}; see {washing machine}.

:LDB: /l*'d*b/ [from the PDP-10 instruction set] vt. To extract
from the middle. "LDB me a slice of cake, please." This usage
has been kept alive by Common LISP's function of the same name.
Considered silly. See also {DPB}.

:leaf site: n. A machine that merely originates and reads USENET
news or mail, and does not relay any third-party traffic. Often
uttered in a critical tone; when the ratio of leaf sites to
backbone, rib, and other relay sites gets too high, the network
tends to develop bottlenecks. Compare {backbone site}, {rib
site}.

:leak: n. With qualifier, one of a class of resource-management bugs
that occur when resources are not freed properly after operations
on them are finished, so they effectively disappear (leak out).
This leads to eventual exhaustion as new allocation requests come
in. {memory leak} and {fd leak} have their own entries; one
might also refer, to, say, a `window handle leak' in a window
system.

:leaky heap: [Cambridge] n. An {arena} with a {memory leak}.

:legal: adj. Loosely used to mean `in accordance with all the
relevant rules', esp. in connection with some set of constraints
defined by software. "The older =+ alternate for += is no longer
legal syntax in ANSI C." "This parser processes each line of
legal input the moment it sees the trailing linefeed." Hackers
often model their work as a sort of game played with the
environment in which the objective is to maneuver through the
thicket of `natural laws' to achieve a desired objective. Their
use of `legal' is flavored as much by this game-playing sense as by
the more conventional one having to do with courts and lawyers.
Compare {language lawyer}, {legalese}.

:legalese: n. Dense, pedantic verbiage in a language description,
product specification, or interface standard; text that seems
designed to obfuscate and requires a {language lawyer} to
{parse} it. Though hackers are not afraid of high information
density and complexity in language (indeed, they rather enjoy
both), they share a deep and abiding loathing for legalese; they
associate it with deception, {suit}s, and situations in which
hackers generally get the short end of the stick.

:LER: /L-E-R/ [TMRC, from `Light-Emitting Diode'] n. A
light-emitting resistor (that is, one in the process of burning
up). Ohm's law was broken. See {SED}.

:LERP: /lerp/ vi.,n. Quasi-acronym for Linear Interpolation, used as a
verb or noun for the operation. E.g., Bresenham's algorithm lerps
incrementally between the two endpoints of the line.

:let the smoke out: v. To fry hardware (see {fried}). See
{magic smoke} for the mythology behind this.

:letterbomb: n. A piece of {email} containing {live data}
intended to do nefarious things to the recipient's machine or
terminal. It is possible, for example, to send letterbombs that
will lock up some specific kinds of terminals when they are viewed,
so thoroughly that the user must cycle power (see {cycle}, sense
3) to unwedge them. Under UNIX, a letterbomb can also try to get
part of its contents interpreted as a shell command to the mailer.
The results of this could range from silly to tragic. See also
{Trojan horse}; compare {nastygram}.

:lexer: /lek'sr/ n. Common hacker shorthand for `lexical
analyzer', the input-tokenizing stage in the parser for a language
(the part that breaks it into word-like pieces). "Some C lexers
get confused by the old-style compound ops like `=-'."

:lexiphage: /lek'si-fayj`/ n. A notorious word {chomper} on
ITS. See {bagbiter}.

:life: n. 1. A cellular-automata game invented by John Horton
Conway and first introduced publicly by Martin Gardner
(`Scientific American', October 1970); the game's popularity
had to wait a few years for computers on which it could reasonably
be played, as it's no fun to simulate the cells by hand. Many
hackers pass through a stage of fascination with it, and hackers at
various places contributed heavily to the mathematical analysis of
this game (most notably Bill Gosper at MIT, who even implemented
life in {TECO}!; see {Gosperism}). When a hacker mentions
`life', he is much more likely to mean this game than the
magazine, the breakfast cereal, or the human state of existence.
2. The opposite of {USENET}. As in {Get a life!}

:Life is hard: [XEROX PARC] prov. This phrase has two possible
interpretations: (1) "While your suggestion may have some merit, I
will behave as though I hadn't heard it." (2) "While your
suggestion has obvious merit, equally obvious circumstances prevent
it from being seriously considered." The charm of the phrase lies
precisely in this subtle but important ambiguity.

:light pipe: n. Fiber optic cable. Oppose {copper}.

:lightweight: adj. Opposite of {heavyweight}; usually found in
combining forms such as `lightweight process'.

:like kicking dead whales down the beach: adj. Describes a slow,
difficult, and disgusting process. First popularized by a famous
quote about the difficulty of getting work done under one of IBM's
mainframe OSes. "Well, you *could* write a C compiler in
COBOL, but it would be like kicking dead whales down the beach."
See also {fear and loathing}

:like nailing jelly to a tree: adj. Used to describe a task thought
to be impossible, esp. one in which the difficulty arises from
poor specification or inherent slipperiness in the problem domain.
"Trying to display the `prettiest' arrangement of nodes and arcs
that diagrams a given graph is like nailing jelly to a tree,
because nobody's sure what `prettiest' means algorithmically."

:line 666: [from Christian eschatological myth] n. The notational
line of source at which a program fails for obscure reasons,
implying either that *somebody* is out to get it (when you are
the programmer), or that it richly deserves to be so gotten (when
you are not). "It works when I trace through it, but seems to
crash on line 666 when I run it." "What happens is that whenever
a large batch comes through, mmdf dies on the Line of the Beast.
Probably some twit hardcoded a buffer size."

:line eater, the: [USENET] n. 1. A bug in some now-obsolete
versions of the netnews software that used to eat up to BUFSIZ
bytes of the article text. The bug was triggered by having the
text of the article start with a space or tab. This bug was
quickly personified as a mythical creature called the `line
eater', and postings often included a dummy line of `line eater
food'. Ironically, line eater `food' not beginning with a space or
tab wasn't actually eaten, since the bug was avoided; but if there
*was* a space or tab before it, then the line eater would eat
the food *and* the beginning of the text it was supposed to be
protecting. The practice of `sacrificing to the line eater'
continued for some time after the bug had been {nailed to the
wall}, and is still humorously referred to. The bug itself is
still (in mid-1991) occasionally reported to be lurking in some
mail-to-netnews gateways. 2. See {NSA line eater}.

:line noise: n. 1. [techspeak] Spurious characters due to
electrical noise in a communications link, especially an RS-232
serial connection. Line noise may be induced by poor connections,
interference or crosstalk from other circuits, electrical storms,
{cosmic rays}, or (notionally) birds crapping on the phone
wires. 2. Any chunk of data in a file or elsewhere that looks like
the results of line noise in sense 1. 3. Text that is
theoretically a readable text or program source but employs syntax
so bizarre that it looks like line noise in senses 1 or 2. Yes,
there are languages this ugly. The canonical example is {TECO};
it is often claimed that "TECO's input syntax is indistinguishable
from line noise." Other non-{WYSIWYG} editors, such as Multics
`qed' and Unix `ed', in the hands of a real hacker, also
qualify easily, as do deliberately obfuscated languages such as
{INTERCAL}.

:line starve: [MIT] 1. vi. To feed paper through a printer the
wrong way by one line (most printers can't do this). On a display
terminal, to move the cursor up to the previous line of the screen.
"To print `X squared', you just output `X', line starve, `2', line
feed." (The line starve causes the `2' to appear on the line
above the `X', and the line feed gets back to the original line.)
2. n. A character (or character sequence) that causes a terminal to
perform this action. ASCII 0011010, also called SUB or control-Z,
was one common line-starve character in the days before
microcomputers and the X3.64 terminal standard. Unlike `line
feed', `line starve' is *not* standard {{ASCII}}
terminology. Even among hackers it is considered a bit silly.
3. [proposed] A sequence such as \c (used in System V echo, as well
as nroff/troff) that suppresses a {newline} or other
character(s) that would normally be emitted.

:link farm: [UNIX] n. A directory tree that contains many links to
files in a master directory tree of files. Link farms save space
when (for example) one is maintaining several nearly identical
copies of the same source tree, e.g., when the only difference is
architecture-dependent object files. "Let's freeze the source and
then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms." Link farms
may also be used to get around restrictions on the number of
`-I' (include-file directory) arguments on older
C preprocessors. However, they can also get completely out of
hand, becoming the filesystem equivalent of {spaghetti code}.

:link-dead: [MUD] adj. Said of a {MUD} character who has frozen in
place because of a dropped Internet connection.

:lint: [from UNIX's `lint(1)', named for the bits of fluff it
picks from programs] 1. vt. To examine a program closely for style,
language usage, and portability problems, esp. if in C, esp. if
via use of automated analysis tools, most esp. if the UNIX
utility `lint(1)' is used. This term used to be restricted to
use of `lint(1)' itself, but (judging by references on USENET)
it has become a shorthand for {desk check} at some non-UNIX
shops, even in languages other than C. Also as v. {delint}.
2. n. Excess verbiage in a document, as in "this draft has too
much lint".

:lion food: [IBM] n. Middle management or HQ staff (by extension,
administrative drones in general). From an old joke about two
lions who, escaping from the zoo, split up to increase their
chances but agreed to meet after 2 months. When they finally
meet, one is skinny and the other overweight. The thin one says:
"How did you manage? I ate a human just once and they turned out
a small army to chase me --- guns, nets, it was terrible. Since
then I've been reduced to eating mice, insects, even grass." The
fat one replies: "Well, *I* hid near an IBM office and ate a
manager a day. And nobody even noticed!"

:Lions Book: n. `Source Code and Commentary on UNIX level 6',
by John Lions. The two parts of this book contained (1) the entire
source listing of the UNIX Version 6 kernel, and (2) a commentary
on the source discussing the algorithms. These were circulated
internally at the University of New South Wales beginning 1976--77,
and were for years after the *only* detailed kernel
documentation available to anyone outside Bell Labs. Because
Western Electric wished to maintain trade secret status on the
kernel, the Lions book was never formally published and was only
supposed to be distributed to affiliates of source licensees. In
spite of this, it soon spread by samizdat to a good many of the
early UNIX hackers.

:LISP: [from `LISt Processing language', but mythically from
`Lots of Irritating Superfluous Parentheses'] n. The name of AI's
mother tongue, a language based on the ideas of (a) variable-length
lists and trees as fundamental data types, and (b) the
interpretation of code as data and vice-versa. Invented by John
McCarthy at MIT in the late 1950s, it is actually older than any
other {HLL} still in use except FORTRAN. Accordingly, it has
undergone considerable adaptive radiation over the years; modern
variants are quite different in detail from the original LISP 1.5.
The dominant HLL among hackers until the early 1980s, LISP now
shares the throne with {C}. See {languages of choice}.

All LISP functions and programs are expressions that return
values; this, together with the high memory utilization of LISPs,
gave rise to Alan Perlis's famous quip (itself a take on an Oscar
Wilde quote) that "LISP programmers know the value of everything
and the cost of nothing".

One significant application for LISP has been as a proof by example
that most newer languages, such as {COBOL} and {Ada}, are full
of unnecessary {crock}s. When the {Right Thing} has already
been done once, there is no justification for {bogosity} in newer
languages.

:literature, the: n. Computer-science journals and other
publications, vaguely gestured at to answer a question that the
speaker believes is {trivial}. Thus, one might answer an
annoying question by saying "It's in the literature." Oppose
{Knuth}, which has no connotation of triviality.

:little-endian: adj. Describes a computer architecture in which,
within a given 16- or 32-bit word, bytes at lower addresses have
lower significance (the word is stored `little-end-first'). The
PDP-11 and VAX families of computers and Intel microprocessors and
a lot of communications and networking hardware are little-endian.
See {big-endian}, {middle-endian}, {NUXI problem}. The term
is sometimes used to describe the ordering of units other than
bytes; most often these are bits within a byte.

:live data: n. 1. Data that is written to be interpreted and takes
over program flow when triggered by some un-obvious operation, such
as viewing it. One use of such hacks is to break security. For
example, some smart terminals have commands that allow one to
download strings to program keys; this can be used to write live
data that, when listed to the terminal, infects it with a
security-breaking {virus} that is triggered the next time a
hapless user strikes that key. For another, there are some
well-known bugs in {vi} that allow certain texts to send
arbitrary commands back to the machine when they are simply viewed.
2. In C code, data that includes pointers to function {hook}s
(executable code). 3. An object, such as a {trampoline}, that is
constructed on the fly by a program and intended to be executed as
code. 4. Actual real-world data, as opposed to `test data'.
For example, "I think I have the record deletion module
finished." "Have you tried it out on live data?" It usually
carries the connotation that live data is more fragile and must not
be corrupted, else bad things will happen. So a possible alternate
response to the above claim might be: "Well, make sure it works
perfectly before we throw live data at it." The implication here
is that record deletion is something pretty significant, and a
haywire record-deletion module running amok on live data would
cause great harm and probably require restoring from backups.

:Live Free Or Die!: imp. 1. The state motto of New Hampshire, which
appears on that state's automobile license plates. 2. A slogan
associated with UNIX in the romantic days when UNIX aficionados saw
themselves as a tiny, beleaguered underground tilting against the
windmills of industry. The "free" referred specifically to
freedom from the {fascist} design philosophies and crufty
misfeatures common on commercial operating systems. Armando
Stettner, one of the early UNIX developers, used to give out fake
license plates bearing this motto under a large UNIX, all in New
Hampshire colors of green and white. These are now valued
collector's items.

:livelock: /li:v'lok/ n. A situation in which some critical stage
of a task is unable to finish because its clients perpetually
create more work for it to do after they have been serviced but
before it can clear its queue. Differs from {deadlock} in that
the process is not blocked or waiting for anything, but has a
virtually infinite amount of work to do and can never catch up.

:liveware: /li:v'weir/ n. 1. Synonym for {wetware}. Less
common. 2. [Cambridge] Vermin. "Waiter, there's some liveware in
my salad..."

:lobotomy: n. 1. What a hacker subjected to formal management
training is said to have undergone. At IBM and elsewhere this term
is used by both hackers and low-level management; the latter
doubtless intend it as a joke. 2. The act of removing the
processor from a microcomputer in order to replace or upgrade it.
Some very cheap {clone} systems are sold in `lobotomized' form
--- everything but the brain.

:locked and loaded: [from military slang for an M-16 rifle with
magazine inserted and prepared for firing] adj. Said of a removable
disk volume properly prepared for use --- that is, locked into the
drive and with the heads loaded. Ironically, because their heads
are `loaded' whenever the power is up, this description is never
used of {{Winchester}} drives (which are named after a rifle).

:locked up: adj. Syn. for {hung}, {wedged}.

:logic bomb: n. Code surreptitiously inserted in an application or
OS that causes it to perform some destructive or
security-compromising activity whenever specified conditions are
met. Compare {back door}.

:logical: [from the technical term `logical device', wherein a
physical device is referred to by an arbitrary `logical' name]
adj. Having the role of. If a person (say, Les Earnest at SAIL)
who had long held a certain post left and were replaced, the
replacement would for a while be known as the `logical' Les
Earnest. (This does not imply any judgment on the replacement.)
Compare {virtual}.

At Stanford, `logical' compass directions denote a coordinate
system in which `logical north' is toward San Francisco,
`logical west' is toward the ocean, etc., even though logical
north varies between physical (true) north near San Francisco and
physical west near San Jose. (The best rule of thumb here is that,
by definition, El Camino Real always runs logical north-and-south.)
In giving directions, one might say: "To get to Rincon Tarasco
restaurant, get onto {El Camino Bignum} going logical north."
Using the word `logical' helps to prevent the recipient from
worrying about that the fact that the sun is setting almost
directly in front of him. The concept is reinforced by North
American highways which are almost, but not quite, consistently
labeled with logical rather than physical directions. A similar
situation exists at MIT: Route 128 (famous for the electronics
industry that has grown up along it) is a 3-quarters circle
surrounding Boston at a radius of 10 miles, terminating near the
coastline at each end. It would be most precise to describe the
two directions along this highway as `clockwise' and
`counterclockwise', but the road signs all say "north" and
"south", respectively. A hacker might describe these directions
as `logical north' and `logical south', to indicate that they
are conventional directions not corresponding to the usual
denotation for those words. (If you went logical south along the
entire length of route 128, you would start out going northwest,
curve around to the south, and finish headed due east, including
one infamous stretch of pavement which is simultaneously route 128
south and Interstate 93 north, and is signed as such!)

:loop through: vt. To process each element of a list of things.
"Hold on, I've got to loop through my paper mail." Derives from
the computer-language notion of an iterative loop; compare `cdr
down' (under {cdr}), which is less common among C and UNIX
programmers. ITS hackers used to say `IRP over' after an
obscure pseudo-op in the MIDAS PDP-10 assembler.

:loose bytes: n. Commonwealth hackish term for the padding bytes or
{shim}s many compilers insert between members of a record or
structure to cope with alignment requirements imposed by the
machine architecture.

:lord high fixer: [primarily British, from Gilbert & Sullivan's
`lord high executioner'] n. The person in an organization who knows
the most about some aspect of a system. See {wizard}.

:lose: [MIT] vi. 1. To fail. A program loses when it encounters
an exceptional condition or fails to work in the expected manner.
2. To be exceptionally unesthetic or crocky. 3. Of people, to
be obnoxious or unusually stupid (as opposed to ignorant). See
also {deserves to lose}. 4. n. Refers to something that is
{losing}, especially in the phrases "That's a lose!" and "What
a lose!"

:lose lose: interj. A reply to or comment on an undesirable
situation. "I accidentally deleted all my files!" "Lose,
lose."

:loser: n. An unexpectedly bad situation, program, programmer, or
person. Someone who habitually loses. (Even winners can lose
occasionally.) Someone who knows not and knows not that he knows
not. Emphatic forms are `real loser', `total loser', and
`complete loser' (but not *`moby loser', which would be a
contradiction in terms). See {luser}.

:losing: adj. Said of anything that is or causes a {lose} or
{lossage}.

:loss: n. Something (not a person) that loses; a situation in which
something is losing. Emphatic forms include `moby loss', and
`total loss', `complete loss'. Common interjections are
"What a loss!" and "What a moby loss!" Note that `moby loss'
is OK even though *`moby loser' is not used; applied to an abstract
noun, moby is simply a magnifier, whereas when applied to a person
it implies substance and has positive connotations. Compare
{lossage}.

:lossage: /los'*j/ n. The result of a bug or malfunction. This
is a mass or collective noun. "What a loss!" and "What
lossage!" are nearly synonymous. The former is slightly more
particular to the speaker's present circumstances; the latter
implies a continuing {lose} of which the speaker is currently a
victim. Thus (for example) a temporary hardware failure is a loss,
but bugs in an important tool (like a compiler) are serious
lossage.

:lost in the noise: adj. Syn. {lost in the underflow}. This term
is from signal processing, where signals of very small amplitude
cannot be separated from low-intensity noise in the system. Though
popular among hackers, it is not confined to hackerdom; physicists,
engineers, astronomers, and statisticians all use it.

:lost in the underflow: adj. Too small to be worth considering;
more specifically, small beyond the limits of accuracy or
measurement. This is a reference to `floating underflow', a
condition that can occur when a floating-point arithmetic processor
tries to handle quantities smaller than its limit of magnitude. It
is also a pun on `undertow' (a kind of fast, cold current that
sometimes runs just offshore and can be dangerous to swimmers).
"Well, sure, photon pressure from the stadium lights alters the
path of a thrown baseball, but that effect gets lost in the
underflow." See also {overflow bit}.

:lots of MIPS but no I/O: adj. Used to describe a person who is
technically brilliant but can't seem to communicate with human
beings effectively. Technically it describes a machine that has
lots of processing power but is bottlenecked on input-output (in
1991, the IBM Rios, a.k.a. RS/6000, is a notorious recent
example).

:low-bandwidth: [from communication theory] adj. Used to indicate a
talk that, although not {content-free}, was not terribly
informative. "That was a low-bandwidth talk, but what can you
expect for an audience of {suit}s!" Compare {zero-content},
{bandwidth}, {math-out}.

:LPT: /L-P-T/ or /lip'it/ or /lip-it'/ [MIT, via DEC] n. Line
printer, of course. Rare under UNIX, commoner in hackers with
MS-DOS or CP/M background. The printer device is called
`LPT:' on those systems that, like ITS, were strongly
influenced by early DEC conventions.

:lunatic fringe: [IBM] n. Customers who can be relied upon to accept
release 1 versions of software.

:lurker: n. One of the `silent majority' in a electronic forum;
one who posts occasionally or not at all but is known to read the
group's postings regularly. This term is not pejorative and indeed
is casually used reflexively: "Oh, I'm just lurking." Often used
in `the lurkers', the hypothetical audience for the group's
{flamage}-emitting regulars.

:luser: /loo'zr/ n. A {user}; esp. one who is also a
{loser}. ({luser} and {loser} are pronounced
identically.) This word was coined around 1975 at MIT. Under
ITS, when you first walked up to a terminal at MIT and typed
Control-Z to get the computer's attention, it printed out some
status information, including how many people were already using
the computer; it might print "14 users", for example. Someone
thought it would be a great joke to patch the system to print
"14 losers" instead. There ensued a great controversy, as some
of the users didn't particularly want to be called losers to their
faces every time they used the computer. For a while several
hackers struggled covertly, each changing the message behind the
back of the others; any time you logged into the computer it was
even money whether it would say "users" or "losers". Finally,
someone tried the compromise "lusers", and it stuck. Later one
of the ITS machines supported `luser' as a request-for-help
command. ITS died the death in mid-1990, except as a museum piece;
the usage lives on, however, and the term `luser' is often seen
in program comments.

= M =
=====

:M: [SI] pref. (on units) suff. (on numbers) See {{quantifiers}}.

:macdink: /mak'dink/ [from the Apple Macintosh, which is said to
encourage such behavior] vt. To make many incremental and
unnecessary cosmetic changes to a program or file. Often the
subject of the macdinking would be better off without them.
"When I left at 11 P.M. last night, he was still macdinking the
slides for his presentation." See also {fritterware}.

:machinable: adj. Machine-readable. Having the {softcopy} nature.

:machoflops: /mach'oh-flops/ [pun on `megaflops', a coinage for
`millions of FLoating-point Operations Per Second'] n. Refers to
artificially inflated performance figures often quoted by computer
manufacturers. Real applications are lucky to get half the quoted
speed. See {Your mileage may vary}, {benchmark}.

:Macintoy: /mak'in-toy/ n. The Apple Macintosh, considered as a
{toy}. Less pejorative than {Macintrash}.

:Macintrash: /mak'in-trash`/ n. The Apple Macintosh, as described
by a hacker who doesn't appreciate being kept away from the
*real computer* by the interface. The term {maggotbox} has
been reported in regular use in the Research Triangle area of North
Carolina. Compare {Macintoy}. See also {beige toaster},
{WIMP environment}, {point-and-drool interface},
{drool-proof paper}, {user-friendly}.

:macro: /mak'roh/ [techspeak] n. A name (possibly followed by a
formal {arg} list) that is equated to a text or symbolic
expression to which it is to be expanded (possibly with the
substitution of actual arguments) by a macro expander. This
definition can be found in any technical dictionary; what those
won't tell you is how the hackish connotations of the term have
changed over time.

The term `macro' originated in early assemblers, which encouraged
the use of macros as a structuring and information-hiding device.
During the early 1970s, macro assemblers became ubiquitous, and
sometimes quite as powerful and expensive as {HLL}s, only to fall
from favor as improving compiler technology marginalized assembler
programming (see {languages of choice}). Nowadays the term is
most often used in connection with the C preprocessor, LISP, or one
of several special-purpose languages built around a macro-expansion
facility (such as TeX or UNIX's [nt]roff suite).

Indeed, the meaning has drifted enough that the collective
`macros' is now sometimes used for code in any special-purpose
application control language (whether or not the language is
actually translated by text expansion), and for macro-like entities
such as the `keyboard macros' supported in some text editors
(and PC TSR or Macintosh INIT/CDEV keyboard enhancers).

:macro-: pref. Large. Opposite of {micro-}. In the mainstream
and among other technical cultures (for example, medical people)
this competes with the prefix {mega-}, but hackers tend to
restrict the latter to quantification.

:macrology: /mak-rol'*-jee/ n. 1. Set of usually complex or crufty
macros, e.g., as part of a large system written in {LISP},
{TECO}, or (less commonly) assembler. 2. The art and science
involved in comprehending a macrology in sense 1. Sometimes
studying the macrology of a system is not unlike archeology,
ecology, or {theology}, hence the sound-alike construction. See
also {boxology}.

:macrotape: /ma'kroh-tayp/ n. An industry-standard reel of tape, as
opposed to a {microtape}.

:maggotbox: /mag'*t-boks/ n. See {Macintrash}. This is even
more derogatory.

:magic: adj. 1. As yet unexplained, or too complicated to explain;
compare {automagically} and (Arthur C.) Clarke's Third Law:
"Any sufficiently advanced technology is indistinguishable from
magic." "TTY echoing is controlled by a large number of magic
bits." "This routine magically computes the parity of an 8-bit
byte in three instructions." 2. Characteristic of something that
works although no one really understands why (this is especially
called {black magic}). 3. [Stanford] A feature not generally
publicized that allows something otherwise impossible, or a feature
formerly in that category but now unveiled. Compare {black
magic}, {wizardly}, {deep magic}, {heavy wizardry}.

For more about hackish `magic', see {A Story About `Magic'}
(in {appendix A}).

:magic cookie: [UNIX] n. 1. Something passed between routines or
programs that enables the receiver to perform some operation; a
capability ticket or opaque identifier. Especially used of small
data objects that contain data encoded in a strange or
intrinsically machine-dependent way. E.g., on non-UNIX OSes with a
non-byte-stream model of files, the result of `ftell(3)' may
be a magic cookie rather than a byte offset; it can be passed to
`fseek(3)', but not operated on in any meaningful way. The
phrase `it hands you a magic cookie' means it returns a result
whose contents are not defined but which can be passed back to the
same or some other program later. 2. An in-band code for
changing graphic rendition (e.g., inverse video or underlining) or
performing other control functions. Some older terminals would
leave a blank on the screen corresponding to mode-change magic
cookies; this was also called a {glitch}. See also {cookie}.

:magic number: [UNIX/C] n. 1. In source code, some non-obvious
constant whose value is significant to the operation of a program
and that is inserted inconspicuously in-line ({hardcoded}),
rather than expanded in by a symbol set by a commented
`#define'. Magic numbers in this sense are bad style. 2. A
number that encodes critical information used in an algorithm in
some opaque way. The classic examples of these are the numbers
used in hash or CRC functions, or the coefficients in a linear
congruential generator for pseudo-random numbers. This sense
actually predates and was ancestral to the more common sense 1.
3. Special data located at the beginning of a binary data file to
indicate its type to a utility. Under UNIX, the system and various
applications programs (especially the linker) distinguish between
types of executable file by looking for a magic number. Once upon
a time, these magic numbers were PDP-11 branch instructions that
skipped over header data to the start of executable code; the 0407,
for example, was octal for `branch 16 bytes relative'. Nowadays
only a {wizard} knows the spells to create magic numbers. How do
you choose a fresh magic number of your own? Simple --- you pick
one at random. See? It's magic!

:magic smoke: n. A substance trapped inside IC packages that enables
them to function (also called `blue smoke'; this is similar to
the archaic `phlogiston' hypothesis about combustion). Its
existence is demonstrated by what happens when a chip burns up ---
the magic smoke gets let out, so it doesn't work any more. See
{smoke test}, {let the smoke out}.

USENETter Jay Maynard tells the following story: "Once, while
hacking on a dedicated Z80 system, I was testing code by blowing
EPROMs and plugging them in the system, then seeing what happened.
One time, I plugged one in backwards. I only discovered that
*after* I realized that Intel didn't put power-on lights under
the quartz windows on the tops of their EPROMs --- the die was
glowing white-hot. Amazingly, the EPROM worked fine after I erased
it, filled it full of zeros, then erased it again. For all I know,
it's still in service. Of course, this is because the magic smoke
didn't get let out." Compare the original phrasing of {Murphy's
Law}.

:mailing list: n. (often shortened in context to `list') 1. An
{email} address that is an alias (or {macro}, though that word
is never used in this connection) for many other email addresses.
Some mailing lists are simple `reflectors', redirecting mail sent
to them to the list of recipients. Others are filtered by humans
or programs of varying degrees of sophistication; lists filtered by
humans are said to be `moderated'. 2. The people who receive
your email when you send it to such an address.

Mailing lists are one of the primary forms of hacker interaction,
along with {USENET}. They predate USENET, having originated
with the first UUCP and ARPANET connections. They are often used
for private information-sharing on topics that would be too
specialized for or inappropriate to public USENET groups. Though
some of these maintain purely technical content (such as the
Internet Engineering Task Force mailing list), others (like the
`sf-lovers' list maintained for many years by Saul Jaffe) are
recreational, and others are purely social. Perhaps the most
infamous of the social lists was the eccentric bandykin
distribution; its latter-day progeny, lectroids and
tanstaafl, still include a number of the oddest and most
interesting people in hackerdom.

Mailing lists are easy to create and (unlike USENET) don't tie up a
significant amount of machine resources (until they get very large,
at which point they can become interesting torture tests for mail
software). Thus, they are often created temporarily by working
groups, the members of which can then collaborate on a project
without ever needing to meet face-to-face. Much of the material in
this lexicon was criticized and polished on just such a mailing
list (called `jargon-friends'), which included all the co-authors
of Steele-1983.

:main loop: n. Software tools are often written to perform some
actions repeatedly on whatever input is handed to them, terminating
when there is no more input or they are explicitly told to go away.
In such programs, the loop that gets and processes input is called
the `main loop'. See also {driver}.

:mainframe: n. Term originally referring to the cabinet
containing the central processor unit or `main frame' of a
room-filling {Stone Age} batch machine. After the emergence of
smaller `minicomputer' designs in the early 1970s, the
traditional {big iron} machines were described as `mainframe
computers' and eventually just as mainframes. The term carries the
connotation of a machine designed for batch rather than interactive
use, though possibly with an interactive timesharing operating
system retrofitted onto it; it is especially used of machines built
by IBM, Unisys, and the other great {dinosaur}s surviving from
computing's {Stone Age}.

It is common wisdom among hackers that the mainframe architectural
tradition is essentially dead (outside of the tiny market for
{number-crunching} supercomputers (see {cray})), having been
swamped by the recent huge advances in IC technology and low-cost
personal computing. As of 1991, corporate America hasn't quite
figured this out yet, though the wave of failures, takeovers, and
mergers among traditional mainframe makers are certainly straws in
the wind (see {dinosaurs mating}).

:management: n. 1. Corporate power elites distinguished primarily by
their distance from actual productive work and their chronic
failure to manage (see also {suit}). Spoken derisively, as in
"*Management* decided that ...". 2. Mythically, a vast
bureaucracy responsible for all the world's minor irritations.
Hackers' satirical public notices are often signed `The Mgt'; this
derives from the `Illuminatus' novels (see the Bibliography in
{appendix C}).

:mandelbug: /mon'del-buhg/ [from the Mandelbrot set] n. A bug
whose underlying causes are so complex and obscure as to make its
behavior appear chaotic or even non-deterministic. This term
implies that the speaker thinks it is a {Bohr bug}, rather than a
{heisenbug}. See also {schroedinbug}.

:manged: /monjd/ [probably from the French `manger' or Italian
`mangiare', to eat; perhaps influenced by English n. `mange',
`mangy'] adj. Refers to anything that is mangled or damaged,
usually beyond repair. "The disk was manged after the electrical
storm." Compare {mung}.

:mangle: vt. Used similarly to {mung} or {scribble}, but more violent
in its connotations; something that is mangled has been
irreversibly and totally trashed.

:mangler: [DEC] n. A manager. Compare {mango}; see also
{management}. Note that {system mangler} is somewhat different
in connotation.

:mango: /mang'go/ [orig. in-house jargon at Symbolics] n. A manager.
Compare {mangler}. See also {devo} and {doco}.

:manularity: [prob. fr. techspeak `granularity' + `manual']
n. A notional measure of the manual labor required for some task,
particularly one of the sort that automation is supposed to
eliminate. "Composing English on paper has much higher manularity
than using a text editor, especially in the revising stage."
Hackers tend to consider manularity a symptom of primitive methods;
in fact, a true hacker confronted with an apparent requirement to
do a computing task {by hand} will usually consider it
motivation enough to build another tool.

:marbles: [from mainstream "lost all his/her marbles"] pl.n. The
minimum needed to build your way further up some hierarchy of tools
or abstractions. After a bad system crash, you need to determine
if the machine has enough marbles to come up on its own, or enough
marbles to allow a rebuild from backups, or if you need to rebuild
from scratch. "This compiler doesn't even have enough marbles to
compile {hello, world}."

:marginal: adj. 1. Extremely small. "A marginal increase in
{core} can decrease {GC} time drastically." In everyday
terms, this means that it is a lot easier to clean off your desk if
you have a spare place to put some of the junk while you sort
through it. 2. Of extremely small merit. "This proposed new
feature seems rather marginal to me." 3. Of extremely small
probability of {win}ning. "The power supply was rather marginal
anyway; no wonder it fried."

:Marginal Hacks: n. Margaret Jacks Hall, a building into which the
Stanford AI Lab was moved near the beginning of the 1980s (from the
{D. C. Power Lab}).

:marginally: adv. Slightly. "The ravs here are only marginally
better than at Small Eating Place." See {epsilon}.

:marketroid: /mar'k*-troyd/ alt. `marketing slime',
`marketing droid', `marketeer' n. A member of a company's
marketing department, esp. one who promises users that the next
version of a product will have features that are not actually
scheduled for inclusion, are extremely difficult to implement,
and/or are in violation of the laws of physics; and/or one who
describes existing features (and misfeatures) in ebullient,
buzzword-laden adspeak. Derogatory. Compare {droid}.

:Mars: n. A legendary tragic failure, the archetypal Hacker Dream
Gone Wrong. Mars was the code name for a family of PDP-10
compatible computers built by Systems Concepts (now, The SC Group);
the multi-processor SC-30M, the small uniprocessor SC-25M, and the
never-built superprocessor SC-40M. These machines were marvels of
engineering design; although not much slower than the unique
{Foonly} F-1, they were physically smaller and consumed less
power than the much slower DEC KS10 or Foonly F-2, F-3, or F-4
machines. They were also completely compatible with the DEC KL10,
and ran all KL10 binaries, including the operating system, with no
modifications at about 2--3 times faster than a KL10.

When DEC cancelled the Jupiter project in 1983, Systems Concepts
should have made a bundle selling their machine into shops with a
lot of software investment in PDP-10s, and in fact their spring
1984 announcement generated a great deal of excitement in the
PDP-10 world. TOPS-10 was running on the Mars by the summer of
1984, and TOPS-20 by early fall. Unfortunately, the hackers
running Systems Concepts were much better at designing machines
than at mass producing or selling them; the company allowed itself
to be sidetracked by a bout of perfectionism into continually
improving the design, and lost credibility as delivery dates
continued to slip. They also overpriced the product ridiculously;
they believed they were competing with the KL10 and VAX 8600 and
failed to reckon with the likes of Sun Microsystems and other
hungry startups building workstations with power comparable to the
KL10 at a fraction of the price. By the time SC shipped the first
SC-30M to Stanford in late 1985, most customers had already made
the traumatic decision to abandon the PDP-10, usually for VMS or
UNIX boxes. Most of the Mars computers built ended up being
purchased by CompuServe.

This tale and the related saga of {Foonly} hold a lesson for hackers:
if you want to play in the {Real World}, you need to learn Real World
moves.

:martian: n. A packet sent on a TCP/IP network with a source
address of the test loopback interface [127.0.0.1]. This means
that it will come back at you labeled with a source address that
is clearly not of this earth. "The domain server is getting lots
of packets from Mars. Does that gateway have a martian filter?"

:massage: vt. Vague term used to describe `smooth' transformations of
a data set into a different form, esp. transformations that do
not lose information. Connotes less pain than {munch} or {crunch}.
"He wrote a program that massages X bitmap files into GIF
format." Compare {slurp}.

:math-out: [poss. from `white-out' (the blizzard variety)] n. A
paper or presentation so encrusted with mathematical or other
formal notation as to be incomprehensible. This may be a device
for concealing the fact that it is actually {content-free}. See
also {numbers}, {social science number}.

:Matrix: [FidoNet] n. 1. What the Opus BBS software and sysops call
{FidoNet}. 2. Fanciful term for a {cyberspace} expected to
emerge from current networking experiments (see {network, the}).
3. The totality of present-day computer networks.

:maximum Maytag mode: What a {washing machine} or, by extension,
any hard disk is in when it's being used so heavily that it's
shaking like an old Maytag with an unbalanced load. If prolonged
for any length of time, can lead to disks becoming {walking
drives}.

:Mbogo, Dr. Fred: /*m-boh'goh, dok'tr fred/ [Stanford] n. The
archetypal man you don't want to see about a problem, esp. an
incompetent professional; a shyster. "Do you know a good eye
doctor?" "Sure, try Mbogo Eye Care and Professional Dry
Cleaning." The name comes from synergy between {bogus} and the
original Dr. Mbogo, a witch doctor who was Gomez Addams' physician
on the old "Addams Family" TV show. See also
{fred}.

:meatware: n. Synonym for {wetware}. Less common.

:meeces: /mees'*z/ [TMRC] n. Occasional furry visitors who are
not {urchin}s. [That is, mice. This may no longer be in live
use; it clearly derives from the refrain of the early-1960s cartoon
character Mr. Jinx: "I hate meeces to *pieces*!" --- ESR]

:meg: /meg/ n. See {{quantifiers}}.

:mega-: /me'g*/ [SI] pref. See {{quantifiers}}.

:megapenny: /meg'*-pen`ee/ n. $10,000 (1 cent * 10^6).
Used semi-humorously as a unit in comparing computer cost and
performance figures.

:MEGO: /me'goh/ or /mee'goh/ [`My Eyes Glaze Over', often `Mine Eyes
Glazeth (sic) Over', attributed to the futurologist Herman Kahn]
Also `MEGO factor'. 1. n. A {handwave} intended to confuse the
listener and hopefully induce agreement because the listener does
not want to admit to not understanding what is going on. MEGO is
usually directed at senior management by engineers and contains a
high proportion of {TLA}s. 2. excl. An appropriate response to
MEGO tactics. 3. Among non-hackers this term often refers not to
behavior that causes the eyes to glaze, but to the eye-glazing
reaction itself, which may be triggered by the mere threat of
technical detail as effectively as by an actual excess of it.

:meltdown, network: n. See {network meltdown}.

:meme: /meem/ [coined on analogy with `gene' by Richard
Dawkins] n. An idea considered as a {replicator}, esp. with
the connotation that memes parasitize people into propagating them
much as viruses do. Used esp. in the phrase `meme complex'
denoting a group of mutually supporting memes that form an
organized belief system, such as a religion. This lexicon is an
(epidemiological) vector of the `hacker subculture' meme complex;
each entry might be considered a meme. However, `meme' is often
misused to mean `meme complex'. Use of the term connotes
acceptance of the idea that in humans (and presumably other tool-
and language-using sophonts) cultural evolution by selection of
adaptive ideas has superseded biological evolution by selection of
hereditary traits. Hackers find this idea congenial for tolerably
obvious reasons.

:meme plague: n. The spread of a successful but pernicious
{meme}, esp. one that parasitizes the victims into giving
their all to propagate it. Astrology, BASIC, and the other guy's
religion are often considered to be examples. This usage is given
point by the historical fact that `joiner' ideologies like
Naziism or various forms of millennarian Christianity have
exhibited plague-like cycles of exponential growth followed by
collapses to small reservoir populations.

:memetics: /me-met'iks/ [from {meme}] The study of memes. As of
mid-1991, this is still an extremely informal and speculative
endeavor, though the first steps towards at least statistical rigor
have been made by H. Keith Henson and others. Memetics is a
popular topic for speculation among hackers, who like to see
themselves as the architects of the new information ecologies in
which memes live and replicate.

:memory leak: n. An error in a program's dynamic-store allocation
logic that causes it to fail to reclaim discarded memory, leading
to eventual collapse due to memory exhaustion. Also (esp. at
CMU) called {core leak}. These problems were severe on older
machines with small, fixed-size address spaces, and special "leak
detection" tools were commonly written to root them out. With the
advent of virtual memory, it is unfortunately easier to be sloppy
about wasting a bit of memory (although when you run out of memory
on a VM machine, it means you've got a *real* leak!). See
{aliasing bug}, {fandango on core}, {smash the stack},
{precedence lossage}, {overrun screw}, {leaky heap},
{leak}.

:memory smash: [XEROX PARC] n. Writing through a pointer that
doesn't point to what you think it does. This occasionally reduces
your machine to a rubble of bits. Note that this is subtly
different from (and more general than) related terms such as a
{memory leak} or {fandango on core} because it doesn't imply
an allocation error or overrun condition.

:menuitis: /men`yoo-i:'tis/ n. Notional disease suffered by software
with an obsessively simple-minded menu interface and no escape.
Hackers find this intensely irritating and much prefer the
flexibility of command-line or language-style interfaces,
especially those customizable via macros or a special-purpose
language in which one can encode useful hacks. See
{user-obsequious}, {drool-proof paper}, {WIMP environment},
{for the rest of us}.

:mess-dos: /mes-dos/ n. Derisory term for MS-DOS. Often followed
by the ritual banishing "Just say No!" See {{MS-DOS}}. Most
hackers (even many MS-DOS hackers) loathe MS-DOS for its
single-tasking nature, its limits on application size, its nasty
primitive interface, and its ties to IBMness (see {fear and
loathing}). Also `mess-loss', `messy-dos', `mess-dog',
`mess-dross', `mush-dos', and various combinations thereof. In
Ireland and the U.K. it is even sometimes called `Domestos' after a
brand of toilet cleanser.

:meta: /me't*/ or /may't*/ or (Commonwealth) /mee't*/ [from
analytic philosophy] adj.,pref. One level of description up. A
metasyntactic variable is a variable in notation used to describe
syntax, and meta-language is language used to describe language.
This is difficult to explain briefly, but much hacker humor turns
on deliberate confusion between meta-levels. See {{Humor,
Hacker}}.

:meta bit: n. The top bit of an 8-bit character, which is on in
character values 128--255. Also called {high bit}, {alt bit},
or {hobbit}. Some terminals and consoles (see {space-cadet
keyboard}) have a META shift key. Others (including,
*mirabile dictu*, keyboards on IBM PC-class machines) have an
ALT key. See also {bucky bits}.

Historical note: although in modern usage shaped by a universe of
8-bit bytes the meta bit is invariably hex 80 (octal 0200), things
were different on earlier machines with 36-bit words and 9-bit
bytes. The MIT and Stanford keyboards (see {space-cadet
keyboard}) generated hex 100 (octal 400) from their meta keys.

:metasyntactic variable: n. A name used in examples and understood
to stand for whatever thing is under discussion, or any random
member of a class of things under discussion. The word {foo} is
the {canonical} example. To avoid confusion, hackers never
(well, hardly ever) use `foo' or other words like it as permanent
names for anything. In filenames, a common convention is that any
filename beginning with a metasyntactic-variable name is a
{scratch} file that may be deleted at any time.

To some extent, the list of one's preferred metasyntactic variables
is a cultural signature. They occur both in series (used for
related groups of variables or objects) and as singletons. Here
are a few common signatures:

{foo}, {bar}, {baz}, {quux}, quuux, quuuux...:
MIT/Stanford usage, now found everywhere (thanks largely to early
versions of this lexicon!). At MIT, {baz} dropped out of use for
a while in the 1970s and '80s. A common recent mutation of this
sequence inserts {qux} before {quux}.
{foo}, {bar}, thud, grunt:
This series was popular at CMU. Other CMU-associated variables
include {gorp}.
{foo}, {bar}, fum:
This series is reported common at XEROX PARC.
{fred}, {barney}:
See the entry for {fred}. These tend to be Britishisms.
{toto}, titi, tata, tutu:
Standard series of metasyntactic variables among francophones.
{corge}, {grault}, {flarp}:
Popular at Rutgers University and among {GOSMACS} hackers.
zxc, spqr, {wombat}:
Cambridge University (England).

Of all these, only `foo' and `bar' are universal (and {baz}
nearly so). The compounds {foobar} and `foobaz' also enjoy
very wide currency.

Some jargon terms are also used as metasyntactic names; {barf}
and {mumble}, for example. See also {{Commonwealth Hackish}}
for discussion of numerous metasyntactic variables found in Great
Britain and the Commonwealth.

:MFTL: /M-F-T-L/ [abbreviation: `My Favorite Toy Language'] 1. adj.
Describes a talk on a programming language design that is heavy on
the syntax (with lots of BNF), sometimes even talks about semantics
(e.g., type systems), but rarely, if ever, has any content (see
{content-free}). More broadly applied to talks --- even when
the topic is not a programming language --- in which the subject
matter is gone into in unnecessary and meticulous detail at the
sacrifice of any conceptual content. "Well, it was a typical MFTL
talk". 2. n. Describes a language about which the developers are
passionate (often to the point of prosyletic zeal) but no one else
cares about. Applied to the language by those outside the
originating group. "He cornered me about type resolution in his
MFTL."



 


Back to Full Books