:glassfet: /glas'fet/ [by analogy with MOSFET, the acronym for

`Metal-Oxide-Semiconductor Field-Effect Transistor'] n. Syn.

{firebottle}, a humorous way to refer to a vacuum tube.

:glitch: /glich/ [from German `glitschen' to slip, via Yiddish

`glitshen', to slide or skid] 1. n. A sudden interruption in

electric service, sanity, continuity, or program function.

Sometimes recoverable. An interruption in electric service is

specifically called a `power glitch' (also {power hit}). This

is of grave concern because it usually crashes all the computers.

In jargon, though, a hacker who got to the middle of a sentence and

then forgot how he or she intended to complete it might say,

"Sorry, I just glitched". 2. vi. To commit a glitch. See

{gritch}. 3. vt. [Stanford] To scroll a display screen, esp.

several lines at a time. {{WAITS}} terminals used to do this in

order to avoid continuous scrolling, which is distracting to the

eye. 4. obs. Same as {magic cookie}, sense 2.

All these uses of `glitch' derive from the specific technical

meaning the term has in the electronic hardware world, where it is

now techspeak. A glitch can occur when the inputs of a circuit

change, and the outputs change to some {random} value for some

very brief time before they settle down to the correct value. If

another circuit inspects the output at just the wrong time, reading

the random value, the results can be very wrong and very hard to

debug (a glitch is one of many causes of electronic {heisenbug}s).

:glob: /glob/, *not* /glohb/ [UNIX] vt.,n. To expand

special characters in a wildcarded name, or the act of so doing

(the action is also called `globbing'). The UNIX conventions for

filename wildcarding have become sufficiently pervasive that many

hackers use some of them in written English, especially in email or

news on technical topics. Those commonly encountered include the

following:

*

wildcard for any string (see also {UN*X})

?

wildcard for any character (generally read this way only at

the beginning or in the middle of a word)

[]

delimits a wildcard matching any of the enclosed characters

{}

alternation of comma-separated alternatives; thus,

`foo{baz,qux}' would be read as `foobaz' or `fooqux'

Some examples: "He said his name was [KC]arl" (expresses

ambiguity). "I don't read talk.politics.*" (any of the

talk.politics subgroups on {USENET}). Other examples are given

under the entry for {X}. Compare {regexp}.

Historical note: The jargon usage derives from `glob', the

name of a subprogram that expanded wildcards in archaic pre-Bourne

versions of the UNIX shell.

:glork: /glork/ 1. interj. Term of mild surprise, usually tinged with

outrage, as when one attempts to save the results of 2 hours of

editing and finds that the system has just crashed. 2. Used as a

name for just about anything. See {foo}. 3. vt. Similar to

{glitch}, but usually used reflexively. "My program just glorked

itself." See also {glark}.

:glue: n. Generic term for any interface logic or protocol that

connects two component blocks. For example, {Blue

Glue} is IBM's SNA protocol, and hardware designers call anything

used to connect large VLSI's or circuit blocks `glue logic'.

:gnarly: /nar'lee/ adj. Both {obscure} and {hairy} in the

sense of complex. "{Yow!} --- the tuned assembler

implementation of BitBlt is really gnarly!" From a similar but

less specific usage in surfer slang.

