#======= THIS IS THE JARGON FILE, VERSION 4.0.0, 24 JUL 1996 =======# (continued 5)
Reading edition
:furrfu: // /excl./ [Usenet] Written-only equivalent of "Sheesh!"; it is, in fact, "sheesh" modified by {rot13}. Evolved in mid-1992 as a response to notably silly postings repeating urban myths on the Usenet newsgroup alt.folklore.urban, after some posters complained that "Sheesh!" as a response to {newbie}s was being overused. See also {FOAF}.
:fuzzball: /n./ [TCP/IP hackers] A DEC LSI-11 running a particular suite of homebrewed software written by Dave Mills and assorted co-conspirators, used in the early 1980s for Internet protocol testbedding and experimentation. These were used as NSFnet backbone sites in its early 56KB-line days; a few were still active on the Internet as late as mid-1993, doing odd jobs such as network time service.
= G = =====
:G: /pref.,suff./ [SI] See {{quantifiers}}.
:g-file: /n./ [Commodore BBS culture] Any file that is written with the intention of being read by a human rather than a machine, such as the Jargon File, documentation, humor files, hacker lore, and technical materials.
This term survives from the nearly forgotten Commodore 64 underground and BBS community. In the early 80s, C-Net had emerged as the most popular C64 BBS software for systems which encouraged messaging (as opposed to file transfer). There were three main options for files: Program files (p-files), which served the same function as `doors' in today's systems, UD files (the user upload/download section), and g-files. Anything that was meant to be read was included in g-files.
:gabriel: /gay'bree-*l/ /n./ [for Dick Gabriel, SAIL LISP hacker and volleyball fanatic] An unnecessary (in the opinion of the opponent) stalling tactic, e.g., tying one's shoelaces or combing one's hair repeatedly, asking the time, etc. Also used to refer to the perpetrator of such tactics. Also, `pulling a Gabriel', `Gabriel mode'.
:gag: /vi./ Equivalent to {choke}, but connotes more disgust. "Hey, this is FORTRAN code. No wonder the C compiler gagged." See also {barf}.
:gang bang: /n./ The use of large numbers of loosely coupled programmers in an attempt to wedge a great many features into a product in a short time. Though there have been memorable gang bangs (e.g., that over-the-weekend assembler port mentioned in Steven Levy's "Hackers"), most are perpetrated by large companies trying to meet deadlines; the inevitable result is enormous buggy masses of code entirely lacking in {orthogonal}ity. When market-driven managers make a list of all the features the competition has and assign one programmer to implement each, the probability of maintaining a coherent (or even functional) design goes infinitesimal. See also {firefighting}, {Mongolian Hordes technique}, {Conway's Law}.
:garbage collect: /vi./ (also `garbage collection', n.) See {GC}.
:garply: /gar'plee/ /n./ [Stanford] Another metasyntactic variable (see {foo}); once popular among SAIL hackers.
:gas: [as in `gas chamber'] 1. /interj./ A term of disgust and hatred, implying that gas should be dispensed in generous quantities, thereby exterminating the source of irritation. "Some loser just reloaded the system for no reason! Gas!" 2. /interj./ A suggestion that someone or something ought to be flushed out of mercy. "The system's getting {wedged} every few minutes. Gas!" 3. /vt./ To {flush} (sense 1). "You should gas that old crufty software." 4. [IBM] /n./ Dead space in nonsequentially organized files that was occupied by data that has since been deleted; the compression operation that removes it is called `degassing' (by analogy, perhaps, with the use of the same term in vacuum technology). 5. [IBM] /n./ Empty space on a disk that has been clandestinely allocated against future need.
:gaseous: /adj./ Deserving of being {gas}sed. Disseminated by Geoff Goodfellow while at SRI; became particularly popular after the Moscone-Milk killings in San Francisco, when it was learned that the defendant Dan White (a politician who had supported Proposition 7) would get the gas chamber under Proposition 7 if convicted of first-degree murder (he was eventually convicted of manslaughter).
:gawble: /gaw'bl/ /n./ See {chawmp}.
:GC: /G-C/ [from LISP terminology; `Garbage Collect'] 1. /vt./ To clean up and throw away useless things. "I think I'll GC the top of my desk today." When said of files, this is equivalent to {GFR}. 2. /vt./ To recycle, reclaim, or put to another use. 3. /n./ An instantiation of the garbage collector process.
`Garbage collection' is computer-science techspeak for a particular class of strategies for dynamically but transparently reallocating computer memory (i.e., without requiring explicit allocation and deallocation by higher-level software). One such strategy involves periodically scanning all the data in memory and determining what is no longer accessible; useless data items are then discarded so that the memory they occupy can be recycled and used for another purpose. Implementations of the LISP language usually use garbage collection.
In jargon, the full phrase is sometimes heard but the {abbrev} GC is more frequently used because it is shorter. Note that there is an ambiguity in usage that has to be resolved by context: "I'm going to garbage-collect my desk" usually means to clean out the drawers, but it could also mean to throw away or recycle the desk itself.
:GCOS:: /jee'kohs/ /n./ A {quick-and-dirty} {clone} of System/360 DOS that emerged from GE around 1970; originally called GECOS (the General Electric Comprehensive Operating System). Later kluged to support primitive timesharing and transaction processing. After the buyout of GE's computer division by Honeywell, the name was changed to General Comprehensive Operating System (GCOS). Other OS groups at Honeywell began referring to it as `God's Chosen Operating System', allegedly in reaction to the GCOS crowd's uninformed and snotty attitude about the superiority of their product. All this might be of zero interest, except for two facts: (1) The GCOS people won the political war, and this led in the orphaning and eventual death of Honeywell {{Multics}}, and (2) GECOS/GCOS left one permanent mark on Unix. Some early Unix systems at Bell Labs used GCOS machines for print spooling and various other services; the field added to `/etc/passwd' to carry GCOS ID information was called the `GECOS field' and survives today as the `pw_gecos' member used for the user's full name and other human-ID information. GCOS later played a major role in keeping Honeywell a dismal also-ran in the mainframe market, and was itself ditched for Unix in the late 1980s when Honeywell retired its aging {big iron} designs.
:GECOS:: /jee'kohs/ /n./ See {{GCOS}}.
:gedanken: /g*-dahn'kn/ /adj./ Ungrounded; impractical; not well-thought-out; untried; untested.
`Gedanken' is a German word for `thought'. A thought experiment is one you carry out in your head. In physics, the term `gedanken experiment' is used to refer to an experiment that is impractical to carry out, but useful to consider because it can be reasoned about theoretically. (A classic gedanken experiment of relativity theory involves thinking about a man in an elevator accelerating through space.) Gedanken experiments are very useful in physics, but must be used with care. It's too easy to idealize away some important aspect of the real world in constructing the `apparatus'.
Among hackers, accordingly, the word has a pejorative connotation. It is typically used of a project, especially one in artificial intelligence research, that is written up in grand detail (typically as a Ph.D. thesis) without ever being implemented to any great extent. Such a project is usually perpetrated by people who aren't very good hackers or find programming distasteful or are just in a hurry. A `gedanken thesis' is usually marked by an obvious lack of intuition about what is programmable and what is not, and about what does and does not constitute a clear specification of an algorithm. See also {AI-complete}, {DWIM}.
:geef: /v./ [ostensibly from `gefingerpoken'] /vt./ Syn. {mung}. See also {blinkenlights}.
:geek code: /n./ (also "Code of the Geeks"). A set of codes commonly used in {sig block}s to broadcast the interests, skills, and aspirations of the poster. Features a G at the left margin followed by numerous letter codes, often suffixed with plusses or minuses. Because many net users are involved in computer science, the most common prefix is `GCS'. To see a copy of the current code, browse http://krypton.mankato.msus.edu/~hayden/geek.html. Here is a sample geek code (that or Robert Hayden, the code's inventor) from that page:
——-BEGIN GEEK CODE BLOCK——- Version: 3.1 GED/J d— s:++>: a- C++(++++)$ ULUO++ P+>+++ L++ !E—— W+(—-) N+++ o+ K+++ w+(—-) O- M+$>++ V— PS++(+++)>$ PE++(+)>$ Y++ PGP++ t- 5+++ X++ R+++>$ tv+ b+ DI+++ D+++ G+++++>$ e++$>++++ h r— y+** ———END GEEK CODE BLOCK———
The geek code originated in 1993; it was inspired (according to the inventor) by previous "bear", "smurf" and "twink" style-and-sexual-preference codes from lesbian and gay {newsgroup}s. It has in turn spawned imitators; there is now even a "Saturn geek code" for owners of the Saturn car. See also {computer geek}.
:geek out: /vi./ To temporarily enter techno-nerd mode while in a non-hackish context, for example at parties held near computer equipment. Especially used when you need to do or say something highly technical and don't have time to explain: "Pardon me while I geek out for a moment." See {computer geek}; see also {propeller head}.
:gen: /jen/ /n.,v./ Short for {generate}, used frequently in both spoken and written contexts.
:gender mender: /n./ A cable connector shell with either two male or two female connectors on it, used to correct the mismatches that result when some {loser} didn't understand the RS232C specification and the distinction between DTE and DCE. Used esp. for RS-232C parts in either the original D-25 or the IBM PC's bogus D-9 format. Also called `gender bender', `gender blender', `sex changer', and even `homosexual adapter;' however, there appears to be some confusion as to whether a `male homosexual adapter' has pins on both sides (is doubly male) or sockets on both sides (connects two males).
:General Public Virus: /n./ Pejorative name for some versions of the {GNU} project {copyleft} or General Public License (GPL), which requires that any tools or {app}s incorporating copylefted code must be source-distributed on the same counter-commercial terms as GNU stuff. Thus it is alleged that the copyleft `infects' software generated with GNU tools, which may in turn infect other software that reuses any of its code. The Free Software Foundation's official position as of January 1991 is that copyright law limits the scope of the GPL to "programs textually incorporating significant amounts of GNU code", and that the `infection' is not passed on to third parties unless actual GNU source is transmitted (as in, for example, use of the Bison parser skeleton). Nevertheless, widespread suspicion that the {copyleft} language is `boobytrapped' has caused many developers to avoid using GNU tools and the GPL. Recent (July 1991) changes in the language of the version 2.00 license may eliminate this problem.
:generate: /vt./ To produce something according to an algorithm or program or set of rules, or as a (possibly unintended) side effect of the execution of an algorithm or program. The opposite of {parse}. This term retains its mechanistic connotations (though often humorously) when used of human behavior. "The guy is rational most of the time, but mention nuclear energy around him and he'll generate {infinite} flamage."
:Genius From Mars Technique: /n./ [TMRC] A visionary quality which enables one to ignore the standard approach and come up with a totally unexpected new algorithm. An attack on a problem from an offbeat angle that no one has ever thought of before, but that in retrospect makes total sense. Compare {grok}, {zen}.
:gensym: /jen'sim/ [from MacLISP for `generated symbol'] 1. /v./ To invent a new name for something temporary, in such a way that the name is almost certainly not in conflict with one already in use. 2. /n./ The resulting name. The canonical form of a gensym is `Gnnnn' where nnnn represents a number; any LISP hacker would recognize G0093 (for example) as a gensym. 3. A freshly generated data structure with a gensymmed name. Gensymmed names are useful for storing or uniquely identifying crufties (see {cruft}).
:Get a life!: /imp./ Hacker-standard way of suggesting that the person to whom it is directed has succumbed to terminal geekdom (see {computer geek}). Often heard on {Usenet}, esp. as a way of suggesting that the target is taking some obscure issue of {theology} too seriously. This exhortation was popularized by William Shatner on a "Saturday Night Live" episode in a speech that ended "Get a *life*!", but some respondents believe it to have been in use before then. It was certainly in wide use among hackers for at least five years before achieving mainstream currency in early 1992.
:Get a real computer!: /imp./ Typical hacker response to news that somebody is having trouble getting work done on a system that (a) is single-tasking, (b) has no hard disk, or (c) has an address space smaller than 16 megabytes. This is as of early 1996; note that the threshold for `real computer' rises with time. See {bitty box} and {toy}.
:GFR: /G-F-R/ /vt./ [ITS: from `Grim File Reaper', an ITS and LISP Machine utility] To remove a file or files according to some program-automated or semi-automatic manual procedure, especially one designed to reclaim mass storage space or reduce name-space clutter (the original GFR actually moved files to tape). Often generalized to pieces of data below file level. "I used to have his phone number, but I guess I {GFR}ed it." See also {prowler}, {reaper}. Compare {GC}, which discards only provably worthless stuff.
:GIFs at 11: [Fidonet] Fidonet alternative to {film at 11}, especially in echoes (Fidonet topic areas) where uuencoded GIFs are permitted. Other formats, especially JPEG and MPEG, may be referenced instead.
:gig: /jig/ or /gig/ /n./ [SI] See {{quantifiers}}.
:giga-: /ji'ga/ or /gi'ga/ /pref./ [SI] See {{quantifiers}}.
:GIGO: /gi:'goh/ [acronym] 1. `Garbage In, Garbage Out' —- usually said in response to {luser}s who complain that a program didn't "do the right thing" when given imperfect input or otherwise mistreated in some way. Also commonly used to describe failures in human decision making due to faulty, incomplete, or imprecise data. 2. `Garbage In, Gospel Out': this more recent expansion is a sardonic comment on the tendency human beings have to put excessive trust in `computerized' data.
:gilley: /n./ [Usenet] The unit of analogical bogosity. According to its originator, the standard for one gilley was "the act of bogotoficiously comparing the shutting down of 1000 machines for a day with the killing of one person". The milligilley has been found to suffice for most normal conversational exchanges.
:gillion: /gil'y*n/ or /jil'y*n/ /n./ [formed from {giga-} by analogy with mega/million and tera/trillion] 10^9. Same as an American billion or a British `milliard'. How one pronounces this depends on whether one speaks {giga-} with a hard or soft `g'.
:GIPS: /gips/ or /jips/ /n./ [analogy with {MIPS}] Giga-Instructions per Second (also possibly `Gillions of Instructions per Second'; see {gillion}). In 1991, this is used of only a handful of highly parallel machines, but this is expected to change. Compare {KIPS}.
:glark: /glark/ /vt./ To figure something out from context. "The System III manuals are pretty poor, but you can generally glark the meaning from context." Interestingly, the word was originally `glork'; the context was "This gubblick contains many nonsklarkish English flutzpahs, but the overall pluggandisp can be glorked [sic] from context" (David Moser, quoted by Douglas Hofstadter in his "Metamagical Themas" column in the January 1981 "Scientific American"). It is conjectured that hackish usage mutated the verb to `glark' because {glork} was already an established jargon term. Compare {grok}, {zen}.
:glass: /n./ [IBM] Synonym for {silicon}.
:glass tty: /glas T-T-Y/ or /glas ti'tee/ /n./ A terminal that has a display screen but which, because of hardware or software limitations, behaves like a teletype or some other printing terminal, thereby combining the disadvantages of both: like a printing terminal, it can't do fancy display hacks, and like a display terminal, it doesn't produce hard copy. An example is the early `dumb' version of Lear-Siegler ADM 3 (without cursor control). See {tube}, {tty}; compare {dumb terminal}, {smart terminal}. See "{TV Typewriters}" (Appendix A) for an interesting true story about a glass tty.
:glassfet: /glas'fet/ /n./ [by analogy with MOSFET, the acronym for `Metal-Oxide-Semiconductor Field-Effect Transistor'] Syn. {firebottle}, a humorous way to refer to a vacuum tube.
:glitch: /glich/ [from German `glitschig' 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}), 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/ /v.,n./ [Unix] 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 single 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}. Note that glob patterns are similar, but not identical, to those used in {regexp}s.
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 two 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} (sense 1). "{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}, {Linux}. 2. Noted Unix hacker John Gilmore <gnu@toad.com>, founder of Usenet's anarchic alt.* hierarchy.
:GNUMACS: /gnoo'maks/ /n./ [contraction of `GNU EMACS'] Often-heard abbreviated name for the {GNU} project's flagship tool, {EMACS}. Used esp. in contrast with {GOSMACS}.
:go flatline: /v./ [from cyberpunk SF, refers to flattening of EEG traces upon brain-death] (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: /vi./ [Unix] 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: /n./ [UK] Syn. {chrome}. Mainstream in some parts of UK.
:gobble: /vt./ 1. To consume, usu. used with `up'. "The output spy gobbles characters out of a {tty} output buffer." 2. To obtain, usu. used with `down'. "I guess I'll gobble down a copy of the documentation tomorrow." See also {snarf}.
:Godwin's Law: /prov./ [Usenet] "As a Usenet discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one." There is a tradition in many groups that, once this occurs, that thread is over, and whoever mentioned the Nazis has automatically lost whatever argument was in progress. Godwin's Law thus practically guarantees the existence of an upper bound on thread length in those groups.
: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 is an IP datagram whose destination IP address is [255.255.255.255]. Fortunately, few gateways are foolish enough to attempt to implement this case! 2. A network packet of maximum size. An IP Godzillagram has 65,536 octets. Compare {super source quench}.
: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. obs./ The IBM 2741, a slow but letter-quality printing device and terminal based on the IBM Selectric typewriter. The `golf ball' was a little spherical frob bearing reversed embossed images of 88 different characters arranged on four parallels of latitude; one could change the font by swapping in a different golf ball. The print element spun and jerked alarmingly in action and when in motion was sometimes described as an `infuriated 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/ /vi.,n./ 1. To prevaricate or to embellish the truth beyond any reasonable recognition. 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/ /n./ [from the old "Hogan's Heroes" TV series] 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/ /adj./ [from Hunter S. Thompson] 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}.
:gopher: /n./ A type of Internet service first floated around 1991 and now (1994) being obsolesced by the World Wide Web. Gopher presents a menuing interface to a tree or graph of links; the links can be to documents, runnable programs, or other gopher menus arbitrarily far across the net.
Some claim that the gopher software, which was originally developed at the University of Minnesota, was named after the Minnesota Gophers (a sports team). Others claim the word derives from American slang `gofer' (from "go for", dialectical "go fer"), one whose job is to run and fetch things. Finally, observe that gophers (aka woodchucks) dig long tunnels, and the idea of tunneling through the net to find information was a defining metaphor for the developers. Probably all three things were true, but with the first two coming first and the gopher-tunnel metaphor serendipitously adding flavor and impetus to the project as it developed out of its concept stage.
:gopher hole: /n./ 1. Any access to a {gopher}. 2. [Amateur Packet Radio] The terrestrial analog of a {wormhole} (sense 2), from which this term was coined. A gopher hole links two amateur packet relays through some non-ham radio medium.
:gorets: /gor'ets/ /n./ The unknown ur-noun, fill in your own meaning. Found esp. on the Usenet newsgroup alt.gorets, which seems to be a running contest to redefine the word by implication in the funniest and most peculiar way, with the understanding that no definition is ever final. [A correspondent from the Former Soviet Union informs me that `gorets' is Russian for `mountain dweller' —ESR] Compare {frink}.
: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 — the operator looks like a gorilla while using the touch screen and feels like one afterwards. 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/ /n./ [CMU: perhaps from the canonical hiker's food, Good Old Raisins and Peanuts] Another {metasyntactic variable}, like {foo} and {bar}.
:GOSMACS: /goz'maks/ /n./ [contraction of `Gosling EMACS'] 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} and the programming language Java; the latter earned him {demigod} status.
:Gosperism: /gos'p*r-izm/ /n./ A hack, invention, or saying due to 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 both enticingly easy to invoke and completely unexpected and/or unreasonable in its outcome. 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./ Abbreviation for `General Public License' in widespread use; see {copyleft}, {General Public Virus}.
: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} in 1985 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. Used esp. in discussing the history of newsgroup names. "The oldest sources group is comp.sources.misc; before the Great Renaming, it was net.sources."
: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 Of The Day was therefore, 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: /vi.,n./ [from SF fandom] 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", which 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 issued by the CCITT's tenth plenary assembly. 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] A 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.
:green lightning: /n./ [IBM] 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} (sense 6).
: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: /prov./ [TMRC] For any story, in any group of people there will be at least one person who has not heard the story. A refinement of the theorem states that there will be *exactly* one person (if there were more than one, it wouldn't be as bad to re-tell the story). [The name of this theorem is a play on a fundamental theorem in calculus. —ESR]
:grep: /grep/ /vi./ [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)'] 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}.
:grilf: // /n./ Girlfriend. Like {newsfroup} and {filk}, a typo reincarnated as a new word. Seems to have originated sometime in 1992 on {Usenet}. [A friend tells me there was a Lloyd Biggle SF novel "Watchers Of The Dark", in which alien species after species goes insane and begins to chant "Grilf! Grilf!". A human detective eventually determines that the word means "Liar!" I hope this has nothing to do with the popularity of the Usenet term. —ESR]
:grind: /vt./ 1. [MIT and Berkeley] To prettify hardcopy of code, especially LISP code, by reindenting lines, printing keywords and comments in distinct fonts (if available), etc. 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. 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: /n./ [IBM] A wry (and thoroughly unofficial) 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/ [MIT] 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).
Interestingly, this word seems to have a separate history from {glitch}, with which it is often confused. Back in the early 1960s, when `glitch' was strictly a hardware-tech's term of art, the Burton House dorm at M.I.T. maintained a "Gritch Book", a blank volume, into which the residents hand-wrote complaints, suggestions, and witticisms. Previous years' volumes of this tradition were maintained, dating back to antiquity. The word "gritch" was described as a portmanteau of "gripe" and "bitch". Thus, sense 3 above is at least historically incorrect.
:grok: /grok/, var. /grohk/ /vt./ [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'] The emphatic form is `grok in fullness'. 1. To understand, usually in a global sense. Connotes intimate and exhaustive knowledge. Contrast {zen}, which is similar supernal understanding experienced 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/ /vt./ [popularized by Johnny Hart's comic strip "B.C." but the word apparently predates that] 1. To clear the state of a wedged device and restart it. More severe than `to {frob}' (sense 2). 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 /usr 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/ /n./ [a portmanteau of `garbage' and `rubbish'; may have originated with SF author Philip K. Dick] Garbage; crap; nonsense. "What is all this gubbish?" The opposite portmanteau `rubbage' is also reported; in fact, it was British slang during the 19th century and appears in Dickens.
: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. A piece of {shareware} that works.
:gumby: /guhm'bee/ /n./ [from a class of Monty Python characters, poss. with some influence from the 1960s claymation character] An act of minor but conspicuous stupidity, often in `gumby maneuver' or `pull a gumby'. 2. [NRL] /n./ A bureaucrat, or other technical incompetent who impedes the progress of real work. 3. /adj./ Relating to things typically associated with people in sense 2. (e.g. "Ran would be writing code, but Richard gave him gumby work that's due on Friday", or, "Dammit! Travel screwed up my plane tickets. I have to go out on gumby patrol.")
:gun: /vt./ [ITS: from the `:GUN' command] 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." Usage: now rare. Compare {can}, {blammo}.
:gunch: /guhnch/ /vt./ [TMRC] To push, prod, or poke at a device that has almost (but not quite) 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 of the form "GURU MEDITATION #XXXXXXXX.YYYYYYYY" may appear, indicating what the problem was. An Amiga guru can figure things out from the numbers. Sometimes 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 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 (actually in 2.00, a buggy post-2.0 release on the A3000 only).
:gweep: /gweep/ [WPI] 1. /v./ To {hack}, usually at night. At WPI, from 1975 onwards, one who gweeped could often be found at the College Computing Center punching cards or crashing the {PDP-10} or, later, the DEC-20. A correspondent who was there at the time opines that the term was originally onomatopoetic, describing the keyclick sound of the Datapoint terminals long connected to the PDP-10. The term has survived the demise of those technologies, however, and was still alive in late 1991. "I'm going to go gweep for a while. See you in the morning." "I gweep from 8 PM till 3 AM 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] 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: 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 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, 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 {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}).
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: /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 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}, {AI koans}.
See also {filk}, {retrocomputing}, and {A Portrait of J. Random Hacker} in Appendix B. If you have an itchy feeling that all 6 of these traits are really aspects of one thing that is incredibly difficult to talk about exactly, you are (a) correct and (b) responding like a hacker. These traits are also recognizable (though in a less marked form) throughout {{science-fiction fandom}}.
: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./ [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.
: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 surface 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}.
: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. 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.
: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}. 2. [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./ 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 Hanlon eponym is not definitely known, but a very similar remark ("You have attributed conditions to villainy that simply result from stupidity.") appears in "Logic of Empire", a 1941 story by Robert A. Heinlein, who calls it the `devil theory' of sociology. Heinlein's popularity in the hacker culture makes plausible the supposition that `Hanlon' is derived from `Heinlein' by phonetic corruption. A similar epigram has been attributed to William James, but Heinlein more probably got the idea from Alfred Korzybski and other practitioners of General Semantics. Quoted here because it seems to be a particular favorite of hackers, often showing up in {sig block}s, {fortune cookie} files and the login banners of BBS systems and commercial networks. This probably reflects the hacker's daily experience of environments created by well-intentioned but short-sighted people. Compare {Sturgeon's Law}.
:happily: /adv./ Of software, used to emphasize that a program is unaware of some important fact about its environment, either because it has been fooled into believing a lie, or because it doesn't care. The sense of `happy' here is not that of elation, but rather that of blissful ignorance. "The program continues to run, happily unaware that its output is going to /dev/null." Also used to suggest that a program or device would really rather be doing something destructive, and is being given an opportunity to do so. "If you enter an O here instead of a zero, the program will happily erase all your data."
:haque: /hak/ /n./ [Usenet] Variant spelling of {hack}, used only for the noun form and connoting an {elegant} hack. that is a {hack} in sense 2.
:hard boot: /n./ See {boot}.
:hardcoded: /adj./ 1. Said of data inserted directly into a program, where it cannot be easily modified, as opposed to data in some {profile}, resource (see {de-rezz} sense 2), or environment variable that a {user} or hacker can easily modify. 2. In C, this is esp. applied to use of a literal instead of a `#define' macro (see {magic number}).
:hardwarily: /hard-weir'*-lee/ /adv./ In a way pertaining to hardware. "The system is hardwarily unreliable." The adjective `hardwary' is *not* traditionally used, though it has recently been reported from the U.K. See {softwarily}.
:hardwired: /adj./ 1. In software, syn. for {hardcoded}. 2. By extension, anything that is not modifiable, especially in the sense of customizable to one's particular needs or tastes.
:has the X nature: [seems to derive from Zen Buddhist koans of the form "Does an X have the Buddha-nature?"] /adj./ Common hacker construction for `is an X', used for humorous emphasis. "Anyone who can't even use a program with on-screen help embedded in it truly has the {loser} nature!" See also {the X that can be Y is not the true X}.
:hash bucket: /n./ A notional receptacle, a set of which might be used to apportion data items for sorting or lookup purposes. When you look up a name in the phone book (for example), you typically hash it by extracting its first letter; the hash buckets are the alphabetically ordered letter sections. This term is used as techspeak with respect to code that uses actual hash functions; in jargon, it is used for human associative memory as well. Thus, two things `in the same hash bucket' are more difficult to discriminate, and may be confused. "If you hash English words only by length, you get too many common grammar words in the first couple of hash buckets." Compare {hash collision}.
:hash collision: /n./ [from the techspeak] (var. `hash clash') When used of people, signifies a confusion in associative memory or imagination, especially a persistent one (see {thinko}). True story: One of us [ESR] was once on the phone with a friend about to move out to Berkeley. When asked what he expected Berkeley to be like, the friend replied: "Well, I have this mental picture of naked women throwing Molotov cocktails, but I think that's just a collision in my hash tables." Compare {hash bucket}.
:hat: /n./ Common (spoken) name for the circumflex (`^', ASCII 1011110) character. See {ASCII} for other synonyms.
:HCF: /H-C-F/ /n./ Mnemonic for `Halt and Catch Fire', any of several undocumented and semi-mythical machine instructions with destructive side-effects, supposedly included for test purposes on several well-known architectures going as far back as the IBM 360. The MC6800 microprocessor was the first for which an HCF opcode became widely known. This instruction caused the processor to {toggle} a subset of the bus lines as rapidly as it could; in some configurations this could actually cause lines to burn up.
:heads down: [Sun] /adj./ Concentrating, usually so heavily and for so long that everything outside the focus area is missed. See also {hack mode} and {larval stage}, although this mode is hardly confined to fledgling hackers.
:heartbeat: /n./ 1. The signal emitted by a Level 2 Ethernet transceiver at the end of every packet to show that the collision-detection circuit is still connected. 2. A periodic synchronization signal used by software or hardware, such as a bus clock or a periodic interrupt. 3. The `natural' oscillation frequency of a computer's clock crystal, before frequency division down to the machine's clock rate. 4. A signal emitted at regular intervals by software to demonstrate that it is still alive. Sometimes hardware is designed to reboot the machine if it stops hearing a heartbeat. See also {breath-of-life packet}.
:heatseeker: /n./ [IBM] A customer who can be relied upon to buy, without fail, the latest version of an existing product (not quite the same as a member of the {lunatic fringe}). A 1993 example of a heatseeker is someone who, owning a 286 PC and Windows 3.0, goes out and buys Windows 3.1 (which offers no worthwhile benefits unless you have a 386). If all customers were heatseekers, vast amounts of money could be made by just fixing the bugs in each release (n) and selling it to them as release (n+1).
:heavy metal: /n./ [Cambridge] Syn. {big iron}.
:heavy wizardry: /n./ Code or designs that trade on a particularly intimate knowledge or experience of a particular operating system or language or complex application interface. Distinguished from {deep magic}, which trades more on arcane *theoretical* knowledge. Writing device drivers is heavy wizardry; so is interfacing to {X} (sense 2) without a toolkit. Esp. found in source-code comments of the form "Heavy wizardry begins here". Compare {voodoo programming}.
:heavyweight: /adj./ High-overhead; {baroque}; code-intensive; featureful, but costly. Esp. used of communication protocols, language designs, and any sort of implementation in which maximum generality and/or ease of implementation has been pushed at the expense of mundane considerations such as speed, memory utilization, and startup time. {EMACS} is a heavyweight editor; {X} is an *extremely* heavyweight window system. This term isn't pejorative, but one hacker's heavyweight is another's {elephantine} and a third's {monstrosity}. Oppose `lightweight'. Usage: now borders on techspeak, especially in the compound `heavyweight process'.
:heisenbug: /hi:'zen-buhg/ /n./ [from Heisenberg's Uncertainty Principle in quantum physics] A bug that disappears or alters its behavior when one attempts to probe or isolate it. (This usage is not even particularly fanciful; the use of a debugger sometimes alters a program's operating environment significantly enough that buggy code, such as that which relies on the values of uninitialized memory, behaves quite differently.) Antonym of {Bohr bug}; see also {mandelbug}, {schroedinbug}. In C, nine out of ten heisenbugs result from uninitialized auto variables, {fandango on core} phenomena (esp. lossage related to corruption of the malloc {arena}) or errors that {smash the stack}.
:Helen Keller mode: /n./ 1. State of a hardware or software system that is deaf, dumb, and blind, i.e., accepting no input and generating no output, usually due to an infinite loop or some other excursion into {deep space}. (Unfair to the real Helen Keller, whose success at learning speech was triumphant.) See also {go flatline}, {catatonic}. 2. On IBM PCs under DOS, refers to a specific failure mode in which a screen saver has kicked in over an {ill-behaved} application which bypasses the very interrupts the screen saver watches for activity. Your choices are to try to get from the program's current state through a successful save-and-exit without being able to see what you're doing, or to re-boot the machine. This isn't (strictly speaking) a crash.
:hello, sailor!: /interj./ Occasional West Coast equivalent of {hello, world}; seems to have originated at SAIL, later associated with the game {Zork} (which also included "hello, aviator" and "hello, implementor"). Originally from the traditional hooker's greeting to a swabbie fresh off the boat, of course.
:hello, wall!: /excl./ See {wall}.
:hello, world: /interj./ 1. The canonical minimal test message in the C/Unix universe. 2. Any of the minimal programs that emit this message. Traditionally, the first program a C coder is supposed to write in a new environment is one that just prints "hello, world" to standard output (and indeed it is the first example program in {K&R}). Environments that generate an unreasonably large executable for this trivial test or which require a {hairy} compiler-linker invocation to generate it are considered to {lose} (see {X}). 3. Greeting uttered by a hacker making an entrance or requesting information from anyone present. "Hello, world! Is the {VAX} back up yet?"
:hex: /n./ 1. Short for {{hexadecimal}}, base 16. 2. A 6-pack of anything (compare {quad}, sense 2). Neither usage has anything to do with {magic} or {black art}, though the pun is appreciated and occasionally used by hackers. True story: As a joke, some hackers once offered some surplus ICs for sale to be worn as protective amulets against hostile magic. The chips were, of course, hex inverters.
:hexadecimal:: /n./ Base 16. Coined in the early 1960s to replace earlier `sexadecimal', which was too racy and amusing for stuffy IBM, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take `binary' to be paradigmatic, the most etymologically correct term for base 10, for example, is `denary', which comes from `deni' (ten at a time, ten each), a Latin `distributive' number; the corresponding term for base-16 would be something like `sendenary'. `Decimal' is from an ordinal number; the corresponding prefix for 6 would imply something like `sextidecimal'. The `sexa-' prefix is Latin but incorrect in this context, and `hexa-' is Greek. The word `octal' is similarly incorrect; a correct form would be `octaval' (to go with decimal), or `octonary' (to go with binary). If anyone ever implements a base-3 computer, computer scientists will be faced with the unprecedented dilemma of a choice between two *correct* forms; both `ternary' and `trinary' have a claim to this throne.
:hexit: /hek'sit/ /n./ A hexadecimal digit (0—9, and A—F or a—f). Used by people who claim that there are only *ten* digits, dammit; sixteen-fingered human beings are rather rare, despite what some keyboard designs might seem to imply (see {space-cadet keyboard}).
:HHOK: See {ha ha only serious}.
:HHOS: See {ha ha only serious}.
:hidden flag: /n./ [scientific computation] An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. The use of hidden flags can make a program very hard to debug and understand, but is all too common wherever programs are hacked on in a hurry.
:high bit: /n./ [from `high-order bit'] 1. The most significant bit in a byte. 2. By extension, the most significant part of something other than a data byte: "Spare me the whole {saga}, just give me the high bit." See also {meta bit}, {hobbit}, {dread high-bit disease}, and compare the mainstream slang `bottom line'.
:high moby: /hi:' mohb'ee/ /n./ The high half of a 512K {PDP-10}'s physical address space; the other half was of course the low moby. This usage has been generalized in a way that has outlasted the {PDP-10}; for example, at the 1990 Washington D.C. Area Science Fiction Conclave (Disclave), when a miscommunication resulted in two separate wakes being held in commemoration of the shutdown of MIT's last {{ITS}} machines, the one on the upper floor was dubbed the `high moby' and the other the `low moby'. All parties involved {grok}ked this instantly. See {moby}.
:highly: /adv./ [scientific computation] The preferred modifier for overstating an understatement. As in: `highly nonoptimal', the worst possible way to do something; `highly nontrivial', either impossible or requiring a major research project; `highly nonlinear', completely erratic and unpredictable; `highly nontechnical', drivel written for {luser}s, oversimplified to the point of being misleading or incorrect (compare {drool-proof paper}). In other computing cultures, postfixing of {in the extreme} might be preferred.
:hing: // /n./ [IRC] Fortuitous typo for `hint', now in wide intentional use among players of {initgame}. Compare {newsfroup}, {filk}.
:hired gun: /n./ A contract programmer, as opposed to a full-time staff member. All the connotations of this term suggested by innumerable spaghetti Westerns are intentional.
:hirsute: /adj./ Occasionally used humorously as a synonym for {hairy}.
:HLL: /H-L-L/ /n./ [High-Level Language (as opposed to assembler)] Found primarily in email and news rather than speech. Rarely, the variants `VHLL' and `MLL' are found. VHLL stands for `Very-High-Level Language' and is used to describe a {bondage-and-discipline language} that the speaker happens to like; Prolog and Backus's FP are often called VHLLs. `MLL' stands for `Medium-Level Language' and is sometimes used half-jokingly to describe {C}, alluding to its `structured-assembler' image. See also {languages of choice}.
:hoarding: /n./ See {software hoarding}.
:hobbit: /n./ 1. The High Order BIT of a byte; same as the {meta bit} or {high bit}. 2. The non-ITS name of 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.
:hole: /n./ A region in an otherwise {flat} entity which is not actually present. For example, some Unix filesystems can store large files with holes so that unused regions of the file are never actually stored on disk. (In techspeak, these are referred to as `sparse' files.) As another example, the region of memory in IBM PCs reserved for memory-mapped I/O devices which may not actually be present is called `the I/O hole', since memory-management systems must skip over this area when filling user requests for memory.
:hollised: /hol'ist/ /adj./ [Usenet: sci.space] To be hollised is to have been ordered by one's employer not to post any even remotely job-related material to USENET (or, by extension, to other Internet media). The original and most notorious case of this involved one Ken Hollis, a Lockheed employee and space-program enthusiast who posted publicly available material on access to Space Shuttle launches to sci.space. He was gagged under threat of being fired in 1994 at the behest of NASA public-relations officers. The result was, of course, a huge publicity black eye for NASA. Nevertheless several other NASA contractor employees were subsequently hollised for similar activities. Use of this term carries the strong connotation that the persons doing the gagging are bureaucratic idiots blinded to their own best interests by territorial reflexes.
:holy wars: /n./ [from {Usenet}, but may predate it] /n./ {flame war}s over {religious issues}. The paper by Danny Cohen that popularized the terms {big-endian} and {little-endian} in connection with the LSB-first/MSB-first controversy was entitled "On Holy Wars and a Plea for Peace". Other perennial Holy Wars have included {EMACS} vs. {vi}, my personal computer vs. everyone else's personal computer, {{ITS}} vs. {{Unix}}, {{Unix}} vs. {VMS}, {BSD} Unix vs. {USG Unix}, {C} vs. {{Pascal}}, {C} vs. FORTRAN, etc., ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy war most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. See also {theology}.
:home box: /n./ A hacker's personal machine, especially one he or she owns. "Yeah? Well, *my* home box runs a full 4.2 BSD, so there!"
:home machine: /n./ 1. Syn. {home box}. 2. The machine that receives your email. These senses might be distinct, for example, for a hacker who owns one computer at home, but reads email at work.
:home page: /n./ 1. One's personal billboard on the World Wide Web. The term `home page' is perhaps a bit misleading because home directories and physical homes in {RL} are private, but home pages are designed to be very public. 2. By extension, a WWW repository for information and links related to a project or organization. Compare {home box}.
:hook: /n./ A software or hardware feature included in order to simplify later additions or changes by a user. For example, a simple program that prints numbers might always print them in base 10, but a more flexible version would let a variable determine what base to use; setting the variable to 5 would make the program print numbers in base 5. The variable is a simple hook. An even more flexible program might examine the variable and treat a value of 16 or less as the base to use, but treat any other number as the address of a user-supplied routine for printing a number. This is a {hairy} but powerful hook; one can then write a routine to print numbers as Roman numerals, say, or as Hebrew characters, and plug it into the program through the hook. Often the difference between a good program and a superb one is that the latter has useful hooks in judiciously chosen places. Both may do the original job about equally well, but the one with the hooks is much more flexible for future expansion of capabilities ({EMACS}, for example, is *all* hooks). The term `user exit' is synonymous but much more formal and less hackish.
:hop: 1. /n./ One file transmission in a series required to get a file from point A to point B on a store-and-forward network. On such networks (including {UUCPNET} and {FidoNet}), an important inter-machine metric is the number of hops in the shortest path between them, which can be more significant than their geographical separation. See {bang path}. 2. /v./ To log in to a remote machine, esp. via rlogin or telnet. "I'll hop over to foovax to FTP that."
:hose: 1. /vt./ To make non-functional or greatly degraded in performance. "That big ray-tracing program really hoses the system." See {hosed}. 2. /n./ A narrow channel through which data flows under pressure. Generally denotes data paths that represent performance bottlenecks. 3. /n./ Cabling, especially thick Ethernet cable. This is sometimes called `bit hose' or `hosery' (play on `hosiery') or `etherhose'. See also {washing machine}.
:hosed: /adj./ Same as {down}. Used primarily by Unix hackers. Humorous: also implies a condition thought to be relatively easy to reverse. Probably derived from the Canadian slang `hoser' popularized by the Bob and Doug Mackenzie skits on SCTV, but this usage predated SCTV by years in hackerdom (it was certainly already live at CMU in the 1970s). See {hose}. It is also widely used of people in the mainstream sense of `in an extremely unfortunate situation'.
Once upon a time, a Cray that had been experiencing periodic difficulties crashed, and it was announced to have been hosed. It was discovered that the crash was due to the disconnection of some coolant hoses. The problem was corrected, and users were then assured that everything was OK because the system had been rehosed. See also {dehose}.
:hot chat: /n./ Sexually explicit one-on-one chat. See {teledildonics}.
:hot spot: /n./ 1. [primarily used by C/Unix programmers, but spreading] It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; if one were to graph instruction visits versus code addresses, one would typically see a few huge spikes amidst a lot of low-level noise. Such spikes are called `hot spots' and are good candidates for heavy optimization or {hand-hacking}. The term is especially used of tight loops and recursions in the code's central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations. See {tune}, {bum}, {hand-hacking}. 2. The active location of a cursor on a bit-map display. "Put the mouse's hot spot on the `ON' widget and click the left button." 3. A screen region that is sensitive to mouse gestures, which trigger some action. World Wide Web pages now provide the {canonical} examples; WWW browsers present hypertext links as hot spots which, when clicked on, point the browser at another document (these are specifically called {hotlink}s). 4. In a massively parallel computer with shared memory, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a {busy-wait} on the same lock). 5. More generally, any place in a hardware design that turns into a performance bottleneck due to resource contention.
:hotlink: /hot'link/ /n./ A {hot spot} on a World Wide Web page; an area, which, when clicked or selected, chases a URL. Also spelled `hot link'. Use of this term focuses on the link's role as an immediate part of your display, as opposed to the timeless sense of logical connection suggested by {web pointer}. Your screen shows hotlinks but your document has web pointers, not (in normal usage) the other way around.
:house wizard: /n./ [prob. from ad-agency tradetalk, `house freak'] A hacker occupying a technical-specialist, R&D, or systems position at a commercial shop. A really effective house wizard can have influence out of all proportion to his/her ostensible rank and still not have to wear a suit. Used esp. of Unix wizards. The term `house guru' is equivalent.
:HP-SUX: /H-P suhks/ /n./ Unflattering hackerism for HP-UX, Hewlett-Packard's Unix port, which features some truly unique bogosities in the filesystem internals and elsewhere (these occasionally create portability problems). HP-UX is often referred to as `hockey-pux' inside HP, and one respondent claims that the proper pronunciation is /H-P ukkkhhhh/ as though one were about to spit. Another such alternate spelling and pronunciation is "H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo Computers which was swallowed by HP in 1989) have been heard to complain that Mr. Packard should have pushed to have his name first, if for no other reason than the greater eloquence of the resulting acronym. Compare {AIDX}, {buglix}. See also {Nominal Semidestructor}, {Telerat}, {Open DeathTrap}, {ScumOS}, {sun-stools}.
:huff: /v./ To compress data using a Huffman code. Various programs that use such methods have been called `HUFF' or some variant thereof. Oppose {puff}. Compare {crunch}, {compress}.
:humma: // /excl./ A filler word used on various `chat' and `talk' programs when you had nothing to say but felt that it was important to say something. The word apparently originated (at least with this definition) on the MECC Timeshare System (MTS, a now-defunct educational time-sharing system running in Minnesota during the 1970s and the early 1980s) but was later sighted on early Unix systems. Compare the U.K's {wibble}.
:hung: /adj./ [from `hung up'] Equivalent to {wedged}, but more common at Unix/C sites. Not generally used of people. Syn. with {locked up}, {wedged}; compare {hosed}. See also {hang}. A hung state is distinguished from {crash}ed or {down}, where the program or system is also unusable but because it is not running rather than because it is waiting for something. However, the recovery from both situations is often the same.
:hungry puppy: /n./ Syn. {slopsucker}.
:hungus: /huhng'g*s/ /adj./ [perhaps related to slang `humongous'] Large, unwieldy, usually unmanageable. "TCP is a hungus piece of code." "This is a hungus set of modifications."
:hyperspace: /hi:'per-spays/ /n./ A memory location that is *far* away from where the program counter should be pointing, especially a place that is inaccessible because it is not even mapped in by the virtual-memory system. "Another core dump —- looks like the program jumped off to hyperspace somehow." (Compare {jump off into never-never land}.) This usage is from the SF notion of a spaceship jumping `into hyperspace', that is, taking a shortcut through higher-dimensional space — in other words, bypassing this universe. The variant `east hyperspace' is recorded among CMU and Bliss hackers.
:hysterical reasons: /n./ (also `hysterical raisins') A variant on the stock phrase "for historical reasons", indicating specifically that something must be done in some stupid way for backwards compatibility, and moreover that the feature it must be compatible with was the result of a bad design in the first place. "All IBM PC video adapters have to support MDA text mode for hysterical reasons." Compare {bug-for-bug compatible}.
= I = =====
:I didn't change anything!: /interj./ An aggrieved cry often heard as bugs manifest during a regression test. The {canonical} reply to this assertion is "Then it works just the same as it did before, doesn't it?" See also {one-line fix}. This is also heard from applications programmers trying to blame an obvious applications problem on an unrelated systems software change, for example a divide-by-0 fault after terminals were added to a network. Usually, their statement is found to be false. Upon close questioning, they will admit some major restructuring of the program that shouldn't have broken anything, in their opinion, but which actually {hosed} the code completely.
:I see no X here.: Hackers (and the interactive computer games they write) traditionally favor this slightly marked usage over other possible equivalents such as "There's no X here!" or "X is missing." or "Where's the X?". This goes back to the original PDP-10 {ADVENT}, which would respond in this wise if you asked it to do something involving an object not present at your location in the game.
:IBM: /I-B-M/ Inferior But Marketable; It's Better Manually; Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel Movement; and a near-{infinite} number of even less complimentary expansions, including `International Business Machines'. See {TLA}. These abbreviations illustrate the considerable antipathy most hackers have long felt toward the `industry leader' (see {fear and loathing}).
What galls hackers about most IBM machines above the PC level isn't so much that they are underpowered and overpriced (though that does count against them), but that the designs are incredibly archaic, {crufty}, and {elephantine} … and you can't *fix* them — source code is locked up tight, and programming tools are expensive, hard to find, and bletcherous to use once you've found them. With the release of the Unix-based RIOS family this may have begun to change — but then, we thought that when the PC-RT came out, too.