= H =
=====

   :h:  [from SF fandom] A method of `marking' common words,    i.e.,
calling attention to the fact that they are being used in a
nonstandard, ironic, or humorous way.  Originated in the fannish
catchphrase "Bheer is the One True Ghod!" from decades ago.     H-infix
marking of `Ghod' and other words spread into the 1960s
counterculture via underground comix, and into early hackerdom
either from the counterculture or from SF fandom (the three
overlapped heavily at the time).  More recently, the h infix has
become an expected feature of benchmark names (Dhrystone,
Rhealstone, etc.); this is probably patterning on the original
Whetstone (the name of a laboratory) but influenced by the
fannish/counterculture h infix.

   :ha ha only serious:  [from SF fandom, orig. as mutation of    HHOK,
`Ha Ha Only Kidding'] A phrase (often seen abbreviated as    HHOS) that
aptly captures the flavor of much hacker discourse.     Applied
especially to parodies, absurdities, and ironic jokes that    are both
intended and perceived to contain a possibly disquieting    amount of
truth, or truths that are constructed on in-joke and    self-parody.
This lexicon contains many examples of    ha-ha-only-serious in both
form and content.  Indeed, the entirety    of hacker culture is often
perceived as ha-ha-only-serious by    hackers themselves; to take it
either too lightly or too seriously    marks a person as an outsider, a
{wannabee}, or in {larval    stage}.  For further enlightenment on this
subject, consult any Zen    master.  See also {{hacker humor}}, and {AI
koans}.

   :hack:  [very common] 1. n. Originally, a quick job that    produces
what is needed, but not well.  2. n. An incredibly    good, and perhaps
very time-consuming, piece of work that produces    exactly what is
needed.  3. vt. To bear emotionally or    physically.  "I can't hack
this heat!"  4. vt. To work on    something (typically a program).  In
an immediate sense: "What are    you doing?"  "I'm hacking TECO."  In a
general (time-extended)    sense: "What do you do around here?"  "I
hack TECO."  More    generally, "I hack `foo'" is roughly equivalent to
"`foo' is    my major interest (or project)".  "I hack solid-state
physics."     See {Hacking X for Y}.  5. vt. To pull a prank on.  See
sense 2 and {hacker} (sense 5).  6. vi. To interact with a    computer
in a playful and exploratory rather than goal-directed    way.
"Whatcha up to?"  "Oh, just hacking."  7. n. Short    for {hacker}.  8.
See {nethack}.  9. [MIT] v. To explore    the basements, roof ledges,
and steam tunnels of a large,    institutional building, to the dismay
of Physical Plant workers and    (since this is usually performed at
educational institutions) the    Campus Police.  This activity has been
found to be eerily similar    to playing adventure games such as
Dungeons and Dragons and    {Zork}.  See also {vadding}.

   Constructions on this term abound.  They include `happy hacking'
(a farewell), `how's hacking?' (a friendly greeting among    hackers)
and `hack, hack' (a fairly content-free but friendly    comment, often
used as a temporary farewell).  For more on this    totipotent term see
"{The Meaning of `Hack'}".  See    also {neat hack}, {real hack}.

   :hack attack: n.  [poss. by analogy with `Big Mac Attack'    from
ads for the McDonald's fast-food chain; the variant `big    hack
attack' is reported] Nearly synonymous with {hacking run},    though
the latter more strongly implies an all-nighter.

   :hack mode: n.  1. What one is in when hacking, of course.     2.
More specifically, a Zen-like state of total focus on The    Problem
that may be achieved when one is hacking (this is why every    good
hacker is part mystic).  Ability to enter such concentration    at will
correlates strongly with wizardliness; it is one of the    most
important skills learned during {larval stage}.  Sometimes    amplified
as `deep hack mode'.

   Being yanked out of hack mode (see {priority interrupt}) may be
experienced as a physical shock, and the sensation of being in hack
mode is more than a little habituating.  The intensity of this
experience is probably by itself sufficient explanation for the
existence of hackers, and explains why many resist being promoted
out of positions where they can code.  See also {cyberspace}    (sense
2).

   Some aspects of hacker etiquette will appear quite odd to an
observer unaware of the high value placed on hack mode.  For
example, if someone appears at your door, it is perfectly okay to
hold up a hand (without turning one's eyes away from the screen) to
avoid being interrupted.  One may read, type, and interact with the
computer for quite some time before further acknowledging the
other's presence (of course, he or she is reciprocally free to    leave
without a word).  The understanding is that you might be in    {hack
mode} with a lot of delicate {state} (sense 2) in your    head, and you
dare not {swap} that context out until you have    reached a good point
to pause. See also {juggling eggs}.

   :hack on: vt.  [very common] To {hack}; implies that the    subject
is some pre-existing hunk of code that one is evolving, as    opposed
to something one might {hack up}.

   :hack together: vt.  [common] To throw something together    so it
will work.  Unlike `kluge together' or {cruft together},    this does
not necessarily have negative connotations.

   :hack up: vt.  To {hack}, but generally implies that the    result
is a hack in sense 1 (a quick hack).  Contrast this with    {hack on}.
To `hack up on' implies a {quick-and-dirty}    modification to an
existing system.  Contrast {hacked up};    compare {kluge up}, {monkey
up}, {cruft together}.

   :hack value: n.  Often adduced as the reason or motivation for
expending effort toward a seemingly useless goal, the point being
that the accomplished goal is a hack.  For example, MacLISP had
features for reading and printing Roman numerals, which were
installed purely for hack value.  See {display hack} for one    method
of computing hack value, but this cannot really be    explained, only
experienced.  As Louis Armstrong once said when    asked to explain
jazz: "Man, if you gotta ask you'll never know."     (Feminists please
note Fats Waller's explanation of rhythm: "Lady,    if you got to ask,
you ain't got it.")

   :hacked off: adj.  [analogous to `pissed off'] Said of    system
administrators who have become annoyed, upset, or touchy    owing to
suspicions that their sites have been or are going to be    victimized
by crackers, or used for inappropriate, technically    illegal, or even
overtly criminal activities.  For example, having    unreadable files
in your home directory called `worm',    `lockpick', or `goroot' would
probably be an effective (as well    as impressively obvious and
stupid) way to get your sysadmin hacked    off at you.

   It has been pointed out that there is precedent for this usage in
U.S. Navy slang, in which officers under discipline are sometimes
said to be "in hack" and one may speak of "hacking off the C.O.".

   :hacked up: adj.  Sufficiently patched, kluged, and tweaked    that
the surgical scars are beginning to crowd out normal tissue    (compare
{critical mass}).  Not all programs that are hacked    become `hacked
up'; if modifications are done with some eye to    coherence and
continued maintainability, the software may emerge    better for the
experience.  Contrast {hack up}.

   :hacker: n.  [originally, someone who makes furniture with an
axe] 1. A person who enjoys exploring the details of programmable
systems and how to stretch their capabilities, as opposed to most
users, who prefer to learn only the minimum necessary.  2. One who
programs enthusiastically (even obsessively) or who enjoys
programming rather than just theorizing about programming.  3. A
person capable of appreciating {hack value}.  4. A person who is
good at programming quickly.  5. An expert at a particular program,
or one who frequently does work using it or on it; as in `a Unix
hacker'.  (Definitions 1 through 5 are correlated, and people who
fit them congregate.)  6. An expert or enthusiast of any kind.  One
might be an astronomy hacker, for example.  7. One who enjoys the
intellectual challenge of creatively overcoming or circumventing
limitations.  8. [deprecated] A malicious meddler who tries to
discover sensitive information by poking around.  Hence `password
hacker', `network hacker'.  The correct term for this sense is
{cracker}.

   The term `hacker' also tends to connote membership in the global
community defined by the net (see {the network} and    {Internet
address}).  For discussion of some of the basics of    this culture,
see the    How To Become A Hacker
(http://www.tuxedo.org/~esr/faqs/hacker-howto.html) FAQ. It also
implies that the person described    is seen to subscribe to some
version of the hacker ethic (see    {hacker ethic}).

   It is better to be described as a hacker by others than to describe
 oneself that way.  Hackers consider themselves something of an
elite (a meritocracy based on ability), though one to which new
members are gladly welcome.  There is thus a certain ego
satisfaction to be had in identifying yourself as a hacker (but if
you claim to be one and are not, you'll quickly be labeled    {bogus}).
See also {wannabee}.

   This term seems to have been first adopted as a badge in the 1960s
by the hacker culture surrounding TMRC and the MIT AI Lab.  We have
a report that it was used in a sense close to this entry's by teenage
radio hams and electronics tinkerers in the mid-1950s.

   :hacker ethic: n.  1. The belief that information-sharing    is a
powerful positive good, and that it is an ethical duty of    hackers to
share their expertise by writing open-source and    facilitating access
to information and to computing resources    wherever possible.  2. The
belief that system-cracking for fun and    exploration is ethically OK
as long as the cracker commits no    theft, vandalism, or breach of
confidentiality.

   Both of these normative ethical principles are widely, but by no
means universally, accepted among hackers. Most hackers subscribe    to
the hacker ethic in sense 1, and many act on it by writing and
giving away open-source software.  A few go further and assert that
_all_ information should be free and _any_ proprietary    control of it
is bad; this is the philosophy behind the {GNU}    project.

   Sense 2 is more controversial: some people consider the act of
cracking itself to be unethical, like breaking and entering.  But
the belief that `ethical' cracking excludes destruction at least
moderates the behavior of people who see themselves as `benign'
crackers (see also {samurai}).  On this view, it may be one of    the
highest forms of hackerly courtesy to (a) break into a system,    and
then (b) explain to the sysop, preferably by email from a
{superuser} account, exactly how it was done and how the hole    can be
plugged -- acting as an unpaid (and unsolicited) {tiger    team}.

   The most reliable manifestation of either version of the hacker
ethic is that almost all hackers are actively willing to share
technical tricks, software, and (where possible) computing    resources
with other hackers.  Huge cooperative networks such as    {Usenet},
{FidoNet} and Internet (see {Internet address})    can function without
central control because of this trait; they    both rely on and
reinforce a sense of community that may be    hackerdom's most valuable
intangible asset.

   :hacker humor::  A distinctive style of shared    intellectual 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},    {koan}, {AI koans}.

   See also {filk}, {retrocomputing}, and {A Portrait of J.     Random
Hacker} in Appendix B.  If you have an itchy feeling that    all six 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}}.

   :Hackers (the movie): n.  A notable bomb from 1995.     Should have
been titled "Crackers", because cracking is what    the movie was
about.  It's understandable that they didn't however;    titles
redolent of snack food are probably a tough sell in    Hollywood.

   :hacking run: n.  [analogy with `bombing run' or `speed    run'] A