:GNU: /gnoo/, *not* /noo/ 1. [acronym: `GNU's Not UNIX!',

see {{recursive acronym}}] A UNIX-workalike development effort of

the Free Software Foundation headed by Richard Stallman

<rms@gnu.ai.mit.edu>. GNU EMACS and the GNU C compiler, two tools

designed for this project, have become very popular in hackerdom

and elsewhere. The GNU project was designed partly to proselytize

for RMS's position that information is community property and all

software source should be shared. One of its slogans is "Help

stamp out software hoarding!" Though this remains controversial

(because it implicitly denies any right of designers to own,

assign, and sell the results of their labors), many hackers who

disagree with RMS have nevertheless cooperated to produce large

amounts of high-quality software for free redistribution under the

Free Software Foundation's imprimatur. See {EMACS},

{copyleft}, {General Public Virus}. 2. Noted UNIX hacker

John Gilmore <gnu@toad.com>, founder of USENET's anarchic alt.*

hierarchy.

:GNUMACS: /gnoo'maks/ [contraction of `GNU EMACS'] Often-heard

abbreviated name for the {GNU} project's flagship tool, {EMACS}.

Used esp. in contrast with {GOSMACS}.

:go flatline: [from cyberpunk SF, refers to flattening of EEG

traces upon brain-death] vi., also adjectival `flatlined'. 1. To

{die}, terminate, or fail, esp. irreversibly. In hacker

parlance, this is used of machines only, human death being

considered somewhat too serious a matter to employ jargon-jokes

about. 2. To go completely quiescent; said of machines undergoing

controlled shutdown. "You can suffer file damage if you shut down

UNIX but power off before the system has gone flatline." 3. Of a

video tube, to fail by losing vertical scan, so all one sees is a

bright horizontal line bisecting the screen.

:go root: [UNIX] vi. To temporarily enter {root mode} in order

to perform a privileged operation. This use is deprecated in

Australia, where v. `root' refers to animal sex.

:go-faster stripes: [UK] Syn. {chrome}.

:gobble: vt. To consume or to obtain. The phrase `gobble up' tends to

imply `consume', while `gobble down' tends to imply `obtain'.

"The output spy gobbles characters out of a {tty} output buffer."

"I guess I'll gobble down a copy of the documentation tomorrow."

See also {snarf}.

:Godzillagram: /god-zil'*-gram/ n. [from Japan's national hero]

1. A network packet that in theory is a broadcast to every machine

in the universe. The typical case of this is an IP datagram whose

destination IP address is [255.255.255.255]. Fortunately, few

gateways are foolish enough to attempt to implement this! 2. A

network packet of maximum size. An IP Godzillagram has

65,536 octets.

:golden: adj. [prob. from folklore's `golden egg'] When used to

describe a magnetic medium (e.g., `golden disk', `golden tape'),

describes one containing a tested, up-to-spec, ready-to-ship

software version. Compare {platinum-iridium}.

:golf-ball printer: n. The IBM 2741, a slow but letter-quality

printing device and terminal based on the IBM Selectric typewriter.

The `golf ball' was a round object bearing reversed embossed

images of 88 different characters arranged on four meridians of

latitude; one could change the font by swapping in a different golf

ball. This was the technology that enabled APL to use a

non-EBCDIC, non-ASCII, and in fact completely non-standard

character set. This put it 10 years ahead of its time --- where it

stayed, firmly rooted, for the next 20, until character displays

gave way to programmable bit-mapped devices with the flexibility to

support other character sets.

:gonk: /gonk/ vt.,n. 1. To prevaricate or to embellish the truth

beyond any reasonable recognition. It is alleged that in German

the term is (mythically) `gonken'; in Spanish the verb becomes

`gonkar'. "You're gonking me. That story you just told me is a

bunch of gonk." In German, for example, "Du gonkst mir" (You're

pulling my leg). See also {gonkulator}. 2. [British] To grab some

sleep at an odd time; compare {gronk out}.

:gonkulator: /gon'kyoo-lay-tr/ [from the old "Hogan's Heroes" TV

series] n. A pretentious piece of equipment that actually serves no

useful purpose. Usually used to describe one's least favorite

piece of computer hardware. See {gonk}.

:gonzo: /gon'zoh/ [from Hunter S. Thompson] adj. Overwhelming;

outrageous; over the top; very large, esp. used of collections of

source code, source files, or individual functions. Has some of

the connotations of {moby} and {hairy}, but without the

implication of obscurity or complexity.

:Good Thing: n.,adj. Often capitalized; always pronounced as if

capitalized. 1. Self-evidently wonderful to anyone in a position

to notice: "The Trailblazer's 19.2Kbaud PEP mode with on-the-fly

Lempel-Ziv compression is a Good Thing for sites relaying

netnews." 2. Something that can't possibly have any ill

side-effects and may save considerable grief later: "Removing the

self-modifying code from that shared library would be a Good

Thing." 3. When said of software tools or libraries, as in "YACC

is a Good Thing", specifically connotes that the thing has

drastically reduced a programmer's work load. Oppose {Bad

Thing}.

:gorilla arm: n. The side-effect that destroyed touch-screens as a

mainstream input technology despite a promising start in the early

1980s. It seems the designers of all those {spiffy} touch-menu

systems failed to notice that humans aren't designed to hold their

arms in front of their faces making small motions. After more than

a very few selections, the arm begins to feel sore, cramped, and

oversized; hence `gorilla arm'. This is now considered a classic

cautionary tale to human-factors designers; "Remember the gorilla

arm!" is shorthand for "How is this going to fly in *real*

use?".

:gorp: /gorp/ [CMU: perhaps from the canonical hiker's food, Good

Old Raisins and Peanuts] Another {metasyntactic variable}, like

{foo} and {bar}.

:GOSMACS: /goz'maks/ [contraction of `Gosling EMACS'] n. The first

{EMACS}-in-C implementation, predating but now largely eclipsed by

{GNUMACS}. Originally freeware; a commercial version is now

modestly popular as `UniPress EMACS'. The author (James Gosling)

went on to invent {NeWS}.

:Gosperism: /gos'p*r-izm/ A hack, invention, or saying by

arch-hacker R. William (Bill) Gosper. This notion merits its own

term because there are so many of them. Many of the entries in

{HAKMEM} are Gosperisms; see also {life}.

:gotcha: n. A {misfeature} of a system, especially a programming

language or environment, that tends to breed bugs or mistakes

because it behaves in an unexpected way. For example, a classic

gotcha in {C} is the fact that `if (a=b) {code;}' is

syntactically valid and sometimes even correct. It puts the value

of `b' into `a' and then executes `code' if

`a' is non-zero. What the programmer probably meant was

`if (a==b) {code;}', which executes `code' if

`a' and `b' are equal.

:GPL: /G-P-L/ n. Abbrev. for `General Public License' in

widespread use; see {copyleft}.

:GPV: /G-P-V/ n. Abbrev. for {General Public Virus} in

widespread use.

:grault: /grawlt/ n. Yet another {metasyntactic variable}, invented by

Mike Gallaher and propagated by the {GOSMACS} documentation. See

{corge}.

:gray goo: n. A hypothetical substance composed of {sagan}s of

sub-micron-sized self-replicating robots programmed to make copies

of themselves out of whatever is available. The image that goes

with the term is one of the entire biosphere of Earth being

eventually converted to robot goo. This is the simplest of the

{{nanotechnology}} disaster scenarios, easily refuted by arguments

from energy requirements and elemental abundances. Compare {blue

goo}.

:Great Renaming: n. The {flag day} on which all of the non-local

groups on the {USENET} had their names changed from the net.-

format to the current multiple-hierarchies scheme.

:Great Runes: n. Uppercase-only text or display messages. Some

archaic operating systems still emit these. See also {runes},

{smash case}, {fold case}.

Decades ago, back in the days when it was the sole supplier of

long-distance hardcopy transmittal devices, the Teletype

Corporation was faced with a major design choice. To shorten code

lengths and cut complexity in the printing mechanism, it had been

decided that teletypes would use a monocase font, either ALL UPPER

or all lower. The question was, which one to choose. A study was

conducted on readability under various conditions of bad ribbon,

worn print hammers, etc. Lowercase won; it is less dense and has

more distinctive letterforms, and is thus much easier to read both

under ideal conditions and when the letters are mangled or partly

obscured. The results were filtered up through {management}.

The chairman of Teletype killed the proposal because it failed one

incredibly important criterion:

"It would be impossible to spell the name of the Deity

correctly."

In this way (or so, at least, hacker folklore has it) superstition

triumphed over utility. Teletypes were the major input devices on

most early computers, and terminal manufacturers looking for

corners to cut naturally followed suit until well into the 1970s.

Thus, that one bad call stuck us with Great Runes for thirty years.

:Great Worm, the: n. The 1988 Internet {worm} perpetrated by

{RTM}. This is a play on Tolkien (compare {elvish},

{Elder Days}). In the fantasy history of his Middle Earth

books, there were dragons powerful enough to lay waste to entire

regions; two of these (Scatha and Glaurung) were known as "the

Great Worms". This usage expresses the connotation that the RTM

hack was a sort of devastating watershed event in hackish history;

certainly it did more to make non-hackers nervous about the

Internet than anything before or since.

:great-wall: [from SF fandom] vi.,n. A mass expedition to an

oriental restaurant, esp. one where food is served family-style

and shared. There is a common heuristic about the amount of food

to order, expressed as "Get N - 1 entrees"; the value of N,

which is the number of people in the group, can be inferred from

context (see {N}). See {{oriental food}}, {ravs},

{stir-fried random}.

:Green Book: n. 1. One of the three standard {PostScript}

references: `PostScript Language Program Design', bylined

`Adobe Systems' (Addison-Wesley, 1988; QA76.73.P67P66 ISBN;

0-201-14396-8); see also {Red Book}, {Blue Book}, and the

{White Book} (sense 2)). 2. Informal name for one of the three

standard references on SmallTalk: `Smalltalk-80: Bits of

History, Words of Advice', by Glenn Krasner (Addison-Wesley, 1983;

QA76.8.S635S58; ISBN 0-201-11669-3) (this, too, is associated with

blue and red books). 3. The `X/Open Compatibility Guide'.

Defines an international standard {{UNIX}} environment that is a

proper superset of POSIX/SVID; also includes descriptions of a

standard utility toolkit, systems administrations features, and the

like. This grimoire is taken with particular seriousness in

Europe. See {Purple Book}. 4. The IEEE 1003.1 POSIX Operating

Systems Interface standard has been dubbed "The Ugly Green Book".

5. Any of the 1992 standards which will be issued by the CCITT's

tenth plenary assembly. Until now, these have changed color each

review cycle (1984 was {Red Book}, 1988 {Blue Book});

however, it is rumored that this convention is going to be dropped

before 1992. These include, among other things, the X.400 email

standard and the Group 1 through 4 fax standards. See also

{{book titles}}.

:green bytes: n. (also `green words') 1. Meta-information

