A [Index Search >>B>> ]


About This File

:About This File: This document is a collection of slang terms used by various subcultures of computer hackers. Though some technical material is included for background and flavor, it is not a technical dictionary; what we describe here is the language hackers use among themselves for fun, social communication, and technical debate. The `hacker culture' is actually a loosely networked collection of subcultures that is nevertheless conscious of some important shared experiences, shared roots, and shared values. It has its own myths, heroes, villains, folk epics, in-jokes, taboos, and dreams. Because hackers as a group are particularly creative people who define themselves partly by rejection of `normal' values and working habits, it has unusually rich and conscious traditions for an intentional culture less than 35 years old. As usual with slang, the special vocabulary of hackers helps hold their culture together --- it helps hackers recognize each other's places in the community and expresses shared values and experiences. Also as usual, *not* knowing the slang (or using it inappropriately) defines one as an outsider, a mundane, or (worst of all in hackish vocabulary) possibly even a suit. All human cultures use slang in this threefold way --- as a tool of communication, and of inclusion, and of exclusion. Among hackers, though, slang has a subtler aspect, paralleled perhaps in the slang of jazz musicians and some kinds of fine artists but hard to detect in most technical or scientific cultures; parts of it are code for shared states of *consciousness*. There is a whole range of altered states and problem-solving mental stances basic to high-level hacking which don't fit into conventional linguistic reality any better than a Coltrane solo or one of Maurits Escher's `trompe l'oeil' compositions (Escher is a favorite of hackers), and hacker slang encodes these subtleties in many unobvious ways. As a simple example, take the distinction between a kluge and an elegant solution, and the differing connotations attached to each. The distinction is not only of engineering significance; it reaches right back into the nature of the generative processes in program design and asserts something important about two different kinds of relationship between the hacker and the hack. Hacker slang is unusually rich in implications of this kind, of overtones and undertones that illuminate the hackish psyche. But there is more. Hackers, as a rule, love wordplay and are very conscious and inventive in their use of language. These traits seem to be common in young children, but the conformity-enforcing machine we are pleased to call an educational system bludgeons them out of most of us before adolescence. Thus, linguistic invention in most subcultures of the modern West is a halting and largely unconscious process. Hackers, by contrast, regard slang formation and use as a game to be played for conscious pleasure. Their inventions thus display an almost unique combination of the neotenous enjoyment of language-play with the discrimination of educated and powerful intelligence. Further, the electronic media which knit them together are fluid, `hot' connections, well adapted to both the dissemination of new slang and the ruthless culling of weak and superannuated specimens. The results of this process give us perhaps a uniquely intense and accelerated view of linguistic evolution in action. Hackish slang also challenges some common linguistic and anthropological assumptions. For example, it has recently become fashionable to speak of `low-context' versus `high-context' communication, and to classify cultures by the preferred context level of their languages and art forms. It is usually claimed that low-context communication (characterized by precision, clarity, and completeness of self-contained utterances) is typical in cultures which value logic, objectivity, individualism, and competition; by contrast, high-context communication (elliptical, emotive, nuance-filled, multi-modal, heavily coded) is associated with cultures which value subjectivity, consensus, cooperation, and tradition. What then are we to make of hackerdom, which is themed around extremely low-context interaction with computers and exhibits primarily "low-context" values, but cultivates an almost absurdly high-context slang style? The intensity and consciousness of hackish invention make a compilation of hacker slang a particularly effective window into the surrounding culture --- and, in fact, this one is the latest version of an evolving compilation called the `Jargon File', maintained by hackers themselves for over 15 years. This one (like its ancestors) is primarily a lexicon, but also includes `topic entries' which collect background or sidelight information on hacker culture that would be awkward to try to subsume under individual entries. Though the format is that of a reference volume, it is intended that the material be enjoyable to browse. Even a complete outsider should find at least a chuckle on nearly every page, and much that is amusingly thought-provoking. But it is also true that hackers use humorous wordplay to make strong, sometimes combative statements about what they feel. Some of these entries reflect the views of opposing sides in disputes that have been genuinely passionate; this is deliberate. We have not tried to moderate or pretty up these disputes; rather we have attempted to ensure that *everyone's* sacred cows get gored, impartially. Compromise is not particularly a hackish virtue, but the honest presentation of divergent viewpoints is. The reader with minimal computer background who finds some references incomprehensibly technical can safely ignore them. We have not felt it either necessary or desirable to eliminate all such; they, too, contribute flavor, and one of this document's major intended audiences benefit from them. A selection of longer items of hacker folklore and humor is included in appendix A. The `outside' reader's attention is particularly directed to appendix B, "A Portrait of J. Random Hacker". Appendix C is a bibliography of non-technical works which have either influenced or described the hacker culture. Because hackerdom is an intentional culture (one each individual must choose by action to join), one should not be surprised that the line between description and influence can become more than a little blurred. Earlier versions of the Jargon File have played a central role in spreading hacker language and the culture that goes with it to successively larger populations, and we hope and expect that this one will do likewise.

Anthromorphization

:Anthromorphization: -------------------- Semantically, one rich source of jargon constructions is the hackish tendency to anthropomorphize hardware and software. This isn't done in a naive way; hackers don't personalize their stuff in the sense of feeling empathy with it, nor do they mystically believe that the things they work on every day are `alive'. What *is* common is to hear hardware or software talked about as though it has homunculi talking to each other inside it, with intentions and desires. Thus, one hears "The protocol handler got confused", or that programs "are trying" to do things, or one may say of a routine that "its goal in life is to X". One even hears explanations like "... and its poor little brain couldn't understand X, and it died." Sometimes modelling things this way actually seems to make them easier to understand, perhaps because it's instinctively natural to think of anything with a really complex behavioral repertoire as `like a person' rather than `like a thing'. Of the six listed constructions, verb doubling, peculiar noun formations, anthromorphization, and (especially) spoken inarticulations have become quite general; but punning jargon is still largely confined to MIT and other large universities, and the `-P' convention is found only where LISPers flourish. Finally, note that many words in hacker jargon have to be understood as members of sets of comparatives. This is especially true of the adjectives and nouns used to describe the beauty and functional quality of code. Here is an approximately correct spectrum: monstrosity brain-damage screw bug lose misfeature crock kluge hack win feature elegance perfection The last is spoken of as a mythical absolute, approximated but never actually attained. Another similar scale is used for describing the reliability of software: broken flaky dodgy fragile brittle solid robust bulletproof armor-plated Note, however, that `dodgy' is primarily Commonwealth Hackish (it is rare in the U.S.) and may change places with `flaky' for some speakers. Coinages for describing lossage seem to call forth the very finest in hackish linguistic inventiveness; it has been truly said that hackers have even more words for equipment failures than Yiddish has for obnoxious people.