hack session extended long outside normal working times,    especially
one longer than 12 hours.  May cause you to `change    phase the hard
way' (see {phase}).

   :Hacking X for Y: n.  [ITS] Ritual phrasing of part of the
information which ITS made publicly available about each user.     This
information (the INQUIR record) was a sort of form in which    the user
could fill out various fields.  On display, two of these    fields were
always combined into a project description of the form    "Hacking X
for Y" (e.g., `"Hacking perceptrons for    Minsky"').  This form of
description became traditional and has    since been carried over to
other systems with more general    facilities for self-advertisement
(such as Unix {plan file}s).

   :Hackintosh: n.  1. An Apple Lisa that has been hacked into
emulating a Macintosh (also called a `Mac XL').  2. A Macintosh
assembled from parts theoretically belonging to different models in
the line.

   :hackish: /hak'ish/ adj.  (also {hackishness} n.) 1. Said    of
something that is or involves a hack.  2. Of or pertaining to
hackers or the hacker subculture.  See also {true-hacker}.

   :hackishness: n.  The quality of being or involving a hack.     This
term is considered mildly silly.  Syn. {hackitude}.

   :hackitude: n.  Syn. {hackishness}; this word is considered
sillier.

   :hair: n.  [back-formation from {hairy}] The complications    that
make something hairy.  "Decoding {TECO} commands requires    a certain
amount of hair."  Often seen in the phrase `infinite    hair', which
connotes extreme complexity.  Also in `hairiferous'    (tending to
promote hair growth): "GNUMACS elisp encourages lusers    to write
complex editing modes."  "Yeah, it's pretty hairiferous    all right."
(or just: "Hair squared!")

   :hairball: n.  1. [Fidonet] A large batch of messages that a
store-and-forward network is failing to forward when it should.
Often used in the phrase "Fido coughed up a hairball today",    meaning
that the stuck messages have just come unstuck, producing a    flood of
mail where there had previously been drought.  2. An    unmanageably
huge mass of source code.  "JWZ thought the Mozilla    effort bogged
down because the code was a huge hairball."

   :hairy: adj.  1. Annoyingly complicated.  "{DWIM} is    incredibly
hairy."  2. Incomprehensible.  "{DWIM} is    incredibly hairy."  3. Of
people, high-powered, authoritative,    rare, expert, and/or
incomprehensible.  Hard to explain except in    context: "He knows this
hairy lawyer who says there's nothing to    worry about."  See also
{hirsute}.

   A well-known result in topology called the Brouwer Fixed-Point
Theorem states that any continuous transformation of a 2-sphere into
itself has at least one fixed point.  Mathematically literate
hackers tend to associate the term `hairy' with the informal    version
of this theorem; "You can't comb a hairy ball smooth."

   The adjective `long-haired' is well-attested to have been in
slang use among scientists and engineers during the early 1950s; it
was equivalent to modern `hairy' senses 1 and 2, and was very    likely
ancestral to the hackish use.  In fact the noun    `long-hair' was at
the time used to describe a person satisfying    sense 3.  Both senses
probably passed out of use when long hair    was adopted as a signature
trait by the 1960s counterculture,    leaving hackish `hairy' as a sort
of stunted mutant relic.

   :HAKMEM: /hak'mem/ n.  MIT AI Memo 239 (February 1972).  A
legendary collection of neat mathematical and programming hacks
contributed by many people at MIT and elsewhere.  (The title of the
memo really is "HAKMEM", which is a 6-letterism for `hacks    memo'.)
Some of them are very useful techniques, powerful    theorems, or
interesting unsolved problems, but most fall into the    category of
mathematical and computer trivia.  Here is a sampling    of the entries
(with authors), slightly paraphrased:

   Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less
 than 2^(18).

   Item 46 (Rich Schroeppel): The most _probable_ suit    distribution
in bridge hands is 4-4-3-2, as compared to 4-3-3-3,    which is the
most _evenly_ distributed.  This is because the    world likes to have
unequal numbers: a thermodynamic effect saying    things will not be in
the state of lowest energy, but in the state    of lowest disordered
energy.

   Item 81 (Rich Schroeppel): Count the magic squares of order 5
(that is, all the 5-by-5 arrangements of the numbers from 1 to 25
such that all rows, columns, and diagonals add up to the same
number).  There are about 320 million, not counting those that
differ only by rotation and reflection.

   Item 154 (Bill Gosper): The myth that any given programming
language is machine independent is easily exploded by computing the
sum of powers of 2.  If the result loops with period = 1    with sign
+, you are on a sign-magnitude machine.  If the    result loops with
period = 1 at -1, you are on a    twos-complement machine.  If the
result loops with period greater    than 1, including the beginning,
you are on a ones-complement    machine.  If the result loops with
period greater than 1, not    including the beginning, your machine
isn't binary -- the pattern    should tell you the base.  If you run
out of memory, you are on a    string or bignum system.  If arithmetic
overflow is a fatal error,    some fascist pig with a read-only mind is
trying to enforce machine    independence.  But the very ability to
trap overflow is machine    dependent.  By this strategy, consider the
universe, or, more    precisely, algebra: Let X = the sum of many
powers of 2 =    ...111111 (base 2).  Now add X to itself:    X + X =
...111110.  Thus, 2X = X - 1, so    X = -1.  Therefore algebra is run
on a machine (the    universe) that is two's-complement.

   Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only
number such that if you represent it on the {PDP-10} as both an
integer and a floating-point number, the bit patterns of the two
representations are identical.

   Item 176 (Gosper): The "banana phenomenon" was encountered when
processing a character string by taking the last 3 letters typed
out, searching for a random occurrence of that sequence in the    text,
taking the letter following that occurrence, typing it out,    and
iterating.  This ensures that every 4-letter string output    occurs in
the original.  The program typed BANANANANANANANA....  We    note an
ambiguity in the phrase, "the Nth occurrence of."  In one    sense,
there are five 00's in 0000000000; in another, there are    nine.  The
editing program TECO finds five.  Thus it finds only the    first ANA
in BANANA, and is thus obligated to type N next.  By    Murphy's Law,
there is but one NAN, thus forcing A, and thus a    loop.  An option to
find overlapped instances would be useful,    although it would require
backing up N - 1 characters before    seeking the next N-character
string.

   Note: This last item refers to a {Dissociated Press}
implementation.  See also {banana problem}.

HAKMEM also contains some rather more complicated mathematical and
technical items, but these examples show some of its fun    flavor.

   An HTML transcription of the document is available at
`ftp://ftp.netcom.com/pub/hb/hbaker/hakmem/hakmem.html'.

   :hakspek: /hak'speek/ n.  A shorthand method of spelling    found on
many British academic bulletin boards and {talker    system}s.
Syllables and whole words in a sentence are replaced by    single ASCII
characters the names of which are phonetically similar    or
equivalent, while multiple letters are usually dropped.  Hence,
`for' becomes `4'; `two', `too', and `to' become `2';    `ck' becomes
`k'.  "Before I see you tomorrow" becomes "b4 i    c u 2moro".  First
appeared in London about 1986, and was probably    caused by the
slowness of available talker systems, which operated    on archaic
machines with outdated operating systems and no standard    methods of
communication.  Has become rarer since.  See also    {talk mode}.

   :Halloween Documents: n.  A pair of Microsoft internal    strategy
memoranda leaked to ESR in late 1998 that confirmed    everybody's
paranoia about the current {Evil Empire}.     These documents
(http://www.opensource.org/halloween.html)    praised the technical
excellence of {Linux} and outlined a    counterstrategy of attempting
to lock in customers by    "de-commoditizing" Internet protocols and
services.  They were    extensively cited on the Internet and in the
press and proved so    embarrassing that Microsoft PR barely said a
word in public for    six months afterwards.

   :hammer: vt.  Commonwealth hackish syn. for {bang on}.

   :hamster: n.  1. [Fairchild] A particularly slick little piece    of
code that does one thing well; a small, self-contained hack.     The
image is of a hamster {happily} spinning its exercise wheel.     2. A
tailless mouse; that is, one with an infrared link to a    receiver on
the machine, as opposed to the conventional cable.     3. [UK] Any item
of hardware made by Amstrad, a company famous for    its cheap plastic
PC-almost-compatibles.

   :hand cruft: vt.  [pun on `hand craft'] See {cruft}, sense    3.

   :hand-hacking: n.  1. [rare] The practice of translating    {hot
spot}s from an {HLL} into hand-tuned assembler, as    opposed to trying
to coerce the compiler into generating better    code.  Both the term
and the practice are becoming uncommon.  See    {tune}, {bum}, {by
hand}; syn. with v. {cruft}.     2. [common] More generally, manual
construction or patching of data    sets that would normally be
generated by a translation utility and    interpreted by another
program, and aren't really designed to be    read or modified by
humans.

   :hand-roll: v.  [from obs. mainstream slang `hand-rolled' in
opposition to `ready-made', referring to cigarettes] To    perform a
normally automated software installation or configuration    process
{by hand}; implies that the normal process failed due to    bugs in the
configurator or was defeated by something exceptional    in the local
environment.  "The worst thing about being a gateway    between four
different nets is having to hand-roll a new sendmail    configuration
every time any of them upgrades."

   :handle: n.  1. [from CB slang] An electronic pseudonym; a    `nom
de guerre' intended to conceal the user's true identity.     Network
and BBS handles function as the same sort of simultaneous
concealment and display one finds on Citizen's Band radio, from
which the term was adopted.  Use of grandiose handles is
characteristic of {warez d00dz}, {cracker}s, {weenie}s,    {spod}s, and
other lower forms of network life; true hackers    travel on their own
reputations rather than invented legendry.     Compare {nick}, {screen
name}. 2. A {magic cookie}, often    in the form of a numeric index
into some array somewhere, through    which you can manipulate an
object like a file or window.  The form    `file handle' is especially
common. 3. [Mac] A pointer to a    pointer to dynamically-allocated
memory; the extra level of    indirection allows on-the-fly memory
compaction (to cut down on    fragmentation) or aging out of unused
resources, with minimal    impact on the (possibly multiple) parts of
the larger program    containing references to the allocated memory.
Compare {snap}    (to snap a handle would defeat its purpose); see also
{aliasing    bug}, {dangling pointer}.

   :handshaking: n.  [very common] Hardware or software    activity
designed to start or keep two machines or programs in
synchronization as they {do protocol}.  Often applied to human
activity; thus, a hacker might watch two people in conversation
nodding their heads to indicate that they have heard each others'
points and say "Oh, they're handshaking!".  See also    {protocol}.

   :handwave:  [poss. from gestures characteristic of stage
magicians] 1. v. To gloss over a complex point; to distract a
listener; to support a (possibly actually valid) point with
blatantly faulty logic.  2. n. The act of handwaving.  "Boy, what    a
handwave!"

   If someone starts a sentence with "Clearly..." or    "Obviously..."
or "It is self-evident that...", it is    a good bet he is about to
handwave (alternatively, use of these    constructions in a sarcastic
tone before a paraphrase of someone    else's argument suggests that it
is a handwave).  The theory behind    this term is that if you wave
your hands at the right moment, the    listener may be sufficiently
distracted to not notice that what you    have said is {bogus}.
Failing that, if a listener does object,    you might try to dismiss
the objection with a wave of your hand.

   The use of this word is often accompanied by gestures: both hands
up, palms forward, swinging the hands in a vertical plane pivoting
at the elbows and/or shoulders (depending on the magnitude of the
handwave); alternatively, holding the forearms in one position    while
rotating the hands at the wrist to make them flutter.  In    context,
the gestures alone can suffice as a remark; if a speaker    makes an
outrageously unsupported assumption, you might simply wave    your
hands in this way, as an accusation, far more eloquent than    words
could express, that his logic is faulty.

   :hang: v.  1. [very common] To wait for an event that will    never
occur.  "The system is hanging because it can't read from    the
crashed drive".  See {wedged}, {hung}.  2. To wait for    some event to
occur; to hang around until something happens.  "The    program
displays a menu and then hangs until you type a    character."  Compare
{block}.  3. To attach a peripheral    device, esp. in the construction
`hang off': "We're going to    hang another tape drive off the file
server."  Implies a device    attached with cables, rather than
something that is strictly inside    the machine's chassis.

   :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 classic 1941 SF 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},
  {Ninety-Ninety Rule}.

   :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. [common] 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}. See also {mu}.

   :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. Compare
{killer poke}.

   :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 was someone who, owning a 286 PC and    Windows 3.0, went
out and bought 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    some of 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.  [common] 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 LAN 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. [common] 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. [rare] The High Order BIT of a byte; same    as the
{meta bit} or {high bit}.  2. The non-ITS name of    <vad@ai.mit.edu>
(*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.     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;    common] 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.4    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. [common] 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. [rare] To log in to
a remote machine,    esp. via rlogin or telnet. "I'll hop over to
foovax to FTP that."

   :hose:  1. vt. [common] 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},
{ScumOS},    {sun-stools}, {Slowlaris}.

   :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'; common] 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.  It is also
distinguished from the similar but    more drastic state {wedged} -
hung software can be woken up    with easy things like interrupt keys,
but wedged will need a kill    -9 or even reboot.

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