embedded in a file, such as the length of the file or its name; as

opposed to keeping such information in a separate description file

or record. The term comes from an IBM user's group meeting

(ca. 1962) at which these two approaches were being debated and the

diagram of the file on the blackboard had the `green bytes' drawn

in green. 2. By extension, the non-data bits in any

self-describing format. "A GIF file contains, among other things,

green bytes describing the packing method for the image." Compare

{out-of-band}, {zigamorph}, {fence} (sense 1).

:green card: n. [after the `IBM System/360 Reference Data'

card] This is used for any summary of an assembly language, even if

the color is not green. Less frequently used now because of the

decrease in the use of assembly language. "I'll go get my green

card so I can check the addressing mode for that instruction."

Some green cards are actually booklets.

The original green card became a yellow card when the System/370

was introduced, and later a yellow booklet. An anecdote from IBM

refers to a scene that took place in a programmers' terminal room

at Yorktown in 1978. A luser overheard one of the programmers ask

another "Do you have a green card?" The other grunted and

passed the first a thick yellow booklet. At this point the luser

turned a delicate shade of olive and rapidly left the room, never

to return. See also {card}.

:green lightning: [IBM] n. 1. Apparently random flashing streaks on

the face of 3278-9 terminals while a new symbol set is being

downloaded. This hardware bug was left deliberately unfixed, as