abbrev

:abbrev: /*-breev'/, /*-brev'/ n. Common abbreviation for `abbreviation'.

ABEND

:ABEND: [ABnormal END] /o'bend/, /*-bend'/ n. Abnormal termination (of software); crash; lossage. Derives from an error message on the IBM 360; used jokingly by hackers but seriously mainly by code grinders. Usually capitalized, but may appear as `abend'. Hackers will try to persuade you that ABEND is called `abend' because it is what system operators do to the machine late on Friday when they want to call it a day, and hence is from the German `Abend' = `Evening'.

accumulator

:accumulator: n. 1. Archaic term for a register. On-line use of it as a synonym for `register' is a fairly reliable indication that the user has been around for quite a while and/or that the architecture under discussion is quite old. The term in full is almost never used of microprocessor registers, for example, though symbolic names for arithmetic registers beginning in `A' derive from historical use of the term `accumulator' (and not, actually, from `arithmetic'). Confusingly, though, an `A' register name prefix may also stand for `address', as for example on the Motorola 680x0 family. 2. A register being used for arithmetic or logic (as opposed to addressing or a loop index), especially one being used to accumulate a sum or count of many items. This use is in context of a particular routine or stretch of code. "The FOOBAZ routine uses A3 as an accumulator." 3. One's in-basket (esp. among old-timers who might use sense 1). "You want this reviewed? Sure, just put it in the accumulator." (See stack.)

ACK

:ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110] Acknowledge. Used to register one's presence (compare mainstream *Yo!*). An appropriate response to ping or ENQ. 2. [from the comic strip "Bloom County"] An exclamation of surprised disgust, esp. in "Ack pffft!" Semi-humorous. Generally this sense is not spelled in caps (ACK) and is distinguished by a following exclamation point. 3. Used to politely interrupt someone to tell them you understand their point (see NAK). Thus, for example, you might cut off an overly long explanation with "Ack. Ack. Ack. I get it now". There is also a usage "ACK?" (from sense 1) meaning "Are you there?", often used in email when earlier mail has produced no reply, or during a lull in talk mode to see if the person has gone away (the standard humorous response is of course NAK (sense 2), i.e., "I'm not here").

ad-hockery

:ad-hockery: /ad-hok'*r-ee/ [Purdue] n. 1. Gratuitous assumptions made inside certain programs, esp. expert systems, which lead to the appearance of semi-intelligent behavior but are in fact entirely arbitrary. For example, fuzzy-matching against input tokens that might be typing errors against a symbol table can make it look as though a program knows how to spell. 2. Special-case code to cope with some awkward input that would otherwise cause a program to choke, presuming normal inputs are dealt with in some cleaner and more regular way. Also called `ad-hackery', `ad-hocity' (/ad-hos'*-tee/), `ad-crockery'. See also ELIZA effect.

Ada

:Ada:: n. A Pascal-descended language that has been made mandatory for Department of Defense software projects by the Pentagon. Hackers are nearly unanimous in observing that, technically, it is precisely what one might expect given that kind of endorsement by fiat; designed by committee, crockish, difficult to use, and overall a disastrous, multi-billion-dollar boondoggle (one common description is "The PL/I of the 1980s"). Hackers find Ada's exception-handling and inter-process communication features particularly hilarious. Ada Lovelace (the daughter of Lord Byron who became the world's first programmer while cooperating with Charles Babbage on the design of his mechanical computing engines in the mid-1800s) would almost certainly blanch at the use to which her name has latterly been put; the kindest thing that has been said about it is that there is probably a good small language screaming to get out from inside its vast, elephantine bulk.

adger

:adger: /aj'r/ [UCLA] vt. To make a bonehead move with consequences that could have been foreseen with even slight mental effort. E.g., "He started removing files and promptly adgered the whole project". Compare dumbass attack.

admin

:admin: /ad-min'/ n. Short for `administrator'; very commonly used in speech or on-line to refer to the systems person in charge on a computer. Common constructions on this include `sysadmin' and `site admin' (emphasizing the administrator's role as a site contact for email and news) or `newsadmin' (focusing specifically on news). Compare postmaster, sysop, system mangler .

ADVENT

:ADVENT: /ad'vent/ n. The prototypical computer adventure game, first implemented on the PDP-10 by Will Crowther as an attempt at computer-refereed fantasy gaming, and expanded into a puzzle-oriented game by Don Woods. Now better known as Adventure, but the TOPS-10 operating system permitted only six-letter filenames. See also vadding. This game defined the terse, dryly humorous style now expected in text adventure games, and popularized several tag lines that have become fixtures of hacker-speak: "A huge green fierce snake bars the way!" "I see no X here" (for some noun X). "You are in a maze of twisty little passages, all alike." "You are in a little maze of twisty passages, all different." The `magic words' xyzzy and plugh also derive from this game. Crowther, by the way, participated in the exploration of the Mammoth & Flint Ridge cave system; it actually *has* a `Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that also turns up is cavers' jargon for a map reference to a secondary entrance.

AFJ

:AFJ: // n. Written-only abbreviation for "April Fool's Joke". Elaborate April Fool's hoaxes are a long-established tradition on USENET and Internet; see kremvax for an example. In fact, April Fool's Day is the *only* seasonal holiday marked by customary observances on the hacker networks.

AI

:AI: /A-I/ n. Abbreviation for `Artificial Intelligence', so common that the full form is almost never written or spoken among hackers.

AI-complete

:AI-complete: /A-I k*m-pleet'/ [MIT, Stanford: by analogy with `NP-complete' (see NP-)] adj. Used to describe problems or subproblems in AI, to indicate that the solution presupposes a solution to the `strong AI problem' (that is, the synthesis of a human-level intelligence). A problem that is AI-complete is, in other words, just too hard. Examples of AI-complete problems are `The Vision Problem' (building a system that can see as well as a human) and `The Natural Language Problem' (building a system that can understand and speak a natural language as well as a human). These may appear to be modular, but all attempts so far (1993) to solve them have foundered on the amount of context information and `intelligence' they seem to require. See also gedanken.

AI koans

:AI koans: /A-I koh'anz/ pl.n. A series of pastiches of Zen teaching riddles created by Danny Hillis at the MIT AI Lab around various major figures of the Lab's culture (several are included under "A Selection of AI Koans" in Appendix A ). See also ha ha only serious, mu, and Humor, Hacker .

AIDS

:AIDS: /aydz/ n. Short for A* Infected Disk Syndrome (`A*' is a glob pattern that matches, but is not limited to, Apple), this condition is quite often the result of practicing unsafe SEX. See virus, worm, Trojan horse, virgin.

AIDX

:AIDX: n. /aydkz/ n. Derogatory term for IBM's perverted version of UNIX, AIX, especially for the AIX 3.? used in the IBM RS/6000 series (some hackers think it is funnier just to pronounce "AIX" as "aches"). A victim of the dreaded "hybridism" disease, this attempt to combine the two main currents of the UNIX stream (BSD and USG UNIX) became a monstrosity to haunt system administrators' dreams. For example, if new accounts are created while many users are logged on, the load average jumps quickly over 20 due to silly implementation of the user databases. For a quite similar disease, compare HP-SUX. Also, compare Macintrash Nominal Semidestructor, Open DeathTrap, ScumOS, sun-stools.

airplane rule

:airplane rule: n. "Complexity increases the possibility of failure; a twin-engine airplane has twice as many engine problems as a single-engine airplane." By analogy, in both software and electronics, the rule that simplicity increases robustness. It is correspondingly argued that the right way to build reliable systems is to put all your eggs in one basket, after making sure that you've built a really *good* basket. See also KISS Principle .

aliasing bug

:aliasing bug: n. A class of subtle programming errors that can arise in code that does dynamic allocation, esp. via `malloc(3)' or equivalent. If several pointers address (`aliases for') a given hunk of storage, it may happen that the storage is freed or reallocated (and thus moved) through one alias and then referenced through another, which may lead to subtle (and possibly intermittent) lossage depending on the state and the allocation history of the malloc arena. Avoidable by use of allocation strategies that never alias allocated core, or by use of higher-level languages, such as LISP, which employ a garbage collector (see GC). Also called a stale pointer bug. See also precedence lossage, smash the stack, fandango on core, memory leak, memory smash, overrun screw, spam. Historical note: Though this term is nowadays associated with C programming, it was already in use in a very similar sense in the Algol-60 and FORTRAN communities in the 1960s.

all-elbows

:all-elbows: [MS-DOS] adj. Of a TSR (terminate-and-stay-resident) IBM PC program, such as the N pop-up calendar and calculator utilities that circulate on BBS systems: unsociable. Used to describe a program that rudely steals the resources that it needs without considering that other TSRs may also be resident. One particularly common form of rudeness is lock-up due to programs fighting over the keyboard interrupt. See rude, also mess-dos.

alpha particles

:alpha particles: n. See bit rot.

alt

:alt: /awlt/ 1. n. The alt shift key on an IBM PC or clone keyboard; see bucky bits, sense 2 (though typical PC usage does not simply set the 0200 bit). 2. n. The `clover' or `Command' key on a Macintosh; use of this term usually reveals that the speaker hacked PCs before coming to the Mac (see also feature key ). Some Mac hackers, confusingly, reserve `alt' for the Option key (and it is so labeled on some Mac II keyboards). 3. n.obs. [PDP-10; often capitalized to ALT] Alternate name for the ASCII ESC character (ASCII 0011011), after the keycap labeling on some older terminals; also `altmode' (/awlt'mohd/). This character was almost never pronounced `escape' on an ITS system, in TECO, or under TOPS-10 --- always alt, as in "Type alt alt to end a TECO command" or "alt-U onto the system" (for "log onto the [ITS] system"). This usage probably arose because alt is more convenient to say than `escape', especially when followed by another alt or a character (or another alt *and* a character, for that matter).

alt bit

:alt bit: /awlt bit/ [from alternate] adj. See meta bit.

altmode

:altmode: n. Syn. alt sense 3.

Aluminum Book

:Aluminum Book: [MIT] n. "Common LISP: The Language", by Guy L. Steele Jr. (Digital Press, first edition 1984, second edition 1990). Note that due to a technical screwup some printings of the second edition are actually of a color the author describes succinctly as "yucky green". See also book titles.

amoeba

:amoeba: n. Humorous term for the Commodore Amiga personal computer.

amp off

:amp off: [Purdue] vt. To run in background. From the UNIX shell `&' operator.

amper

:amper: n. Common abbreviation for the name of the ampersand (`&', ASCII 0100110) character. See ASCII for other synonyms.

angle brackets

:angle brackets: n. Either of the characters `<' (ASCII 0111100) and `>' (ASCII 0111110) (ASCII less-than or greater-than signs). Typographers in the Real World use angle brackets which are either taller and slimmer (the ISO `Bra' and `Ket' characters), or significantly smaller (single or double guillemets) than the less-than and greater-than signs. See broket, ASCII.

angry fruit salad

:angry fruit salad: n. A bad visual-interface design that uses too many colors. (This term derives, of course, from the bizarre day-glo colors found in canned fruit salad.) Too often one sees similar effects from interface designers using color window systems such as X; there is a tendency to create displays that are flashy and attention-getting but uncomfortable for long-term use.

annoybot

:annoybot: /*-noy-bot/ [IRC] n. See robot.

AOS

:AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a PDP-10 increment instruction] vt.,obs. To increase the amount of something. "AOS the campfire." Usage: considered silly, and now obsolete. Now largely supplanted by bump. See SOS. 2. n. A Multics-derived OS supported at one time by Data General. This was pronounced /A-O-S/ or /A-os/. A spoof of the standard AOS system administrator's manual ("How to Load and Generate your AOS System") was created, issued a part number, and circulated as photocopy folklore; it was called "How to Goad and Levitate your CHAOS System". 3. n. Algebraic Operating System, in reference to those calculators which use infix instead of postfix (reverse Polish) notation. Historical note: AOS in sense 1 was the name of a PDP-10 instruction that took any memory location in the computer and added 1 to it; AOS meant `Add One and do not Skip'. Why, you may ask, does the `S' stand for `do not Skip' rather than for `Skip'? Ah, here was a beloved piece of PDP-10 folklore. There were eight such instructions: AOSE added 1 and then skipped the next instruction if the result was Equal to zero; AOSG added 1 and then skipped if the result was Greater than 0; AOSN added 1 and then skipped if the result was Not 0; AOSA added 1 and then skipped Always; and so on. Just plain AOS didn't say when to skip, so it never skipped. For similar reasons, AOJ meant `Add One and do not Jump'. Even more bizarre, SKIP meant `do not SKIP'! If you wanted to skip the next instruction, you had to say `SKIPA'. Likewise, JUMP meant `do not JUMP'; the unconditional form was JUMPA. However, hackers never did this. By some quirk of the 10's design, the JRST (Jump and ReSTore flag with no flag specified) was actually faster and so was invariably used. Such were the perverse mysteries of assembler programming.

app

:app: /ap/ n. Short for `application program', as opposed to a systems program. Apps are what systems vendors are forever chasing developers to create for their environments so they can sell more boxes. Hackers tend not to think of the things they themselves run as apps; thus, in hacker parlance the term excludes compilers, program editors, games, and messaging systems, though a user would consider all those to be apps. (Broadly, an app is often a self-contained environment for performing some well-defined task such as `word processing'; hackers tend to prefer more general-purpose tools.) Oppose tool, operating system .

arena

:arena: [UNIX] n. The area of memory attached to a process by `brk(2)' and `sbrk(2)' and used by `malloc(3)' as dynamic storage. So named from a `malloc: corrupt arena' message emitted when some early versions detected an impossible value in the free block list. See overrun screw, aliasing bug , memory leak, memory smash, smash the stack .

arg

:arg: /arg/ n. Abbreviation for `argument' (to a function), used so often as to have become a new word (like `piano' from `pianoforte'). "The sine function takes 1 arg, but the arc-tangent function can take either 1 or 2 args." Compare param, parm, var.

ARMM

:ARMM: [acronym, `Automated Retroactive Minimal Moderation'] n. A USENET robot created by Dick Depew of Munroe Falls, Ohio. ARMM was intended to automatically cancel posts from anonymous-posting sites. Unfortunately, the robot's recognizer for anonymous postings triggered on its own automatically-generated control messages! Transformed by this stroke of programming ineptitude into a monster of Frankensteinian proportions, it broke loose on the night of March 31, 1993 and proceeded to spam news.admin.policy with a recursive explosion of over 200 messages. ARMM's bug produced a recursive cascade of messages each of which mechanically added text to the ID and Subject and some other headers of its parent. This produced a flood of messages in which each header took up several screens and each message ID and subject line got longer and longer and longer. Reactions varied from amusement to outrage. The pathological messages crashed at least one mail system, and upset people paying line charges for their USENET feeds. One poster described the ARMM debacle as "instant USENET history" (also establishing the term despew), and it has since been widely cited as a cautionary example of the havoc the combination of good intentions and incompetence can wreak on a network. Compare Great Worm, The; sorcerer's apprentice mode. See also software laser, network meltdown.

armor-plated

:armor-plated: n. Syn. for bulletproof.

asbestos

:asbestos: adj. Used as a modifier to anything intended to protect one from flames; also in other highly flame-suggestive usages. See, for example, asbestos longjohns and asbestos cork award .

asbestos cork award

:asbestos cork award: n. Once, long ago at MIT, there was a flamer so consistently obnoxious that another hacker designed, had made, and distributed posters announcing that said flamer had been nominated for the `asbestos cork award'. (Any reader in doubt as to the intended application of the cork should consult the etymology under flame.) Since then, it is agreed that only a select few have risen to the heights of bombast required to earn this dubious dignity --- but there is no agreement on *which* few.

asbestos longjohns

:asbestos longjohns: n. Notional garments donned by USENET posters just before emitting a remark they expect will elicit flamage. This is the most common of the asbestos coinages. Also `asbestos underwear', `asbestos overcoat', etc.

ASCII

:ASCII:: [American Standard Code for Information Interchange] /as'kee/ n. The predominant character set encoding of present-day computers. The modern version uses 7 bits for each character, whereas most earlier codes (including an early version of ASCII) used fewer. This change allowed the inclusion of lowercase letters --- a major win --- but it did not provide for accented letters or any other letterforms not used in English (such as the German sharp-S or the ae-ligature which is a letter in, for example, Norwegian). It could be worse, though. It could be much worse. See EBCDIC to understand how. Computers are much pickier and less flexible about spelling than humans; thus, hackers need to be very precise when talking about characters, and have developed a considerable amount of verbal shorthand for them. Every character has one or more names --- some formal, some concise, some silly. Common jargon names for ASCII characters are collected here. See also individual entries for bang, excl, open, ques, semi, shriek, splat, twiddle, and Yu-Shiang Whole Fish. This list derives from revision 2.3 of the USENET ASCII pronunciation guide. Single characters are listed in ASCII order; character pairs are sorted in by first member. For each character, common names are given in rough order of popularity, followed by names that are reported but rarely seen; official ANSI/CCITT names are surrounded by brokets: <>. Square brackets mark the particularly silly names introduced by INTERCAL. The abbreviations "l/r" and "o/c" stand for left/right and "open/close" respectively. Ordinary parentheticals provide some usage information.

     !
          Common: bang; pling; excl; shriek; <exclamation mark>.
          Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
          wham; eureka; [spark-spot]; soldier.

     "
          Common: double quote; quote.  Rare: literal mark;
          double-glitch; <quotation marks>; <dieresis>; dirk;
          [rabbit-ears]; double prime.

     #
          Common: number sign; pound; pound sign; hash; sharp; crunch;
          hex; [mesh].  Rare: grid; crosshatch; octothorpe; flash;
          <square>, pig-pen; tictactoe; scratchmark; thud; thump;
          splat.

     $
          Common: dollar; <dollar sign>.  Rare: currency symbol; buck;
          cash; string (from BASIC); escape (when used as the echo of
          ASCII ESC); ding; cache; [big money].

     %
          Common: percent; <percent sign>; mod; grapes.  Rare:
          [double-oh-seven].

     &
          Common: <ampersand>; amper; and.  Rare: address (from C);
          reference (from C++); andpersand; bitand; background (from
          `sh(1)'); pretzel; amp.  [INTERCAL called this `ampersand';
          what could be sillier?]

     '
          Common: single quote; quote; <apostrophe>.  Rare: prime;
          glitch; tick; irk; pop; [spark]; <closing single quotation
          mark>; <acute accent>.

     ( )

          Common: l/r paren; l/r parenthesis; left/right; open/close;
          paren/thesis; o/c paren; o/c parenthesis; l/r parenthesis; l/r
          banana.  Rare: so/already; lparen/rparen; <opening/closing
          parenthesis>; o/c round bracket, l/r round bracket,
          [wax/wane]; parenthisey/unparenthisey; l/r ear.

     *
          Common: star; [splat]; <asterisk>.  Rare: wildcard; gear;
          dingle; mult; spider; aster; times; twinkle; glob (see
          glob); Nathan Hale.

     +
          Common: <plus>; add.  Rare: cross; [intersection].

     ,
          Common: <comma>.  Rare: <cedilla>; [tail].

     -
          Common: dash; <hyphen>; <minus>.  Rare: [worm]; option; dak;
          bithorpe.

     .
          Common: dot; point; <period>; <decimal point>.  Rare: radix
          point; full stop; [spot].

     /
          Common: slash; stroke; <slant>; forward slash.  Rare:
          diagonal; solidus; over; slak; virgule; [slat].

     :
          Common: <colon>.  Rare: dots; [two-spot].

     ;
          Common: <semicolon>; semi.  Rare: weenie; [hybrid],
          pit-thwong.

     < >
          Common: <less/greater than>; bra/ket; l/r angle; l/r angle
          bracket; l/r broket.  Rare: from/into, towards; read
          from/write to; suck/blow; comes-from/gozinta; in/out;
          crunch/zap (all from UNIX); [angle/right angle].

     =
          Common: <equals>; gets; takes.  Rare: quadrathorpe;
          [half-mesh].

     ?
          Common: query; ; ques.  Rare: whatmark;
          [what]; wildchar; huh; hook; buttonhook; hunchback.

     @
          Common: at sign; at; strudel.  Rare: each; vortex; whorl;
          [whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
          <commercial at>.

     V
          Rare: [book].

     [ ]
          Common: l/r square bracket; l/r bracket; <opening/closing
          bracket>; bracket/unbracket.  Rare: square/unsquare; [U turn/U
          turn back].

     \
          Common: backslash; escape (from C/UNIX); reverse slash; slosh;
          backslant; backwhack.  Rare: bash; <reverse slant>; reversed
          virgule; [backslat].

     ^
          Common: hat; control; uparrow; caret; <circumflex>.  Rare:
          chevron; [shark (or shark-fin)]; to the (`to the power of');
          fang; pointer (in Pascal).

     _
          Common: <underline>; underscore; underbar; under.  Rare:
          score; backarrow; skid; [flatworm].

     `
          Common: backquote; left quote; left single quote; open quote;
          <grave accent>; grave.  Rare: backprime; [backspark];
          unapostrophe; birk; blugle; back tick; back glitch; push;
          <opening single quotation mark>; quasiquote.

     { }
          Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
          bracket/brace; l/r curly bracket/brace; <opening/closing
          brace>.  Rare: brace/unbrace; curly/uncurly; leftit/rytit; l/r
          squirrelly; [embrace/bracelet].

     |
          Common: bar; or; or-bar; v-bar; pipe; vertical bar.  Rare:
          <vertical line>; gozinta; thru; pipesinta (last three from
          UNIX); [spike].

     ~ 
          Common: ; squiggle; twiddle; not.  Rare: approx;
          wiggle; swung dash; enyay; [sqiggle (sic)].
The pronunciation of `#' as `pound' is common in the U.S. but a bad idea; Commonwealth Hackish has its own, rather more apposite use of `pound sign' (confusingly, on British keyboards the pound graphic happens to replace `#'; thus Britishers sometimes call `#' on a U.S.-ASCII keyboard `pound', compounding the American error). The U.S. usage derives from an old-fashioned commercial practice of using a `#' suffix to tag pound weights on bills of lading. The character is usually pronounced `hash' outside the U.S. The `uparrow' name for circumflex and `leftarrow' name for underline are historical relics from archaic ASCII (the 1963 version), which had these graphics in those character positions rather than the modern punctuation characters. The `swung dash' or `approximation' sign is not quite the same as tilde in typeset material but the ASCII tilde serves for both (compare angle brackets ). Some other common usages cause odd overlaps. The `#', `$', `>', and `&' characters, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for hexadecimal constants (in particular, `#' in many assembler-programming cultures, `$' in the 6502 world, `>' at Texas Instruments, and `&' on the BBC Micro, Sinclair, and some Z80 machines). See also splat. The inability of ASCII text to correctly represent any of the world's other major languages makes the designers' choice of 7 bits look more and more like a serious misfeature as the use of international networks continues to increase (see software rot ). Hardware and software from the U.S. still tends to embody the assumption that ASCII is the universal character set and that characters have 7 bits; this is a a major irritant to people who want to use a character set suited to their own languages. Perversely, though, efforts to solve this problem by proliferating `national' character sets produce an evolutionary pressure to use a *smaller* subset common to all those in use.

ASCII art

:ASCII art: n. The fine art of drawing diagrams using the ASCII character set (mainly `|', `-', `/', `\', and `+'). Also known as `character graphics' or `ASCII graphics'; see also boxology. Here is a serious example:

         o----)||(--+--|<----+   +---------o + D O
           L  )||(  |        |   |             C U
         A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
         C N  )||(        |  |   |      |        P
           E  )||(  +-->|-+--)---+--)|--+-o      U
              )||(  |        |          | GND    T
         o----)||(--+--|<----+----------+     

         A power supply consisting of a full wave rectifier circuit
         feeding a capacitor input filter circuit

                               Figure 1.
And here are some very silly examples:
       |\/\/\/|     ____/|              ___    |\_/|    ___
       |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
       |      |      =(_)=  THPHTH!   /      \/     \/      \
       | (o)(o)        U             /                       \
       C      _)  (__)                \/\/\/\  _____  /\/\/\/
       | ,___|    (oo)                       \/     \/
       |   /       \/-------\         U                  (__)
      /____\        ||     | \    /---V  `v'-            oo )
     /      \       ||---W||  *  * |--|   || |`.         |_/\

                    //-o-\\
             ____---=======---____
         ====___\   /.. ..\   /___====      Klingons rule OK!
       //        ---\__O__/---        \\
       \_\                           /_/

                               Figure 2.
There is an important subgenre of ASCII art that puns on the standard character names in the fashion of a rebus.
     +--------------------------------------------------------+
     |      ^^^^^^^^^^^^                                      |
     | ^^^^^^^^^^^            ^^^^^^^^^                       |
     |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
     |        ^^^^^^^         B       ^^^^^^^^^               |
     |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
     +--------------------------------------------------------+
                  " A Bee in the Carrot Patch "

                               Figure 3.
Within humorous ASCII art, there is for some reason an entire flourishing subgenre of pictures of silly cows. Four of these are reproduced in Figure 2; here are three more:
              (__)              (__)              (__)
              (\/)              ($$)              (**)
       /-------\/        /-------\/        /-------\/
      / | 666 ||        / |=====||        / |     ||
     *  ||----||       *  ||----||       *  ||----||
        ~~    ~~          ~~    ~~          ~~    ~~ 
     Satanic cow    This cow is a Yuppie   Cow in love

                               Figure 4.

ASCIIbetical order

:ASCIIbetical order: /as'kee-be'-t*-kl or'dr/ adj.,n. Used to indicate that data is sorted in ASCII collated order rather than alphabetical order. This lexicon is sorted in something close to ASCIIbetical order, but with case ignored and entries beginning with non-alphabetic characters moved to the end.

atomic

:atomic: [from Gk. `atomos', indivisible] adj. 1. Indivisible; cannot be split up. For example, an instruction may be said to do several things `atomically', i.e., all the things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used esp. to convey that an operation cannot be screwed up by interrupts. "This routine locks the file and increments the file's semaphore atomically." 2. [primarily techspeak] Guaranteed to complete successfully or not at all, usu. refers to database transactions. If an error prevents a partially-performed transaction from proceeding to completion, it must be "backed out," as the database must not be left in an inconsistent state. Computer usage, in either of the above senses, has none of the connotations that `atomic' has in mainstream English (i.e. of particles of matter, nuclear explosions etc.).

attoparsec

:attoparsec: n. About an inch. `atto-' is the standard SI prefix for multiplication by 10^(-18). A parsec (parallax-second) is 3.26 light-years; an attoparsec is thus 3.26 * 10^(-18) light years, or about 3.1 cm (thus, 1 attoparsec/microfortnight equals about 1 inch/sec). This unit is reported to be in use (though probably not very seriously) among hackers in the U.K. See micro-.

autobogotiphobia

:autobogotiphobia: /aw'toh-boh-got`*-foh'bee-*/ n. See bogotify.

