|
The most reliable manifestation of either version of the hacker ethic is that almost all hackers are actively willing to share technical tricks, software, and (where possible) computing resources with other hackers. Huge cooperative networks such as {USENET}, {Fidonet} and Internet (see {Internet address}) can function without central control because of this trait; they both rely on and reinforce a sense of community that may be hackerdom's most valuable intangible asset.
:hacking run: [analogy with 'bombing run' or 'speed run'] n. A hack session extended long outside normal working times, especially one longer than 12 hours. May cause you to 'change phase the hard way' (see {phase}).
:Hacking X for Y: [ITS] n. The information ITS made publicly available about each user (the INQUIR record) was a sort of form in which the user could fill out fields. On display, two of these fields were combined into a project description of the form "Hacking X for Y" (e.g., '"Hacking perceptrons for Minsky"'). This form of description became traditional and has since been carried over to other systems with more general facilities for self-advertisement (such as UNIX {plan file}s).
:Hackintosh: n. 1. An Apple Lisa that has been hacked into emulating a Macintosh (also called a 'Mac XL'). 2. A Macintosh assembled from parts theoretically belonging to different models in the line.
:hackish: /hak'ish/ adj. (also {hackishness} n.) 1. Said of something that is or involves a hack. 2. Of or pertaining to hackers or the hacker subculture. See also {true-hacker}.
:hackishness: n. The quality of being or involving a hack. This term is considered mildly silly. Syn. {hackitude}.
:hackitude: n. Syn. {hackishness}; this word is considered sillier.
:hair: [back-formation from {hairy}] n. The complications that make something hairy. "Decoding {TECO} commands requires a certain amount of hair." Often seen in the phrase 'infinite hair', which connotes extreme complexity. Also in 'hairiferous' (tending to promote hair growth): "GNUMACS elisp encourages lusers to write complex editing modes." "Yeah, it's pretty hairiferous all right." (or just: "Hair squared!")
:hairy: adj. 1. Annoyingly complicated. "{DWIM} is incredibly hairy." 2. Incomprehensible. "{DWIM} is incredibly hairy." 3. Of people, high-powered, authoritative, rare, expert, and/or incomprehensible. Hard to explain except in context: "He knows this hairy lawyer who says there's nothing to worry about." See also {hirsute}.
The adjective 'long-haired' is well-attested to have been in slang use among scientists and engineers during the early 1950s; it was equivalent to modern 'hairy' senses 1 and 2, and was very likely ancestral to the hackish use. In fact the noun 'long-hair' was at the time used to describe a person satisfying sense 3. Both senses probably passed out of use when long hair was adopted as a signature trait by the 1960s counterculture, leaving hackish 'hairy' as a sort of stunted mutant relic.
:HAKMEM: /hak'mem/ n. MIT AI Memo 239 (February 1972). A legendary collection of neat mathematical and programming hacks contributed by many people at MIT and elsewhere. (The title of the memo really is "HAKMEM", which is a 6-letterism for 'hacks memo'.) Some of them are very useful techniques, powerful theorems, or interesting unsolved problems, but most fall into the category of mathematical and computer trivia. Here is a sampling of the entries (with authors), slightly paraphrased:
Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less than 2^18.
Item 46 (Rich Schroeppel): The most *probable* suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most *evenly* distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy.
Item 81 (Rich Schroeppel): Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns, and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and reflection.
Item 154 (Bill Gosper): The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2. If the result loops with period = 1 with sign +, you are on a sign-magnitude machine. If the result loops with period = 1 at -1, you are on a twos-complement machine. If the result loops with period greater than 1, including the beginning, you are on a ones-complement machine. If the result loops with period greater than 1, not including the beginning, your machine isn't binary —- the pattern should tell you the base. If you run out of memory, you are on a string or bignum system. If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent. By this strategy, consider the universe, or, more precisely, algebra: Let X = the sum of many powers of 2 = ...111111. Now add X to itself: X + X = ...111110 Thus, 2X = X - 1, so X = -1. Therefore algebra is run on a machine (the universe) that is two's-complement.
Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only number such that if you represent it on the {PDP-10} as both an integer and a floating-point number, the bit patterns of the two representations are identical.
Item 176 (Gosper): The "banana phenomenon" was encountered when processing a character string by taking the last 3 letters typed out, searching for a random occurrence of that sequence in the text, taking the letter following that occurrence, typing it out, and iterating. This ensures that every 4-letter string output occurs in the original. The program typed BANANANANANANANA.... We note an ambiguity in the phrase, "the Nth occurrence of." In one sense, there are five 00's in 0000000000; in another, there are nine. The editing program TECO finds five. Thus it finds only the first ANA in BANANA, and is thus obligated to type N next. By Murphy's Law, there is but one NAN, thus forcing A, and thus a loop. An option to find overlapped instances would be useful, although it would require backing up N - 1 characters before seeking the next N-character string.
Note: This last item refers to a {Dissociated Press} implementation. See also {banana problem}.
HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavor.
:hakspek: /hak'speek/ n. A shorthand method of spelling found on many British academic bulletin boards and {talker system}s. Syllables and whole words in a sentence are replaced by single ASCII characters the names of which are phonetically similar or equivalent, while multiple letters are usually dropped. Hence, 'for' becomes '4'; 'two', 'too', and 'to' become '2'; 'ck' becomes 'k'. "Before I see you tomorrow" becomes "b4 i c u 2moro". First appeared in London about 1986, and was probably caused by the slowness of available talker systems, which operated on archaic machines with outdated operating systems and no standard methods of communication. Has become rarer since. See also {talk mode}.
:hammer: vt. Commonwealth hackish syn. for {bang on}.
:hamster: n. 1. [Fairchild] A particularly slick little piece of code that does one thing well; a small, self-contained hack. The image is of a hamster happily spinning its exercise wheel. 2. A tailless mouse; that is, one with an infrared link to a receiver on the machine, as opposed to the conventional cable. 3. [UK] Any item of hardware made by Amstrad, a company famous for its cheap plastic PC-almost-compatibles.
:hand-hacking: n. 1. The practice of translating {hot spot}s from an {HLL} into hand-tuned assembler, as opposed to trying to coerce the compiler into generating better code. Both the term and the practice are becoming uncommon. See {tune}, {bum}, {by hand}; syn. with v. {cruft}. 2. More generally, manual construction or patching of data sets that would normally be generated by a translation utility and interpreted by another program, and aren't really designed to be read or modified by humans.
:handle: [from CB slang] n. An electronic pseudonym; a 'nom de guerre' intended to conceal the user's true identity. Network and BBS handles function as the same sort of simultaneous concealment and display one finds on Citizen's Band radio, from which the term was adopted. Use of grandiose handles is characteristic of {cracker}s, {weenie}s, {spod}s, and other lower forms of network life; true hackers travel on their own reputations rather than invented legendry.
:hand-roll: [from obs. mainstream slang 'hand-rolled' in opposition to 'ready-made', referring to cigarettes] v. To perform a normally automated software installation or configuration process {by hand}; implies that the normal process failed due to bugs in the configurator or was defeated by something exceptional in the local environment. "The worst thing about being a gateway between four different nets is having to hand-roll a new sendmail configuration every time any of them upgrades."
:handshaking: n. Hardware or software activity designed to start or keep two machines or programs in synchronization as they {do protocol}. Often applied to human activity; thus, a hacker might watch two people in conversation nodding their heads to indicate that they have heard each others' points and say "Oh, they're handshaking!". See also {protocol}.
:handwave: [poss. from gestures characteristic of stage magicians] 1. v. To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic. 2. n. The act of handwaving. "Boy, what a handwave!"
If someone starts a sentence with "Clearly..." or "Obviously..." or "It is self-evident that...", it is a good bet he is about to handwave (alternatively, use of these constructions in a sarcastic tone before a paraphrase of someone else's argument suggests that it is a handwave). The theory behind this term is that if you wave your hands at the right moment, the listener may be sufficiently distracted to not notice that what you have said is {bogus}. Failing that, if a listener does object, you might try to dismiss the objection with a wave of your hand.
The use of this word is often accompanied by gestures: both hands up, palms forward, swinging the hands in a vertical plane pivoting at the elbows and/or shoulders (depending on the magnitude of the handwave); alternatively, holding the forearms in one position while rotating the hands at the wrist to make them flutter. In context, the gestures alone can suffice as a remark; if a speaker makes an outrageously unsupported assumption, you might simply wave your hands in this way, as an accusation, far more eloquent than words could express, that his logic is faulty.
:hang: v. 1. To wait for an event that will never occur. "The system is hanging because it can't read from the crashed drive". See {wedged}, {hung}. 2. To wait for some event to occur; to hang around until something happens. "The program displays a menu and then hangs until you type a character." Compare {block}. 3. To attach a peripheral device, esp. in the construction 'hang off': "We're going to hang another tape drive off the file server." Implies a device attached with cables, rather than something that is strictly inside the machine's chassis.
:Hanlon's Razor: prov. A corollary of {Finagle's Law}, similar to Occam's Razor, that reads "Never attribute to malice that which can be adequately explained by stupidity." The derivation of the common title Hanlon's Razor is unknown; a similar epigram has been attributed to William James. Quoted here because it seems to be a particular favorite of hackers, often showing up in {fortune cookie} files and the login banners of BBS systems and commercial networks. This probably reflects the hacker's daily experience of environments created by well-intentioned but short-sighted people.
:happily: adv. Of software, used to emphasize that a program is unaware of some important fact about its environment, either because it has been fooled into believing a lie, or because it doesn't care. The sense of 'happy' here is not that of elation, but rather that of blissful ignorance. "The program continues to run, happily unaware that its output is going to /dev/null."
:haque: /hak/ [USENET] n. Variant spelling of {hack}, used only for the noun form and connoting an {elegant} hack.
:hard boot: n. See {boot}.
:hardcoded: adj. 1. Said of data inserted directly into a program, where it cannot be easily modified, as opposed to data in some {profile}, resource (see {de-rezz} sense 2), or environment variable that a {user} or hacker can easily modify. 2. In C, this is esp. applied to use of a literal instead of a '#define' macro (see {magic number}).
:hardwarily: /hard-weir'*-lee/ adv. In a way pertaining to hardware. "The system is hardwarily unreliable." The adjective 'hardwary' is *not* traditionally used, though it has recently been reported from the U.K. See {softwarily}.
:hardwired: adj. 1. In software, syn. for {hardcoded}. 2. By extension, anything that is not modifiable, especially in the sense of customizable to one's particular needs or tastes.
:has the X nature: [seems to derive from Zen Buddhist koans of the form "Does an X have the Buddha-nature?"] adj. Common hacker construction for 'is an X', used for humorous emphasis. "Anyone who can't even use a program with on-screen help embedded in it truly has the {loser} nature!" See also {the X that can be Y is not the true X}.
:hash bucket: n. A notional receptacle into which more than one thing accessed by the same key or short code might be dropped. When you look up a name in the phone book (for example), you typically hash it by extracting its first letter; the hash buckets are the alphabetically ordered letter sections. This is used as techspeak with respect to code that uses actual hash functions; in jargon, it is used for human associative memory as well. Thus, two things 'in the same hash bucket' may be confused with each other. "If you hash English words only by length, you get too many common grammar words in the first couple of hash buckets." Compare {hash collision}.
:hash collision: [from the technical usage] n. (var. 'hash clash') When used of people, signifies a confusion in associative memory or imagination, especially a persistent one (see {thinko}). True story: One of us [ESR] was once on the phone with a friend about to move out to Berkeley. When asked what he expected Berkeley to be like, the friend replied: "Well, I have this mental picture of naked women throwing Molotov cocktails, but I think that's just a collision in my hash tables." Compare {hash bucket}.
:hat: n. Common (spoken) name for the circumflex ('^', ASCII 1011110) character. See {ASCII} for other synonyms.
:HCF: /H-C-F/ n. Mnemonic for 'Halt and Catch Fire', any of several undocumented and semi-mythical machine instructions with destructive side-effects, supposedly included for test purposes on several well-known architectures going as far back as the IBM 360. The MC6800 microprocessor was the first for which an HCF opcode became widely known. This instruction caused the processor to {toggle} a subset of the bus lines as rapidly as it could; in some configurations this could actually cause lines to burn up.
:heads down: [Sun] adj. Concentrating, usually so heavily and for so long that everything outside the focus area is missed. See also {hack mode} and {larval stage}, although it is not confined to fledgling hackers.
:heartbeat: n. 1. The signal emitted by a Level 2 Ethernet transceiver at the end of every packet to show that the collision-detection circuit is still connected. 2. A periodic synchronization signal used by software or hardware, such as a bus clock or a periodic interrupt. 3. The 'natural' oscillation frequency of a computer's clock crystal, before frequency division down to the machine's clock rate. 4. A signal emitted at regular intervals by software to demonstrate that it is still alive. Sometimes hardware is designed to reboot the machine if it stops hearing a heartbeat. See also {breath-of-life packet}.
:heatseeker: [IBM] n. A customer who can be relied upon to always buy the latest version of an existing product (not quite the same as a member the {lunatic fringe}). A 1992 example of a heatseeker is someone who, owning a 286 PC and Windows 3.0, goes out and buys Windows 3.1 (which offers no worthwhile benefits unless you have a 386). If all customers were heatseekers, vast amounts of money could be made by just fixing the bugs in each release (n) and selling it to them as release (n+1).
:heavy metal: [Cambridge] n. Syn. {big iron}.
:heavy wizardry: n. Code or designs that trade on a particularly intimate knowledge or experience of a particular operating system or language or complex application interface. Distinguished from {deep magic}, which trades more on arcane *theoretical* knowledge. Writing device drivers is heavy wizardry; so is interfacing to {X} (sense 2) without a toolkit. Esp. found in comments similar to "Heavy wizardry begins here ...". Compare {voodoo programming}.
:heavyweight: adj. High-overhead; {baroque}; code-intensive; featureful, but costly. Esp. used of communication protocols, language designs, and any sort of implementation in which maximum generality and/or ease of implementation has been pushed at the expense of mundane considerations such as speed, memory utilization, and startup time. {EMACS} is a heavyweight editor; {X} is an *extremely* heavyweight window system. This term isn't pejorative, but one man's heavyweight is another's {elephantine} and a third's {monstrosity}. Oppose 'lightweight'. Usage: now borders on techspeak, especially in the compound 'heavyweight process'.
:heisenbug: /hi:'zen-buhg/ [from Heisenberg's Uncertainty Principle in quantum physics] n. A bug that disappears or alters its behavior when one attempts to probe or isolate it. Antonym of {Bohr bug}; see also {mandelbug}, {schroedinbug}. In C, nine out of ten heisenbugs result from either {fandango on core} phenomena (esp. lossage related to corruption of the malloc {arena}) or errors that {smash the stack}.
:Helen Keller mode: n. 1. State of a hardware or software system that is deaf, dumb, and blind, i.e., accepting no input and generating no output, usually due to an infinite loop or some other excursion into {deep space}. (Unfair to the real Helen Keller, whose success at learning speech was triumphant.) See also {go flatline}, {catatonic}. 2. On IBM PCs under DOS, refers to a specific failure mode in which a screen saver has kicked in over an {ill-behaved} application which bypasses the interrupts the screen saver watches for activity. Your choices are to try to get from the program's current state through a successful save-and-exit without being able to see what you're doing, or re-boot the machine. This isn't (strictly speaking) a crash.
:hello, sailor!: interj. Occasional West Coast equivalent of {hello, world}; seems to have originated at SAIL, later associated with the game {Zork} (which also included "hello, aviator" and "hello, implementor"). Originally from the traditional hooker's greeting to a swabbie fresh off the boat, of course.
:hello, wall!: excl. See {wall}.
:hello, world: interj. 1. The canonical minimal test message in the C/UNIX universe. 2. Any of the minimal programs that emit this message. Traditionally, the first program a C coder is supposed to write in a new environment is one that just prints "hello, world" to standard output (and indeed it is the first example program in {K&R}). Environments that generate an unreasonably large executable for this trivial test or which require a {hairy} compiler-linker invocation to generate it are considered to {lose} (see {X}). 3. Greeting uttered by a hacker making an entrance or requesting information from anyone present. "Hello, world! Is the {VAX} back up yet?"
:hex: n. 1. Short for {{hexadecimal}}, base 16. 2. A 6-pack of anything (compare {quad}, sense 2). Neither usage has anything to do with {magic} or {black art}, though the pun is appreciated and occasionally used by hackers. True story: As a joke, some hackers once offered some surplus ICs for sale to be worn as protective amulets against hostile magic. The chips were, of course, hex inverters.
:hexadecimal:: n. Base 16. Coined in the early 1960s to replace earlier 'sexadecimal', which was too racy and amusing for stuffy IBM, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take 'binary' to be paradigmatic, the most etymologically correct term for base 10, for example, is 'denary', which comes from 'deni' (ten at a time, ten each), a Latin 'distributive' number; the corresponding term for base-16 would be something like 'sendenary'. 'Decimal' is from an ordinal number; the corresponding prefix for 6 would imply something like 'sextidecimal'. The 'sexa-' prefix is Latin but incorrect in this context, and 'hexa-' is Greek. The word 'octal' is similarly incorrect; a correct form would be 'octaval' (to go with decimal), or 'octonary' (to go with binary). If anyone ever implements a base-3 computer, computer scientists will be faced with the unprecedented dilemma of a choice between two *correct* forms; both 'ternary' and 'trinary' have a claim to this throne.
:hexit: /hek'sit/ n. A hexadecimal digit (0—9, and A—F or a—f). Used by people who claim that there are only *ten* digits, dammit; sixteen-fingered human beings are rather rare, despite what some keyboard designs might seem to imply (see {space-cadet keyboard}).
:HHOK: See {ha ha only serious}.
:HHOS: See {ha ha only serious}.
:hidden flag: [scientific computation] n. An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. Liberal use of hidden flags can make a program very hard to debug and understand.
:high bit: [from 'high-order bit'] n. 1. The most significant bit in a byte. 2. By extension, the most significant part of something other than a data byte: "Spare me the whole {saga}, just give me the high bit." See also {meta bit}, {hobbit}, {dread high-bit disease}, and compare the mainstream slang 'bottom line'.
:high moby: /hi:' mohb'ee/ n. The high half of a 512K {PDP-10}'s physical address space; the other half was of course the low moby. This usage has been generalized in a way that has outlasted the {PDP-10}; for example, at the 1990 Washington D.C. Area Science Fiction Conclave (Disclave), when a miscommunication resulted in two separate wakes being held in commemoration of the shutdown of MIT's last {{ITS}} machines, the one on the upper floor was dubbed the 'high moby' and the other the 'low moby'. All parties involved {grok}ked this instantly. See {moby}.
:highly: [scientific computation] adv. The preferred modifier for overstating an understatement. As in: 'highly nonoptimal', the worst possible way to do something; 'highly nontrivial', either impossible or requiring a major research project; 'highly nonlinear', completely erratic and unpredictable; 'highly nontechnical', drivel written for {luser}s, oversimplified to the point of being misleading or incorrect (compare {drool-proof paper}). In other computing cultures, postfixing of {in the extreme} might be preferred.
:hing: // [IRC] n. Fortuitous typo for 'hint', now in wide intentional use among players of {initgame}. Compare {newsfroup}, {filk}.
:hirsute: adj. Occasionally used humorously as a synonym for {hairy}.
:HLL: /H-L-L/ n. [High-Level Language (as opposed to assembler)] Found primarily in email and news rather than speech. Rarely, the variants 'VHLL' and 'MLL' are found. VHLL stands for 'Very-High-Level Language' and is used to describe a {bondage-and-discipline language} that the speaker happens to like; Prolog and Backus's FP are often called VHLLs. 'MLL' stands for 'Medium-Level Language' and is sometimes used half-jokingly to describe {C}, alluding to its 'structured-assembler' image. See also {languages of choice}.
:hobbit: n. 1. The High Order Bit of a byte; same as the {meta bit} or {high bit}. 2. The non-ITS name of vad@ai.mit.edu (*Hobbit*), master of lasers.
:hog: n.,vt. 1. Favored term to describe programs or hardware that seem to eat far more than their share of a system's resources, esp. those which noticeably degrade interactive response. *Not* used of programs that are simply extremely large or complex or that are merely painfully slow themselves (see {pig, run like a}). More often than not encountered in qualified forms, e.g., 'memory hog', 'core hog', 'hog the processor', 'hog the disk'. "A controller that never gives up the I/O bus gets killed after the bus-hog timer expires." 2. Also said of *people* who use more than their fair share of resources (particularly disk, where it seems that 10% of the people use 90% of the disk, no matter how big the disk is or how many people use it). Of course, once disk hogs fill up one filesystem, they typically find some other new one to infect, claiming to the sysadmin that they have an important new project to complete.
:holy wars: [from {USENET}, but may predate it] n. {flame war}s over {religious issues}. The paper by Danny Cohen that popularized the terms {big-endian} and {little-endian} in connection with the LSB-first/MSB-first controversy was entitled "On Holy Wars and a Plea for Peace". Other perennial Holy Wars have included {EMACS} vs. {vi}, my personal computer vs. everyone else's personal computer, {{ITS}} vs. {{UNIX}}, {{UNIX}} vs. {VMS}, {BSD} UNIX vs. {USG UNIX}, {C} vs. {{Pascal}}, {C} vs. {LISP}, etc., ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy wars most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. See also {theology}.
:home box: n. A hacker's personal machine, especially one he or she owns. "Yeah? Well, *my* home box runs a full 4.2 BSD, so there!"
:hook: n. A software or hardware feature included in order to simplify later additions or changes by a user. For example, a simple program that prints numbers might always print them in base 10, but a more flexible version would let a variable determine what base to use; setting the variable to 5 would make the program print numbers in base 5. The variable is a simple hook. An even more flexible program might examine the variable and treat a value of 16 or less as the base to use, but treat any other number as the address of a user-supplied routine for printing a number. This is a {hairy} but powerful hook; one can then write a routine to print numbers as Roman numerals, say, or as Hebrew characters, and plug it into the program through the hook. Often the difference between a good program and a superb one is that the latter has useful hooks in judiciously chosen places. Both may do the original job about equally well, but the one with the hooks is much more flexible for future expansion of capabilities ({EMACS}, for example, is *all* hooks). The term 'user exit' is synonymous but much more formal and less hackish.
:hop: n. One file transmission in a series required to get a file from point A to point B on a store-and-forward network. On such networks (including {UUCPNET} and {FidoNet}), the important inter-machine metric is the number of hops in the shortest path between them, rather than their geographical separation. See {bang path}.
:hose: 1. vt. To make non-functional or greatly degraded in performance. "That big ray-tracing program really hoses the system." See {hosed}. 2. n. A narrow channel through which data flows under pressure. Generally denotes data paths that represent performance bottlenecks. 3. n. Cabling, especially thick Ethernet cable. This is sometimes called 'bit hose' or 'hosery' (play on 'hosiery') or 'etherhose'. See also {washing machine}.
:hosed: adj. Same as {down}. Used primarily by UNIX hackers. Humorous: also implies a condition thought to be relatively easy to reverse. Probably derived from the Canadian slang 'hoser' popularized by the Bob and Doug Mackenzie skits on SCTV. See {hose}. It is also widely used of people in the mainstream sense of 'in an extremely unfortunate situation'.
Once upon a time, a Cray that had been experiencing periodic difficulties crashed, and it was announced to have been hosed. It was discovered that the crash was due to the disconnection of some coolant hoses. The problem was corrected, and users were then assured that everything was OK because the system had been rehosed. See also {dehose}.
:hot spot: n. 1. [primarily used by C/UNIX programmers, but spreading] It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; if one were to graph instruction visits versus code addresses, one would typically see a few huge spikes amidst a lot of low-level noise. Such spikes are called 'hot spots' and are good candidates for heavy optimization or {hand-hacking}. The term is especially used of tight loops and recursions in the code's central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations. See {tune}, {bum}, {hand-hacking}. 2. The active location of a cursor on a bit-map display. "Put the mouse's hot spot on the 'ON' widget and click the left button." 3. A screen region that is sensitive to mouse clicks, which trigger some action. Hypertext help screens are an example, in which a hot spot exists in the vicinity of any word for which additional material is available. 4. In a massively parallel computer with shared memory, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a {busy-wait} on the same lock).
:house wizard: [prob. from ad-agency lingo, 'house freak'] n. A hacker occupying a technical-specialist, R&D, or systems position at a commercial shop. A really effective house wizard can have influence out of all proportion to his/her ostensible rank and still not have to wear a suit. Used esp. of UNIX wizards. The term 'house guru' is equivalent.
:HP-SUX: /H-P suhks/ n. Unflattering hackerism for HP-UX, Hewlett-Packard's UNIX port, which eatures some truly unique bogosities in the filesystem internals and elsewhere (these occasionally create portability problems). HP-UX is often referred to as 'hockey-pux' inside HP, and one respondent claims that the proper pronunciation is /H-P ukkkhhhh/ as though one were about to spit. Another such alternate spelling and pronunciation is "H-PUX" /H-puhks/. Hackers at HP/Apollo (the former Apollo Computers which was swallowed by HP in 1989) have been heard to complain that Mr. Packard should have pushed to have his name first, if for no other reason than the greater eloquence of the resulting acronym. Compare {AIDX}, {buglix}. See also {Nominal Semidestructor}, {Telerat}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {terminak}.
:huff: v. To compress data using a Huffman code. Various programs that use such methods have been called 'HUFF' or some variant thereof. Oppose {puff}. Compare {crunch}, {compress}.
:humma: // excl. A filler word used on various 'chat' and 'talk' programs when you had nothing to say but felt that it was important to say something. The word apparently originated (at least with this definition) on the MECC Timeshare System (MTS, a now-defunct educational time-sharing system running in Minnesota during the 1970s and the early 1980s) but was later sighted on early UNIX systems.
:Humor, Hacker:: n. A distinctive style of shared intellectual humor found among hackers, having the following marked characteristics:
1. Fascination with form-vs.-content jokes, paradoxes, and humor having to do with confusion of metalevels (see {meta}). One way to make a hacker laugh: hold a red index card in front of him/her with "GREEN" written on it, or vice-versa (note, however, that this is funny only the first time).
2. Elaborate deadpan parodies of large intellectual constructs, such as specifications (see {write-only memory}), standards documents, language descriptions (see {INTERCAL}), and even entire scientific theories (see {quantum bogodynamics}, {computron}).
3. Jokes that involve screwily precise reasoning from bizarre, ludicrous, or just grossly counter-intuitive premises.
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 {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}}.
:hung: [from 'hung up'] adj. 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/ [perhaps related to slang 'humongous'] adj. 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, often inaccessible because it is not even mapped in. "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.
= 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.
:i14y: // n. Abbrev. for 'interoperability', with the '14' replacing fourteen letters. Used in the {X} (windows) community. Refers to portability and compatibility of data formats (even binary ones) between different programs or implementations of the same program on different machines.
:i18n: // n. Abbrev. for 'internationali{z,s}ation', with the 18 replacing 18 letters. Used in the {X} (windows) community.
:IBM: /I-B-M/ Inferior But Marketable; It's Better Manually; Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel Movement; and a near-{infinite} number of even less complimentary expansions, including 'International Business Machines'. See {TLA}. These abbreviations illustrate the considerable antipathy most hackers have long felt toward the 'industry leader' (see {fear and loathing}).
What galls hackers about most IBM machines above the PC level isn't so much that they are underpowered and overpriced (though that does count against them), but that the designs are incredibly archaic, {crufty}, and {elephantine} ... and you can't *fix* them —- source code is locked up tight, and programming tools are expensive, hard to find, and bletcherous to use once you've found them. With the release of the UNIX-based RIOS family this may have begun to change —- but then, we thought that when the PC-RT came out, too.
In the spirit of universal peace and brotherhood, this lexicon now includes a number of entries attributed to 'IBM'; these derive from some rampantly unofficial jargon lists circulated within IBM's own beleaguered hacker underground.
:IBM discount: n. A price increase. Outside IBM, this derives from the common perception that IBM products are generally overpriced (see {clone}); inside, it is said to spring from a belief that large numbers of IBM employees living in an area cause prices to rise.
:ICBM address: n. (Also 'missile address') The form used to register a site with the USENET mapping project includes a blank for longitude and latitude, preferably to seconds-of-arc accuracy. This is actually used for generating geographically-correct maps of USENET links on a plotter; however, it has become traditional to refer to this as one's 'ICBM address' or 'missile address', and many people include it in their {sig block} with that name.
:ice: [coined by USENETter Tom Maddox, popularized by William Gibson's cyberpunk SF novels: a contrived acronym for 'Intrusion Countermeasure Electronics'] Security software (in Gibson's novels, software that responds to intrusion by attempting to literally kill the intruder). Also, 'icebreaker': a program designed for cracking security on a system. Neither term is in serious use yet as of mid-1991, but many hackers find the metaphor attractive, and each may develop a denotation in the future.
:idempotent: [from mathematical techspeak] adj. Acting exactly once. This term is often used with respect to {C} header files, which contain common definitions and declarations to be included by several source files. If a header file is ever included twice during the same compilation (perhaps due to nested #include files), compilation errors can result unless the header file has protected itself against multiple inclusion; a header file so protected is said to be idempotent. The term can also be used to describe an initialization subroutine which is arranged to perform some critical action exactly once, even if the routine is called several times.
:If you want X, you know where to find it.: There is a legend that Dennis Ritchie, inventor of {C}, once responded to demands for features resembling those of what at the time was a much more popular language by observing "If you want PL/1, you know where to find it." Ever since, this has been hackish standard form for fending off requests to alter a new design to mimic some older (and, by implication, inferior and {baroque}) one. The case X = {Pascal} manifests semi-regularly on USENET's comp.lang.c newsgroup. Indeed, the case X = X has been reported in discussions of graphics software (see {X}).
:ifdef out: /if'def owt/ v. Syn. for {condition out}, specific to {C}.
:ill-behaved: adj. 1. [numerical analysis] Said of an algorithm or computational method that tends to blow up because of accumulated roundoff error or poor convergence properties. 2. Software that bypasses the defined {OS} interfaces to do things (like screen, keyboard, and disk I/O) itself, often in a way that depends on the hardware of the machine it is running on or which is nonportable or incompatible with other pieces of software. In the IBM PC/MS-DOS world, there is a folk theorem (nearly true) to the effect that (owing to gross inadequacies and performance penalties in the OS interface) all interesting applications are ill-behaved. See also {bare metal}. Oppose {well-behaved}, compare {PC-ism}. See {mess-dos}.
:IMHO: // [from SF fandom via USENET; abbreviation for 'In My Humble Opinion'] "IMHO, mixed-case C names should be avoided, as mistyping something in the wrong case can cause hard-to-detect errors —- and they look too Pascalish anyhow." Also seen in variant forms such as IMNSHO (In My Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).
:Imminent Death Of The Net Predicted!: [USENET] prov. Since USENET first got off the ground in 1980-81, it has grown exponentially, approximately doubling in size every year. On the other hand, most people feel the {signal-to-noise ratio} of USENET has dropped steadily. These trends led, as far back as mid-1983, to predictions of the imminent collapse (or death) of the net. Ten years and numerous doublings later, enough of these gloomy prognostications have been confounded that the phrase "Imminent Death Of The Net Predicted!" has become a running joke, hauled out any time someone grumbles about the {S/N ratio} or the huge and steadily increasing volume.
:in the extreme: adj. A preferred superlative suffix for many hackish terms. See, for example, 'obscure in the extreme' under {obscure}, and compare {highly}.
:incantation: n. Any particularly arbitrary or obscure command that one must mutter at a system to attain a desired result. Not used of passwords or other explicit security features. Especially used of tricks that are so poorly documented they must be learned from a {wizard}. "This compiler normally locates initialized data in the data segment, but if you {mutter} the right incantation they will be forced into text space."
:include: vt. [USENET] 1. To duplicate a portion (or whole) of another's message (typically with attribution to the source) in a reply or followup, for clarifying the context of one's response. See the the discussion of inclusion styles under "Hacker Writing Style". 2. [from {C}] '#include ' has appeared in {sig block}s to refer to a notional 'standard {disclaimer} file'.
:include war: n. Excessive multi-leveled including within a discussion {thread}, a practice that tends to annoy readers. In a forum with high-traffic newsgroups, such as USENET, this can lead to {flame}s and the urge to start a {kill file}.
:indent style: [C programmers] n. The rules one uses to indent code in a readable fashion; a subject of {holy wars}. There are four major C indent styles, described below; all have the aim of making it easier for the reader to visually track the scope of control constructs. The significant variable is the placement of '{' and '}' with respect to the statement(s) they enclose and the guard or controlling statement ('if', 'else', 'for', 'while', or 'do') on the block, if any.
'K&R style' —- Named after Kernighan & Ritchie, because the examples in {K&R} are formatted this way. Also called 'kernel style' because the UNIX kernel is written in it, and the 'One True Brace Style' (abbrev. 1TBS) by its partisans. The basic indent shown here is eight spaces (or one tab) per level; four are occasionally seen, but are much less common.
if (cond) { }
'Allman style' —- Named for Eric Allman, a Berkeley hacker who wrote a lot of the BSD utilities in it (it is sometimes called 'BSD style'). Resembles normal indent style in Pascal and Algol. Basic indent per level shown here is eight spaces, but four is just as common (esp. in C+ code).
if (cond) { }
'Whitesmiths style' —- popularized by the examples that came with Whitesmiths C, an early commercial C compiler. Basic indent per level shown here is eight spaces, but four is occasionally seen.
if (cond) { }
'GNU style' —- Used throughout GNU EMACS and the Free Software Foundation code, and just about nowhere else. Indents are always four spaces per level, with '{' and '}' halfway between the outer and inner indent levels.
if (cond) { }
Surveys have shown the Allman and Whitesmiths styles to be the most common, with about equal mind shares. K&R/1TBS used to be nearly universal, but is now much less common (the opening brace tends to get lost against the right paren of the guard part in an 'if' or 'while', which is a {Bad Thing}). Defenders of 1TBS argue that any putative gain in readability is less important than their style's relative economy with vertical space, which enables one to see more code on one's screen at once. Doubtless these issues will continue to be the subject of {holy wars}.
:index: n. See {coefficient of X}.
:infant mortality: n. It is common lore among hackers (and in the electronics industry at large; this term is possibly techspeak by now) that the chances of sudden hardware failure drop off exponentially with a machine's time since power-up (that is, until the relatively distant time at which enough mechanical wear in I/O devices and thermal-cycling stress in components has accumulated for the machine to start going senile). Up to half of all chip and wire failures happen within a new system's first few weeks; such failures are often referred to as 'infant mortality' problems (or, occasionally, as 'sudden infant death syndrome'). See {bathtub curve}, {burn-in period}.
:infinite: adj. Consisting of a large number of objects; extreme. Used very loosely as in: "This program produces infinite garbage." "He is an infinite loser." The word most likely to follow 'infinite', though, is {hair} (it has been pointed out that fractals are an excellent example of infinite hair). These uses are abuses of the word's mathematical meaning. The term 'semi-infinite', denoting an immoderately large amount of some resource, is also heard. "This compiler is taking a semi-infinite amount of time to optimize my program." See also {semi}.
:infinite loop: n. One that never terminates (that is, the machine {spin}s or {buzz}es forever and goes {catatonic}). There is a standard joke that has been made about each generation's exemplar of the ultra-fast machine: "The Cray-3 is so fast it can execute an infinite loop in under 2 seconds!"
:infinity: n. 1. The largest value that can be represented in a particular type of variable (register, memory location, data type, whatever). 2. 'minus infinity': The smallest such value, not necessarily or even usually the simple negation of plus infinity. In N-bit twos-complement arithmetic, infinity is 2^(N-1) - 1 but minus infinity is - (2^(N-1)), not -(2^(N-1) - 1). Note also that this is different from "time T equals minus infinity", which is closer to a mathematician's usage of infinity.
:initgame: /in-it'gaym/ [IRC] n. An {IRC} version of the venerable trivia game "20 questions", in which one user changes his {nick} to the initials of a famous person or other named entity, and the others on the channel ask yes or no questions, with the one to guess the person getting to be "it" next. As a courtesy, the one picking the initials starts by providing a 4-letter hint of the form sex, nationality, life-status, reality-status. For example, MAAR means "Male, American, Alive, Real" (as opposed to "fictional"). Initgame can be surprisingly addictive. See also {hing}.
:insanely great: adj. [Mac community, from Steve Jobs; also BSD UNIX people via Bill Joy] Something so incredibly {elegant} that it is imaginable only to someone possessing the most puissant of {hacker}-natures.
:INTERCAL: /in't*r-kal/ [said by the authors to stand for 'Compiler Language With No Pronounceable Acronym'] n. A computer language designed by Don Woods and James Lyon in 1972. INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. An excerpt from the INTERCAL Reference Manual will make the style of the language clear:
It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:
DO :1 <- #0$#256
any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course have happened to turn up, as bosses are wont to do. The effect would be no less devastating for the programmer having been correct.
INTERCAL has many other peculiar features designed to make it even more unspeakable. The Woods-Lyons implementation was actually used by many (well, at least several) people at Princeton. The language has been recently reimplemented as C-INTERCAL and is consequently enjoying an unprecedented level of unpopularity; there is even an alt.lang.intercal newsgroup devoted to the study and ... appreciation of the language on USENET.
:interesting: adj. In hacker parlance, this word has strong connotations of 'annoying', or 'difficult', or both. Hackers relish a challenge, and enjoy wringing all the irony possible out of the ancient Chinese curse "May you live in interesting times". Oppose {trivial}, {uninteresting}.
:Internet address:: n. 1. [techspeak] An absolute network address of the form foo@bar.baz, where foo is a user name, bar is a {sitename}, and baz is a 'domain' name, possibly including periods itself. Contrast with {bang path}; see also {network, the} and {network address}. All Internet machines and most UUCP sites can now resolve these addresses, thanks to a large amount of behind-the-scenes magic and PD software written since 1980 or so. See also {bang path}, {domainist}. 2. More loosely, any network address reachable through Internet; this includes {bang path} addresses and some internal corporate and government networks.
Reading Internet addresses is something of an art. Here are the four most important top-level functional Internet domains followed by a selection of geographical domains:
com commercial organizations edu educational institutions gov U.S. government civilian sites mil U.S. military sites
Note that most of the sites in the com and edu domains are in the U.S. or Canada.
us sites in the U.S. outside the functional domains su sites in the ex-Soviet Union (see {kremvax}). uk sites in the United Kingdom
Within the us domain, there are subdomains for the fifty states, each generally with a name identical to the state's postal abbreviation. Within the uk domain, there is an ac subdomain for academic sites and a co domain for commercial ones. Other top-level domains may be divided up in similar ways.
:interrupt: 1. [techspeak] n. On a computer, an event that interrupts normal processing and temporarily diverts flow-of-control through an "interrupt handler" routine. See also {trap}. 2. interj. A request for attention from a hacker. Often explicitly spoken. "Interrupt —- have you seen Joe recently?" See {priority interrupt}. 3. Under MS-DOS, the term 'interrupt' is nearly synonymous with 'system call', because the OS and BIOS routines are both called using the INT instruction (see {{interrupt list, the}}) and because programmers so often have to bypass the OS (going directly to a BIOS interrupt) to get reasonable performance.
:interrupt list, the:: [MS-DOS] n. The list of all known software interrupt calls (both documented and undocumented) for IBM PCs and compatibles, maintained and made available for free redistribution by Ralf Brown . As of early 1991, it had grown to approximately a megabyte in length.
:interrupts locked out: adj. When someone is ignoring you. In a restaurant, after several fruitless attempts to get the waitress's attention, a hacker might well observe "She must have interrupts locked out". The synonym 'interrupts disabled' is also common. Variations abound; "to have one's interrupt mask bit set" and "interrupts masked out" is also heard. See also {spl}.
:IRC: /I-R-C/ [Internet Relay Chat] n. A world-wide "party line" network that allows one to converse with others in real time. IRC is structured as a network of Internet servers, each of which accepts connections from client programs, one per user. The IRC community and the {USENET} and {MUD} communities overlap to some extent, including both hackers and regular folks who have discovered the wonders of computer networks. Some USENET jargon has been adopted on IRC, as have some conventions such as {emoticon}s. There is also a vigorous native jargon, represented in this lexicon by entries marked '[IRC]'. See also {talk mode}. :iron: n. Hardware, especially older and larger hardware of {mainframe} class with big metal cabinets housing relatively low-density electronics (but the term is also used of modern supercomputers). Often in the phrase {big iron}. Oppose {silicon}. See also {dinosaur}.
:Iron Age: n. In the history of computing, 1961—1971 —- the formative era of commercial {mainframe} technology, when {big iron} {dinosaur}s ruled the earth. These began with the delivery of the first PDP-1, coincided with the dominance of ferrite {core}, and ended with the introduction of the first commercial microprocessor (the Intel 4004) in 1971. See also {Stone Age}; compare {elder days}.
:iron box: [UNIX/Internet] n. A special environment set up to trap a {cracker} logging in over remote connections long enough to be traced. May include a modified {shell} restricting the cracker's movements in unobvious ways, and 'bait' files designed to keep him interested and logged on. See also {back door}, {firewall machine}, {Venus flytrap}, and Clifford Stoll's account in '{The Cuckoo's Egg}' of how he made and used one (see the Bibliography in appendix C). Compare {padded cell}.
:ironmonger: [IBM] n. Derogatory. A hardware specialist. Compare {sandbender}, {polygon pusher}.
:ITS:: /I-T-S/ n. 1. Incompatible Time-sharing System, an influential but highly idiosyncratic operating system written for PDP-6s and PDP-10s at MIT and long used at the MIT AI Lab. Much AI-hacker jargon derives from ITS folklore, and to have been 'an ITS hacker' qualifies one instantly as an old-timer of the most venerable sort. ITS pioneered many important innovations, including transparent file sharing between machines and terminal-independent I/O. After about 1982, most actual work was shifted to newer machines, with the remaining ITS boxes run essentially as a hobby and service to the hacker community. The shutdown of the lab's last ITS machine in May 1990 marked the end of an era and sent old-time hackers into mourning nationwide (see {high moby}). The Royal Institute of Technology in Sweden is maintaining one 'live' ITS site at its computer museum (right next to the only TOPS-10 system still on the Internet), so ITS is still alleged to hold the record for OS in longest continuous use (however, {{WAITS}} is a credible rival for this palm). See {appendix A}. 2. A mythical image of operating-system perfection worshiped by a bizarre, fervent retro-cult of old-time hackers and ex-users (see {troglodyte}, sense 2). ITS worshipers manage somehow to continue believing that an OS maintained by assembly-language hand-hacking that supported only monocase 6-character filenames in one directory per account remains superior to today's state of commercial art (their venom against UNIX is particularly intense). See also {holy wars}, {Weenix}.
:IWBNI: // [abbreviation] 'It Would Be Nice If'. Compare {WIBNI}.
:IYFEG: // [USENET] Abbreviation for 'Insert Your Favorite Ethnic Group'. Used as a meta-name when telling racist jokes on the net to avoid offending anyone. See {JEDR}.
= J = =====
:J. Random: /J rand'm/ n. [generalized from {J. Random Hacker}] Arbitrary; ordinary; any one; any old. 'J. Random' is often prefixed to a noun to make a name out of it. It means roughly 'some particular' or 'any specific one'. "Would you let J. Random Loser marry your daughter?" The most common uses are 'J. Random Hacker', 'J. Random Loser', and 'J. Random Nerd' ("Should J. Random Loser be allowed to {gun} down other people?"), but it can be used simply as an elaborate version of {random} in any sense.
:J. Random Hacker: [MIT] /J rand'm hak'r/ n. A mythical figure like the Unknown Soldier; the archetypal hacker nerd. See {random}, {Suzie COBOL}. This may originally have been inspired by 'J. Fred Muggs', a show-biz chimpanzee whose name was a household word back in the early days of {TMRC}, and was probably influenced by 'J. Presper Eckert' (one of the co-inventors of the digital computer).
:jack in: v. To log on to a machine or connect to a network or {BBS}, esp. for purposes of entering a {virtual reality} simulation such as a {MUD} or {IRC} (leaving is "jacking out"). This term derives from {cyberpunk} SF, in which it was used for the act of plugging an electrode set into neural sockets in order to interface the brain directly to a virtual reality. It's primarily used by MUD & IRC fans and younger hackers on BBS systems.
:jaggies: /jag'eez/ n. The 'stairstep' effect observable when an edge (esp. a linear edge of very shallow or steep slope) is rendered on a pixel device (as opposed to a vector display).
:JCL: /J-C-L/ n. 1. IBM's supremely {rude} Job Control Language. JCL is the script language used to control the execution of programs in IBM's batch systems. JCL has a very {fascist} syntax, and some versions will, for example, {barf} if two spaces appear where it expects one. Most programmers confronted with JCL simply copy a working file (or card deck), changing the file names. Someone who actually understands and generates unique JCL is regarded with the mixed respect one gives to someone who memorizes the phone book. It is reported that hackers at IBM itself sometimes sing "Who's the breeder of the crud that mangles you and me? I-B-M, J-C-L, M-o-u-s-e" to the tune of the "Mickey Mouse Club" theme to express their opinion of the beast. 2. A comparative for any very {rude} software that a hacker is expected to use. "That's as bad as JCL." As with {COBOL}, JCL is often used as an archetype of ugliness even by those who haven't experienced it. See also {IBM}, {fear and loathing}.
:JEDR: // n. Synonymous with {IYFEG}. At one time, people in the USENET newsgroup rec.humor.funny tended to use 'JEDR' instead of {IYFEG} or ''; this stemmed from a public attempt to suppress the group once made by a loser with initials JEDR after he was offended by an ethnic joke posted there. (The practice was {retcon}ned by the expanding these initials as 'Joke Ethnic/Denomination/Race'.) After much sound and fury JEDR faded away; this term appears to be doing likewise. JEDR's only permanent effect on the net.culture was to discredit 'sensitivity' arguments for censorship so thoroughly that more recent attempts to raise them have met with immediate and near-universal rejection.
:JFCL: /jif'kl/, /jaf'kl/, /j*-fi'kl/ vt., obs. (alt. 'jfcl') To cancel or annul something. "Why don't you jfcl that out?" The fastest do-nothing instruction on older models of the PDP-10 happened to be JFCL, which stands for "Jump if Flag set and then CLear the flag"; this does something useful, but is a very fast no-operation if no flag is specified. Geoff Goodfellow, one of the jargon-1 co-authors, had JFCL on the license plate of his BMW for years. Usage: rare except among old-time PDP-10 hackers.
:jiffy: n. 1. The duration of one tick of the system clock on the computer (see {tick}). Often one AC cycle time (1/60 second in the U.S. and Canada, 1/50 most other places), but more recently 1/100 sec has become common. "The swapper runs every 6 jiffies" means that the virtual memory management routine is executed once for every 6 ticks of the clock, or about ten times a second. 2. Confusingly, the term is sometimes also used for a 1-millisecond {wall time} interval. Even more confusingly, physicists semi-jokingly use 'jiffy' to mean the time required for light to travel one foot in a vacuum, which turns out to be close to one *nanosecond*. 3. Indeterminate time from a few seconds to forever. "I'll do it in a jiffy" means certainly not now and possibly never. This is a bit contrary to the more widespread use of the word. Oppose {nano}. See also {Real Soon Now}.
:job security: n. When some piece of code is written in a particularly {obscure} fashion, and no good reason (such as time or space optimization) can be discovered, it is often said that the programmer was attempting to increase his job security (i.e., by making himself indispensable for maintenance). This sour joke seldom has to be said in full; if two hackers are looking over some code together and one points at a section and says "job security", the other one may just nod.
:jock: n. 1. A programmer who is characterized by large and somewhat brute-force programs. See {brute force}. 2. When modified by another noun, describes a specialist in some particular computing area. The compounds 'compiler jock' and 'systems jock' seem to be the best-established examples of this.
:joe code: /joh' kohd'/ n. 1. Code that is overly {tense} and unmaintainable. "{Perl} may be a handy program, but if you look at the source, it's complete joe code." 2. Badly written, possibly buggy code.
Correspondents wishing to remain anonymous have fingered a particular Joe at the Lawrence Berkeley Laboratory and observed that usage has drifted slightly; the original sobriquet 'Joe code' was intended in sense 1.
:jolix: n. /johl'liks/ n.,adj. 386BSD, the freeware port of the BSD Net/2 release to the Intel i386 architecture by Bill Jolitz and friends. Used to differentiate from BSDI's port based on the same source tape, which is called BSD/386. See {BSD}.
:JR[LN]: /J-R-L/, /J-R-N/ n. The names JRL and JRN were sometimes used as example names when discussing a kind of user ID used under {{TOPS-10}} and {WAITS}; they were understood to be the initials of (fictitious) programmers named 'J. Random Loser' and 'J. Random Nerd' (see {J. Random}). For example, if one said "To log in, type log one comma jay are en" (that is, "log 1,JRN"), the listener would have understood that he should use his own computer ID in place of 'JRN'.
:JRST: /jerst/ [based on the PDP-10 jump instruction] v.,obs. To suddenly change subjects, with no intention of returning to the previous topic. Usage: rather rare except among PDP-10 diehards, and considered silly. See also {AOS}.
:juggling eggs: vi. Keeping a lot of {state} in your head while modifying a program. "Don't bother me now, I'm juggling eggs", means that an interrupt is likely to result in the program's being scrambled. In the classic first-contact SF novel 'The Mote in God's Eye', by Larry Niven and Jerry Pournelle, an alien describes a very difficult task by saying "We juggle priceless eggs in variable gravity." That is a very hackish use of language. See also {hack mode}.
:jump off into never-never land: [from J. M. Barrie's 'Peter Pan'] v. Same as {branch to Fishkill}, but more common in technical cultures associated with non-IBM computers that use the term 'jump' rather than 'branch'. Compare {hyperspace}.
:jupiter: [IRC] vt. To kill an {IRC} {robot} or user, and then take its place by adopting its {nick} so that it cannot reconnect. Named after a particular IRC user who did this to NickServ, the robot in charge of preventing people from inadvertently using a nick claimed by another user.
= K = =====
:K: /K/ [from {kilo-}] n. A kilobyte. This is used both as a spoken word and a written suffix (like {meg} and {gig} for megabyte and gigabyte). See {{quantifiers}}.
:K&R: [Kernighan and Ritchie] n. Brian Kernighan and Dennis Ritchie's book 'The C Programming Language', esp. the classic and influential first edition (Prentice-Hall 1978; ISBN 0-113-110163-3). Syn. {White Book}, {Old Testament}. See also {New Testament}.
:K-line: [IRC] v. To ban a particular person from an {IRC} server, usually for grossly bad {netiquette}. Comes from the 'K' code used to accomplish this in IRC's configuration file. :kahuna: /k*-hoo'nuh/ [IBM: from the Hawaiian title for a shaman] n. Synonym for {wizard}, {guru}.
:kamikaze packet: n. The 'official' jargon for what is more commonly called a {Christmas tree packet}. RFC-1025, 'TCP and IP Bake Off' says:
10 points for correctly being able to process a "Kamikaze" packet (AKA nastygram, christmas tree packet, lamp test segment, et al.). That is, correctly handle a segment with the maximum combination of features at once (e.g., a SYN URG PUSH FIN segment with options and data).
See also {Chernobyl packet}.
:kangaroo code: n. Syn. {spaghetti code}.
:ken: /ken/ n. 1. [UNIX] Ken Thompson, principal inventor of UNIX. In the early days he used to hand-cut distribution tapes, often with a note that read "Love, ken". Old-timers still use his first name (sometimes uncapitalized, because it's a login name and mail address) in third-person reference; it is widely understood (on USENET, in particular) that without a last name 'Ken' refers only to Ken Thompson. Similarly, Dennis without last name means Dennis Ritchie (and he is often known as dmr). See also {demigod}, {{UNIX}}. 2. A flaming user. This was originated by the Software Support group at Symbolics because the two greatest flamers in the user community were both named Ken.
:kgbvax: /K-G-B'vaks/ n. See {kremvax}.
:KIBO: /kee'boh/ [acronym] Knowledge In, Bullshit Out. A summary of what happens whenever valid data is passed through an organization (or person) which deliberately or accidentally disregards or ignores its significance. Consider, for example, what advertising campaign can do with a product's actual specifications. Compare {GIGO}; see also {SNAFU principle}.
:kick: [IRC] v. To cause somebody to be removed from a {IRC} channel, an option only available to {CHOP}s. This is an extreme measure, often used to combat extreme {flamage} or {flood}ing, but sometimes used at the chop's whim. :kill file: [USENET] n. (alt. 'KILL file') Per-user file(s) used by some {USENET} reading programs (originally Larry Wall's 'rn(1)') to discard summarily (without presenting for reading) articles matching some particularly uninteresting (or unwanted) patterns of subject, author, or other header lines. Thus to add a person (or subject) to one's kill file is to arrange for that person to be ignored by one's newsreader in future. By extension, it may be used for a decision to ignore the person or subject in other media. See also {plonk}.
:killer micro: [popularized by Eugene Brooks] n. A microprocessor-based machine that infringes on mini, mainframe, or supercomputer performance turf. Often heard in "No one will survive the attack of the killer micros!", the battle cry of the downsizers. Used esp. of RISC architectures.
The popularity of the phrase 'attack of the killer micros' is doubtless reinforced by the movie title "Attack Of The Killer Tomatoes" (one of the {canonical} examples of so-bad-it's-wonderful among hackers). This has even more flavor now that killer micros have gone on the offensive not just individually (in workstations) but in hordes (within massively parallel computers).
:killer poke: n. A recipe for inducing hardware damage on a machine via insertion of invalid values (see {poke}) in a memory-mapped control register; used esp. of various fairly well-known tricks on {bitty box}es without hardware memory management (such as the IBM PC and Commodore PET) that can overload and trash analog electronics in the monitor. See also {HCF}.
:kilo-: [SI] pref. See {{quantifiers}}.
:KIPS: /kips/ [abbreviation, by analogy with {MIPS} using {K}] n. Thousands (*not* 1024s) of Instructions Per Second. Usage: rare.
:KISS Principle: /kis' prin'si-pl/ n. "Keep It Simple, Stupid". A maxim often invoked when discussing design to fend off {creeping featurism} and control development complexity. Possibly related to the {marketroid} maxim on sales presentations, "Keep It Short and Simple".
:kit: [USENET; poss. fr. DEC slang for a full software distribution, as opposed to a patch or upgrade] n. A source software distribution that has been packaged in such a way that it can (theoretically) be unpacked and installed according to a series of steps using only standard UNIX tools, and entirely documented by some reasonable chain of references from the top-level {README file}. The more general term {distribution} may imply that special tools or more stringent conditions on the host environment are required.
:klone: /klohn/ n. See {clone}, sense 4.
:kludge: /kluhj/ n. Common (but incorrect) variant of {kluge}, q.v.
:kluge: /klooj/ [from the German 'klug', clever] 1. n. A Rube Goldberg (or Heath Robinson) device, whether in hardware or software. (A long-ago 'Datamation' article by Jackson Granholme said: "An ill-assorted collection of poorly matching parts, forming a distressing whole.") 2. n. A clever programming trick intended to solve a particular nasty case in an expedient, if not clear, manner. Often used to repair bugs. Often involves {ad-hockery} and verges on being a {crock}. In fact, the TMRC Dictionary defined 'kludge' as "a crock that works". 3. n. Something that works for the wrong reason. 4. vt. To insert a kluge into a program. "I've kluged this routine to get around that weird bug, but there's probably a better way." 5. [WPI] n. A feature that is implemented in a {rude} manner.
Nowadays this term is often encountered in the variant spelling 'kludge'. Reports from {old fart}s are consistent that 'kluge' was the original spelling, reported around computers as far back as the mid-1950s and, at that time, used exclusively of *hardware* kluges. In 1947, the 'New York Folklore Quarterly' reported a classic shaggy-dog story 'Murgatroyd the Kluge Maker' then current in the Armed Forces, in which a 'kluge' was a complex and puzzling artifact with a trivial function.
However, there is reason to believe this slang use may be a decade older. Several respondents have connected it to the brand name of a device called a "Kluge paper feeder" dating back at least to 1935, an adjunct to mechanical printing presses. The Kluge feeder was designed before small, cheap electric motors and control electronics; it relied on a fiendishly complex assortment of cams, belts, and linkages to both power and synchronize all its operations from one motive driveshaft. It was accordingly tempermental, subject to frequent breakdowns, and devilishly difficult to repair —- but oh, so clever! One traditional folk etymology of 'kluge' makes it the name of a design engineer; in fact, 'Kluge' is a surname in German, and the designer of the Kluge feeder may well have been the man behind this myth.
The variant 'kludge' was apparently popularized by the {Datamation} article mentioned above; it was titled "How to Design a Kludge" (February 1962, pages 30 and 31). Some people who encountered the word first in print or on-line jumped to the reasonable but incorrect conclusion that the word should be pronounced /kluhj/ (rhyming with 'sludge'). The result of this tangled history is a mess; in 1991, many (perhaps even most) hackers pronounce the word correctly as /klooj/ but spell it incorrectly as 'kludge' (compare the pronunciation drift of {mung}). Some observers consider this appropriate in view of its meaning.
:kluge around: vt. To avoid a bug or difficult condition by inserting a {kluge}. Compare {workaround}.
:kluge up: vt. To lash together a quick hack to perform a task; this is milder than {cruft together} and has some of the connotations of {hack up} (note, however, that the construction 'kluge on' corresponding to {hack on} is never used). "I've kluged up this routine to dump the buffer contents to a safe place."
:Knights of the Lambda Calculus: n. A semi-mythical organization of wizardly LISP and Scheme hackers. The name refers to a mathematical formalism invented by Alonzo Church, with which LISP is intimately connected. There is no enrollment list and the criteria for induction are unclear, but one well-known LISPer has been known to give out buttons and, in general, the *members* know who they are....
:Knuth: /nooth/ [Donald E. Knuth's 'The Art of Computer Programming'] n. Mythically, the reference that answers all questions about data structures or algorithms. A safe answer when you do not know: "I think you can find that in Knuth." Contrast {literature, the}. See also {bible}.
:kremvax: /krem-vaks/ [from the then large number of {USENET} {VAXen} with names of the form foovax] n. Originally, a fictitious USENET site at the Kremlin, announced on April 1, 1984 in a posting ostensibly originated there by Soviet leader Konstantin Chernenko. The posting was actually forged by Piet Beertema as an April Fool's joke. Other fictitious sites mentioned in the hoax were moskvax and {kgbvax}. This was probably the funniest of the many April Fool's forgeries perpetrated on USENET (which has negligible security against them), because the notion that USENET might ever penetrate the Iron Curtain seemed so totally absurd at the time.
In fact, it was only six years later that the first genuine site in Moscow, demos.su, joined USENET. Some readers needed convincing that the postings from it weren't just another prank. Vadim Antonov, senior programmer at Demos and the major poster from there up to mid-1991, was quite aware of all this, referred to it frequently in his own postings, and at one point twitted some credulous readers by blandly asserting that he *was* a hoax!
Eventually he even arranged to have the domain's gateway site *named* kremvax, thus neatly turning fiction into truth and demonstrating that the hackish sense of humor transcends cultural barriers. [Mr. Antonov also contributed the Russian-language material for this lexicon. —- ESR]
In an even more ironic historical footnote, kremvax became an electronic center of the anti-communist resistance during the bungled hard-line coup of August 1991. During those three days the Soviet UUCP network centered on kremvax became the only trustworthy news source for many places within the USSR. Though the sysops were concentrating on internal communications, cross-border postings included immediate transliterations of Boris Yeltsin's decrees condemning the coup and eyewitness reports of the demonstrations in Moscow's streets. In those hours, years of speculation that totalitarianism would prove unable to maintain its grip on politically-loaded information in the age of computer networking were proved devastatingly accurate —- and the original kremvax joke became a reality as Yeltsin and the new Russian revolutionaries of 'glasnost' and 'perestroika' made kremvax one of the timeliest means of their outreach to the West.
:kyrka: /shir'k*/ n. See {feature key}.
= L = =====
:lace card: n. obs. A {{punched card}} with all holes punched (also called a 'whoopee card'). Card readers tended to jam when they got to one of these, as the resulting card had too little structural strength to avoid buckling inside the mechanism. Card punches could also jam trying to produce these things owing to power-supply problems. When some practical joker fed a lace card through the reader, you needed to clear the jam with a 'card knife' —- which you used on the joker first.
:language lawyer: n. A person, usually an experienced or senior software engineer, who is intimately familiar with many or most of the numerous restrictions and features (both useful and esoteric) applicable to one or more computer programming languages. A language lawyer is distinguished by the ability to show you the five sentences scattered through a 200-plus-page manual that together imply the answer to your question "if only you had thought to look there". Compare {wizard}, {legal}, {legalese}.
:languages of choice: n. {C} and {LISP}. Nearly every hacker knows one of these, and most good ones are fluent in both. Smalltalk and Prolog are also popular in small but influential communities.
There is also a rapidly dwindling category of older hackers with FORTRAN, or even assembler, as their language of choice. They often prefer to be known as {real programmer}s, and other hackers consider them a bit odd (see "{The Story of Mel, a Real Programmer}" in {appendix A}). Assembler is generally no longer considered interesting or appropriate for anything but {HLL} implementation, {glue}, and a few time-critical and hardware-specific uses in systems programs. FORTRAN occupies a shrinking niche in scientific programming.
Most hackers tend to frown on languages like {{Pascal}} and {{Ada}}, which don't give them the near-total freedom considered necessary for hacking (see {bondage-and-discipline language}), and to regard everything that's even remotely connected with {COBOL} or other traditional {card walloper} languages as a total and unmitigated {loss}.
:larval stage: n. Describes a period of monomaniacal concentration on coding apparently passed through by all fledgling hackers. Common symptoms include the perpetration of more than one 36-hour {hacking run} in a given week; neglect of all other activities including usual basics like food, sleep, and personal hygiene; and a chronic case of advanced bleary-eye. Can last from 6 months to 2 years, the apparent median being around 18 months. A few so afflicted never resume a more 'normal' life, but the ordeal seems to be necessary to produce really wizardly (as opposed to merely competent) programmers. See also {wannabee}. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new {OS} or programming language.
:lase: /layz/ vt. To print a given document via a laser printer. "OK, let's lase that sucker and see if all those graphics-macro calls did the right things."
:laser chicken: n. Kung Pao Chicken, a standard Chinese dish containing chicken, peanuts, and hot red peppers in a spicy pepper-oil sauce. Many hackers call it 'laser chicken' for two reasons: It can {zap} you just like a laser, and the sauce has a red color reminiscent of some laser beams.
In a variation on this theme, it is reported that some Australian hackers have redesignated the common dish 'lemon chicken' as 'Chernobyl Chicken'. The name is derived from the color of the sauce, which is considered bright enough to glow in the dark (as, mythically, do some of the inhabitants of Chernobyl).
:Lasherism: [Harvard] n. A program which solves a standard problem (such as the Eight Queens puzzle or implementing the {life} algorithm) in a deliberately nonstandard way. Distinguished from a {crock} or {kluge} by the fact that the programmer did it on purpose as a mental exercise. Lew Lasher was a student at Harvard around 1980 who became notorious for such behavior.
:laundromat: n. Syn. {disk farm}; see {washing machine}.
:LDB: /l*'d*b/ [from the PDP-10 instruction set] vt. To extract from the middle. "LDB me a slice of cake, please." This usage has been kept alive by Common LISP's function of the same name. Considered silly. See also {DPB}.
:leaf site: n. A machine that merely originates and reads USENET news or mail, and does not relay any third-party traffic. Often uttered in a critical tone; when the ratio of leaf sites to backbone, rib, and other relay sites gets too high, the network tends to develop bottlenecks. Compare {backbone site}, {rib site}.
:leak: n. With qualifier, one of a class of resource-management bugs that occur when resources are not freed properly after operations on them are finished, so they effectively disappear (leak out). This leads to eventual exhaustion as new allocation requests come in. {memory leak} and {fd leak} have their own entries; one might also refer, to, say, a 'window handle leak' in a window system.
:leaky heap: [Cambridge] n. An {arena} with a {memory leak}.
:legal: adj. Loosely used to mean 'in accordance with all the relevant rules', esp. in connection with some set of constraints defined by software. "The older + alternate for + is no longer legal syntax in ANSI C." "This parser processes each line of legal input the moment it sees the trailing linefeed." Hackers often model their work as a sort of game played with the environment in which the objective is to maneuver through the thicket of 'natural laws' to achieve a desired objective. Their use of 'legal' is flavored as much by this game-playing sense as by the more conventional one having to do with courts and lawyers. Compare {language lawyer}, {legalese}.
:legalese: n. Dense, pedantic verbiage in a language description, product specification, or interface standard; text that seems designed to obfuscate and requires a {language lawyer} to {parse} it. Though hackers are not afraid of high information density and complexity in language (indeed, they rather enjoy both), they share a deep and abiding loathing for legalese; they associate it with deception, {suit}s, and situations in which hackers generally get the short end of the stick.
:LER: /L-E-R/ [TMRC, from 'Light-Emitting Diode'] n. A light-emitting resistor (that is, one in the process of burning up). Ohm's law was broken. See {SED}.
:LERP: /lerp/ vi.,n. Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. E.g., Bresenham's algorithm lerps incrementally between the two endpoints of the line.
:let the smoke out: v. To fry hardware (see {fried}). See {magic smoke} for the mythology behind this.
:letterbomb: n. A piece of {email} containing {live data} intended to do nefarious things to the recipient's machine or terminal. It is possible, for example, to send letterbombs that will lock up some specific kinds of terminals when they are viewed, so thoroughly that the user must cycle power (see {cycle}, sense 3) to unwedge them. Under UNIX, a letterbomb can also try to get part of its contents interpreted as a shell command to the mailer. The results of this could range from silly to tragic. See also {Trojan horse}; compare {nastygram}.
:lexer: /lek'sr/ n. Common hacker shorthand for 'lexical analyzer', the input-tokenizing stage in the parser for a language (the part that breaks it into word-like pieces). "Some C lexers get confused by the old-style compound ops like '=-'."
:lexiphage: /lek'si-fayj'/ n. A notorious word {chomper} on ITS. See {bagbiter}.
:life: n. 1. A cellular-automata game invented by John Horton Conway and first introduced publicly by Martin Gardner ('Scientific American', October 1970); the game's popularity had to wait a few years for computers on which it could reasonably be played, as it's no fun to simulate the cells by hand. Many hackers pass through a stage of fascination with it, and hackers at various places contributed heavily to the mathematical analysis of this game (most notably Bill Gosper at MIT, who even implemented life in {TECO}!; see {Gosperism}). When a hacker mentions 'life', he is much more likely to mean this game than the magazine, the breakfast cereal, or the human state of existence. 2. The opposite of {USENET}. As in {Get a life!}
:Life is hard: [XEROX PARC] prov. This phrase has two possible interpretations: (1) "While your suggestion may have some merit, I will behave as though I hadn't heard it." (2) "While your suggestion has obvious merit, equally obvious circumstances prevent it from being seriously considered." The charm of the phrase lies precisely in this subtle but important ambiguity.
:light pipe: n. Fiber optic cable. Oppose {copper}.
:lightweight: adj. Opposite of {heavyweight}; usually found in combining forms such as 'lightweight process'.
:like kicking dead whales down the beach: adj. Describes a slow, difficult, and disgusting process. First popularized by a famous quote about the difficulty of getting work done under one of IBM's mainframe OSes. "Well, you *could* write a C compiler in COBOL, but it would be like kicking dead whales down the beach." See also {fear and loathing}
:like nailing jelly to a tree: adj. Used to describe a task thought to be impossible, esp. one in which the difficulty arises from poor specification or inherent slipperiness in the problem domain. "Trying to display the 'prettiest' arrangement of nodes and arcs that diagrams a given graph is like nailing jelly to a tree, because nobody's sure what 'prettiest' means algorithmically."
:line 666: [from Christian eschatological myth] n. The notational line of source at which a program fails for obscure reasons, implying either that *somebody* is out to get it (when you are the programmer), or that it richly deserves to be so gotten (when you are not). "It works when I trace through it, but seems to crash on line 666 when I run it." "What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit hardcoded a buffer size."
:line eater, the: [USENET] n. 1. A bug in some now-obsolete versions of the netnews software that used to eat up to BUFSIZ bytes of the article text. The bug was triggered by having the text of the article start with a space or tab. This bug was quickly personified as a mythical creature called the 'line eater', and postings often included a dummy line of 'line eater food'. Ironically, line eater 'food' not beginning with a space or tab wasn't actually eaten, since the bug was avoided; but if there *was* a space or tab before it, then the line eater would eat the food *and* the beginning of the text it was supposed to be protecting. The practice of 'sacrificing to the line eater' continued for some time after the bug had been {nailed to the wall}, and is still humorously referred to. The bug itself is still (in mid-1991) occasionally reported to be lurking in some mail-to-netnews gateways. 2. See {NSA line eater}. |
|