some genius within IBM suggested it would let the user know that

`something is happening'. That, it certainly does. Later

microprocessor-driven IBM color graphics displays were actually

*programmed* to produce green lightning! 2. [proposed] Any

bug perverted into an alleged feature by adroit rationalization or

marketing. "Motorola calls the CISC cruft in the 88000

architecture `compatibility logic', but I call it green

lightning". See also {feature}.

:green machine: n. A computer or peripheral device that has been

designed and built to military specifications for field equipment

(that is, to withstand mechanical shock, extremes of temperature

and humidity, and so forth). Comes from the olive-drab `uniform'

paint used for military equipment.

:Green's Theorem: [TMRC] prov. For any story, in any group of people

there will be at least one person who has not heard the story.

[The name of this theorem is a play on a fundamental theorem in

calculus. --- ESR]

:grep: /grep/ [from the qed/ed editor idiom g/re/p , where

re stands for a regular expression, to Globally search for the

Regular Expression and Print the lines containing matches to it,

via {{UNIX}} `grep(1)'] vt. To rapidly scan a file or set of

files looking for a particular string or pattern (when browsing

through a large set of files, one may speak of `grepping

around'). By extension, to look for something by pattern. "Grep

the bulletin board for the system backup schedule, would you?"

See also {vgrep}.

:grind: vt. 1. [MIT and Berkeley] To format code, especially LISP

code, by indenting lines so that it looks pretty. This usage was

associated with the MacLISP community and is now rare;

{prettyprint} was and is the generic term for such

operations. 2. [UNIX] To generate the formatted version of a

document from the nroff, troff, TeX, or Scribe source. The BSD

program `vgrind(1)' grinds code for printing on a Versatec

bitmapped printer. 3. To run seemingly interminably, esp. (but

not necessarily) if performing some tedious and inherently useless

task. Similar to {crunch} or {grovel}. Grinding has a

connotation of using a lot of CPU time, but it is possible to grind

a disk, network, etc. See also {hog}. 4. To make the whole

system slow. "Troff really grinds a PDP-11." 5. `grind grind'

excl. Roughly, "Isn't the machine slow today!"

:grind crank: n. A mythical accessory to a terminal. A crank on the

side of a monitor, which when operated makes a zizzing noise and

causes the computer to run faster. Usually one does not refer to a

grind crank out loud, but merely makes the appropriate gesture and

noise. See {grind} and {wugga wugga}.

Historical note: At least one real machine actually had a grind

crank --- the R1, a research machine built toward the end of the

days of the great vacuum tube computers, in 1959. R1 (also known

as `The Rice Institute Computer' (TRIC) and later as `The Rice

University Computer' (TRUC)) had a single-step/free-run switch for

use when debugging programs. Since single-stepping through a large

program was rather tedious, there was also a crank with a cam and

gear arrangement that repeatedly pushed the single-step button.

This allowed one to `crank' through a lot of code, then slow

down to single-step for a bit when you got near the code of

interest, poke at some registers using the console typewriter, and

then keep on cranking.

:gripenet: [IBM] n. A wry (and thoroughly unoffical) name for IBM's

internal VNET system, deriving from its common use by IBMers to

voice pointed criticism of IBM management that would be taboo in

more formal channels.

:gritch: /grich/ 1. n. A complaint (often caused by a {glitch}).

2. vi. To complain. Often verb-doubled: "Gritch gritch". 3. A

synonym for {glitch} (as verb or noun).

:grok: /grok/, var. /grohk/ [from the novel `Stranger in

a Strange Land', by Robert A. Heinlein, where it is a Martian word

meaning literally `to drink' and metaphorically `to be one

with'] vt. 1. To understand, usually in a global sense. Connotes

intimate and exhaustive knowledge. Contrast {zen}, similar

supernal understanding as a single brief flash. See also

{glark}. 2. Used of programs, may connote merely sufficient

understanding. "Almost all C compilers grok the `void' type

these days."

:gronk: /gronk/ [popularized by Johnny Hart's comic strip

"B.C." but the word apparently predates that] vt. 1. To

clear the state of a wedged device and restart it. More severe

than `to {frob}'. 2. [TMRC] To cut, sever, smash, or

similarly disable. 3. The sound made by many 3.5-inch diskette

drives. In particular, the microfloppies on a Commodore Amiga go

"grink, gronk".

:gronk out: vi. To cease functioning. Of people, to go home and go

to sleep. "I guess I'll gronk out now; see you all tomorrow."

:gronked: adj. 1. Broken. "The teletype scanner was gronked, so

we took the system down." 2. Of people, the condition of feeling

very tired or (less commonly) sick. "I've been chasing that bug

for 17 hours now and I am thoroughly gronked!" Compare

{broken}, which means about the same as {gronk} used of

hardware, but connotes depression or mental/emotional problems in

people.

:grovel: vi. 1. To work interminably and without apparent progress.

Often used transitively with `over' or `through'. "The file

scavenger has been groveling through the file directories for 10

minutes now." Compare {grind} and {crunch}. Emphatic form:

`grovel obscenely'. 2. To examine minutely or in complete detail.

"The compiler grovels over the entire source program before

beginning to translate it." "I grovelled through all the

documentation, but I still couldn't find the command I wanted."

:grunge: /gruhnj/ n. 1. That which is grungy, or that which makes

it so. 2. [Cambridge] Code which is inaccessible due to changes in

other parts of the program. The preferred term in North America is

{dead code}.

:gubbish: /guhb'*sh/ [a portmanteau of `garbage' and `rubbish'?]