automagically

:automagically: /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ adv. Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining to you. See magic. "The C-INTERCAL compiler generates C, then automagically invokes `cc(1)' to produce an executable."

avatar

:avatar: [CMU, Tektronix] n. Syn. root, superuser. There are quite a few UNIX machines on which the name of the superuser account is `avatar' rather than `root'. This quirk was originated by a CMU hacker who disliked the term `superuser', and was propagated through an ex-CMU hacker at Tektronix.

awk

:awk: 1. n. [UNIX techspeak] An interpreted language for massaging text data developed by Alfred Aho, Peter Weinberger, and Brian Kernighan (the name derives from their initials). It is characterized by C-like syntax, a declaration-free approach to variable typing and declarations, associative arrays, and field-oriented text processing. See also Perl. 2. n. Editing term for an expression awkward to manipulate through normal regexp facilities (for example, one containing a newline). 3. vt. To process data using `awk(1)'. = B =

Appendix A

:Appendix A: Hacker Folklore **************************** This appendix contains several legends and fables that illuminate the meaning of various entries in the lexicon.

A Story About `Magic'

:A Story About `Magic': (by GLS) Some years ago, I was snooping around in the cabinets that housed the MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of one cabinet. It was obviously a homebrew job, added by one of the lab's hardware hackers (no one knows who). You don't touch an unknown switch on a computer without knowing what it does, because you might crash the computer. The switch was labeled in a most unhelpful way. It had two positions, and scrawled in pencil on the metal switch body were the words `magic' and `more magic'. The switch was in the `more magic' position. I called another hacker over to look at it. He had never seen the switch before either. Closer examination revealed that the switch had only one wire running to it! The other end of the wire did disappear into the maze of wires inside the computer, but it's a basic fact of electricity that a switch can't do anything unless there are two wires connected to it. This switch had a wire connected on one side and no wire on its other side. It was clear that this switch was someone's idea of a silly joke. Convinced by our reasoning that the switch was inoperative, we flipped it. The computer instantly crashed. Imagine our utter astonishment. We wrote it off as coincidence, but nevertheless restored the switch to the `more magic' position before reviving the computer. A year later, I told this story to yet another hacker, David Moon as I recall. He clearly doubted my sanity, or suspected me of a supernatural belief in the power of this switch, or perhaps thought I was fooling him with a bogus saga. To prove it to him, I showed him the very switch, still glued to the cabinet frame with only one wire connected to it, still in the `more magic' position. We scrutinized the switch and its lone connection, and found that the other end of the wire, though connected to the computer wiring, was connected to a ground pin. That clearly made the switch doubly useless: not only was it electrically nonoperative, but it was connected to a place that couldn't affect anything anyway. So we flipped the switch. The computer promptly crashed. This time we ran for Richard Greenblatt, a long-time MIT hacker, who was close at hand. He had never noticed the switch before, either. He inspected it, concluded it was useless, got some diagonal cutters and diked it out. We then revived the computer and it has run fine ever since. We still don't know how the switch crashed the machine. There is a theory that some circuit near the ground pin was marginal, and flipping the switch changed the electrical capacitance enough to upset the circuit as millionth-of-a-second pulses went through it. But we'll never know for sure; all we can really say is that the switch was magic. I still have that switch in my basement. Maybe I'm silly, but I usually keep it set on `more magic'.

A Selection of AI Koans

:A Selection of AI Koans: These are some of the funniest examples of a genre of jokes told at the MIT AI Lab about various noted hackers. The original koans were composed by Danny Hillis. In reading these, it is at least useful to know that Minsky, Sussman, and Drescher are AI researchers of note, that Tom Knight was one of the Lisp machine's principal designers, and that David Moon wrote much of Lisp Machine Lisp.

* * *

A novice was trying to fix a broken Lisp machine by turning the power off and on. Knight, seeing what the student was doing, spoke sternly: "You cannot fix a machine by just power-cycling it with no understanding of what is going wrong." Knight turned the machine off and on. The machine worked.

* * *

One day a student came to Moon and said: "I understand how to make a better garbage collector. We must keep a reference count of the pointers to each cons." Moon patiently told the student the following story: "One day a student came to Moon and said: `I understand how to make a better garbage collector... [Ed. note: Pure reference-count garbage collectors have problems with circular structures that point to themselves.]

