The Jargon File, Version 4.0.0, 24 Jul 1996
Chapter 21
: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.