n. Garbage; crap; nonsense. "What is all this gubbish?" The

opposite portmanteau `rubbage' is also reported.

:guiltware: /gilt'weir/ n. 1. A piece of {freeware} decorated

with a message telling one how long and hard the author worked on

it and intimating that one is a no-good freeloader if one does not

immediately send the poor suffering martyr gobs of money.

2. {Shareware} that works.

:gumby: /guhm'bee/ [from a class of Monty Python characters,

poss. with some influence from the 1960s claymation character] n.

An act of minor but conspicuous stupidity, often in `gumby

maneuver' or `pull a gumby'.

:gun: [ITS: from the `:GUN' command] vt. To forcibly

terminate a program or job (computer, not career). "Some idiot

left a background process running soaking up half the cycles, so I

gunned it." Compare {can}.

:gunch: /guhnch/ [TMRC] vt. To push, prod, or poke at a device

that has almost produced the desired result. Implies a threat to

{mung}.

:gurfle: /ger'fl/ interj. An expression of shocked disbelief. "He

said we have to recode this thing in FORTRAN by next week.

Gurfle!" Compare {weeble}.

:guru: n. [UNIX] An expert. Implies not only {wizard} skill but

also a history of being a knowledge resource for others. Less

often, used (with a qualifier) for other experts on other systems,

as in `VMS guru'. See {source of all good bits}.

:guru meditation: n. Amiga equivalent of `panic' in UNIX

(sometimes just called a `guru' or `guru event'). When the