* * *

In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6. "What are you doing?", asked Minsky. "I am training a randomly wired neural net to play Tic-Tac-Toe" Sussman replied. "Why is the net wired randomly?", asked Minsky. "I do not want it to have any preconceptions of how to play", Sussman said. Minsky then shut his eyes. "Why do you close your eyes?", Sussman asked his teacher. "So that the room will be empty." At that moment, Sussman was enlightened.

* * *

A disciple of another sect once came to Drescher as he was eating his morning meal. "I would like to give you this personality test", said the outsider, "because I want you to be happy." Drescher took the paper that was offered him and put it into the toaster, saying: "I wish the toaster to be happy, too."

Appendix B

:Appendix B: A Portrait of J. Random Hacker ******************************************* This profile reflects detailed comments on an earlier `trial balloon' version from about a hundred USENET respondents. Where comparatives are used, the implicit `other' is a randomly selected segment of the non-hacker population of the same size as hackerdom. An important point: Except in some relatively minor respects such as slang vocabulary, hackers don't get to be the way they are by imitating each other. Rather, it seems to be the case that the combination of personality traits that makes a hacker so conditions one's outlook on life that one tends to end up being like other hackers whether one wants to or not (much as bizarrely detailed similarities in behavior and preferences are found in genetic twins raised separately).

Appendix C

:Appendix C: Bibliography ************************* Here are some other books you can read to help you understand the hacker mindset.

Dictionary Index

Thomas Hövel's Homepage USA --- Thomas Hövel's Homepage Germany

HTML Conversion © 1999 Thomas Hövel Software 18.02.00 04:12:45 -0500