The Hacker's Dictionary

Versió HTML de Lluís de Yzaguirre i Maura

Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza @ upf.es


K
= /K/ [from kilo-] n. A kilobyte. Used both as a spoken
word and a written suffix (like meg and gig for megabyte
and gigabyte). See "quantifiers".
K&R
=== [Kernighan and Ritchie] n. Brian Kernighan and Dennis Ritchie's
book "The C Programming Language", esp. the classic and influential
first edition (Prentice-Hall 1978; ISBN 0-113-110163-3). Syn.
White Book, Old Testament. See also New Testament.
kahuna
====== /k*-hoo'n*/ [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
==== /ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out. A
summary of what happens whenever valid data is passed through an
organization (or person) that deliberately or accidentally
disregards or ignores its significance. Consider, for example,
what an advertising campaign can do with a product's actual
specifications. Compare GIGO; see also SNAFU principle.
2. James Parry , a USENETter infamous for
various surrealist net.pranks and an uncanny, machine-assisted
knack for joining any thread in which his nom de guerre is
mentioned.
kiboze
====== [USENET] v. To grep the USENET news for a string,
especially with the intention of posting a follow-up. This activity was
popularised by Kibo (see KIBO, sense 2).
kick
==== [IRC] v. To cause somebody to be removed from a IRC
channel, an option only available to CHOPs. This is an
extreme measure, often used to combat extreme flamage or
flooding, but sometimes used at the chop's whim. Compare
gun.

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) into a memory-mapped
control register; used esp. of various fairly well-known tricks
on bitty boxes without hardware memory management (such as the
IBM PC and Commodore PET) that can overload and trash analog
electronics in the monitor. See also 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
====== /klooj/ or /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 farts are consistent that
`kluge' was the original spelling, reported around computers as
far back as the mid-1950s and, at that time, used exclusively of
*hardware* kluges. In 1947, the "New York Folklore
Quarterly" reported a classic shaggy-dog story `Murgatroyd the
Kluge Maker' then current in the Armed Forces, in which a `kluge'
was a complex and puzzling artifact with a trivial function. Other
sources report that `kluge' was common Navy slang in the WWII era
for any piece of electronics that worked well on shore but
consistently failed at sea.

However, there is reason to believe this slang use may be a decade
older. Several respondents have connected it to the brand name of
a device called a "Kluge paper feeder" 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.

TMRC and the MIT hacker culture of the early '60s seems to
have developed in a milieu that remembered and still used some WWII
military slang (see also foobar). It seems likely that
`kluge' came to MIT via alumni of the many military electronics
projects that had been located in Cambridge (many in MIT's
venerable Building 20, in which TMRC is also located) during
the war.

The variant `kludge' was apparently popularized by the
Datamation article mentioned above; it was titled "How
to Design a Kludge" (February 1962, pp. 30, 31). 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 1993, 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
===== /knooth/ [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*/ [Swedish] n. See feature key.