system crashes, a cryptic message "GURU MEDITATION

#XXXXXXXX.YYYYYYYY" appears, indicating what the problem was. An

Amiga guru can figure things out from the numbers. Generally a

{guru} event must be followed by a {Vulcan nerve pinch}.

This term is (no surprise) an in-joke from the earliest days of the

Amiga. There used to be a device called a `Joyboard' which was

basically a plastic board built onto on a joystick-like device; it

was sold with a skiing game cartridge for the Atari game machine.

It is said that whenever the prototype OS crashed, the system

programmer responsible would calm down by concentrating on a

solution while sitting cross-legged on a Joyboard trying to keep

the board in balance. This position resembled that of a

meditating guru. Sadly, the joke was removed in AmigaOS 2.04.

:gweep: /gweep/ [WPI] 1. v. To {hack}, usually at night. At

WPI, from 1977 onwards, this often indicated that the speaker could

be found at the College Computing Center punching cards or crashing

the {PDP-10} or, later, the DEC-20; the term has survived the

demise of those technologies, however, and is still live in late

1991. "I'm going to go gweep for a while. See you in the

morning" "I gweep from 8pm till 3am during the week." 2. n. One

who habitually gweeps in sense 1; a {hacker}. "He's a

hard-core gweep, mumbles code in his sleep."

= H =

=====

:h: [from SF fandom] infix. 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 prob. 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

{{Humor, Hacker}}, and {AI koans}.

:hack: 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." 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: [poss. by analogy with `Big Mac Attack' from ads

