Chapter V: Rare: book (9)
:Hanlon's Razor: /prov./ A corollary of {Finagle's Law},
similar to Occam's Razor, that reads "Never attribute to malice
that which can be adequately explained by stupidity." The
derivation of the Hanlon eponym is not definitely known, but a very
similar remark ("You have attributed conditions to villainy that
simply result from stupidity.") appears in "Logic of Empire",
a 1941 story by Robert A. Heinlein, who calls it the `devil theory'
of sociology. Heinlein's popularity in the hacker culture makes
plausible the supposition that `Hanlon' is derived from `Heinlein'
by phonetic corruption. A similar epigram has been attributed to
William James, but Heinlein more probably got the idea from Alfred
Korzybski and other practitioners of General Semantics. Quoted
here because it seems to be a particular favorite of hackers, often
showing up in {sig block}s, {fortune cookie} files and the
login banners of BBS systems and commercial networks. This
probably reflects the hacker's daily experience of environments
created by well-intentioned but short-sighted people. Compare
{Sturgeon's Law}.
:happily: /adv./ Of software, used to emphasize that a program
is unaware of some important fact about its environment, either
because it has been fooled into believing a lie, or because it
doesn't care. The sense of `happy' here is not that of elation,
but rather that of blissful ignorance. "The program continues to
run, happily unaware that its output is going to /dev/null." Also
used to suggest that a program or device would really rather be
doing something destructive, and is being given an opportunity to
do so. "If you enter an O here instead of a zero, the program
will happily erase all your data."
:haque: /hak/ /n./ [Usenet] Variant spelling of {hack},
used only for the noun form and connoting an {elegant}
hack. that is a {hack} in sense 2.
:hard boot: /n./ See {boot}.
:hardcoded: /adj./ 1. Said of data inserted directly into a
program, where it cannot be easily modified, as opposed to data in
some {profile}, resource (see {de-rezz} sense 2), or
environment variable that a {user} or hacker can easily modify.
2. In C, this is esp. applied to use of a literal instead of a
`#define' macro (see {magic number}).
:hardwarily: /hard-weir'*-lee/ /adv./ In a way pertaining to
hardware. "The system is hardwarily unreliable." The adjective
`hardwary' is *not* traditionally used, though it has
recently been reported from the U.K. See {softwarily}.
:hardwired: /adj./ 1. In software, syn. for {hardcoded}.
2. By extension, anything that is not modifiable, especially in the
sense of customizable to one's particular needs or tastes.
:has the X nature: [seems to derive from Zen Buddhist koans
of the form "Does an X have the Buddha-nature?"] /adj./ Common
hacker construction for `is an X', used for humorous emphasis.
"Anyone who can't even use a program with on-screen help embedded
in it truly has the {loser} nature!" See also {the X that
can be Y is not the true X}.
:hash bucket: /n./ A notional receptacle, a set of which might
be used to apportion data items for sorting or lookup purposes.
When you look up a name in the phone book (for example), you
typically hash it by extracting its first letter; the hash buckets
are the alphabetically ordered letter sections. This term is used
as techspeak with respect to code that uses actual hash functions;
in jargon, it is used for human associative memory as well. Thus,
two things `in the same hash bucket' are more difficult to
discriminate, and may be confused. "If you hash English words
only by length, you get too many common grammar words in the first
couple of hash buckets." Compare {hash collision}.
:hash collision: /n./ [from the techspeak] (var. `hash
clash') When used of people, signifies a confusion in associative
memory or imagination, especially a persistent one (see
{thinko}). True story: One of us [ESR] was once on the phone
with a friend about to move out to Berkeley. When asked what he
expected Berkeley to be like, the friend replied: "Well, I have
this mental picture of naked women throwing Molotov cocktails, but
I think that's just a collision in my hash tables." Compare
{hash bucket}.
:hat: /n./ Common (spoken) name for the circumflex (`^', ASCII
1011110) character. See {ASCII} for other synonyms.
:HCF: /H-C-F/ /n./ Mnemonic for `Halt and Catch Fire', any
of several undocumented and semi-mythical machine instructions with
destructive side-effects, supposedly included for test purposes on
several well-known architectures going as far back as the IBM 360.
The MC6800 microprocessor was the first for which an HCF opcode
became widely known. This instruction caused the processor to
{toggle} a subset of the bus lines as rapidly as it could; in
some configurations this could actually cause lines to burn up.
:heads down: [Sun] /adj./ Concentrating, usually so heavily and
for so long that everything outside the focus area is missed. See
also {hack mode} and {larval stage}, although this mode is
hardly confined to fledgling hackers.
:heartbeat: /n./ 1. The signal emitted by a Level 2 Ethernet
transceiver at the end of every packet to show that the
collision-detection circuit is still connected. 2. A periodic
synchronization signal used by software or hardware, such as a bus
clock or a periodic interrupt. 3. The `natural' oscillation
frequency of a computer's clock crystal, before frequency division
down to the machine's clock rate. 4. A signal emitted at regular
intervals by software to demonstrate that it is still alive.
Sometimes hardware is designed to reboot the machine if it stops
hearing a heartbeat. See also {breath-of-life packet}.
:heatseeker: /n./ [IBM] A customer who can be relied upon to
buy, without fail, the latest version of an existing product (not
quite the same as a member of the {lunatic fringe}). A 1993
example of a heatseeker is someone who, owning a 286 PC and Windows
3.0, goes out and buys Windows 3.1 (which offers no worthwhile
benefits unless you have a 386). If all customers were
heatseekers, vast amounts of money could be made by just fixing the
bugs in each release (n) and selling it to them as release (n+1).
:heavy metal: /n./ [Cambridge] Syn. {big iron}.
:heavy wizardry: /n./ Code or designs that trade on a
particularly intimate knowledge or experience of a particular
operating system or language or complex application interface.
Distinguished from {deep magic}, which trades more on arcane
*theoretical* knowledge. Writing device drivers is heavy
wizardry; so is interfacing to {X} (sense 2) without a toolkit.
Esp. found in source-code comments of the form "Heavy wizardry
begins here". Compare {voodoo programming}.
:heavyweight: /adj./ High-overhead; {baroque};
code-intensive; featureful, but costly. Esp. used of
communication protocols, language designs, and any sort of
implementation in which maximum generality and/or ease of
implementation has been pushed at the expense of mundane
considerations such as speed, memory utilization, and startup time.
{EMACS} is a heavyweight editor; {X} is an *extremely*
heavyweight window system. This term isn't pejorative, but one
hacker's heavyweight is another's {elephantine} and a third's
{monstrosity}. Oppose `lightweight'. Usage: now borders on
techspeak, especially in the compound `heavyweight process'.
:heisenbug: /hi:'zen-buhg/ /n./ [from Heisenberg's
Uncertainty Principle in quantum physics] A bug that disappears or
alters its behavior when one attempts to probe or isolate it.
(This usage is not even particularly fanciful; the use of a
debugger sometimes alters a program's operating environment
significantly enough that buggy code, such as that which relies on
the values of uninitialized memory, behaves quite differently.)
Antonym of {Bohr bug}; see also {mandelbug},
{schroedinbug}. In C, nine out of ten heisenbugs result from
uninitialized auto variables, {fandango on core} phenomena
(esp. lossage related to corruption of the malloc {arena}) or
errors that {smash the stack}.
:Helen Keller mode: /n./ 1. State of a hardware or software
system that is deaf, dumb, and blind, i.e., accepting no input and
generating no output, usually due to an infinite loop or some other
excursion into {deep space}. (Unfair to the real Helen Keller,
whose success at learning speech was triumphant.) See also {go
flatline}, {catatonic}. 2. On IBM PCs under DOS, refers to a
specific failure mode in which a screen saver has kicked in over an
{ill-behaved} application which bypasses the very interrupts the
screen saver watches for activity. Your choices are to try to get
from the program's current state through a successful save-and-exit
without being able to see what you're doing, or to re-boot the
machine. This isn't (strictly speaking) a crash.
:hello, sailor!: /interj./ Occasional West Coast equivalent of
{hello, world}; seems to have originated at SAIL, later
associated with the game {Zork} (which also included "hello,
aviator" and "hello, implementor"). Originally from the
traditional hooker's greeting to a swabbie fresh off the boat, of
course.
:hello, wall!: /excl./ See {wall}.
:hello, world: /interj./ 1. The canonical minimal test message
in the C/Unix universe. 2. Any of the minimal programs that emit
this message. Traditionally, the first program a C coder is
supposed to write in a new environment is one that just prints
"hello, world" to standard output (and indeed it is the first
example program in {K&R}). Environments that generate an
unreasonably large executable for this trivial test or which
require a {hairy} compiler-linker invocation to generate it are
considered to {lose} (see {X}). 3. Greeting uttered by a
hacker making an entrance or requesting information from anyone
present. "Hello, world! Is the {VAX} back up yet?"
:hex: /n./ 1. Short for {{hexadecimal}}, base 16. 2. A 6-pack
of anything (compare {quad}, sense 2). Neither usage has
anything to do with {magic} or {black art}, though the pun is
appreciated and occasionally used by hackers. True story: As a
joke, some hackers once offered some surplus ICs for sale to be
worn as protective amulets against hostile magic. The chips were,
of course, hex inverters.
:hexadecimal:: /n./ Base 16. Coined in the early 1960s to
replace earlier `sexadecimal', which was too racy and amusing
for stuffy IBM, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take
`binary' to be paradigmatic, the most etymologically correct
term for base 10, for example, is `denary', which comes from
`deni' (ten at a time, ten each), a Latin `distributive'
number; the corresponding term for base-16 would be something like
`sendenary'. `Decimal' is from an ordinal number; the
corresponding prefix for 6 would imply something like
`sextidecimal'. The `sexa-' prefix is Latin but incorrect in
this context, and `hexa-' is Greek. The word `octal' is
similarly incorrect; a correct form would be `octaval' (to go
with decimal), or `octonary' (to go with binary). If anyone ever
implements a base-3 computer, computer scientists will be faced
with the unprecedented dilemma of a choice between two
*correct* forms; both `ternary' and `trinary' have a
claim to this throne.
:hexit: /hek'sit/ /n./ A hexadecimal digit (0--9, and A--F or
a--f). Used by people who claim that there are only *ten*
digits, dammit; sixteen-fingered human beings are rather rare,
despite what some keyboard designs might seem to imply (see
{space-cadet keyboard}).
:HHOK: See {ha ha only serious}.
:HHOS: See {ha ha only serious}.
:hidden flag: /n./ [scientific computation] An extra option
added to a routine without changing the calling sequence. For
example, instead of adding an explicit input variable to instruct a
routine to give extra diagnostic output, the programmer might just
add a test for some otherwise meaningless feature of the existing
inputs, such as a negative mass. The use of hidden flags can make
a program very hard to debug and understand, but is all too common
wherever programs are hacked on in a hurry.
:high bit: /n./ [from `high-order bit'] 1. The most
significant bit in a byte. 2. By extension, the most significant
part of something other than a data byte: "Spare me the whole
{saga}, just give me the high bit." See also {meta bit},
{hobbit}, {dread high-bit disease}, and compare the
mainstream slang `bottom line'.
:high moby: /hi:' mohb'ee/ /n./ The high half of a 512K
{PDP-10}'s physical address space; the other half was of course
the low moby. This usage has been generalized in a way that has
outlasted the {PDP-10}; for example, at the 1990 Washington D.C.
Area Science Fiction Conclave (Disclave), when a miscommunication
resulted in two separate wakes being held in commemoration of the
shutdown of MIT's last {{ITS}} machines, the one on the upper
floor was dubbed the `high moby' and the other the `low moby'.
All parties involved {grok}ked this instantly. See {moby}.
:highly: /adv./ [scientific computation] The preferred modifier
for overstating an understatement. As in: `highly nonoptimal',
the worst possible way to do something; `highly nontrivial',
either impossible or requiring a major research project; `highly
nonlinear', completely erratic and unpredictable; `highly
nontechnical', drivel written for {luser}s, oversimplified to
the point of being misleading or incorrect (compare {drool-proof
paper}). In other computing cultures, postfixing of {in the
extreme} might be preferred.
:hing: // /n./ [IRC] Fortuitous typo for `hint', now in
wide intentional use among players of {initgame}. Compare
{newsfroup}, {filk}.
:hired gun: /n./ A contract programmer, as opposed to a
full-time staff member. All the connotations of this term
suggested by innumerable spaghetti Westerns are intentional.
:hirsute: /adj./ Occasionally used humorously as a synonym for
{hairy}.
:HLL: /H-L-L/ /n./ [High-Level Language (as opposed to
assembler)] Found primarily in email and news rather than speech.
Rarely, the variants `VHLL' and `MLL' are found. VHLL stands for
`Very-High-Level Language' and is used to describe a
{bondage-and-discipline language} that the speaker happens to
like; Prolog and Backus's FP are often called VHLLs. `MLL' stands
for `Medium-Level Language' and is sometimes used half-jokingly to
describe {C}, alluding to its `structured-assembler' image.
See also {languages of choice}.
:hoarding: /n./ See {software hoarding}.
:hobbit: /n./ 1. The High Order BIT of a byte; same as the
{meta bit} or {high bit}. 2. The non-ITS name of
[email protected] (*Hobbit*), master of lasers.
:hog: /n.,vt./ 1. Favored term to describe programs or hardware
that seem to eat far more than their share of a system's resources,
esp. those which noticeably degrade interactive response.
*Not* used of programs that are simply extremely large or
complex or that are merely painfully slow themselves (see {pig,
run like a}). More often than not encountered in qualified forms,
e.g., `memory hog', `core hog', `hog the processor', `hog
the disk'. "A controller that never gives up the I/O bus gets
killed after the bus-hog timer expires." 2. Also said of
*people* who use more than their fair share of resources
(particularly disk, where it seems that 10% of the people use 90%
of the disk, no matter how big the disk is or how many people use
it). Of course, once disk hogs fill up one filesystem, they
typically find some other new one to infect, claiming to the
sysadmin that they have an important new project to complete.
:hole: /n./ A region in an otherwise {flat} entity which is
not actually present. For example, some Unix filesystems can store
large files with holes so that unused regions of the file are never
actually stored on disk. (In techspeak, these are referred to as
`sparse' files.) As another example, the region of memory in IBM
PCs reserved for memory-mapped I/O devices which may not actually
be present is called `the I/O hole', since memory-management
systems must skip over this area when filling user requests for
memory.
:hollised: /hol'ist/ /adj./ [Usenet: sci.space]
To be hollised is to have been ordered by one's employer not to
post any even remotely job-related material to USENET (or, by
extension, to other Internet media). The original and most
notorious case of this involved one Ken Hollis, a Lockheed
employee and space-program enthusiast who posted publicly available
material on access to Space Shuttle launches to sci.space.
He was gagged under threat of being fired in 1994 at the behest of
NASA public-relations officers. The result was, of course, a huge
publicity black eye for NASA. Nevertheless several other NASA
contractor employees were subsequently hollised for similar
activities. Use of this term carries the strong connotation that
the persons doing the gagging are bureaucratic idiots blinded to
their own best interests by territorial reflexes.
:holy wars: /n./ [from {Usenet}, but may predate it]
/n./ {flame war}s over {religious issues}. The paper by Danny
Cohen that popularized the terms {big-endian} and
{little-endian} in connection with the LSB-first/MSB-first
controversy was entitled "On Holy Wars and a Plea for Peace".
Other perennial Holy Wars have included {EMACS} vs. {vi},
my personal computer vs. everyone else's personal computer,
{{ITS}} vs. {{Unix}}, {{Unix}} vs. {VMS}, {BSD} Unix
vs. {USG Unix}, {C} vs. {{Pascal}}, {C} vs.
FORTRAN, etc., ad nauseam. The characteristic that distinguishes
holy wars from normal technical disputes is that in a holy war
most of the participants spend their time trying to pass off
personal value choices and cultural attachments as objective
technical evaluations. See also {theology}.
:home box: /n./ A hacker's personal machine, especially one he
or she owns. "Yeah? Well, *my* home box runs a full 4.2
BSD, so there!"
:home machine: /n./ 1. Syn. {home box}. 2. The machine that
receives your email. These senses might be distinct, for example,
for a hacker who owns one computer at home, but reads email at
work.
:home page: /n./ 1. One's personal billboard on the World Wide
Web. The term `home page' is perhaps a bit misleading because home
directories and physical homes in {RL} are private, but home
pages are designed to be very public. 2. By extension, a WWW
repository for information and links related to a project or
organization. Compare {home box}.
:hook: /n./ A software or hardware feature included in order to
simplify later additions or changes by a user. For example, a
simple program that prints numbers might always print them in base
10, but a more flexible version would let a variable determine what
base to use; setting the variable to 5 would make the program print
numbers in base 5. The variable is a simple hook. An even more
flexible program might examine the variable and treat a value of 16
or less as the base to use, but treat any other number as the
address of a user-supplied routine for printing a number. This is
a {hairy} but powerful hook; one can then write a routine to
print numbers as Roman numerals, say, or as Hebrew characters, and
plug it into the program through the hook. Often the difference
between a good program and a superb one is that the latter has
useful hooks in judiciously chosen places. Both may do the
original job about equally well, but the one with the hooks is much
more flexible for future expansion of capabilities ({EMACS}, for
example, is *all* hooks). The term `user exit' is
synonymous but much more formal and less hackish.
:hop: 1. /n./ One file transmission in a series required to get
a file from point A to point B on a store-and-forward network. On
such networks (including {UUCPNET} and {FidoNet}), an
important inter-machine metric is the number of hops in the
shortest path between them, which can be more significant than
their geographical separation. See {bang path}. 2. /v./ To log in
to a remote machine, esp. via rlogin or telnet. "I'll hop over to
foovax to FTP that."
:hose: 1. /vt./ To make non-functional or greatly degraded in
performance. "That big ray-tracing program really hoses the
system." See {hosed}. 2. /n./ A narrow channel through which
data flows under pressure. Generally denotes data paths that
represent performance bottlenecks. 3. /n./ Cabling, especially
thick
Ethernet cable. This is sometimes called `bit hose' or
`hosery' (play on `hosiery') or `etherhose'. See also
{washing machine}.
:hosed: /adj./ Same as {down}. Used primarily by Unix
hackers. Humorous: also implies a condition thought to be
relatively easy to reverse. Probably derived from the Canadian
slang `hoser' popularized by the Bob and Doug Mackenzie skits on
SCTV, but this usage predated SCTV by years in hackerdom (it was
certainly already live at CMU in the 1970s). See {hose}. It is
also widely used of people in the mainstream sense of `in an
extremely unfortunate situation'.
Once upon a time, a Cray that had been experiencing periodic
difficulties crashed, and it was announced to have been hosed.
It was discovered that the crash was due to the disconnection of
some coolant hoses. The problem was corrected, and users were then
assured that everything was OK because the system had been rehosed.
See also {dehose}.
:hot chat: /n./ Sexually explicit one-on-one chat. See
{teledildonics}.
:hot spot: /n./ 1. [primarily used by C/Unix programmers, but
spreading] It is received wisdom that in most programs, less than
10% of the code eats 90% of the execution time; if one were to
graph instruction visits versus code addresses, one would typically
see a few huge spikes amidst a lot of low-level noise. Such spikes
are called `hot spots' and are good candidates for heavy
optimization or {hand-hacking}. The term is especially used of
tight loops and recursions in the code's central algorithm, as
opposed to (say) initial set-up costs or large but infrequent I/O
operations. See {tune}, {bum}, {hand-hacking}. 2. The
active location of a cursor on a bit-map display. "Put the
mouse's hot spot on the `ON' widget and click the left button."
3. A screen region that is sensitive to mouse gestures, which
trigger some action. World Wide Web pages now provide the
{canonical} examples; WWW browsers present hypertext links as
hot spots which, when clicked on, point the browser at another
document (these are specifically called {hotlink}s). 4. In a
massively parallel computer with shared memory, the one location
that all 10,000 processors are trying to read or write at once
(perhaps because they are all doing a {busy-wait} on the same
lock). 5. More generally, any place in a hardware design that
turns into a performance bottleneck due to resource
contention.
:hotlink: /hot'link/ /n./ A {hot spot} on a World Wide Web
page; an area, which, when clicked or selected, chases a URL.
Also spelled `hot link'. Use of this term focuses on the link's
role as an immediate part of your display, as opposed to the
timeless sense of logical connection suggested by {web
pointer}. Your screen shows hotlinks but your document has web
pointers, not (in normal usage) the other way around.
:house wizard: /n./ [prob. from ad-agency tradetalk, `house
freak'] A hacker occupying a technical-specialist, R&D, or systems
position at a commercial shop. A really effective house wizard can
have influence out of all proportion to his/her ostensible rank and
still not have to wear a suit. Used esp. of Unix wizards. The
term `house guru' is equivalent.
:HP-SUX: /H-P suhks/ /n./ Unflattering hackerism for HP-UX,
Hewlett-Packard's Unix port, which features some truly unique
bogosities in the filesystem internals and elsewhere (these
occasionally create portability problems). HP-UX is often referred
to as `hockey-pux' inside HP, and one respondent claims that the
proper pronunciation is /H-P ukkkhhhh/ as though one were about
to spit. Another such alternate spelling and pronunciation is
"H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo
Computers which was swallowed by HP in 1989) have been heard to
complain that Mr. Packard should have pushed to have his name
first, if for no other reason than the greater eloquence of the
resulting acronym. Compare {AIDX}, {buglix}. See also
{Nominal Semidestructor}, {Telerat}, {Open DeathTrap},
{ScumOS}, {sun-stools}.
:huff: /v./ To compress data using a Huffman code. Various
programs that use such methods have been called `HUFF' or some
variant thereof. Oppose {puff}. Compare {crunch},
{compress}.
:humma: // /excl./ A filler word used on various `chat'
and `talk' programs when you had nothing to say but felt that it
was important to say something. The word apparently originated (at
least with this definition) on the MECC Timeshare System (MTS, a
now-defunct educational time-sharing system running in Minnesota
during the 1970s and the early 1980s) but was later sighted on
early Unix systems. Compare the U.K's {wibble}.
:hung: /adj./ [from `hung up'] 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/ /adj./ [perhaps related to slang
`humongous'] 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,
especially a place that is inaccessible because it is not even
mapped in by the virtual-memory system. "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.
:hysterical reasons: /n./ (also `hysterical raisins') A
variant on the stock phrase "for historical reasons", indicating
specifically that something must be done in some stupid way for
backwards compatibility, and moreover that the feature it must be
compatible with was the result of a bad design in the first place.
"All IBM PC video adapters have to support MDA text mode for
hysterical reasons." Compare {bug-for-bug compatible}.
= 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.
: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. (A
real missile address would include target altitude.)
:ice: /n./ [coined by Usenetter Tom Maddox, popularized by
William Gibson's cyberpunk SF novels: a contrived acronym for
`Intrusion Countermeasure Electronics'] Security software (in
Gibson's novels, software that responds to intrusion by attempting
to immobilize or even literally kill the intruder). Hence,
`icebreaker': a program designed for cracking security on a
system.
Neither term is in serious use yet as of early 1996, but many
hackers find the metaphor attractive, and each may develop a
denotation in the future. In the meantime, the speculative usage
could be confused with `ICE', an acronym for "in-circuit
emulator".
In ironic reference to the speculative usage, however, some hackers
and computer scientists formed ICE (International Cryptographic
Experiment) in 1994. ICE is a consortium to promote uniform
international access to strong cryptography. ICE has a home page
at http://www.tis.com/crypto/ice.html.
:idempotent: /adj./ [from mathematical techspeak] Acting as if
used only once, even if used multiple times. This term is often
used with respect to {C} header files, which contain common
definitions and declarations to be included by several source
files. If a header file is ever included twice during the same
compilation (perhaps due to nested #include files), compilation
errors can result unless the header file has protected itself
against multiple inclusion; a header file so protected is said to
be idempotent. The term can also be used to describe an
initialization subroutine that is arranged to perform some critical
action exactly once, even if the routine is called several times.
:If you want X, you know where to find it.: There is a legend
that Dennis Ritchie, inventor of {C}, once responded to demands
for features resembling those of what at the time was a much more
popular language by observing "If you want PL/I, you know where to
find it." Ever since, this has been hackish standard form for
fending off requests to alter a new design to mimic some older
(and, by implication, inferior and {baroque}) one. The case X =
{Pascal} manifests semi-regularly on Usenet's comp.lang.c
newsgroup. Indeed, the case X = X has been reported in discussions
of graphics software (see {X}).
:ifdef out: /if'def owt/ /v./ Syn. for {condition out},
specific to {C}.
:ill-behaved: /adj./ 1. [numerical analysis] Said of an
algorithm or computational method that tends to blow up because of
accumulated roundoff error or poor convergence properties.
2. Software that bypasses the defined {OS} interfaces to do
things (like screen, keyboard, and disk I/O) itself, often in a way
that depends on the hardware of the machine it is running on or
which is nonportable or incompatible with other pieces of software.
In the IBM PC/MS-DOS world, there is a folk theorem (nearly true)
to the effect that (owing to gross inadequacies and performance
penalties in the OS interface) all interesting applications are
ill-behaved. See also {bare metal}. Oppose {well-behaved},
compare {PC-ism}. See {mess-dos}.
:IMHO: // /abbrev./ [from SF fandom via Usenet; abbreviation for
`In My Humble Opinion'] "IMHO, mixed-case C names should be
avoided, as mistyping something in the wrong case can cause
hard-to-detect errors -- and they look too Pascalish anyhow."
Also seen in variant forms such as IMNSHO (In My Not-So-Humble
Opinion) and IMAO (In My Arrogant Opinion).
:Imminent Death Of The Net Predicted!: /prov./ [Usenet] Since
{Usenet} first got off the ground in 1980--81, it has grown
exponentially, approximately doubling in size every year. On the
other hand, most people feel the {signal-to-noise ratio} of
Usenet has dropped steadily. These trends led, as far back as
mid-1983, to predictions of the imminent collapse (or death) of the
net. Ten years and numerous doublings later, enough of these
gloomy prognostications have been confounded that the phrase
"Imminent Death Of The Net Predicted!" has become a running joke,
hauled out any time someone grumbles about the {S/N ratio} or
the huge and steadily increasing volume, or the possible loss of a
key node or link, or the potential for lawsuits when ignoramuses
post copyrighted material, etc., etc., etc.
:in the extreme: /adj./ A preferred superlative suffix for many
hackish terms. See, for example, `obscure in the extreme' under
{obscure}, and compare {highly}.
:inc: /ink/ /v./ Verbal (and only rarely written) shorthand
for increment, i.e. `increase by one'. Especially used by
assembly programmers, as many assembly languages have an `inc'
mnemonic. Antonym: {dec}.
:incantation: /n./ Any particularly arbitrary or obscure
command that one must mutter at a system to attain a desired
result. Not used of passwords or other explicit security features.
Especially used of tricks that are so poorly documented that they
must be learned from a {wizard}. "This compiler normally
locates initialized data in the data segment, but if you
{mutter} the right incantation they will be forced into text
space."
:include: /vt./ [Usenet] 1. To duplicate a portion (or whole)
of another's message (typically with attribution to the source) in
a reply or followup, for clarifying the context of one's response.
See the discussion of inclusion styles under "Hacker Writing
Style". 2. [from {C}] `#include <disclaimer.h>' has
appeared in {sig block}s to refer to a notional `standard
{disclaimer} file'.
:include war: /n./ Excessive multi-leveled inclusion within a
discussion {thread}, a practice that tends to annoy readers. In
a forum with high-traffic newsgroups, such as Usenet, this can lead
to {flame}s and the urge to start a {kill file}.
:indent style: /n./ [C programmers] The rules one uses to
indent code in a readable fashion. There are four major C indent
styles, described below; all have the aim of making it easier for
the reader to visually track the scope of control constructs. The
significant variable is the placement of `{' and `}'
with respect to the statement(s) they enclose and to the guard or
controlling statement (`if', `else', `for',
`while', or `do') on the block, if any.
`K&R style' -- Named after Kernighan & Ritchie, because the
examples in {K&R} are formatted this way. Also called `kernel
style' because the Unix kernel is written in it, and the `One True
Brace Style' (abbrev. 1TBS) by its partisans. The basic indent
shown here is eight spaces (or one tab) per level; four spaces are
occasionally seen, but are much less common.
if (<cond>) {
<body>
}
`Allman style' -- Named for Eric Allman, a Berkeley hacker who
wrote a lot of the BSD utilities in it (it is sometimes called
`BSD style'). Resembles normal indent style in Pascal and
Algol. Basic indent per level shown here is eight spaces, but four
spaces are just as common (esp. in C++ code).
if (<cond>)
{
<body>
}
`Whitesmiths style' -- popularized by the examples that came
with Whitesmiths C, an early commercial C compiler. Basic indent
per level shown here is eight spaces, but four spaces are
occasionally seen.
if (<cond>)
{
<body>
}
`GNU style' -- Used throughout GNU EMACS and the Free Software
Foundation code, and just about nowhere else. Indents are always
four spaces per level, with `{' and `}' halfway between the
outer and inner indent levels.
if (<cond>)
{
<body>
}
Surveys have shown the Allman and Whitesmiths styles to be the most
common, with about equal mind shares. K&R/1TBS used to be nearly
universal, but is now much less common (the opening brace tends to
get lost against the right paren of the guard part in an `if'
or `while', which is a {Bad Thing}). Defenders of 1TBS
argue that any putative gain in readability is less important than
their style's relative economy with vertical space, which enables
one to see more code on one's screen at once. Doubtless these
issues will continue to be the subject of {holy wars}.
:index: /n./ See {coefficient of X}.
:infant mortality: /n./ It is common lore among hackers (and in
the electronics industry at large; this term is possibly techspeak
by now) that the chances of sudden hardware failure drop off
exponentially with a machine's time since first use (that is, until
the relatively distant time at which enough mechanical wear in I/O
devices and thermal-cycling stress in components has accumulated
for the machine to start going senile). Up to half of all chip and
wire failures happen within a new system's first few weeks; such
failures are often referred to as `infant mortality' problems
(or, occasionally, as `sudden infant death syndrome'). See
{bathtub curve}, {burn-in period}.
:infinite: /adj./ Consisting of a large number of objects;
extreme. Used very loosely as in: "This program produces infinite
garbage." "He is an infinite loser." The word most likely to
follow `infinite', though, is {hair}. (It has been pointed
out that fractals are an excellent example of infinite hair.)
These uses are abuses of the word's mathematical meaning. The term
`semi-infinite', denoting an immoderately large amount of some
resource, is also heard. "This compiler is taking a semi-infinite
amount of time to optimize my program." See also {semi}.
:infinite loop: /n./ One that never terminates (that is, the
machine {spin}s or {buzz}es forever and goes {catatonic}).
There is a standard joke that has been made about each generation's
exemplar of the ultra-fast machine: "The Cray-3 is so fast it can
execute an infinite loop in under 2 seconds!"
:Infinite-Monkey Theorem: /n./ "If you put an {infinite}
number of monkeys at typewriters, eventually one will bash out the
script for Hamlet." (One may also hypothesize a small number of
monkeys and a very long period of time.) This theorem asserts
nothing about the intelligence of the one {random} monkey that
eventually comes up with the script (and note that the mob will
also type out all the possible *incorrect* versions of
Hamlet). It may be referred to semi-seriously when justifying a
{brute force} method; the implication is that, with enough
resources thrown at it, any technical challenge becomes a
{one-banana problem}.
This theorem was first popularized by the astronomer Sir Arthur
Eddington. It became part of the idiom of techies via the classic
SF short story "Inflexible Logic" by Russell Maloney, and
many younger hackers know it through a reference in Douglas Adams's
"Hitchhiker's Guide to the Galaxy".
:infinity: /n./ 1. The largest value that can be represented in
a particular type of variable (register, memory location, data
type, whatever). 2. `minus infinity': The smallest such value,
not necessarily or even usually the simple negation of plus
infinity. In N-bit twos-complement arithmetic, infinity is
2^(N-1) - 1 but minus infinity is -
(2^(N-1)), not -(2^(N-1) - 1). Note also that this
is different from "time T equals minus infinity", which is
closer to a mathematician's usage of infinity.
:inflate: /vt./ To decompress or {puff} a file. Rare among
Internet hackers, used primarily by MS-DOS/Windows types.
:Infocom: /n./ A now-legendary games company, active from 1979 to
1989, that commercialized the MDL parser technology used for
{Zork} to produce a line of text adventure games that remain
favorites among hackers. Infocom's games were intelligent, funny,
witty, erudite, irreverent, challenging, satirical, and most
thoroughly hackish in spirit. The physical game packages from
Infocom are now prized collector's items. The software,
thankfully, is still extant; Infocom games were written in a kind
of P-code and distributed with a P-code interpreter core, and
freeware emulators for that interpreter have been written to permit
the P-code to be run on platforms the games never originally
graced.
:initgame: /in-it'gaym/ /n./ [IRC] An {IRC} version of the
venerable trivia game "20 questions", in which one user changes
his {nick} to the initials of a famous person or other named
entity, and the others on the channel ask yes or no questions, with
the one to guess the person getting to be "it" next. As a
courtesy, the one picking the initials starts by providing a
4-letter hint of the form sex, nationality, life-status,
reality-status. For example, MAAR means "Male, American, Alive,
Real" (as opposed to "fictional"). Initgame can be surprisingly
addictive. See also {hing}.
[1996 update: a recognizable version of the initgame has become a
staple of some radio talk shows in the U.S. We had it first! --
ESR]
:insanely great: /adj./ [Mac community, from Steve Jobs; also
BSD Unix people via Bill Joy] Something so incredibly {elegant}
that it is imaginable only to someone possessing the most puissant
of {hacker}-natures.
:INTERCAL: /in't*r-kal/ /n./ [said by the authors to stand
for `Compiler Language With No Pronounceable Acronym'] A computer
language designed by Don Woods and James Lyons in 1972. INTERCAL
is purposely different from all other computer languages in all
ways but one; it is purely a written language, being totally
unspeakable. An excerpt from the INTERCAL Reference Manual will
make the style of the language clear:
It is a well-known and oft-demonstrated fact that a person whose
work is incomprehensible is held in high esteem. For example, if
one were to state that the simplest way to store a value of 65536
in a 32-bit INTERCAL variable is:
DO :1 <- #0$#256
any sensible programmer would say that that was absurd. Since
this is indeed the simplest method, the programmer would be made
to look foolish in front of his boss, who would of course have
happened to turn up, as bosses are wont to do. The effect would
be no less devastating for the programmer having been correct.
INTERCAL has many other peculiar features designed to make it even
more unspeakable. The Woods-Lyons implementation was actually used
by many (well, at least several) people at Princeton. The language
has been recently reimplemented as C-INTERCAL and is consequently
enjoying an unprecedented level of unpopularity; there is even an
alt.lang.intercal newsgroup devoted to the study and ...
appreciation of the language on Usenet.
An INTERCAL implementation is available at the Retrocomputing
Museum, http://www.ccil.org/retro.
:interesting: /adj./ In hacker parlance, this word has strong
connotations of `annoying', or `difficult', or both. Hackers
relish a challenge, and enjoy wringing all the irony possible out
of the ancient Chinese curse "May you live in interesting times".
Oppose {trivial}, {uninteresting}.
:Internet:: /n./ The mother of all networks. First
incarnated beginning in 1969 as the ARPANET, a U.S. Department of
Defense research testbed. Though it has been widely believed that
the goal was to develop a network architecture for military
command-and-control that could survive disruptions up to and
including nuclear war, this is a myth; in fact, ARPANET was
conceived from the start as a way to get most economical use out of
then-scarce large-computer resources.
As originally imagined, ARPANET's major use would have been to
support what is now called remote login and more sophisticated
forms of distributed computing, but the infant technology of
electronic mail quickly grew to dominate actual usage.
Universities, research labs and defense contractors early
discovered the Internet's potential as a medium of communication
between *humans* and linked up in steadily increasing numbers,
connecting together a quirky mix of academics, techies, hippies, SF
fans, hackers, and anarchists. The roots of this lexicon lie in
those early years.
Over the next quarter-century the Internet evolved in many
ways. The typical machine/OS combination moved from DEC
{PDP-10}s and {PDP-20}s, running {TOPS-10} and
{TOPS-20}, to PDP-11s and VAXes and Suns running {Unix}, and
in the 1990s to Unix on Intel microcomputers. The Internet's
protocols grew more capable, most notably in the move from NCP/IP
to {TCP/IP} in 1982 and the implementation of Domain Name
Service in 1983. With TCP/IP and DNS in place. It was around this
time that people began referring to the collection of
interconnected networks with ARPANET at its core as "the
Internet".
The ARPANET had a fairly strict set of participation guidelines --
connected institutions had to be involved with a DOD-related
research project. By the mid-80s, many of the organizations
clamoring to join didn't fit this profile. In 1986, the National
Science Foundation built NSFnet to open up access to its five
regional supercomputing centers; NSFnet became the backbone of the
Internet, replacing the original ARPANET pipes (which were formally
shut down in 1990). Between 1990 and late 1994 the pieces of
NSFnet were sold to major telecommunications companies until
the Internet backbone had gone completely commercial.
That year, 1994, was also the year the mainstream culture
discovered the Internet. Once again, the {killer app} was not the
anticipated one -- rather, what caught the public imagination was
the hypertext and multimedia features of the World Wide Web. As of
early 1996, the Internet has seen off its only serious challenger
(the OSI protocol stack favored by European telecom monopolies) and
is in the process of absorbing into itself many of of the
proprietary networks built during the second wave of wide-area
networking after 1980. It is now a commonplace even in mainstream
media to predict that a globally-extended Internet will become the
key unifying communications technology of the next century. See
also {network, the} and {Internet address}.
:Internet address:: /n./ 1. [techspeak] An absolute network
address of the form [email protected], where foo is a user name, bar
is a {sitename}, and baz is a `domain' name, possibly
including periods itself. Contrast with {bang path}; see also
{network, the} and {network address}. All Internet machines
and most UUCP sites can now resolve these addresses, thanks to a
large amount of behind-the-scenes magic and {PD} software
written since 1980 or so. See also {bang path}, {domainist}.
2. More loosely, any network address reachable through Internet;
this includes {bang path} addresses and some internal corporate
and government networks.
Reading Internet addresses is something of an art. Here are the
four most important top-level functional Internet domains followed
by a selection of geographical domains:
com
commercial organizations
edu
educational institutions
gov
U.S. government civilian sites
mil
U.S. military sites
Note that most of the sites in the com and edu domains are in
the U.S. or Canada.
us
sites in the U.S. outside the functional domains
su
sites in the ex-Soviet Union (see {kremvax}).
uk
sites in the United Kingdom
Within the us domain, there are subdomains for the fifty
states, each generally with a name identical to the state's postal
abbreviation. Within the uk domain, there is an ac subdomain for
academic sites and a co domain for commercial ones. Other
top-level domains may be divided up in similar ways.
:interrupt: 1. [techspeak] /n./ On a computer, an event that
interrupts normal processing and temporarily diverts
flow-of-control through an "interrupt handler" routine. See also
{trap}. 2. /interj./ A request for attention from a hacker.
Often explicitly spoken. "Interrupt -- have you seen Joe
recently?" See {priority interrupt}. 3. Under MS-DOS, nearly
synonymous with `system call', because the OS and BIOS routines
are both called using the INT instruction (see {{interrupt list,
the}}) and because programmers so often have to bypass the OS
(going
directly to a BIOS interrupt) to get reasonable
performance.
:interrupt list, the:: /n./ [MS-DOS] The list of all known
software interrupt calls (both documented and undocumented) for IBM
PCs and compatibles, maintained and made available for free
redistribution by Ralf Brown <[email protected]>. As of late
1992, it had grown to approximately two megabytes in length.
:interrupts locked out: /adj./ When someone is ignoring you.
In a restaurant, after several fruitless attempts to get the
waitress's attention, a hacker might well observe "She must have
interrupts locked out". The synonym `interrupts disabled' is
also common. Variations abound; "to have one's interrupt mask bit
set" and "interrupts masked out" are also heard. See also
{spl}.
:IRC: /I-R-C/ /n./ [Internet Relay Chat] A worldwide "party
line" network that allows one to converse with others in real
time. IRC is structured as a network of Internet servers, each of
which accepts connections from client programs, one per user. The
IRC community and the {Usenet} and {MUD} communities overlap
to some extent, including both hackers and regular folks who have
discovered the wonders of computer networks. Some Usenet jargon
has been adopted on IRC, as have some conventions such as
{emoticon}s. There is also a vigorous native jargon,
represented in this lexicon by entries marked `[IRC]'. See also
{talk mode}.
:iron: /n./ Hardware, especially older and larger hardware of
{mainframe} class with big metal cabinets housing relatively
low-density electronics (but the term is also used of modern
supercomputers). Often in the phrase {big iron}. Oppose
{silicon}. See also {dinosaur}.
:Iron Age: /n./ In the history of computing, 1961--1971 -- the
formative era of commercial {mainframe} technology, when
ferrite-core {dinosaur}s ruled the earth. The Iron Age began,
ironically enough, with the delivery of the first minicomputer (the
PDP-1) and ended with the introduction of the first commercial
microprocessor (the Intel 4004) in 1971. See also {Stone Age};
compare {elder days}.
:iron box: /n./ [Unix/Internet] A special environment set up to
trap a {cracker} logging in over remote connections long enough
to be traced. May include a modified {shell} restricting the
cracker's movements in unobvious ways, and `bait' files designed
to keep him interested and logged on. See also {back door},
{firewall machine}, {Venus flytrap}, and Clifford Stoll's
account in "{The Cuckoo's Egg}" of how he made and used
one (see the {Bibliography} in Appendix C). Compare {padded
cell}.
:ironmonger: /n./ [IBM] A hardware specialist (derogatory).
Compare {sandbender}, {polygon pusher}.
:ISP: /I-S-P/ Common abbreviation for Internet Service
Provider, a kind of company that barely existed before 1993. ISPs
sell Internet access to the mass market. While the big nationwide
commercial BBSs with Internet access (like America Online,
CompuServe, GEnie, Netcom, etc.) are technically ISPs, the term is
usually reserved for local or regional small providers (often run
by hackers turned entrepreneurs) who resell Internet access cheaply
without themselves being information providers or selling
advertising. Compare {NSP}.
:ITS:: /I-T-S/ /n./ 1. Incompatible Time-sharing System, an
influential though highly idiosyncratic operating system written
for
PDP-6s and PDP-10s at MIT and long used at the MIT AI Lab. Much
AI-hacker jargon derives from ITS folklore, and to have been `an
ITS hacker' qualifies one instantly as an old-timer of the most
venerable sort. ITS pioneered many important innovations,
including transparent file sharing between machines and
terminal-independent I/O. After about 1982, most actual work was
shifted to newer machines, with the remaining ITS boxes run
essentially as a hobby and service to the hacker community. The
shutdown of the lab's last ITS machine in May 1990 marked the end
of an era and sent old-time hackers into mourning nationwide (see
{high moby}). The Royal Institute of Technology in Sweden is
maintaining one `live' ITS site at its computer museum (right
next to the only TOPS-10 system still on the Internet), so ITS is
still alleged to hold the record for OS in longest continuous use
(however, {{WAITS}} is a credible rival for this palm). 2. A
mythical image of operating-system perfection worshiped by a
bizarre, fervent retro-cult of old-time hackers and ex-users (see
{troglodyte}, sense 2). ITS worshipers manage somehow to
continue believing that an OS maintained by assembly-language
hand-hacking that supported only monocase 6-character filenames in
one directory per account remains superior to today's state of
commercial art (their venom against Unix is particularly intense).
See also {holy wars}, {Weenix}.
:IWBNI: // Abbreviation for `It Would Be Nice If'. Compare
{WIBNI}.
:IYFEG: // [Usenet] Abbreviation for `Insert Your Favorite
Ethnic Group'. Used as a meta-name when telling ethnic jokes on
the net to avoid offending anyone. See {JEDR}.
= J = =====
:J. Random: /J rand'm/ /n./ [generalized from {J. Random
Hacker}] Arbitrary; ordinary; any one; any old. `J. Random' is
often prefixed to a noun to make a name out of it. It means
roughly `some particular' or `any specific one'. "Would you
let J. Random Loser marry your daughter?" The most common uses
are `J. Random Hacker', `J. Random Loser', and `J. Random Nerd'
("Should J. Random Loser be allowed to {gun} down other
people?"), but it can be used simply as an elaborate version of
{random} in any sense.
:J. Random Hacker: /J rand'm hak'r/ /n./ [MIT] A mythical
figure like the Unknown Soldier; the archetypal hacker nerd. See
{random}, {Suzie COBOL}. This may originally have been
inspired by `J. Fred Muggs', a show-biz chimpanzee whose name was a
household word back in the early days of {TMRC}, and was
probably influenced by `J. Presper Eckert' (one of the co-inventors
of the electronic computer).
:jack in: /v./ To log on to a machine or connect to a network
or {BBS}, esp. for purposes of entering a {virtual reality}
simulation such as a {MUD} or {IRC} (leaving is "jacking
out"). This term derives from {cyberpunk} SF, in which it was
used for the act of plugging an electrode set into neural sockets
in order to interface the brain directly to a virtual reality. It
is primarily used by MUD and IRC fans and younger hackers on BBS
systems.
:jaggies: /jag'eez/ /n./ The `stairstep' effect observable
when an edge (esp. a linear edge of very shallow or steep slope)
is rendered on a pixel device (as opposed to a vector display).
Comments
Log in to leave a comment.
The Jargon File, Version 4.0.0, 24 Jul 1996Chapter V: Rare: book (9)
0%33 min left in chapter