for the McDonald's fast-food chain; the variant `big hack attack'

is reported] n. 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 it

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 hackish 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. 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. 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. As a great artist once said of jazz: "If you hafta ask,

you ain't never goin' to find out."

:hack-and-slay: v. (also `hack-and-slash') 1. To play a {MUD}

or go mudding, especially with the intention of {berserking} for

pleasure. 2. To undertake an all-night programming/hacking

session, interspersed with stints of mudding as a change of pace.

This term arose on the British academic network amongst students

who worked nights and logged onto Essex University's MUDs during

public-access hours (2 A.M. to 7 A.M.). Usually more

mudding than work was done in these sessions.

:hacked off: [analogous to `pissed off'] adj. 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.

: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: [originally, someone who makes furniture with an axe] n.

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'. See {cracker}.

The term `hacker' also tends to connote membership in the global

community defined by the net (see {network, the} and

{Internet address}). It also implies that the person described

is seen to subscribe to some version of the hacker ethic (see

{hacker ethic, the}.

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

:hacker ethic, the: 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 free software 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 free 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 this principle at least moderates the behavior of people who

see themselves as `benign' crackers (see also {samurai}). On

this view, it is 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.

:hacking run: [analogy with `bombing run' or `speed run'] n. 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: [ITS] n. The information ITS made publicly

available about each user (the INQUIR record) was a sort of form in

which the user could fill out fields. On display, two of these

fields were 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: [back-formation from {hairy}] n. 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!")

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

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

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

: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-hacking: n. 1. 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. 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.

:handle: [from CB slang] n. 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

{cracker}s, {weenie}s, {spod}s, and other lower forms of

network life; true hackers travel on their own reputations rather

than invented legendry.

:hand-roll: [from obs. mainstream slang `hand-rolled' in

opposition to `ready-made', referring to cigarettes] v. 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."

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

common title Hanlon's Razor is unknown; a similar epigram has been

attributed to William James. Quoted here because it seems to be a

particular favorite of hackers, often showing up in {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.

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

:haque: /hak/ [USENET] n. Variant spelling of {hack}, used

only for the noun form and connoting an {elegant} hack.

: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 into which more than one

thing accessed by the same key or short code might be dropped.

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 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' may be confused with each other.

"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: [from the technical usage] n. (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 it is not 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: [IBM] n. A customer who can be relied upon to always

buy the latest version of an existing product (not quite the same

as a member the {lunatic fringe}). A 1992 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: [Cambridge] n. 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

comments similar to "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 man'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/ [from Heisenberg's Uncertainty

Principle in quantum physics] n. A bug that disappears or alters

its behavior when one attempts to probe or isolate it. Antonym of

{Bohr bug}; see also {mandelbug}, {schroedinbug}. In C,

nine out of ten heisenbugs result from either {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 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

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: [scientific computation] n. 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. Liberal use of hidden flags can make a

program very hard to debug and understand.

:high bit: [from `high-order bit'] n. 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: [scientific computation] adv. 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: // [IRC] n. Fortuitous typo for `hint', now in wide

intentional use among players of {initgame}. Compare

{newsfroup}, {filk}.

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

:hobbit: n. 1. 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 (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.

:holy wars: [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. {LISP}, etc., ad nauseam. The

characteristic that distinguishes holy wars from normal

technical disputes is that in a holy wars 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!"

: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: 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}), the important

inter-machine metric is the number of hops in the shortest path

between them, rather than their geographical separation. See

{bang path}.

: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. 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 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 clicks, which trigger

some action. Hypertext help screens are an example, in which a hot

spot exists in the vicinity of any word for which additional

material is available. 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).

:house wizard: [prob. from ad-agency lingo, `house freak'] n. 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 eatures 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},

{terminak}.

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

:Humor, Hacker:: n. 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.

The Jargon File, Version 2.9.10, 01 Jul 1992 · 第 10 / 21 题