home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / HACKRDIC.ZIP / HACKDICT.DOC
Encoding:
Text File  |  1993-06-03  |  851.9 KB  |  16,377 lines

  1. = A =
  2.  
  3. abbrev: /*-breev'/, /*-brev'/ n. Common abbreviation for
  4.    `abbreviation'.
  5.  
  6. ABEND: [ABnormal END] /ah'bend/, /*-bend'/ n. Abnormal
  7.    termination (of software); {crash}; {lossage}.  Derives from an
  8.    error message on the IBM 360; used jokingly by hackers but
  9.    seriously mainly by {code grinder}s.  Usually capitalized, but may
  10.    appear as `abend'.  Hackers will try to persuade you that ABEND is
  11.    called `abend' because it is what system operators do to the
  12.    machine late on Friday when they want to call it a day, and hence
  13.    is from the German `Abend' = `Evening'.
  14.  
  15. accumulator: n. 1. Archaic term for a register.  On-line use of it
  16.    as a synonym for `register' is a fairly reliable indication that
  17.    the user has been around for quite a while and/or that the
  18.    architecture under discussion is quite old.  The term in full is
  19.    almost never used of microprocessor registers, for example, though
  20.    symbolic names for arithmetic registers beginning in `A' derive
  21.    from historical use of the term `accumulator' (and not, actually,
  22.    from `arithmetic').  Confusingly, though, an `A' register name
  23.    prefix may also stand for `address', as for example on the
  24.    Motorola 680x0 family.  2. A register being used for arithmetic or
  25.    logic (as opposed to addressing or a loop index), especially one
  26.    being used to accumulate a sum or count of many items.  This use is
  27.    in context of a particular routine or stretch of code.  "The
  28.    FOOBAZ routine uses A3 as an accumulator."  3. One's in-basket
  29.    (esp. among old-timers who might use sense 1).  "You want this
  30.    reviewed?  Sure, just put it in the accumulator."  (See {stack}.)
  31.  
  32. ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110]
  33.    Acknowledge.  Used to register one's presence (compare mainstream
  34.    *Yo!*).  An appropriate response to {ping} or {ENQ}.
  35.    2. [from the comic strip "Bloom County"] An exclamation of
  36.    surprised disgust, esp. in "Ack pffft!"  Semi-humorous.
  37.    Generally this sense is not spelled in caps (ACK) and is
  38.    distinguished by a following exclamation point.  3. Used to
  39.    politely interrupt someone to tell them you understand their point
  40.    (see {NAK}).  Thus, for example, you might cut off an overly
  41.    long explanation with "Ack.  Ack.  Ack.  I get it now".
  42.  
  43.    There is also a usage "ACK?" (from sense 1) meaning "Are you
  44.    there?", often used in email when earlier mail has produced no
  45.    reply, or during a lull in {talk mode} to see if the person has
  46.    gone away (the standard humorous response is of course {NAK}
  47.    (sense 2), i.e., "I'm not here").
  48.  
  49. ad-hockery: /ad-hok'*r-ee/ [Purdue] n. 1. Gratuitous assumptions
  50.    made inside certain programs, esp. expert systems, which lead to
  51.    the appearance of semi-intelligent behavior but are in fact
  52.    entirely arbitrary.  For example, fuzzy-matching input tokens that
  53.    might be typing errors against a symbol table can make it look as
  54.    though a program knows how to spell.  2. Special-case code to cope
  55.    with some awkward input that would otherwise cause a program to
  56.    {choke}, presuming normal inputs are dealt with in some cleaner
  57.    and more regular way.  Also called `ad-hackery', `ad-hocity'
  58.    (/ad-hos'*-tee/).  See also {ELIZA effect}.
  59.  
  60. Ada:: n. A {{Pascal}}-descended language that has been made
  61.    mandatory for Department of Defense software projects by the
  62.    Pentagon.  Hackers are nearly unanimous in observing that,
  63.    technically, it is precisely what one might expect given that kind
  64.    of endorsement by fiat; designed by committee, crockish, difficult
  65.    to use, and overall a disastrous, multi-billion-dollar boondoggle
  66.    (one common description is "The PL/I of the 1980s").  Hackers
  67.    find Ada's exception-handling and inter-process communication
  68.    features particularly hilarious.  Ada Lovelace (the daughter of
  69.    Lord Byron who became the world's first programmer while
  70.    cooperating with Charles Babbage on the design of his mechanical
  71.    computing engines in the mid-1800s) would almost certainly blanch
  72.    at the use to which her name has latterly been put; the kindest
  73.    thing that has been said about it is that there is probably a good
  74.    small language screaming to get out from inside its vast,
  75.    {elephantine} bulk.
  76.  
  77. adger: /aj'r/ [UCLA] vt. To make a bonehead move with consequences
  78.    that could have been foreseen with a slight amount of mental
  79.    effort.  E.g., "He started removing files and promptly adgered the
  80.    whole project".  Compare {dumbass attack}.
  81.  
  82. admin: /ad-min'/ n. Short for `administrator'; very commonly
  83.    used in speech or on-line to refer to the systems person in charge
  84.    on a computer.  Common constructions on this include `sysadmin'
  85.    and `site admin' (emphasizing the administrator's role as a site
  86.    contact for email and news) or `newsadmin' (focusing specifically
  87.    on news).  Compare {postmaster}, {sysop}, {system
  88.    mangler}.
  89.  
  90. ADVENT: /ad'vent/ n. The prototypical computer adventure game, first
  91.    implemented on the {PDP-10} by Will Crowther as an attempt at
  92.    computer-refereed fantasy gaming, and expanded into a
  93.    puzzle-oriented game by Don Woods.  Now better known as Adventure,
  94.    but the {{TOPS-10}} operating system permitted only 6-letter
  95.    filenames.  See also {vadding}.
  96.  
  97.    This game defined the terse, dryly humorous style now expected in
  98.    text adventure games, and popularized several tag lines that have
  99.    become fixtures of hacker-speak:  "A huge green fierce snake bars
  100.    the way!"  "I see no X here" (for some noun X).  "You are in a
  101.    maze of twisty little passages, all alike."  "You are in a little
  102.    maze of twisty passages, all different."  The `magic words'
  103.    {xyzzy} and {plugh} also derive from this game.
  104.  
  105.    Crowther, by the way, participated in the exploration of the
  106.    Mammoth & Flint Ridge cave system; it actually *has* a
  107.    `Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that
  108.    also turns up is cavers' jargon for a map reference to a secondary
  109.    entrance.
  110.  
  111. AI-complete: /A-I k*m-pleet'/ [MIT, Stanford: by analogy with
  112.    `NP-complete' (see {NP-})] adj. Used to describe problems or
  113.    subproblems in AI, to indicate that the solution presupposes a
  114.    solution to the `strong AI problem' (that is, the synthesis of a
  115.    human-level intelligence).  A problem that is AI-complete is, in
  116.    other words, just too hard.
  117.  
  118.    Examples of AI-complete problems are `The Vision Problem'
  119.    (building a system that can see as well as a human) and `The
  120.    Natural Language Problem' (building a system that can understand
  121.    and speak a natural language as well as a human).  These may appear
  122.    to be modular, but all attempts so far (1991) to solve them have
  123.    foundered on the amount of context information and `intelligence'
  124.    they seem to require. See also {gedanken}.
  125.  
  126. AI koans: /A-I koh'anz/ pl.n. A series of pastiches of Zen
  127.    teaching riddles created by Danny Hillis at the MIT AI Lab around
  128.    various major figures of the Lab's culture (several are included in
  129.    appendix A).  See also {ha ha only serious}, {mu}, and
  130.    {{Humor, Hacker}}.
  131.  
  132. AIDS: /aydz/ n. Short for A* Infected Disk Syndrome (`A*' is a
  133.    {glob} pattern that matches, but is not limited to, Apple),
  134.    this condition is quite often the result of practicing unsafe
  135.    {SEX}.  See {virus}, {worm}, {Trojan horse},
  136.    {virgin}.
  137.  
  138. airplane rule: n. "Complexity increases the possibility of
  139.    failure; a twin-engine airplane has twice as many engine problems
  140.    as a single-engine airplane."  By analogy, in both software and
  141.    electronics, the rule that simplicity increases robustness (see
  142.    also {KISS Principle}).  It is correspondingly argued that the
  143.    right way to build reliable systems is to put all your eggs in one
  144.    basket, after making sure that you've built a really *good*
  145.    basket.
  146.  
  147. aliasing bug: n. A class of subtle programming errors that can
  148.    arise in code that does dynamic allocation, esp. via
  149.    `malloc(3)' or equivalent.  If more than one pointer addresses
  150.    (`aliases for') a given hunk of storage, it may happen that the
  151.    storage is freed through one alias and then referenced through
  152.    another, which may lead to subtle (and possibly intermittent) lossage
  153.    depending on the state and the allocation history of the malloc
  154.    {arena}.  Avoidable by use of allocation strategies that never
  155.    alias allocated core.  Also avoidable by use of higher-level
  156.    languages, such as {LISP}, which employ a garbage collector
  157.    (see {GC}).  Also called a {stale pointer bug}.  See also
  158.    {precedence lossage}, {smash the stack}, {fandango on core},
  159.    {memory leak}, {overrun screw}, {spam}.
  160.  
  161.    Historical note: Though this term is nowadays associated with
  162.    C programming, it was already in use in a very similar sense in the
  163.    Algol-60 and FORTRAN communities in the 1960s.
  164.  
  165. all-elbows: adj. Of a TSR (terminate-and-stay-resident) IBM PC
  166.    program, such as the N pop-up calendar and calculator utilities
  167.    that circulate on {BBS} systems: unsociable.  Used to describe a
  168.    program that rudely steals the resources that it needs without
  169.    considering that other TSRs may also be resident.  One particularly
  170.    common form of rudeness is lock-up due to programs fighting over
  171.    the keyboard interrupt.  See also {mess-dos}.
  172.  
  173. alpha particles: n. See {bit rot}.
  174.  
  175. ALT: /awlt/ 1. n. The ALT shift key on an IBM PC or {clone}.
  176.    2. [possibly lowercased] n. The `clover' or `Command' key on a
  177.    Macintosh; use of this term usually reveals that the speaker hacked
  178.    PCs before coming to the Mac (see also {command key}).  Some Mac
  179.    hackers, confusingly, reserve `ALT' for the Option key.  3. n.obs.
  180.    [PDP-10] Alternate name for the ASCII ESC character (ASCII
  181.    0011011), after the keycap labeling on some older terminals.  Also
  182.    `ALTMODE' (/awlt'mohd/).  This character was almost never
  183.    pronounced `escape' on an ITS system, in {TECO}, or under
  184.    TOPS-10 --- always ALT, as in "Type ALT ALT to end a TECO
  185.    command" or "ALT U onto the system" (for "log onto the [ITS]
  186.    system").  This was probably because ALT is more convenient to say
  187.    than `escape', especially when followed by another ALT or a
  188.    character (or another ALT *and* a character, for that matter).
  189.  
  190. alt bit: /awlt bit/ [from alternate] adj. See {meta bit}.
  191.  
  192. Aluminum Book: [MIT] n. `Common LISP: The Language', by
  193.    Guy L.  Steele Jr. (Digital Press, first edition 1984, second
  194.    edition 1990).  Note that due to a technical screwup some printings
  195.    of the second edition are actually of a color the author describes
  196.    succinctly as "yucky green".  See also {{book titles}}.
  197.  
  198. amoeba: n. Humorous term for the Commodore Amiga personal computer.
  199.  
  200. amp off: [Purdue] vt. To run in {background}.  From the UNIX shell `&'
  201.    operator.
  202.  
  203. amper: n. Common abbreviation for the name of the ampersand (`&',
  204.    ASCII 0100110) character.  See {ASCII} for other synonyms.
  205.  
  206. angle brackets: n. Either of the characters `<' (ASCII
  207.    0111100) and `>' (ASCII 0111110) (ASCII less-than or
  208.    greater-than signs).  The {Real World} angle brackets used by
  209.    typographers are actually taller than a less-than or greater-than
  210.    sign.
  211.    See {broket}, {{ASCII}}.
  212.  
  213. angry fruit salad: n. A bad visual-interface design that uses too
  214.    many colors.  This derives, of course, from the bizarre day-glo
  215.    colors found in canned fruit salad.  Too often one sees similar
  216.    affects from interface designers using color window systems such as
  217.    {X}; there is a tendency to create displays that are flashy and
  218.    attention-getting but uncomfortable for long-term use.
  219.  
  220. AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a
  221.    PDP-10 increment instruction] vt.,obs. To increase the amount of
  222.    something.  "AOS the campfire."  Usage: considered silly, and now
  223.    obsolete.  Now largely supplanted by {bump}.  See {SOS}.  2. A
  224.    {{Multics}}-derived OS supported at one time by Data General.  This
  225.    was pronounced /A-O-S/ or /A-os/.  A spoof of the standard
  226.    AOS system administrator's manual (`How to load and generate
  227.    your AOS system') was created, issued a part number, and circulated
  228.    as photocopy folklore.  It was called `How to goad and
  229.    levitate your chaos system'.  3. Algebraic Operating System, in
  230.    reference to those calculators which use infix instead of postfix
  231.    (reverse Polish) notation.
  232.  
  233.    Historical note: AOS in sense 1 was the name of a {PDP-10}
  234.    instruction that took any memory location in the computer and added
  235.    1 to it; AOS meant `Add One and do not Skip'.  Why, you may ask,
  236.    does the `S' stand for `do not Skip' rather than for `Skip'?  Ah,
  237.    here was a beloved piece of PDP-10 folklore.  There were eight such
  238.    instructions: AOSE added 1 and then skipped the next instruction
  239.    if the result was Equal to zero; AOSG added 1 and then skipped if
  240.    the result was Greater than 0; AOSN added 1 and then skipped
  241.    if the result was Not 0; AOSA added 1 and then skipped Always;
  242.    and so on.  Just plain AOS didn't say when to skip, so it never
  243.    skipped.
  244.  
  245.    For similar reasons, AOJ meant `Add One and do not Jump'.  Even
  246.    more bizarre, SKIP meant `do not SKIP'!  If you wanted to skip the
  247.    next instruction, you had to say `SKIPA'.  Likewise, JUMP meant
  248.    `do not JUMP'; the unconditional form was JUMPA.  However, hackers
  249.    never did this.  By some quirk of the 10's design, the {JRST}
  250.    (Jump and ReSTore flag with no flag specified) was actually faster
  251.    and so was invariably used.  Such were the perverse mysteries of
  252.    assembler programming.
  253.  
  254. app: /ap/ n. Short for `application program', as opposed to a
  255.    systems program.  What systems vendors are forever chasing
  256.    developers to create for their environments so they can sell more
  257.    boxes.  Hackers tend not to think of the things they themselves run
  258.    as apps; thus, in hacker parlance the term excludes compilers,
  259.    program editors, games, and messaging systems, though a user would
  260.    consider all those to be apps.  Oppose {tool}, {operating
  261.    system}.
  262.  
  263. arc: [primarily MSDOS] vt. To create a compressed {archive} from a
  264.    group of files using SEA ARC, PKWare PKARC, or a compatible
  265.    program.  Rapidly becoming obsolete as the ARC compression method
  266.    is falling into disuse, having been replaced by newer compression
  267.    techniques.  See {tar and feather}, {zip}.
  268.  
  269. arc wars: [primarily MSDOS] n. {holy wars} over which archiving
  270.    program one should use.  The first arc war was sparked when System
  271.    Enhancement Associates (SEA) sued PKWare for copyright and
  272.    trademark infringement on its ARC program.  PKWare's PKARC
  273.    outperformed ARC on both compression and speed while largely
  274.    retaining compatibility (it introduced a new compression type that
  275.    could be disabled for backward-compatibility).  PKWare settled out
  276.    of court to avoid enormous legal costs (both SEA and PKWare are
  277.    small companies); as part of the settlement, the name of PKARC was
  278.    changed to PKPAK.  The public backlash against SEA for bringing
  279.    suit helped to hasten the demise of ARC as a standard when PKWare
  280.    and others introduced new, incompatible archivers with better
  281.    compression algorithms.
  282.  
  283. archive: n. 1. A collection of several files bundled into one file
  284.    by a program such as `ar(1)', `tar(1)', `cpio(1)',
  285.    or {arc} for shipment or archiving (sense 2).  See also {tar
  286.    and feather}.  2. A collection of files or archives (sense 1) made
  287.    available from an `archive site' via {FTP} or an email server.
  288.  
  289. arena: [UNIX] n. The area of memory attached to a process by
  290.    `brk(2)' and `sbrk(2)' and used by `malloc(3)' as
  291.    dynamic storage.  So named from a semi-mythical `malloc:
  292.    corrupt arena' message supposedly emitted when some early versions
  293.    became terminally confused.  See {overrun screw}, {aliasing
  294.    bug}, {memory leak}, {smash the stack}.
  295.  
  296. arg: /arg/ n. Abbreviation for `argument' (to a function),
  297.    used so often as to have become a new word (like `piano' from
  298.    `pianoforte').  "The sine function takes 1 arg, but the
  299.    arc-tangent function can take either 1 or 2 args."  Compare
  300.    {param}, {parm}, {var}.
  301.  
  302. armor-plated: n. Syn. for {bulletproof}.
  303.  
  304. asbestos: adj. Used as a modifier to anything intended to protect
  305.    one from {flame}s.  Important cases of this include {asbestos
  306.    longjohns} and {asbestos cork award}, but it is used more
  307.    generally.
  308.  
  309. asbestos cork award: n. Once, long ago at MIT, there was a {flamer}
  310.    so consistently obnoxious that another hacker designed, had made,
  311.    and distributed posters announcing that said flamer had been
  312.    nominated for the `asbestos cork award'.  Persons in any doubt as
  313.    to the intended application of the cork should consult the
  314.    etymology under {flame}.  Since then, it is agreed that only a
  315.    select few have risen to the heights of bombast required to earn
  316.    this dubious dignity --- but there is no agreement on *which*
  317.    few.
  318.  
  319. asbestos longjohns: n. Notional garments often donned by {USENET}
  320.    posters just before emitting a remark they expect will elicit
  321.    {flamage}.  This is the most common of the {asbestos} coinages.
  322.    Also `asbestos underwear', `asbestos overcoat', etc.
  323.  
  324. ASCII:: [American Standard Code for Information Interchange]
  325.    /as'kee/ n. The predominant character set encoding of present-day
  326.    computers.  Uses 7 bits for each character, whereas most earlier
  327.    codes (including an early version of ASCII) used fewer.  This
  328.    change allowed the inclusion of lowercase letters --- a major
  329.    {win} --- but it did not provide for accented letters or any
  330.    other letterforms not used in English (such as the German sharp-S
  331.    and the ae-ligature
  332.    which is a letter in, for example, Norwegian).  It could be worse,
  333.    though.  It could be much worse.  See {{EBCDIC}} to understand how.
  334.    
  335.    Computers are much pickier and less flexible about spelling than
  336.    humans; thus, hackers need to be very precise when talking about
  337.    characters, and have developed a considerable amount of verbal
  338.    shorthand for them.  Every character has one or more names --- some
  339.    formal, some concise, some silly.  Common jargon names for ASCII
  340.    characters are collected here.  See also individual entries for
  341.    {bang}, {excl}, {open}, {ques}, {semi}, {shriek},
  342.    {splat}, {twiddle}, and {Yu-Shiang Whole Fish}.
  343.  
  344.    This list derives from revision 2.3 of the USENET ASCII
  345.    pronunciation guide.  Single characters are listed in ASCII order;
  346.    character pairs are sorted in by first member.  For each character,
  347.    common names are given in rough order of popularity, followed by
  348.    names that are reported but rarely seen; official ANSI/CCITT names
  349.    are surrounded by brokets: <>.  Square brackets mark the
  350.    particularly silly names introduced by {INTERCAL}.  Ordinary
  351.    parentheticals provide some usage information.
  352.  
  353.      !
  354.           Common: {bang}; pling; excl; shriek; <exclamation mark>.
  355.           Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
  356.           wham; [spark-spot]; soldier.
  357.  
  358.      "
  359.           Common: double quote; quote.  Rare: literal mark;
  360.           double-glitch; <quotation marks>; <dieresis>; dirk;
  361.           [rabbit-ears]; double prime.
  362.  
  363.      #
  364.           Common: <number sign>; pound; pound sign; hash; sharp;
  365.           {crunch}; hex; [mesh]; octothorpe.  Rare: flash; crosshatch;
  366.           grid; pig-pen; tictactoe; scratchmark; thud; thump; {splat}.
  367.  
  368.      $
  369.           Common: dollar; <dollar sign>.  Rare: currency symbol; buck;
  370.           cash; string (from BASIC); escape (when used as the echo of
  371.           ASCII ESC); ding; cache; [big money].
  372.  
  373.      %
  374.           Common: percent; <percent sign>; mod; grapes.  Rare:
  375.           [double-oh-seven].
  376.  
  377.      &
  378.           Common: <ampersand>; amper; and.  Rare: address (from C);
  379.           reference (from C++); andpersand; bitand; background (from
  380.           `sh(1)'); pretzel; amp.  [INTERCAL called this `ampersand';
  381.           what could be sillier?]
  382.  
  383.      '
  384.           Common: single quote; quote; <apostrophe>.  Rare: prime;
  385.           glitch; tick; irk; pop; [spark]; <closing single quotation
  386.           mark>; <acute accent>.
  387.  
  388.      ()
  389.           Common: left/right paren; left/right parenthesis; left/right; paren/thesis;
  390.           open/close paren; open/close; open/close parenthesis; left/right banana.
  391.           Rare: so/al-ready; lparen/rparen; <opening/closing parenthesis>;
  392.           open/close round bracket, parenthisey/unparenthisey; [wax/wane];
  393.           left/right ear.
  394.  
  395.      *
  396.           Common: star; [{splat}]; <asterisk>.  Rare: wildcard; gear;
  397.           dingle; mult; spider; aster; times; twinkle; glob (see
  398.           {glob}); {Nathan Hale}.
  399.  
  400.      +
  401.           Common: <plus>; add.  Rare: cross; [intersection].
  402.  
  403.      ,
  404.           Common: <comma>.  Rare: <cedilla>; [tail].
  405.  
  406.      -
  407.           Common: dash; <hyphen>; <minus>.  Rare: [worm]; option; dak;
  408.           bithorpe.
  409.  
  410.      .
  411.           Common: dot; point; <period>; <decimal point>.  Rare: radix
  412.           point; full stop; [spot].
  413.  
  414.      /
  415.           Common: slash; stroke; <slant>; forward slash.  Rare:
  416.           diagonal; solidus; over; slak; virgule; [slat].
  417.  
  418.      :
  419.           Common: <colon>.  Rare: dots; [two-spot].
  420.  
  421.      ;
  422.           Common: <semicolon>; semi.  Rare: weenie; [hybrid],
  423.           pit-thwong.
  424.  
  425.      <>
  426.           Common: <less/greater than>; left/right angle bracket;
  427.           bra/ket; left/right broket.  Rare: from/{into, towards}; read
  428.           from/write to; suck/blow; comes-from/gozinta; in/out;
  429.           crunch/zap (all from UNIX); [angle/right angle].
  430.  
  431.      =
  432.           Common: <equals>; gets; takes.  Rare: quadrathorpe;
  433.           [half-mesh].
  434.  
  435.      ?
  436.           Common: query; <question mark>; {ques}.  Rare: whatmark;
  437.           [what]; wildchar; huh; hook; buttonhook; hunchback.
  438.  
  439.      @
  440.           Common: at sign; at; strudel.  Rare: each; vortex; whorl;
  441.           [whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
  442.           <commercial at>.
  443.  
  444.      V
  445.           Rare: [book].
  446.  
  447.      []
  448.           Common: left/right square bracket; <opening/closing bracket>;
  449.           bracket/unbracket; left/right bracket.  Rare: square/unsquare;
  450.           [U turn/U turn back].
  451.  
  452.      \
  453.           Common: backslash; escape (from C/UNIX); reverse slash; slosh;
  454.           backslant; backwhack.  Rare: bash; <reverse slant>; reversed
  455.           virgule; [backslat].
  456.  
  457.      ^
  458.           Common: hat; control; uparrow; caret; <circumflex>.  Rare:
  459.           chevron; [shark (or shark-fin)]; to the (`to the power of');
  460.           fang; pointer (in Pascal).
  461.  
  462.      _
  463.           Common: <underline>; underscore; underbar; under.  Rare:
  464.           score; backarrow; [flatworm].
  465.  
  466.      `
  467.           Common: backquote; left quote; left single quote; open quote;
  468.           <grave accent>; grave.  Rare: backprime; [backspark];
  469.           unapostrophe; birk; blugle; back tick; back glitch; push;
  470.           <opening single quotation mark>; quasiquote.
  471.  
  472.      {}
  473.           Common: open/close brace; left/right brace; left/right
  474.           squiggly; left/right squiggly bracket/brace; left/right curly
  475.           bracket/brace; <opening/closing brace>.  Rare: brace/unbrace;
  476.           curly/uncurly; leftit/rytit; left/right squirrelly;
  477.           [embrace/bracelet].
  478.  
  479.      |
  480.           Common: bar; or; or-bar; v-bar; pipe; vertical bar.  Rare:
  481.           <vertical line>; gozinta; thru; pipesinta (last three from
  482.           UNIX); [spike].
  483.  
  484.      ~
  485.           Common: <tilde>; squiggle; {twiddle}; not.  Rare: approx;
  486.           wiggle; swung dash; enyay; [sqiggle (sic)].
  487.  
  488.    The pronunciation of `#' as `pound' is common in the U.S. but
  489.    a bad idea; {{Commonwealth Hackish}} has its own, rather more apposite
  490.    use of `pound sign' (confusingly, on British keyboards the pound
  491.    graphic
  492.    happens to replace `#'; thus Britishers sometimes call `#'
  493.    on a U.S.-ASCII keyboard `pound', compounding the American error).
  494.    The U.S. usage derives from an old-fashioned commercial practice of
  495.    using a `#' suffix to tag pound weights on bills of lading.
  496.    The character is usually pronounced `hash' outside the U.S.
  497.  
  498.    The `uparrow' name for circumflex and `leftarrow' name for
  499.    underline are historical relics from archaic ASCII (the 1963
  500.    version), which had these graphics in those character positions
  501.    rather than the modern punctuation characters.
  502.  
  503.    The `swung dash' or `approximation' sign is not quite the same
  504.    as tilde in typeset material
  505.    but the ASCII tilde serves for both (compare {angle
  506.    brackets}).
  507.  
  508.    Some other common usages cause odd overlaps.  The `#',
  509.    `$', `>', and `&' characters, for example, are all
  510.    pronounced "hex" in different communities because various
  511.    assemblers use them as a prefix tag for hexadecimal constants (in
  512.    particular, `#' in many assembler-programming cultures,
  513.    `$' in the 6502 world, `>' at Texas Instruments, and
  514.    `&' on the BBC Micro, Sinclair, and some Z80 machines).  See
  515.    also {splat}.
  516.  
  517.    The inability of ASCII text to correctly represent any of the
  518.    world's other major languages makes the designers' choice of 7 bits
  519.    look more and more like a serious {misfeature} as the use of
  520.    international networks continues to increase (see {software
  521.    rot}).  Hardware and software from the U.S. still tends to embody
  522.    the assumption that ASCII is the universal character set; this is a
  523.    a major irritant to people who want to use a character set suited
  524.    to their own languages.  Perversely, though, efforts to solve this
  525.    problem by proliferating `national' character sets produce an
  526.    evolutionary pressure to use a *smaller* subset common to all
  527.    those in use.
  528.  
  529.  
  530. ASCII art: n. The fine art of drawing diagrams using the ASCII
  531.    character set (mainly `|', `-', `/', `\', and
  532.    `+').  Also known as `character graphics' or `ASCII
  533.    graphics'; see also {boxology}.  Here is a serious example:
  534.  
  535.  
  536.          o----)||(--+--|<----+   +---------o + D O
  537.            L  )||(  |        |   |             C U
  538.          A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
  539.          C N  )||(        |  |   |      |        P
  540.            E  )||(  +-->|-+--)---+--)|--+-o      U
  541.               )||(  |        |          | GND    T
  542.          o----)||(--+--|<----+----------+     
  543.  
  544.             A power supply consisting of a full
  545.             wave rectifier circuit feeding a
  546.             capacitor input filter circuit
  547.  
  548.                                Figure 1.
  549.  
  550.    And here are some very silly examples:
  551.  
  552.  
  553.        |\/\/\/|     ____/|              ___    |\_/|    ___
  554.        |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
  555.        |      |      =(_)=  THPHTH!   /      \/     \/      \
  556.        | (o)(o)        U             /                       \
  557.        C      _)  (__)                \/\/\/\  _____  /\/\/\/
  558.        | ,___|    (oo)                       \/     \/
  559.        |   /       \/-------\         U                  (__)
  560.       /____\        ||     | \    /---V  `v'-            oo )
  561.      /      \       ||---W||  *  * |--|   || |`.         |_/\
  562.  
  563.                                Figure 2.
  564.  
  565.    There is an important subgenre of humorous ASCII art that takes
  566.    advantage of the names of the various characters to tell a
  567.    pun-based joke.
  568.  
  569.      +--------------------------------------------------------+
  570.      |      ^^^^^^^^^^^^                                      |
  571.      | ^^^^^^^^^^^            ^^^^^^^^^                       |
  572.      |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
  573.      |        ^^^^^^^         B       ^^^^^^^^^               |
  574.      |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
  575.      +--------------------------------------------------------+
  576.                   " A Bee in the Carrot Patch "
  577.  
  578.                                Figure 3.
  579.  
  580.    Within humorous ASCII art, there is for some reason an entire
  581.    flourishing subgenre of pictures of silly cows.  Four of these are
  582.    reproduced in Figure 2; here are three more:
  583.  
  584.  
  585.               (__)              (__)              (__)
  586.               (\/)              ($$)              (**)
  587.        /-------\/        /-------\/        /-------\/
  588.       / | 666 ||        / |=====||        / |     ||
  589.      *  ||----||       *  ||----||       *  ||----||
  590.         ~~    ~~          ~~    ~~          ~~    ~~ 
  591.      Satanic cow    This cow is a Yuppie   Cow in love
  592.  
  593.                                Figure 4.
  594.  
  595. attoparsec: n. `atto-' is the standard SI prefix for
  596.    multiplication by 10^{-18}.  A parsec (parallax-second) is
  597.    3.26 light-years; an attoparsec is thus 3.26 * 10^{-18} light
  598.    years, or about 3.1 cm (thus, 1 attoparsec/{microfortnight}
  599.    equals about 1 inch/sec).  This unit is reported to be in use
  600.    (though probably not very seriously) among hackers in the U.K.  See
  601.    {micro-}.
  602.  
  603. autobogotiphobia: /aw'to-boh-got`*-foh'bee-*/ n. See {bogotify}.
  604.  
  605. automagically: /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ adv.
  606.    Automatically, but in a way that, for some reason (typically
  607.    because it is too complicated, or too ugly, or perhaps even too
  608.    trivial), the speaker doesn't feel like explaining to you.  See
  609.    {magic}.  "The C-INTERCAL compiler generates C, then automagically
  610.    invokes `cc(1)' to produce an executable."
  611.  
  612. avatar: [CMU, Tektronix] n. Syn. {root}, {superuser}.  There
  613.    are quite a few UNIX machines on which the name of the superuser
  614.    account is `avatar' rather than `root'.  This quirk was
  615.    originated by a CMU hacker who disliked the term `superuser',
  616.    and was propagated through an ex-CMU hacker at Tektronix.
  617.  
  618. awk: 1. n. [UNIX techspeak] An interpreted language for massaging
  619.    text data developed by Alfred Aho, Peter Weinberger, and Brian
  620.    Kernighan (the name is from their initials).  It is characterized
  621.    by C-like syntax, a declaration-free approach to variable typing
  622.    and declarations, associative arrays, and field-oriented text
  623.    processing.  See also {Perl}.  2. n.  Editing term for an
  624.    expression awkward to manipulate through normal {regexp}
  625.    facilities (for example, one containing a {newline}).  3. vt. To
  626.    process data using `awk(1)'.
  627.  
  628. = B =
  629.  
  630. back door: n. A hole in the security of a system deliberately left
  631.    in place by designers or maintainers.  The motivation for this is
  632.    not always sinister; some operating systems, for example, come out
  633.    of the box with privileged accounts intended for use by field
  634.    service technicians or the vendor's maintenance programmers.
  635.  
  636.    Historically, back doors have often lurked in systems longer than
  637.    anyone expected or planned, and a few have become widely known.
  638.    The infamous {RTM} worm of late 1988, for example, used a back door
  639.    in the {BSD} UNIX `sendmail(8)' utility.
  640.  
  641.    Ken Thompson's 1983 Turing Award lecture to the ACM revealed the
  642.    existence of a back door in early UNIX versions that may have
  643.    qualified as the most fiendishly clever security hack of all time.
  644.    The C compiler contained code that would recognize when the
  645.    `login' command was being recompiled and insert some code
  646.    recognizing a password chosen by Thompson, giving him entry to the
  647.    system whether or not an account had been created for him.
  648.  
  649.    Normally such a back door could be removed by removing it from the
  650.    source code for the compiler and recompiling the compiler.  But to
  651.    recompile the compiler, you have to *use* the compiler --- so
  652.    Thompson also arranged that the compiler would *recognize when
  653.    it was compiling a version of itself*, and insert into the
  654.    recompiled compiler the code to insert into the recompiled `login'
  655.    the code to allow Thompson entry --- and, of course, the code to
  656.    recognize itself and do the whole thing again the next time around!
  657.    And having done this once, he was then able to recompile the
  658.    compiler from the original sources, leaving his back door in place
  659.    and active but with no trace in the sources.
  660.  
  661.    The talk that revealed this truly moby hack was published as
  662.    "Reflections on Trusting Trust", `Communications of the
  663.    ACM 27', 8 (August 1984), pp. 761--763.
  664.  
  665.    Syn. {trap door}; may also be called a `wormhole'.  See also
  666.    {iron box}, {cracker}, {worm}, {logic bomb}.
  667.  
  668. backbone cabal: n. A group of large-site administrators who pushed
  669.    through the {Great Renaming} and reined in the chaos of {USENET}
  670.    during most of the 1980s.  The cabal {mailing list} disbanded in
  671.    late 1988 after a bitter internal catfight, but the net hardly
  672. noticed.
  673.  
  674. backbone site: n. A key USENET and email site; one that processes
  675.    a large amount of third-party traffic, especially if it is the home
  676.    site of any of the regional coordinators for the USENET maps.
  677.    Notable backbone sites as of early 1991 include uunet and the
  678.    mail machines at Rutgers University, UC Berkeley, DEC's Western
  679.    Research Laboratories, Ohio State University, and the University of
  680.    Texas.  Compare {rib site}, {leaf site}.
  681.  
  682. backgammon:: See {bignum}, {moby}, and {pseudoprime}.
  683.  
  684. background: n.,adj.,vt.  To do a task `in background' is to do
  685.    it whenever {foreground} matters are not claiming your undivided
  686.    attention, and `to background' something means to relegate it to
  687.    a lower priority.  "For now, we'll just print a list of nodes and
  688.    links; I'm working on the graph-printing problem in background."
  689.    Note that this implies ongoing activity but at a reduced level or
  690.    in spare time, in contrast to mainstream `back burner' (which
  691.    connotes benign neglect until some future resumption of activity).
  692.    Some people prefer to use the term for processing that they have
  693.    queued up for their unconscious minds (a tack that one can often
  694.    fruitfully take upon encountering an obstacle in creative work).
  695.    Compare {amp off}, {slopsucker}.
  696.  
  697.    Technically, a task running in background is detached from the
  698.    terminal where it was started (and often running at a lower
  699.    priority); oppose {foreground}.  Nowadays this term is primarily
  700.    associated with {{UNIX}}, but it appears to have been first used
  701.    in this sense on OS/360.
  702.  
  703. backspace and overstrike: interj. Whoa!  Back up.  Used to suggest
  704.    that someone just said or did something wrong.  Common among
  705.    APL programmers.
  706.  
  707. backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ [from
  708.    `backward compatibility'] n. A property of hardware or software
  709.    revisions in which previous protocols, formats, and layouts are
  710.    discarded in favor of `new and improved' protocols, formats, and
  711.    layouts.  Occurs usually when making the transition between major
  712.    releases.  When the change is so drastic that the old formats are
  713.    not retained in the new version, it is said to be `backward
  714.    combatable'.  See {flag day}.
  715.  
  716. BAD: /B-A-D/ [IBM: acronym, `Broken As Designed'] adj.  Said
  717.    of a program that is {bogus} because of bad design and misfeatures
  718.    rather than because of bugginess.  See {working as designed}.
  719.  
  720. Bad Thing: [from the 1930 Sellar & Yeatman parody `1066 And
  721.    All That'] n. Something that can't possibly result in improvement
  722.    of the subject.  This term is always capitalized, as in "Replacing
  723.    all of the 9600-baud modems with bicycle couriers would be a Bad
  724.    Thing".  Oppose {Good Thing}.  British correspondents confirm
  725.    that {Bad Thing} and {Good Thing} (and prob. therefore {Right
  726.    Thing} and {Wrong Thing}) come from the book referenced in the
  727.    etymology, which discusses rulers who were Good Kings but Bad
  728.    Things.  This has apparently created a mainstream idiom on the
  729.    British side of the pond.
  730.  
  731. bag on the side: n. An extension to an established hack that is
  732.    supposed to add some functionality to the original.  Usually
  733.    derogatory, implying that the original was being overextended and
  734.    should have been thrown away, and the new product is ugly,
  735.    inelegant, or bloated.  Also v. phrase, `to hang a bag on the side
  736.    [of]'.  "C++?  That's just a bag on the side of C ...." "They
  737.    want me to hang a bag on the side of the accounting system."
  738.  
  739. bagbiter: /bag'bi:t-*r/ n. 1. Something, such as a program or a
  740.    computer, that fails to work, or works in a remarkably clumsy
  741.    manner.  "This text editor won't let me make a file with a line
  742.    longer than 80 characters!  What a bagbiter!"  2. A person who has
  743.    caused you some trouble, inadvertently or otherwise, typically by
  744.    failing to program the computer properly.  Synonyms: {loser},
  745.    {cretin}, {chomper}.  3. adj. `bagbiting' Having the
  746.    quality of a bagbiter.  "This bagbiting system won't let me
  747.    compute the factorial of a negative number."  Compare {losing},
  748.    {cretinous}, {bletcherous}, `barfucious' (under
  749.    {barfulous}) and `chomping' (under {chomp}).  4. `bite
  750.    the bag' vi. To fail in some manner.  "The computer keeps crashing
  751.    every 5 minutes."  "Yes, the disk controller is really biting the
  752.    bag."  The original loading of these terms was almost undoubtedly
  753.    obscene, possibly referring to the scrotum, but in their current
  754.    usage they have become almost completely sanitized.
  755.  
  756.    A program called Lexiphage on the old MIT AI PDP-10 would draw on
  757.    a selected victim's bitmapped terminal the words "THE BAG" in
  758.    ornate letters, and then a pair of jaws biting pieces of it off.
  759.    This is the first and to date only known example of a program
  760.    *intended* to be a bagbiter.
  761.  
  762. bamf: /bamf/ 1. [from old X-Men comics] interj. Notional sound made
  763.    by a person or object teleporting in or out of the hearer's
  764.    vicinity.  Often used in {virtual reality} (esp. {MUD})
  765.    electronic {fora} when a character wishes to make a dramatic entrance
  766.    or exit.  2. The sound of magical transformation, used in virtual
  767.    reality {fora} like sense 1.  3. [from `Don Washington's
  768.    Survival Guide'] n. Acronym for `Bad-Ass Mother Fucker', used to
  769.    refer to one of the handful of nastiest monsters on an LPMUD or
  770.    other similar MUD.
  771.  
  772. banana label: n. The labels often used on the sides of {macrotape}
  773.    reels, so called because they are shaped roughly like blunt-ended
  774.    bananas.  This term, like macrotapes themselves, is still current
  775.    but visibly headed for obsolescence.
  776.  
  777. banana problem: n. [from the story of the little girl who said "I
  778.    know how to spell `banana', but I don't know when to stop"].  Not
  779.    knowing where or when to bring a production to a close (compare
  780.    {fencepost error}).  One may say `there is a banana problem' of an
  781.    algorithm with poorly defined or incorrect termination conditions,
  782.    or in discussing the evolution of a design that may be succumbing
  783.    to featuritis (see also {creeping elegance}, {creeping
  784.    featuritis}).  See item 176 under {HAKMEM}, which describes a
  785.    banana problem in a {Dissociated Press} implementation.
  786.  
  787. bandwidth: n. 1. Used by hackers in a generalization of its
  788.    technical meaning as the volume of information per unit time that a
  789.    computer, person, or transmission medium can handle.  "Those are
  790.    amazing graphics, but I missed some of the detail --- not enough
  791.    bandwidth, I guess."  Compare {low-bandwidth}.  2. Attention
  792.    span.  3. On {USENET}, a measure of network capacity that is
  793.    often wasted by people complaining about how items posted by others
  794.    are a waste of bandwidth.
  795.  
  796. bang: 1. n. Common spoken name for `!' (ASCII 0100001),
  797.    especially when used in pronouncing a {bang path} in spoken
  798.    hackish.  In {elder days} this was considered a CMUish usage,
  799.    with MIT and Stanford hackers preferring {excl} or {shriek};
  800.    but the spread of UNIX has carried `bang' with it (esp. via the
  801.    term {bang path}) and it is now certainly the most common spoken
  802.    name for `!'.  Note that it is used exclusively for
  803.    non-emphatic written `!'; one would not say "Congratulations
  804.    bang" (except possibly for humorous purposes), but if one wanted
  805.    to specify the exact characters `foo!' one would speak "Eff oh oh
  806.    bang".  See {shriek}, {{ASCII}}.  2. interj. An exclamation
  807.    signifying roughly "I have achieved enlightenment!", or "The
  808.    dynamite has cleared out my brain!"  Often used to acknowledge
  809.    that one has perpetrated a {thinko} immediately after one has
  810.    been called on it.
  811.  
  812. bang on: vt. To stress-test a piece of hardware or software: "I
  813.    banged on the new version of the simulator all day yesterday and it
  814.    didn't crash once.  I guess it is ready to release."  The term
  815.    {pound on} is synonymous.
  816.  
  817. bang path: n. An old-style UUCP electronic-mail address specifying
  818.    hops to get from some assumed-reachable location to the addressee,
  819.    so called because each {hop} is signified by a {bang} sign.
  820.    Thus, for example, the path ...!bigsite!foovax!barbox!me
  821.    directs people to route their mail to machine bigsite (presumably
  822.    a well-known location accessible to everybody) and from there
  823.    through the machine foovax to the account of user me on
  824.    barbox.
  825.  
  826.    In the bad old days of not so long ago, before autorouting mailers
  827.    became commonplace, people often published compound bang addresses
  828.    using the { } convention (see {glob}) to give paths from
  829.    *several* big machines, in the hopes that one's correspondent
  830.    might be able to get mail to one of them reliably (example:
  831.    ...!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me).  Bang paths
  832.    of 8 to 10 hops were not uncommon in 1981.  Late-night dial-up
  833.    UUCP links would cause week-long transmission times.  Bang paths
  834.    were often selected by both transmission time and reliability, as
  835.    messages would often get lost.  See {{Internet address}},
  836.    {network, the}, and {sitename}.
  837.  
  838. banner: n. 1. The title page added to printouts by most print
  839.    spoolers (see {spool}).  Typically includes user or account ID
  840.    information in very large character-graphics capitals.  Also called
  841.    a `burst page', because it indicates where to burst (tear apart)
  842.    fanfold paper to separate one user's printout from the next.  2. A
  843.    similar printout generated (typically on multiple pages of fan-fold
  844.    paper) from user-specified text, e.g., by a program such as UNIX's
  845.    `banner({1,6})'.  3. On interactive software, a first screen
  846.    containing a logo and/or author credits and/or a copyright notice.
  847.  
  848. bar: /bar/ n. 1. The second metasyntactic variable, after {foo}
  849.    and before {baz}.  "Suppose we have two functions: FOO and BAR.
  850.    FOO calls BAR...."  2. Often appended to {foo} to produce
  851.    {foobar}.
  852.  
  853. bare metal: n. 1. New computer hardware, unadorned with such
  854.    snares and delusions as an {operating system}, an {HLL}, or
  855.    even assembler.  Commonly used in the phrase `programming on the
  856.    bare metal', which refers to the arduous work of {bit bashing}
  857.    needed to create these basic tools for a new machine.  Real
  858.    bare-metal programming involves things like building boot proms and
  859.    BIOS chips, implementing basic monitors used to test device
  860.    drivers, and writing the assemblers that will be used to write the
  861.    compiler back ends that will give the new machine a real
  862.    development environment.  2. `Programming on the bare metal' is
  863.    also used to describe a style of {hand-hacking} that relies on
  864.    bit-level peculiarities of a particular hardware design, esp.
  865.    tricks for speed and space optimization that rely on crocks such as
  866.    overlapping instructions (or, as in the famous case described in
  867.    appendix A, interleaving of opcodes on a magnetic drum to minimize
  868.    fetch delays due to the device's rotational latency).  This sort of
  869.    thing has become less common as the relative costs of programming
  870.    time and machine resources have changed, but is still found in
  871.    heavily constrained environments such as industrial embedded systems.
  872.    See {real programmer}.
  873.  
  874.    In the world of personal computing, bare metal programming (especially
  875.    in sense 1 but sometimes also in sense 2) is often considered a
  876.    {Good Thing}, or at least a necessary thing (because these
  877.    machines have often been sufficiently slow and poorly designed
  878.    to make it necessary; see {ill-behaved}).  There, the term
  879.    usually refers to bypassing the BIOS or OS interface and writing
  880.    the application to directly access device registers and machine
  881.    addresses.  "To get 19.2 kilobaud on the serial port, you need to
  882.    get down to the bare metal."  People who can do this sort of thing
  883.    are held in high regard.
  884.  
  885. barf: /barf/ [from mainstream slang meaning `vomit']
  886.    1. interj.  Term of disgust.  This is the closest hackish
  887.    equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!)
  888.    See {bletch}.  2. vi. To say "Barf!" or emit some similar
  889.    expression of disgust.  "I showed him my latest hack and he
  890.    barfed" means only that he complained about it, not that he
  891.    literally vomited.  3. vi. To fail to work because of unacceptable
  892.    input.  May mean to give an error message.  Examples: "The
  893.    division operation barfs if you try to divide by 0."  (That is,
  894.    the division operation checks for an attempt to divide by zero, and
  895.    if one is encountered it causes the operation to fail in some
  896.    unspecified, but generally obvious, manner.) "The text editor
  897.    barfs if you try to read in a new file before writing out the old
  898.    one."  See {choke}, {gag}.  In Commonwealth hackish,
  899.    `barf' is generally replaced by `puke' or `vom'.  {barf}
  900.    is sometimes also used as a metasyntactic variable, like {foo} or
  901.    {bar}.
  902.  
  903. barfulation: /bar`fyoo-lay'sh*n/ interj. Variation of {barf}
  904.    used around the Stanford area.  An exclamation, expressing disgust.
  905.    On seeing some particularly bad code one might exclaim,
  906.    "Barfulation!  Who wrote this, Quux?"
  907.  
  908. barfulous: /bar'fyoo-l*s/ adj. (alt. `barfucious',
  909.    /bar-fyoo-sh*s/) Said of something that would make anyone barf,
  910.    if only for esthetic reasons.
  911.  
  912. baroque: adj. Feature-encrusted; complex; gaudy; verging on
  913.    excessive.  Said of hardware or (esp.) software designs, this has
  914.    many of the connotations of {elephantine} or {monstrosity} but is
  915.    less extreme and not pejorative in itself.  "Metafont even has 
  916.    features to introduce random variations to its letterform output.
  917.    Now *that* is baroque!"  See also {rococo}.
  918.  
  919. BartleMUD: /bar'tl-muhd/ n. Any of the MUDs derived from the
  920.    original MUD game by Richard Bartle (see {MUD}).  BartleMUDs are
  921.    noted for their (usually slightly offbeat) humor, dry but friendly
  922.    syntax, and lack of adjectives in object descriptions, so a player
  923.    is likely to come across `brand172', for instance (see {brand
  924.    brand brand}).  Some MUDders intensely dislike Bartle and this
  925.    term, and prefer to speak of `MUD-1'.
  926.  
  927. BASIC: n. A programming language, originally designed for
  928.    Dartmouth's experimental timesharing system in the
  929.    early 1960s, which has since become the leading cause of
  930.    brain-damage in proto-hackers.  This is another case (like
  931.    {Pascal}) of the bad things that happen when a language
  932.    deliberately designed as an educational toy gets taken too
  933.    seriously.  A novice can write short BASIC programs (on the order of
  934.    10--20 lines) very easily; writing anything longer is (a) very
  935.    painful, and (b) encourages bad habits that will bite him/her later
  936.    if he/she tries to hack in a real language.  This wouldn't be so
  937.    bad if historical accidents hadn't made BASIC so common on low-end
  938.    micros.  As it is, it ruins thousands of potential wizards a year.
  939.  
  940. batch: adj. 1. Non-interactive.  Hackers use this somewhat more
  941.    loosely than the traditional technical definitions justify; in
  942.    particular, switches on a normally interactive program that prepare
  943.    it to receive non-interactive command input are often referred to
  944.    as `batch mode' switches.  A `batch file' is a series of
  945.    instructions written to be handed to an interactive program running
  946.    in batch mode.  2. Performance of dreary tasks all at one sitting.
  947.    "I finally sat down in batch mode and wrote out checks for all
  948.    those bills; I guess they'll turn the electricity back on next
  949.    week..." 3. Accumulation of a number of small tasks that can be
  950.    lumped together for greater efficiency.  "I'm batching up those
  951.    letters to send sometime" "I'm batching up bottles to take to the
  952.    recycling center."
  953.  
  954. bathtub curve: n. Common term for the curve (resembling an
  955.    end-to-end section of one of those claw-footed antique bathtubs)
  956.    that describes the expected failure rate of electronics with time:
  957.    initially high, dropping to near 0 for most of the system's
  958.    lifetime, then rising again as it `tires out'.  See also {burn-in
  959.    period}, {infant mortality}.
  960.  
  961. baud: /bawd/ [simplified from its technical meaning] n. Bits per
  962.    second.  Hence kilobaud or Kbaud, thousands of bits per second.
  963.    The technical meaning is `level transitions per second'; this
  964.    coincides with bps only for two-level modulation with no framing or
  965.    stop bits.  Most hackers are aware of these nuances but blithely
  966.    ignore them.
  967.  
  968. baud barf: /bawd barf/ n. The garbage one gets on the monitor
  969.    when using a modem connection with some protocol setting (esp.
  970.    line speed) incorrect, or when someone picks up a voice extension
  971.    on the same line, or when really bad line noise disrupts the
  972.    connection.  Baud barf is not completely {random}, by the way;
  973.    hackers with a lot of serial-line experience can usually tell
  974.    whether the device at the other end is expecting a higher or lower
  975.    speed than the terminal is set to.  *Really* experienced ones
  976.    can identify particular speeds.
  977.  
  978. baz: /baz/ [Stanford: corruption of {bar}] n. 1. The third
  979.    metasyntactic variable, after {foo} and {bar} and before
  980.    {quux} (or, occasionally, `qux'; or local idiosyncracies like
  981.    `rag', `zowie', etc.).  "Suppose we have three functions: FOO,
  982.    BAR, and BAZ.  FOO calls BAR, which calls BAZ...."
  983.    2. interj. A term of mild annoyance.  In this usage the term is
  984.    often drawn out for 2 or 3 seconds, producing an effect not unlike
  985.    the bleating of a sheep; /baaaaaaz/.  3. Occasionally appended to
  986.    {foo} to produce `foobaz'.
  987.  
  988. bboard: /bee'bord/ [contraction of `bulletin board'] n.
  989.    1. Any electronic bulletin board; esp. used of {BBS} systems
  990.    running on personal micros, less frequently of a USENET
  991.    {newsgroup} (in fact, use of the term for a newsgroup generally
  992.    marks one either as a {newbie} fresh in from the BBS world or as
  993.    a real old-timer predating USENET).  2. At CMU and other colleges
  994.    with similar facilities, refers to campus-wide electronic bulletin
  995.    boards.  3. The term `physical bboard' is sometimes used to
  996.    refer to a old-fashioned, non-electronic cork memo board.  At CMU,
  997.    it refers to a particular one outside the CS Lounge.
  998.  
  999.    In either of senses 1 or 2, the term is usually prefixed by the
  1000.    name of the intended board (`the Moonlight Casino bboard' or
  1001.    `market bboard'); however, if the context is clear, the better-read
  1002.    bboards may be referred to by name alone, as in (at CMU) "Don't
  1003.    post for-sale ads on general".
  1004.  
  1005. BBS: /B-B-S/ [acronym, `Bulletin Board System'] n. An electronic
  1006.    bulletin board system; that is, a message database where people can
  1007.    log in and leave broadcast messages for others grouped (typically)
  1008.    into {topic group}s.  Thousands of local BBS systems are in
  1009.    operation throughout the U.S., typically run by amateurs for fun
  1010.    out of their homes on MS-DOS boxes with a single modem line each.
  1011.    Fans of USENET and Internet or the big commercial timesharing
  1012.    bboards such as CompuServe and GEnie tend to consider local BBSes
  1013.    the low-rent district of the hacker culture, but they serve a
  1014.    valuable function by knitting together lots of hackers and users in
  1015.    the personal-micro world who would otherwise be unable to exchange
  1016.    code at all.
  1017.  
  1018. beam: [from Star Trek Classic's "Beam me up, Scotty!"] vt. To
  1019.    transfer {softcopy} of a file electronically; most often in
  1020.    combining forms such as `beam me a copy' or `beam that over to
  1021.    his site'.  Compare {blast}, {snarf}, {BLT}.
  1022.  
  1023. beanie key: [Mac users] n. See {command key}.
  1024.  
  1025. beep: n.,v. Syn. {feep}.  This term seems to be preferred among micro
  1026.    hobbyists.
  1027.  
  1028. beige toaster: n. A Macintosh. See {toaster}; compare
  1029.    {Macintrash}, {maggotbox}.
  1030.  
  1031. bells and whistles: [by analogy with the toyboxes on theater
  1032.    organs] n. Features added to a program or system to make it more
  1033.    {flavorful} from a hacker's point of view, without necessarily
  1034.    adding to its utility for its primary function.  Distinguished from
  1035.    {chrome}, which is intended to attract users.  "Now that we've
  1036.    got the basic program working, let's go back and add some bells and
  1037.    whistles."  No one seems to know what distinguishes a bell from a
  1038.    whistle.
  1039.  
  1040. bells, whistles, and gongs: n. A standard elaborated form of
  1041.    {bells and whistles}; typically said with a pronounced and ironic
  1042.    accent on the `gongs'.
  1043.  
  1044. benchmark: [techspeak] n. An inaccurate measure of computer
  1045.    performance.  "In the computer industry, there are three kinds of
  1046.    lies: lies, damn lies, and benchmarks."  Well-known ones include
  1047.    Whetstone, Dhrystone, Rhealstone (see {h}), the Gabriel LISP
  1048.    benchmarks (see {gabriel}), the SPECmark suite, and LINPACK.  See
  1049.    also {machoflops}, {MIPS}.
  1050.  
  1051. Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
  1052.    in a pejorative sense to refer to software that was apparently
  1053.    created by rather spaced-out hackers late at night to solve some
  1054.    unique problem.  It usually has nonexistent, incomplete, or
  1055.    incorrect documentation, has been tested on at least two examples,
  1056.    and core dumps when anyone else attempts to use it.  This term was
  1057.    frequently applied to early versions of the `dbx(1)' debugger.
  1058.    See also {Berzerkeley}.
  1059.  
  1060. berklix: /berk'liks/ n.,adj. [contraction of `Berkeley UNIX'] See
  1061.    {BSD}.  Not used at Berkeley itself.  May be more common among
  1062.    {suit}s attempting to sound like cognoscenti than among hackers,
  1063.    who usually just say `BSD'.
  1064.  
  1065. berserking: vi. A {MUD} term meaning to gain points *only*
  1066.    by killing other players and mobiles (non-player characters).
  1067.    Hence, a Berserker-Wizard is a player character that has achieved
  1068.    enough points to become a wizard, but only by killing other
  1069.    characters.  Berserking is sometimes frowned upon because of its
  1070.    inherently antisocial nature, but some MUDs have a `berserker
  1071.    mode' in which a player becomes *permanently* berserk, can
  1072.    never flee from a fight, cannot use magic, gets no score for
  1073.    treasure, but does get double kill points.  "Berserker
  1074.    wizards can seriously damage your elf!"
  1075.  
  1076. Berzerkeley: /b*r-zer'klee/ [from `berserk', via the name of a
  1077.    now-deceased record label] n. Humorous distortion of `Berkeley'
  1078.    used esp. to refer to the practices or products of the
  1079.    {BSD} UNIX hackers.  See {software bloat}, {Missed'em-five},
  1080.    {Berkeley Quality Software}.
  1081.  
  1082.    Mainstream use of this term in reference to the cultural and
  1083.    political peculiarities of UC Berkeley as a whole has been reported
  1084.    from as far back as the 1960s.
  1085.  
  1086. beta: /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n. 1. In
  1087.    the {Real World}, software often goes through two stages of
  1088.    testing: Alpha (in-house) and Beta (out-house?).  Software is said
  1089.    to be `in beta'.  2. Anything that is new and experimental is in
  1090.    beta. "His girlfriend is in beta" means that he is still testing
  1091.    for compatibility and reserving judgment.  3. Beta software is
  1092.    notoriously buggy, so `in beta' connotes flakiness.
  1093.  
  1094.    Historical note: More formally, to beta-test is to test a
  1095.    pre-release (potentially unreliable) version of a piece of software
  1096.    by making it available to selected customers and users.  This term
  1097.    derives from early 1960s terminology for product cycle checkpoints,
  1098.    first used at IBM but later standard throughout the industry.
  1099.    `Alpha Test' was the unit, module, or component test phase; `Beta
  1100.    Test' was initial system test.  These themselves came from earlier
  1101.    A- and B-tests for hardware.  The A-test was a feasibility and
  1102.    manufacturability evaluation done before any commitment to design
  1103.    and development.  The B-test was a demonstration that the
  1104.    engineering model functioned as specified.  The C-test
  1105.    (corresponding to today's beta) was the B-test performed on early
  1106.    samples of the production design.
  1107.  
  1108. BFI: /B-F-I/ n. See {brute force and ignorance}.  Also
  1109.    encountered in the variant `BFMI', `brute force and
  1110.    *massive* ignorance'.
  1111.  
  1112. bible: n. 1. One of a small number of fundamental source books
  1113.    such as {Knuth} and {K&R}.  2. The most detailed and
  1114.    authoritative reference for a particular language, operating
  1115.    system, or other complex software system.
  1116.  
  1117. BiCapitalization: n. The act said to have been performed on
  1118.    trademarks (such as NeXT, {NeWS}, VisiCalc, FrameMaker,
  1119.    TK!solver, EasyWriter) that have been raised above the ruck of
  1120.    common coinage by nonstandard capitalization.  Too many
  1121.    {marketroid} types think this sort of thing is really cute, even
  1122.    the 2,317th time they do it.  Compare {studlycaps}.
  1123.  
  1124. BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
  1125.    prototypical {newbie}.  Articles from BIFF are characterized by
  1126.    all uppercase letters sprinkled liberally with bangs, typos,
  1127.    `cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A K00L
  1128.    DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE
  1129.    THIS!!!), use (and often misuse) of fragments of {talk mode}
  1130.    abbreviations, a long {sig block} (sometimes even a {doubled
  1131.    sig}), and unbounded na"ivet'e.  BIFF posts articles using his elder
  1132.    brother's VIC-20.  BIFF's location is a mystery, as his articles
  1133.    appear to come from a variety of sites.  However, {BITNET} seems to
  1134.    be the most frequent origin.  The theory that BIFF is a denizen of
  1135.    BITNET is supported by BIFF's (unfortunately invalid) electronic
  1136.    mail address: BIFF@BIT.NET.
  1137.  
  1138. biff: /bif/ vt. To notify someone of incoming mail.  From the
  1139.    BSD utility `biff(1)', which was in turn named after the
  1140.    implementor's dog (it barked whenever the mailman came).  No
  1141.    relation to {BIFF}.
  1142.  
  1143. Big Gray Wall: n. What faces a {VMS} user searching for
  1144.    documentation.  A full VMS kit comes on a pallet, the documentation
  1145.    taking up around 15 feet of shelf space before the addition of layered
  1146.    products such as compilers, databases, multivendor networking,
  1147.    and programming tools.  Recent (since VMS version 5) DEC
  1148.    documentation comes with gray binders; under VMS version 4 the
  1149.    binders were orange (`big orange wall'), and under version 3
  1150.    they were blue.  See {VMS}.
  1151.  
  1152. big iron: n. Large, expensive, ultra-fast computers.  Used generally
  1153.    of {number-crunching} supercomputers such as Crays, but can include
  1154.    more conventional big commercial IBMish mainframes.  Term of
  1155.    approval; compare {heavy metal}, oppose {dinosaur}.
  1156.  
  1157. Big Red Switch: [IBM] n. The power switch on a computer, esp. the
  1158.    `Emergency Pull' switch on an IBM {mainframe} or the power switch
  1159.    on an IBM PC where it really is large and red.  "This !@%$%
  1160.    {bitty box} is hung again; time to hit the Big Red Switch."
  1161.    Sources at IBM report that, in tune with the company's passion for
  1162.    {TLA}s, this is often acronymized as `BRS' (this has also
  1163.    become established on FidoNet and in the PC {clone} world).  It
  1164.    is alleged that the emergency pull switch on an IBM 360/91 actually
  1165.    fired a non-conducting bolt into the main power feed; the BRSes on
  1166.    more recent machines physically drop a block into place so that
  1167.    they can't be pushed back in.  People get fired for pulling them,
  1168.    especially inappropriately (see also {molly-guard}).  Compare
  1169.    {power cycle}, {three-finger salute}, {120 reset}.
  1170.  
  1171. Big Room, the: n. The extremely large room with the blue ceiling
  1172.    and intensely bright light (during the day) or black ceiling with
  1173.    lots of tiny night-lights (during the night) found outside all
  1174.    computer installations.  "He can't come to the phone right now,
  1175.    he's somewhere out in the Big Room."
  1176.  
  1177. big win: n. Serendipity.  "Yes, those two physicists discovered
  1178.    high-temperature superconductivity in a batch of ceramic that had
  1179.    been prepared incorrectly according to their experimental schedule.
  1180.    Small mistake; big win!" See {win big}.
  1181.  
  1182. big-endian: [From Swift's `Gulliver's Travels' via the famous
  1183.    paper `On Holy Wars and a Plea for Peace' by Danny Cohen,
  1184.    USC/ISI IEN 137, dated April 1, 1980] adj. 1. Describes a computer
  1185.    architecture in which, within a given multi-byte numeric
  1186.    representation, the most significant byte has the lowest address
  1187.    (the word is stored `big-end-first').  Most processors, including
  1188.    the IBM 370 family, the {PDP-10}, the Motorola microprocessor
  1189.    families, and most of the various RISC designs current in mid-1991,
  1190.    are big-endian.  See {little-endian}, {middle-endian}, {NUXI
  1191.    problem}.  2. An {{Internet address}} the wrong way round.  Most
  1192.    of the world follows the Internet standard and writes email
  1193.    addresses starting with the name of the computer and ending up with
  1194.    the name of the country.  In the U.K. the Joint Networking Team had
  1195.    decided to do it the other way round before the Internet domain
  1196.    standard was established; e.g., me@uk.ac.wigan.cs.  Most gateway
  1197.    sites have {ad-hockery} in their mailers to handle this, but can
  1198.    still be confused.  In particular, the address above could be in the
  1199.    U.K. (domain uk) or Czechoslovakia (domain cs).
  1200.  
  1201. bignum: /big'nuhm/ [orig. from MIT MacLISP] n. 1. [techspeak] A
  1202.    multiple-precision computer representation for very large integers.
  1203.    More generally, any very large number.  "Have you ever looked at
  1204.    the United States Budget?  There's bignums for you!"
  1205.    2. [Stanford] In backgammon, large numbers on the dice are called
  1206.    `bignums', especially a roll of double fives or double sixes
  1207.    (compare {moby}, sense 4).  See also {El Camino Bignum}.
  1208.  
  1209.    Sense 1 may require some explanation.  Most computer languages
  1210.    provide a kind of data called `integer', but such computer
  1211.    integers are usually very limited in size; usually they must be
  1212.    smaller than than 2^{31} (2,147,483,648) or (on a losing
  1213.    {bitty box}) 2^{15} (32,768).  If you want to work with
  1214.    numbers larger than that, you have to use floating-point numbers,
  1215.    which are usually accurate to only six or seven decimal places.
  1216.    Computer languages that provide bignums can perform exact
  1217.    calculations on very large numbers, such as 1000!  (the factorial
  1218.    of 1000, which is 1000 times 999 times 998 times ... times 2
  1219.    times 1).  For example, this value for 1000!  was computed by the
  1220.    MacLISP system using bignums:
  1221.  
  1222.      40238726007709377354370243392300398571937486421071
  1223.      46325437999104299385123986290205920442084869694048
  1224.      00479988610197196058631666872994808558901323829669
  1225.      94459099742450408707375991882362772718873251977950
  1226.      59509952761208749754624970436014182780946464962910
  1227.      56393887437886487337119181045825783647849977012476
  1228.      63288983595573543251318532395846307555740911426241
  1229.      74743493475534286465766116677973966688202912073791
  1230.      43853719588249808126867838374559731746136085379534
  1231.      52422158659320192809087829730843139284440328123155
  1232.      86110369768013573042161687476096758713483120254785
  1233.      89320767169132448426236131412508780208000261683151
  1234.      02734182797770478463586817016436502415369139828126
  1235.      48102130927612448963599287051149649754199093422215
  1236.      66832572080821333186116811553615836546984046708975
  1237.      60290095053761647584772842188967964624494516076535
  1238.      34081989013854424879849599533191017233555566021394
  1239.      50399736280750137837615307127761926849034352625200
  1240.      01588853514733161170210396817592151090778801939317
  1241.      81141945452572238655414610628921879602238389714760
  1242.      88506276862967146674697562911234082439208160153780
  1243.      88989396451826324367161676217916890977991190375403
  1244.      12746222899880051954444142820121873617459926429565
  1245.      81746628302955570299024324153181617210465832036786
  1246.      90611726015878352075151628422554026517048330422614
  1247.      39742869330616908979684825901254583271682264580665
  1248.      26769958652682272807075781391858178889652208164348
  1249.      34482599326604336766017699961283186078838615027946
  1250.      59551311565520360939881806121385586003014356945272
  1251.      24206344631797460594682573103790084024432438465657
  1252.      24501440282188525247093519062092902313649327349756
  1253.      55139587205596542287497740114133469627154228458623
  1254.      77387538230483865688976461927383814900140767310446
  1255.      64025989949022222176590433990188601856652648506179
  1256.      97023561938970178600408118897299183110211712298459
  1257.      01641921068884387121855646124960798722908519296819
  1258.      37238864261483965738229112312502418664935314397013
  1259.      74285319266498753372189406942814341185201580141233
  1260.      44828015051399694290153483077644569099073152433278
  1261.      28826986460278986432113908350621709500259738986355
  1262.      42771967428222487575867657523442202075736305694988
  1263.      25087968928162753848863396909959826280956121450994
  1264.      87170124451646126037902930912088908694202851064018
  1265.      21543994571568059418727489980942547421735824010636
  1266.      77404595741785160829230135358081840096996372524230
  1267.      56085590370062427124341690900415369010593398383577
  1268.      79394109700277534720000000000000000000000000000000
  1269.      00000000000000000000000000000000000000000000000000
  1270.      00000000000000000000000000000000000000000000000000
  1271.      00000000000000000000000000000000000000000000000000
  1272.      00000000000000000000000000000000000000000000000000
  1273.      000000000000000000.
  1274.  
  1275. bigot: n. A person who is religiously attached to a particular
  1276.    computer, language, operating system, editor, or other tool (see
  1277.    {religious issues}).  Usually found with a specifier; thus,
  1278.    `cray bigot', {ITS bigot}, `APL bigot', `VMS bigot',
  1279.    {Berkeley bigot}.  True bigots can be distinguished from mere
  1280.    partisans or zealots by the fact that they refuse to learn
  1281.    alternatives even when the march of time and/or technology is
  1282.    threatening to obsolete the favored tool.  It is said "You can
  1283.    tell a bigot, but you can't tell him much."  Compare
  1284.    {weenie}.
  1285.  
  1286. bit: [from the mainstream meaning and `Binary digIT'] n.
  1287.    1. [techspeak] The unit of information; the amount of information
  1288.    obtained by asking a yes-or-no question for which the two outcomes
  1289.    are equally probable.  2. [techspeak] A computational quantity that
  1290.    can take on one of two values, such as true and false or 0 and 1.
  1291.    3. A mental flag: a reminder that something should be done
  1292.    eventually.  "I have a bit set for you."  (I haven't seen you for
  1293.    a while, and I'm supposed to tell or ask you something.)  4. More
  1294.    generally, a (possibly incorrect) mental state of belief.  "I have
  1295.    a bit set that says that you were the last guy to hack on EMACS."
  1296.    (Meaning "I think you were the last guy to hack on EMACS, and what
  1297.    I am about to say is predicated on this, so please stop me if this
  1298.    isn't true.")
  1299.  
  1300.    "I just need one bit from you" is a polite way of indicating that
  1301.    you intend only a short interruption for a question that can
  1302.    presumably be answered yes or no.
  1303.  
  1304.    A bit is said to be `set' if its value is true or 1, and
  1305.    `reset' or `clear' if its value is false or 0.  One
  1306.    speaks of setting and clearing bits.  To {toggle} or
  1307.    `invert' a bit is to change it, either from 0 to 1 or from
  1308.    1 to 0.  See also {flag}, {trit}, {mode bit}.
  1309.  
  1310. bit bang: n. Transmission of data on a serial line, when
  1311.    accomplished by rapidly tweaking a single output bit at the
  1312.    appropriate times.  The technique is a simple
  1313.    loop with eight OUT and SHIFT instruction pairs for each byte.
  1314.    Input is more interesting.  And full duplex (doing input and output
  1315.    at the same time) is one way to separate the real hackers from the
  1316.    {wannabee}s.
  1317.  
  1318.    Bit bang was used on certain early models of Prime computers,
  1319.    presumably when UARTs were too expensive, and on archaic Z80 micros
  1320.    with a Zilog PIO but no SIO.  In an interesting instance of the
  1321.    {cycle of reincarnation}, this technique is now (1991) coming
  1322.    back into use on some RISC architectures because it consumes such
  1323.    an infinitesimal part of the processor that it actually makes sense
  1324.    not to have a UART.
  1325.  
  1326. bit bashing: n. (alt. `bit diddling' or {bit twiddling}) Term
  1327.    used to describe any of several kinds of low-level programming
  1328.    characterized by manipulation of {bit}, {flag}, {nybble},
  1329.    and other smaller-than-character-sized pieces of data; these
  1330.    include low-level device control, encryption algorithms, checksum
  1331.    and error-correcting codes, hash functions, some flavors of
  1332.    graphics programming (see {bitblt}), and assembler/compiler code
  1333.    generation.  May connote either tedium or a real technical
  1334.    challenge (more usually the former).  "The command decoding for
  1335.    the new tape driver looks pretty solid but the bit-bashing for the
  1336.    control registers still has bugs."  See also {bit bang},
  1337.    {mode bit}.
  1338.  
  1339. bit bucket: n. 1. The universal data sink (originally, the
  1340.    mythical receptacle used to catch bits when they fall off the end
  1341.    of a register during a shift instruction).  Discarded, lost, or
  1342.    destroyed data is said to have `gone to the bit bucket'.  On {{UNIX}},
  1343.    often used for {/dev/null}.  Sometimes amplified as `the Great
  1344.    Bit Bucket in the Sky'.  2. The place where all lost mail and news
  1345.    messages eventually go.  The selection is performed according to
  1346.    {Finagle's Law}; important mail is much more likely to end up in
  1347.    the bit bucket than junk mail, which has an almost 100% probability
  1348.    of getting delivered.  Routing to the bit bucket is automatically
  1349.    performed by mail-transfer agents, news systems, and the lower
  1350.    layers of the network.  3. The ideal location for all unwanted mail
  1351.    responses: "Flames about this article to the bit bucket."
  1352.    Such a request is guaranteed to overflow one's mailbox with flames.
  1353.    4. Excuse for all mail that has not been sent.  "I mailed you
  1354.    those figures last week; they must have ended in the bit bucket."
  1355.    Compare {black hole}.
  1356.  
  1357.    This term is used purely in jest.  It is based on the fanciful
  1358.    notion that bits are objects that are not destroyed but only
  1359.    misplaced.  This appears to have been a mutation of an earlier term
  1360.    `bit box', about which the same legend was current; old-time
  1361.    hackers also report that trainees used to be told that when the CPU
  1362.    stored bits into memory it was actually pulling them `out of the
  1363.    bit box'.  See also {chad box}.
  1364.  
  1365.    Another variant of this legend has it that, as a consequence of the
  1366.    `parity preservation law', the number of 1 bits that go to the bit
  1367.    bucket must equal the number of 0 bits.  Any imbalance results in
  1368.    bits filling up the bit bucket.  A qualified computer technician
  1369.    can empty a full bit bucket as part of scheduled maintenance.
  1370.  
  1371. bit decay: n. See {bit rot}.  People with a physics background
  1372.    tend to prefer this one for the analogy with particle decay.  See
  1373.    also {computron}, {quantum bogodynamics}.
  1374.  
  1375. bit rot: n. Also {bit decay}.  Hypothetical disease the existence
  1376.    of which has been deduced from the observation that unused programs
  1377.    or features will often stop working after sufficient time has
  1378.    passed, even if `nothing has changed'.  The theory explains that
  1379.    bits decay as if they were radioactive.  As time passes, the
  1380.    contents of a file or the code in a program will become
  1381.    increasingly garbled.
  1382.  
  1383.    There actually are physical processes that produce such effects
  1384.    (alpha particles generated by trace radionuclides in ceramic chip
  1385.    packages, for example, can change the contents of a computer memory
  1386.    unpredictably, and various kinds of subtle media failures can
  1387.    corrupt files in mass storage), but they are quite rare (and
  1388.    computers are built with error-detecting circuitry to compensate
  1389.    for them).  The notion long favored among hackers that cosmic
  1390.    rays are among the causes of such events turns out to be a myth;
  1391.    see the {cosmic rays} entry for details.
  1392.  
  1393.    The term {software rot} is almost synonymous.  Software rot is
  1394.    the effect, bit rot the notional cause.
  1395.  
  1396. bit twiddling: n. 1. (pejorative) An exercise in {tuning} in
  1397.    which incredible amounts of time and effort go to produce little
  1398.    noticeable improvement, often with the result that the code has
  1399.    become incomprehensible.  2. Aimless small modification to a
  1400.    program, esp. for some pointless goal.  3. Approx. syn. for {bit
  1401.    bashing}; esp. used for the act of frobbing the device control
  1402.    register of a peripheral in an attempt to get it back to a known
  1403.    state.
  1404.  
  1405. bit-paired keyboard: n. obs. (alt. `bit-shift keyboard') A
  1406.    non-standard keyboard layout that seems to have originated with
  1407.    the Teletype ASR-33 and remained common for several years on early
  1408.    computer equipment.  The ASR-33 was a mechanical device (see
  1409.    {EOU}), so the only way to generate the character codes from
  1410.    keystrokes was by some physical linkage.  The design of the ASR-33
  1411.    assigned each character key a basic pattern that could be modified
  1412.    by flipping bits if the SHIFT or the CTRL key was pressed.  In order
  1413.    to avoid making the thing more of a Rube Goldberg kluge than it
  1414.    already was, the design had to group characters that shared the
  1415.    same basic bit pattern on one key.
  1416.  
  1417.    Looking at the ASCII chart, we find:
  1418.  
  1419.      high  low bits
  1420.      bits  0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
  1421.       010        !    "    #    $    %    &    '    (    )
  1422.       011   0    1    2    3    4    5    6    7    8    9
  1423.  
  1424.    This is why the characters !"#$%&'() appear where they do on a
  1425.    Teletype (thankfully, they didn't use shift-0 for space).  This was
  1426.    *not* the weirdest variant of the {QWERTY} layout widely
  1427.    seen, by the way; that prize should probably go to one of several
  1428.    (differing) arrangements on IBM's even clunkier 026 and 029 card
  1429.    punches.
  1430.  
  1431.    When electronic terminals became popular, in the early 1970s, there
  1432.    was no agreement in the industry over how the keyboards should be
  1433.    laid out.  Some vendors opted to emulate the Teletype keyboard,
  1434.    while others used the flexibility of electronic circuitry to make
  1435.    their product look like an office typewriter.  These alternatives
  1436.    became known as `bit-paired' and `typewriter-paired' keyboards.  To
  1437.    a hacker, the bit-paired keyboard seemed far more logical --- and
  1438.    because most hackers in those days had never learned to touch-type,
  1439.    there was little pressure from the pioneering users to adapt
  1440.    keyboards to the typewriter standard.
  1441.  
  1442.    The doom of the bit-paired keyboard was the large-scale
  1443.    introduction of the computer terminal into the normal office
  1444.    environment, where out-and-out technophobes were expected to use
  1445.    the equipment.  The `typewriter-paired' standard became universal,
  1446.    `bit-paired' hardware was quickly junked or relegated to dusty
  1447.    corners, and both terms passed into disuse.
  1448.  
  1449. bitblt: /bit'blit/ n. [from {BLT}, q.v.] 1. Any of a family
  1450.    of closely related algorithms for moving and copying rectangles of
  1451.    bits between main and display memory on a bit-mapped device, or
  1452.    between two areas of either main or display memory (the requirement
  1453.    to do the {Right Thing} in the case of overlapping source and
  1454.    destination rectangles is what makes BitBlt tricky).  2. Synonym
  1455.    for {blit} or {BLT}.  Both uses are borderline techspeak.
  1456.  
  1457. BITNET: /bit'net/ [acronym: Because It's Time NETwork] n.
  1458.    Everybody's least favorite piece of the network (see {network,
  1459.    the}).  The BITNET hosts are a collection of IBM dinosaurs and
  1460.    VAXen (the latter with lobotomized comm hardware) that communicate
  1461.    using 80-character {{EBCDIC}} card images (see {eighty-column
  1462.    mind}); thus, they tend to mangle the headers and text of
  1463.    third-party traffic from the rest of the ASCII/RFC-822 world with
  1464.    annoying regularity.  BITNET is also notorious as the apparent home
  1465.    of {BIFF}.
  1466.  
  1467. bits: n.pl. 1. Information.  Examples: "I need some bits about file
  1468.    formats."  ("I need to know about file formats.")  Compare {core
  1469.    dump}, sense 4.  2. Machine-readable representation of a document,
  1470.    specifically as contrasted with paper:  "I have only a photocopy
  1471.    of the Jargon File; does anyone know where I can get the bits?".
  1472.    See {softcopy}, {source of all good bits} See also {bit}.
  1473.  
  1474. bitty box: /bit'ee boks/ n. 1. A computer sufficiently small,
  1475.    primitive, or incapable as to cause a hacker acute claustrophobia
  1476.    at the thought of developing software for it.  Especially used of
  1477.    small, obsolescent, single-tasking-only personal machines such as
  1478.    the Atari 800, Osborne, Sinclair, VIC-20, TRS-80, or IBM PC.
  1479.    2. [Pejorative]  More generally, the opposite of `real computer'
  1480.    (see {Get a real computer!}).  See also {mess-dos},
  1481.    {toaster}, and {toy}.
  1482.  
  1483. bixie: /bik'see/ n. Variant {emoticon}s used on BIX (the Byte
  1484.    Information eXchange).  The {smiley} bixie is <@_@>, apparently
  1485.    intending to represent two cartoon eyes and a mouth.  A few others
  1486.    have been reported.
  1487.  
  1488. black art: n. A collection of arcane, unpublished, and (by
  1489.    implication) mostly ad-hoc techniques developed for a particular
  1490.    application or systems area (compare {black magic}).  VLSI design
  1491.    and compiler code optimization were (in their beginnings)
  1492.    considered classic examples of black art; as theory developed they
  1493.    became {deep magic}, and once standard textbooks had been written,
  1494.    became merely {heavy wizardry}.  The huge proliferation of formal
  1495.    and informal channels for spreading around new computer-related
  1496.    technologies during the last twenty years has made both the term
  1497.    `black art' and what it describes less common than formerly.  See
  1498.    also {voodoo programming}.
  1499.  
  1500. black hole: n. When a piece of email or netnews disappears
  1501.    mysteriously between its origin and destination sites (that is,
  1502.    without returning a {bounce message}) it is commonly said to have
  1503.    `fallen into a black hole'.  "I think there's a black hole at
  1504.    foovax!" conveys suspicion that site foovax has been dropping
  1505.    a lot of stuff on the floor lately (see {drop on the floor}).
  1506.    The implied metaphor of email as interstellar travel is interesting
  1507.    in itself.  Compare {bit bucket}.
  1508.  
  1509. black magic: n. A technique that works, though nobody really
  1510.    understands why.  More obscure than {voodoo programming}, which
  1511.    may be done by cookbook.  Compare also {black art}, {deep
  1512.    magic}, and {magic number} (sense 2).
  1513.  
  1514. blast: 1. vt.,n. Synonym for {BLT}, used esp. for large data
  1515.    sends over a network or comm line.  Opposite of {snarf}.  Usage:
  1516.    uncommon.  The variant `blat' has been reported.  2. vt.
  1517.    [HP/Apollo] Synonymous with {nuke} (sense 3).  Sometimes the
  1518.    message `Unable to kill all processes.  Blast them (y/n)?' would
  1519.    appear in the command window upon logout.
  1520.  
  1521. blat: n. 1. Syn. {blast}, sense 1.  2. See {thud}.
  1522.  
  1523. bletch: /blech/ [from Yiddish/German `brechen', to vomit, poss.
  1524.    via comic-strip exclamation `blech'] interj.  Term of disgust.
  1525.    Often used in "Ugh, bletch".  Compare {barf}.
  1526.  
  1527. bletcherous: /blech'*-r*s/ adj. Disgusting in design or function;
  1528.    esthetically unappealing.  This word is seldom used of people.
  1529.    "This keyboard is bletcherous!" (Perhaps the keys don't work very
  1530.    well, or are misplaced.)  See {losing}, {cretinous},
  1531.    {bagbiter}, {bogus}, and {random}.  The term {bletcherous}
  1532.    applies to the esthetics of the thing so described; similarly for
  1533.    {cretinous}.  By contrast, something that is `losing' or
  1534.    `bagbiting' may be failing to meet objective criteria.  See also
  1535.    {bogus} and {random}, which have richer and wider shades of
  1536.    meaning than any of the above.
  1537.  
  1538. blinkenlights: /blink'*n-li:tz/ n. Front-panel diagnostic lights
  1539.    on a computer, esp. a {dinosaur}.  Derives from the last word of
  1540.    the famous
  1541.    blackletter-Gothic
  1542.    sign in mangled pseudo-German that once graced about half the
  1543.    computer rooms in the English-speaking world.  One version ran in
  1544.    its entirety as follows:
  1545.  
  1546.                    ACHTUNG!  ALLES LOOKENSPEEPERS!
  1547.         Das computermachine ist nicht fuer gefingerpoken und mittengrabben.
  1548.         Ist easy schnappen der springenwerk, blowenfusen und poppencorken
  1549.         mit spitzensparken.  Ist nicht fuer gewerken bei das dumpkopfen.
  1550.         Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
  1551.         pockets muss; relaxen und watchen das blinkenlichten.
  1552.  
  1553.  
  1554.    This silliness dates back at least as far as 1959 at Stanford
  1555.    University and had already gone international by the early 1960s,
  1556.    when it was reported at London University's ATLAS computing site.
  1557.    There are several variants of it in circulation, some of which
  1558.    actually do end with the word `blinkenlights'.
  1559.  
  1560.    In an amusing example of turnabout-is-fair-play, German hackers
  1561.    have developed their own versions of the blinkenlights poster in
  1562.    fractured English, one of which is reproduced here:
  1563.  
  1564.                                ATTENTION
  1565.         This room is fullfilled mit special electronische equippment.
  1566.         Fingergrabbing and pressing the cnoeppkes from the computers is
  1567.         allowed for die experts only!  So all the "lefthanders" stay away
  1568.         and do not disturben the brainstorming von here working
  1569.         intelligencies.  Otherwise you will be out thrown and kicked
  1570.         anderswhere!  Also: please keep still and only watchen astaunished
  1571.         the blinkenlights.
  1572.  
  1573.    See also {geef}.
  1574.  
  1575. blit: /blit/ vt. 1. To copy a large array of bits from one part
  1576.    of a computer's memory to another part, particularly when the
  1577.    memory is being used to determine what is shown on a display
  1578.    screen.  "The storage allocator picks through the table and copies
  1579.    the good parts up into high memory, and then blits it all back
  1580.    down again."  See {bitblt}, {BLT}, {dd}, {cat},
  1581.    {blast}, {snarf}.  More generally, to perform some operation
  1582.    (such as toggling) on a large array of bits while moving them.
  1583.    2. All-capitalized as `BLIT': an early experimental bit-mapped
  1584.    terminal designed by Rob Pike at Bell Labs, later commercialized as
  1585.    the AT&T 5620.  (The folk etymology from `Bell Labs Intelligent
  1586.    Terminal' is incorrect.)
  1587.  
  1588. blitter: /blit'r/ n. A special-purpose chip or hardware system
  1589.    built to perform {blit} operations, esp. used for fast
  1590.    implementation of bit-mapped graphics.  The Commodore Amiga and a
  1591.    few other micros have these, but in 1991 the trend is away from
  1592.    them (however, see {cycle of reincarnation}).  Syn. {raster
  1593.    blaster}.
  1594.  
  1595. blivet: /bliv'*t/ [allegedly from a World War II military term
  1596.    meaning "ten pounds of manure in a five-pound bag"] n. 1. An
  1597.    intractable problem.  2. A crucial piece of hardware that can't be
  1598.    fixed or replaced if it breaks.  3. A tool that has been hacked
  1599.    over by so many incompetent programmers that it has become an
  1600.    unmaintainable tissue of hacks.  4. An out-of-control but
  1601.    unkillable development effort.  5. An embarrassing bug that pops up
  1602.    during a customer demo.
  1603.  
  1604.    This term has other meanings in other technical cultures; among
  1605.    experimental physicists and hardware engineers of various kinds it
  1606.    seems to mean any random object of unknown purpose (similar to
  1607.    hackish use of {frob}).  It has also been used to describe an
  1608.    amusing trick-the-eye drawing resembling a three-pronged fork that
  1609.    appears to depict a three-dimensional object until one realizes that
  1610.    the parts fit together in an impossible way.
  1611.  
  1612. block: [from process scheduling terminology in OS theory] 1. vi.
  1613.    To delay or sit idle while waiting for something.  "We're blocking
  1614.    until everyone gets here."  Compare {busy-wait}.  2. `block
  1615.    on' vt. To block, waiting for (something).  "Lunch is blocked on
  1616.    Phil's arrival."
  1617.  
  1618. block transfer computations: n. From the television series
  1619.    "Dr. Who", in which it referred to computations so fiendishly
  1620.    subtle and complex that they could not be performed by machines.
  1621.    Used to refer to any task that should be expressible as an
  1622.    algorithm in theory, but isn't.
  1623.  
  1624. blow an EPROM: /bloh *n ee'prom/ v. (alt. `blast an EPROM',
  1625.    `burn an EPROM') To program a read-only memory, e.g. for use
  1626.    with an embedded system.  This term arises because the programming
  1627.    process for the Programmable Read-Only Memories (PROMs) that
  1628.    preceded present-day Erasable Programmable Read-Only Memories
  1629.    (EPROMs) involved intentionally blowing tiny electrical fuses on
  1630.    the chip.  Thus, one was said to `blow' (or `blast') a PROM, and
  1631.    the terminology carried over even though the write process on
  1632.    EPROMs is nondestructive.
  1633.  
  1634. blow away: vt. To remove (files and directories) from permanent
  1635.    storage, generally by accident.  "He reformatted the wrong
  1636.    partition and blew away last night's netnews."  Oppose {nuke}.
  1637.  
  1638. blow out: vi. Of software, to fail spectacularly; almost as serious
  1639.    as {crash and burn}.  See {blow past}, {blow up}.
  1640.  
  1641. blow past: vt. To {blow out} despite a safeguard.  "The server blew
  1642.    past the 5K reserve buffer."
  1643.  
  1644. blow up: vi. 1. [scientific computation] To become unstable.  Suggests
  1645.    that the computation is diverging so rapidly that it will soon
  1646.    overflow or at least go {nonlinear}.  2.  Syn. {blow out}.
  1647.  
  1648. BLT: /B-L-T/, /bl*t/ or (rarely) /belt/ n.,vt. Synonym for
  1649.    {blit}.  This is the original form of {blit} and the ancestor
  1650.    of {bitblt}.  It referred to any large bit-field copy or move
  1651.    operation (one resource-intensive memory-shuffling operation done
  1652.    on pre-paged versions of ITS, WAITS, and TOPS-10 was sardonically
  1653.    referred to as `The Big BLT').  The jargon usage has outlasted the
  1654.    {PDP-10} BLock Transfer instruction from which {BLT} derives;
  1655.    nowadays, the assembler mnemonic {BLT} almost always means
  1656.    `Branch if Less Than zero'.
  1657.  
  1658. Blue Book: n. 1. Informal name for one of the three standard
  1659.    references on the page-layout and graphics-control language
  1660.    PostScript (`PostScript Language Tutorial and Cookbook', Adobe
  1661.    Systems, Addison-Wesley 1985, QA76.73.P67P68, ISBN 0-201-10179-3);
  1662.    the other two official guides are known as the {Green Book} and
  1663.    {Red Book}.  2. Informal name for one of the three standard
  1664.    references on Smalltalk: `Smalltalk-80: The Language and its
  1665.    Implementation', David Robson, Addison-Wesley 1983, QA76.8.S635G64,
  1666.    ISBN 0-201-11371-63 (this is also associated with green and red
  1667.    books).  3. Any of the 1988 standards issued by the CCITT's
  1668.    ninth plenary assembly.  Until now, they have changed color each review
  1669.    cycle (1984 was {Red Book}, 1992 would be {Green Book}); however,
  1670.    it is rumored that this convention is going to be dropped before 1992.
  1671.    These include, among other things, the X.400 email spec and
  1672.    the Group 1 through 4 fax standards.  See also {{book titles}}.
  1673.  
  1674. Blue Glue: [IBM] n. IBM's SNA (Systems Network Architecture), an
  1675.    incredibly {losing} and {bletcherous} communications protocol
  1676.    widely favored at commercial shops that don't know any better.  The
  1677.    official IBM definition is "that which binds blue boxes
  1678.    together."  See {fear and loathing}.  It may not be irrelevant
  1679.    that {Blue Glue} is the trade name of a 3M product that is
  1680.    commonly used to hold down the carpet squares to the removable
  1681.    panel floors common in {dinosaur pens}.  A correspondent at
  1682.    U. Minn. reports that the CS department there has about 80 bottles
  1683.    of the stuff hanging about, so they often refer to any messy work
  1684.    to be done as `using the blue glue'.
  1685.  
  1686. blue goo: n. Term for `police' {nanobot}s intended to prevent
  1687.    {gray goo}, denature hazardous waste, destroy pollution, put
  1688.    ozone back into the stratosphere, prevent halitosis, and promote
  1689.    truth, justice, and the American way, etc.  See
  1690.    {{nanotechnology}}.
  1691.  
  1692. BNF: /B-N-F/ n. 1. [techspeak] Acronym for `Backus-Naur Form', a
  1693.    metasyntactic notation used to specify the syntax of programming
  1694.    languages, command sets, and the like.  Widely used for language
  1695.    descriptions but seldom documented anywhere, so that it must
  1696.    usually be learned by osmosis from other hackers.  Consider this
  1697.    BNF for a U.S. postal address:
  1698.  
  1699.       <postal-address> ::= <name-part> <street-address> <zip-part>
  1700.  
  1701.       <personal-part> ::= <name> | <initial> "."
  1702.  
  1703.       <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
  1704.                     | <personal-part> <name-part>
  1705.  
  1706.       <street-address> ::= [<apt>] <house-num> <street-name> <EOL>
  1707.  
  1708.       <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
  1709.  
  1710.    This translates into English as: "A postal-address consists of a
  1711.    name-part, followed by a street-address part, followed by a
  1712.    zip-code part.  A personal-part consists of either a first name or
  1713.    an initial followed by a dot.  A name-part consists of either: a
  1714.    personal-part followed by a last name followed by an optional
  1715.    `jr-part' (Jr., Sr., or dynastic number) and end-of-line, or a
  1716.    personal part followed by a name part (this rule illustrates the
  1717.    use of recursion in BNFs, covering the case of people who use
  1718.    multiple first and middle names and/or initials).  A street address
  1719.    consists of an optional apartment specifier, followed by a street
  1720.    number, followed by a street name.  A zip-part consists of a
  1721.    town-name, followed by a comma, followed by a state code, followed
  1722.    by a ZIP-code followed by an end-of-line."  Note that many things
  1723.    (such as the format of a personal-part, apartment specifier, or
  1724.    ZIP-code) are left unspecified.  These are presumed to be obvious
  1725.    from context or detailed somewhere nearby.  See also {parse}.
  1726.    2. The term is also used loosely for any number of variants and
  1727.    extensions, possibly containing some or all of the {regexp}
  1728.    wildcards such as `*' or `+'.  In fact the example above
  1729.    isn't the pure form invented for the Algol-60 report; it uses
  1730.    `[]', which was introduced a few years later in IBM's PL/I
  1731.    definition but is now universally recognized.  3. In
  1732.    {{science-fiction fandom}}, BNF means `Big-Name Fan'
  1733.    (someone famous or notorious).  Years ago a fan started handing out
  1734.    black-on-green BNF buttons at SF conventions; this confused the
  1735.    hacker contingent terribly.
  1736.  
  1737. boa: [IBM] n. Any one of the fat cables that lurk under the floor
  1738.    in a {dinosaur pen}.  Possibly so called because they display a
  1739.    ferocious life of their own when you try to lay them straight and
  1740.    flat after they have been coiled for some time.  It is rumored
  1741.    within IBM that channel cables for the 370 are limited to 200 feet
  1742.    because beyond that length the boas get dangerous --- and it is
  1743.    worth noting that one of the major cable makers uses the trademark
  1744.    `Anaconda'.
  1745.  
  1746. board: n. 1. In-context synonym for {bboard}; sometimes used
  1747.    even for USENET newsgroups.  2. An electronic circuit board
  1748.    (compare {card}).
  1749.  
  1750. boat anchor: n. 1. Like {doorstop} but more severe; implies that
  1751.    the offending hardware is irreversibly dead or useless.  "That was
  1752.    a working motherboard once.  One lightning strike later, instant
  1753.    boat anchor!"  2. A person who just takes up space.
  1754.  
  1755. bogo-sort: /boh`goh-sort'/ n. (var. `stupid-sort') The
  1756.    archetypical perversely awful algorithm (as opposed to {bubble
  1757.    sort}, which is merely the generic *bad* algorithm).
  1758.    Bogo-sort is equivalent to repeatedly throwing a deck of cards in
  1759.    the air, picking them up at random, and then testing whether they
  1760.    are in order.  It serves as a sort of canonical example of
  1761.    awfulness.  Looking at a program and seeing a dumb algorithm, one
  1762.    might say "Oh, I see, this program uses bogo-sort."  Compare
  1763.    {bogus}, {brute force}.
  1764.  
  1765. bogometer: /boh-gom'-*t-er/ n. See {bogosity}.  Compare the
  1766.    `wankometer' described in the {wank} entry; see also
  1767.    {bogus}.
  1768.  
  1769. bogon: /boh'gon/ [by analogy with proton/electron/neutron, but
  1770.    doubtless reinforced after 1980 by the similarity to Douglas
  1771.    Adams's `Vogons'; see the Bibliography] n. 1. The elementary particle of
  1772.    bogosity (see {quantum bogodynamics}).  For instance, "the
  1773.    Ethernet is emitting bogons again" means that it is broken or
  1774.    acting in an erratic or bogus fashion.  2. A query packet sent from
  1775.    a TCP/IP domain resolver to a root server, having the reply bit set
  1776.    instead of the query bit.  3. Any bogus or incorrectly formed
  1777.    packet sent on a network.  4. By synecdoche, used to refer to any
  1778.    bogus thing, as in "I'd like to go to lunch with you but I've got
  1779.    to go to the weekly staff bogon".  5. A person who is bogus or who
  1780.    says bogus things.  This was historically the original usage, but
  1781.    has been overtaken by its derivative senses 1--4.  See
  1782.    also {bogosity}, {bogus}; compare {psyton}.
  1783.  
  1784. bogon filter: /boh'gon fil'tr/ n. Any device, software or hardware,
  1785.    that limits or suppresses the flow and/or emission of bogons.
  1786.    "Engineering hacked a bogon filter between the Cray and
  1787.    the VAXen, and now we're getting fewer dropped packets."  See
  1788.    also {bogosity}, {bogus}.
  1789.  
  1790. bogon flux: /boh'gon fluhks/ n. A measure of a supposed field of
  1791.    {bogosity} emitted by a speaker, measured by a {bogometer};
  1792.    as a speaker starts to wander into increasing bogosity a listener
  1793.    might say "Warning, warning, bogon flux is rising".  See
  1794.    {quantum bogodynamics}.
  1795.  
  1796. bogosity: /boh-go's*-tee/ n. 1. The degree to which something is
  1797.    {bogus}.  At CMU, bogosity is measured with a {bogometer}; in
  1798.    a seminar, when a speaker says something bogus, a listener might
  1799.    raise his hand and say "My bogometer just triggered".  More
  1800.    extremely, "You just pinned my bogometer"  means you just said
  1801.    or did something so outrageously bogus that it is off the scale,
  1802.    pinning the bogometer needle at the highest possible reading (one
  1803.    might also say "You just redlined my bogometer").  The
  1804.    agreed-upon unit of bogosity is the microLenat /mi:k`roh-len'*t/
  1805.    (uL).
  1806.    The consensus is that this is the largest unit practical
  1807.    for everyday use.  2. The potential field generated by a {bogon
  1808.    flux}; see {quantum bogodynamics}.  See also {bogon flux},
  1809.    {bogon filter}, {bogus}.
  1810.  
  1811.    Historical note: The microLenat was invented as a attack against
  1812.    noted computer scientist Doug Lenat by a {tenured graduate
  1813.    student}.  Doug had failed the student on an important exam for
  1814.    giving only "AI is bogus" as his answer to the questions.  The
  1815.    slur is generally considered unmerited, but it has become a running
  1816.    gag nevertheless.  Some of Doug's friends argue that *of
  1817.    course* a microLenat is bogus, since it is only one millionth of a
  1818.    Lenat.  Others have suggested that the unit should be redesignated
  1819.    after the grad student, as the microReid.
  1820.  
  1821. bogotify: /boh-go't*-fi:/ vt. To make or become bogus.  A
  1822.    program that has been changed so many times as to become completely
  1823.    disorganized has become bogotified.  If you tighten a nut too hard
  1824.    and strip the threads on the bolt, the bolt has become bogotified
  1825.    and you had better not use it any more.  This coinage led to the
  1826.    notional `autobogotiphobia' defined as `the fear of becoming
  1827.    bogotified'; but is not clear that the latter has ever been
  1828.    `live' jargon rather than a self-conscious joke in jargon about
  1829.    jargon.  See also {bogosity}, {bogus}.
  1830.  
  1831. bogue out: /bohg owt/ vi. To become bogus, suddenly and
  1832.    unexpectedly.  "His talk was relatively sane until somebody asked
  1833.    him a trick question; then he bogued out and did nothing but
  1834.    {flame} afterwards."  See also {bogosity}, {bogus}.
  1835.  
  1836. bogus: adj. 1. Non-functional.  "Your patches are bogus."
  1837.    2. Useless.  "OPCON is a bogus program."  3. False.  "Your
  1838.    arguments are bogus."  4. Incorrect.  "That algorithm is bogus."
  1839.    5. Unbelievable.  "You claim to have solved the halting problem
  1840.    for Turing Machines?  That's totally bogus."  6. Silly.  "Stop
  1841.    writing those bogus sagas."
  1842.  
  1843.    Astrology is bogus.  So is a bolt that is obviously about to break.
  1844.    So is someone who makes blatantly false claims to have solved a
  1845.    scientific problem.  (This word seems to have some, but not all, of
  1846.    the connotations of {random} --- mostly the negative ones.)
  1847.  
  1848.    It is claimed that `bogus' was originally used in the hackish sense
  1849.    at Princeton in the late 1960s.  It was spread to CMU and Yale by
  1850.    Michael Shamos, a migratory Princeton alumnus.  A glossary of bogus
  1851.    words was compiled at Yale when the word was first popularized (see
  1852.    {autobogotiphobia} under {bogotify}). The word spread into
  1853.    hackerdom from CMU and MIT.  By the early 1980s it was also
  1854.    current in something like the hackish sense in West Coast teen
  1855.    slang, and it had gone mainstream by 1985.  A correspondent from
  1856.    Cambridge reports, by contrast, that these uses of `bogus' grate on
  1857.    British nerves; in Britain the word means, rather specifically,
  1858.    `counterfeit', as in "a bogus 10-pound note".
  1859.  
  1860. Bohr bug: /bohr buhg/ [from quantum physics] n. A repeatable
  1861.    {bug}; one that manifests reliably under a possibly unknown but
  1862.    well-defined set of conditions.  Antonym of {heisenbug}; see also
  1863.    {mandelbug}.
  1864.  
  1865. boink: /boynk/ [USENET: ascribed there to the TV series
  1866.    "Cheers" and "Moonlighting"] 1. To have sex with;
  1867.    compare {bounce}, sense 3. (This is mainstream slang.) In
  1868.    Commonwealth hackish the variant `bonk' is more common.  2. After
  1869.    the original Peter Korn `Boinkon' {USENET} parties, used for
  1870.    almost any net social gathering, e.g., Miniboink, a small boink
  1871.    held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota
  1872.    in 1989; Humpdayboinks, Wednesday get-togethers held in the San
  1873.    Francisco Bay Area.  Compare {@-party}.  3. Var of `bonk';
  1874.    see {bonk/oif}.
  1875.  
  1876. bomb: 1. v. General synonym for {crash} (sense 1) except that it
  1877.    is not used as a noun; esp. used of software or OS failures.
  1878.    "Don't run Empire with less than 32K stack, it'll bomb."
  1879.    2. n.,v. Atari ST and Macintosh equivalents of a UNIX `panic' or
  1880.    Amiga {guru} (sense 2), where icons of little black-powder bombs
  1881.    or mushroom clouds are displayed, indicating that the system has died.
  1882.    On the Mac, this may be accompanied by a decimal (or occasionally
  1883.    hexadecimal) number indicating what went wrong, similar to the
  1884.    Amiga GURU MEDITATION number (see {guru}).  {{MS-DOS}} machines
  1885.    tend to get {locked up} in this situation.
  1886.  
  1887. bondage-and-discipline language: A language (such as Pascal, Ada,
  1888.    APL, or Prolog) that, though ostensibly general-purpose, is designed
  1889.    so as to enforce an author's theory of `right programming' even
  1890.    though said theory is demonstrably inadequate for systems hacking
  1891.    or even vanilla general-purpose programming.  Often abbreviated
  1892.    `B&D'; thus, one may speak of things "having the B&D nature".
  1893.    See {{Pascal}}; oppose {languages of choice}.
  1894.  
  1895. bonk/oif: /bonk/, /oyf/ interj. In the {MUD} community, it has
  1896.    become traditional to express pique or censure by `bonking' the
  1897.    offending person.  There is a convention that one should
  1898.    acknowledge a bonk by saying `oif!' and a myth to the effect that
  1899.    failing to do so upsets the cosmic bonk/oif balance, causing much
  1900.    trouble in the universe.  Some MUDs have implemented special
  1901.    commands for bonking and oifing.  See also {talk mode},
  1902.    {posing}.
  1903.  
  1904. book titles:: There is a tradition in hackerdom of informally
  1905.    tagging important textbooks and standards documents with the
  1906.    dominant color of their covers or with some other conspicuous
  1907.    feature of the cover.  Many of these are described in this lexicon
  1908.    under their own entries. See {Aluminum Book}, {Blue Book},
  1909.    {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green
  1910.    Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
  1911.    {Red Book}, {Silver Book}, {White Book}, {Wizard Book},
  1912.    {Yellow Book}, and {bible}.
  1913.  
  1914. boot: [techspeak; from `by one's bootstraps'] v.,n. To load and
  1915.    initialize the operating system on a machine.  This usage is no
  1916.    longer jargon (having passed into techspeak) but has given rise to
  1917.    some derivatives that are still jargon.
  1918.  
  1919.    The derivative `reboot' implies that the machine hasn't been
  1920.    down for long, or that the boot is a {bounce} intended to clear
  1921.    some state of {wedgitude}.  This is sometimes used of human
  1922.    thought processes, as in the following exchange: "You've lost
  1923.    me." "OK, reboot.  Here's the theory...."
  1924.  
  1925.    This term is also found in the variants `cold boot' (from
  1926.    power-off condition) and `warm boot' (with the CPU and all
  1927.    devices already powered up, as after a hardware reset or software
  1928.    crash).
  1929.  
  1930.    Another variant: `soft boot', reinitialization of only part of a
  1931.    system, under control of other software still running: "If
  1932.    you're running the {mess-dos} emulator, control-alt-insert will
  1933.    cause a soft-boot of the emulator, while leaving the rest of the
  1934.    system running."
  1935.  
  1936.    Opposed to this there is `hard boot', which connotes hostility
  1937.    towards or frustration with the machine being booted:  "I'll have
  1938.    to hard-boot this losing Sun." "I recommend booting it hard."
  1939.  
  1940.    Historical note: this term derives from `bootstrap loader', a short
  1941.    program that was read in from cards or paper tape, or toggled in
  1942.    from the front panel switches.  This program was always very short
  1943.    (great efforts were expended on making it short in order to
  1944.    minimize the labor and chance of error involved in toggling it in),
  1945.    but was just smart enough to read in a slightly more complex
  1946.    program (usually from a card or paper tape reader), to which it
  1947.    handed control; this program in turn was smart enough to read the
  1948.    application or operating system from a magnetic tape drive or disk
  1949.    drive.  Thus, in successive steps, the computer `pulled itself up
  1950.    by its bootstraps' to a useful operating state.  Nowadays the
  1951.    bootstrap is usually found in ROM or EPROM, and reads the first
  1952.    stage in from a fixed location on the disk, called the `boot
  1953.    block'.  When this program gains control, it is powerful enough to
  1954.    load the actual OS and hand control over to it.
  1955.  
  1956. bottom-up implementation: n. Hackish opposite of the techspeak term
  1957.    `top-down design'.  It is now received wisdom in most
  1958.    programming cultures that it is best to design from higher levels
  1959.    of abstraction down to lower, specifying sequences of action in
  1960.    increasing detail until you get to actual code.  Hackers often find
  1961.    (especially in exploratory designs that cannot be closely
  1962.    specified in advance) that it works best to *build* things in
  1963.    the opposite order, by writing and testing a clean set of primitive
  1964.    operations and then knitting them together.
  1965.  
  1966. bounce: v. 1. [perhaps from the image of a thrown ball bouncing
  1967.    off a wall] An electronic mail message that is undeliverable and
  1968.    returns an error notification to the sender is said to `bounce'.
  1969.    See also {bounce message}.  2. [Stanford] To play volleyball.
  1970.    At the now-demolished {D. C. Power Lab} building used by the
  1971.    Stanford AI Lab in the 1970s, there was a volleyball court on the
  1972.    front lawn.  From 5 P.M. to 7 P.M. was the scheduled
  1973.    maintenance time for the computer, so every afternoon at 5 the
  1974.    computer would become unavailable, and over the intercom a voice
  1975.    would cry, "Now hear this: bounce, bounce!" followed by Brian
  1976.    McCune loudly bouncing a volleyball on the floor outside the
  1977.    offices of known volleyballers.  3. To engage in sexual
  1978.    intercourse; prob. from the expression `bouncing the mattress',
  1979.    but influenced by Piglet's psychosexually loaded "Bounce on me
  1980.    too, Tigger!" from the "Winnie-the-Pooh" books.  Compare
  1981.    {boink}.  4. To casually reboot a system in order to clear up a
  1982.    transient problem.  Reported primarily among {VMS} users.
  1983.    5. [IBM] To {power cycle} a peripheral in order to reset it.
  1984.  
  1985. bounce message: [UNIX] n. Notification message returned to sender by
  1986.    a site unable to relay {email} to the intended {{Internet address}}
  1987.    recipient or the next link in a {bang path} (see {bounce}).
  1988.    Reasons might include a nonexistent or misspelled username or a
  1989.    {down} relay site.  Bounce messages can themselves fail, with
  1990.    occasionally ugly results; see {sorcerer's apprentice mode}.
  1991.    The term `bounce mail' is also common.
  1992.  
  1993. box: n. 1. A computer; esp. in the construction `foo box'
  1994.    where foo is some functional qualifier, like `graphics', or
  1995.    the name of an OS (thus, `UNIX box', `MS-DOS box', etc.)  "We
  1996.    preprocess the data on UNIX boxes before handing it up to the
  1997.    mainframe."  2. [within IBM] Without qualification but within an
  1998.    SNA-using site, this refers specifically to an IBM front-end
  1999.    processor or FEP /F-E-P/.  An FEP is a small computer necessary
  2000.    to enable an IBM {mainframe} to communicate beyond the limits of
  2001.    the {dinosaur pen}.  Typically used in expressions like the cry
  2002.    that goes up when an SNA network goes down: "Looks like the
  2003.    {box} has fallen over." (See {fall over}.) See also
  2004.    {IBM}, {fear and loathing}, {fepped out}, {Blue
  2005.    Glue}.
  2006.  
  2007. boxed comments: n. Comments (explanatory notes attached to program
  2008.    instructions) that occupy several lines by themselves; so called
  2009.    because in assembler and C code they are often surrounded by a box
  2010.    in a style something like this:
  2011.  
  2012.      /*************************************************
  2013.       *
  2014.       * This is a boxed comment in C style
  2015.       *
  2016.       *************************************************/
  2017.  
  2018.    Common variants of this style omit the asterisks in column 2 or add
  2019.    a matching row of asterisks closing the right side of the box.  The
  2020.    sparest variant omits all but the comment delimiters themselves;
  2021.    the `box' is implied.  Oppose {winged comments}.
  2022.  
  2023. boxen: /bok'sn/ [by analogy with {VAXen}] pl.n. Fanciful
  2024.    plural of {box} often encountered in the phrase `UNIX boxen',
  2025.    used to describe commodity {{UNIX}} hardware.  The connotation is
  2026.    that any two UNIX boxen are interchangeable.
  2027.  
  2028. boxology: /bok-sol'*-jee/ n. Syn. {ASCII art}.  This term
  2029.    implies a more restricted domain, that of box-and-arrow drawings.
  2030.    "His report has a lot of boxology in it."  Compare
  2031.    {macrology}.
  2032.  
  2033. bozotic: /boh-zoh'tik/ or /boh-zo'tik/ [from the name of a TV
  2034.    clown even more losing than Ronald McDonald] adj. Resembling or
  2035.    having the quality of a bozo; that is, clownish, ludicrously wrong,
  2036.    unintentionally humorous.  Compare {wonky}, {demented}.  Note
  2037.    that the noun `bozo' occurs in slang, but the mainstream
  2038.    adjectival form would be `bozo-like' or (in New England)
  2039.    `bozoish'.
  2040.  
  2041. BQS: /B-Q-S/ adj. Syn. {Berkeley Quality Software}.
  2042.  
  2043. brain dump: n. The act of telling someone everything one knows
  2044.    about a particular topic or project.  Typically used when someone
  2045.    is going to let a new party maintain a piece of code.  Conceptually
  2046.    analogous to an operating system {core dump} in that it saves a
  2047.    lot of useful {state} before an exit.  "You'll have to
  2048.    give me a brain dump on FOOBAR before you start your new job at
  2049.    HackerCorp."  See {core dump} (sense 4).  At Sun, this is also
  2050.    known as `TOI' (transfer of information).
  2051.  
  2052. brain-damaged: 1. [generalization of `Honeywell Brain Damage'
  2053.    (HBD), a theoretical disease invented to explain certain utter
  2054.    cretinisms in Honeywell {{Multics}}] adj. Obviously wrong;
  2055.    {cretinous}; {demented}.  There is an implication that the
  2056.    person responsible must have suffered brain damage, because he
  2057.    should have known better.  Calling something brain-damaged is
  2058.    really bad; it also implies it is unusable, and that its failure to
  2059.    work is due to poor design rather than some accident.  "Only six
  2060.    monocase characters per file name?  Now *that's*
  2061.    brain-damaged!"  2. [esp. in the Mac world] May refer to free
  2062.    demonstration software that has been deliberately crippled in some
  2063.    way so as not to compete with the commercial product it is
  2064.    intended to sell.  Syn.  {crippleware}.
  2065.  
  2066. brain-dead: adj. Brain-damaged in the extreme.  It tends to imply
  2067.    terminal design failure rather than malfunction or simple
  2068.    stupidity.  "This comm program doesn't know how to send a break
  2069.    --- how brain-dead!"
  2070.  
  2071. braino: /bray'no/ n. Syn. for {thinko}.
  2072.  
  2073. branch to Fishkill: [IBM: from the location of one of the
  2074.    corporation's facilities] n. Any unexpected jump in a program that
  2075.    produces catastrophic or just plain weird results.  See {jump
  2076.    off into never-never land}, {hyperspace}.
  2077.  
  2078. brand brand brand: n. Humorous catch-phrase from {BartleMUD}s, in
  2079.    which players were described carrying a list of objects, the most
  2080.    common of which would usually be a brand.  Often used as a joke in
  2081.    {talk mode} as in "Fred the wizard is here, carrying brand ruby
  2082.    brand brand brand kettle broadsword flamethrower".  A brand is a
  2083.    torch, of course; one burns up a lot of those exploring dungeons.
  2084.    Prob. influenced by the famous Monty Python "Spam" skit.
  2085.  
  2086. break: 1. vt. To cause to be broken (in any sense).  "Your latest
  2087.    patch to the editor broke the paragraph commands."  2. v.  (of a
  2088.    program) To stop temporarily, so that it may debugged.  The place
  2089.    where it stops is a `breakpoint'.  3. [techspeak] vi. To send an
  2090.    RS-232 break (125 msec of line high) over a serial comm line.
  2091.    4. [UNIX] vi. To strike whatever key currently causes the tty
  2092.    driver to send SIGINT to the current process.  Normally, break
  2093.    (sense 3) or delete does this.  5. `break break' may be said to
  2094.    interrupt a conversation (this is an example of verb doubling).
  2095.  
  2096. breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
  2097.    contained bootstrap (see {boot}) code, periodically sent out
  2098.    from a working computer to infuse the `breath of life' into any
  2099.    computer on the network that had happened to crash.  The machines
  2100.    had hardware or firmware that would wait for such a packet after a
  2101.    catastrophic error.
  2102.  
  2103. breedle: n. See {feep}.
  2104.  
  2105. bring X to its knees: v. To present a machine, operating system,
  2106.    piece of software, or algorithm with a load so extreme or
  2107.    {pathological} that it grinds to a halt.  "To bring a MicroVAX
  2108.    to its knees, try twenty users running {vi} --- or four running
  2109.    {EMACS}."  Compare {hog}.
  2110.  
  2111. brittle: adj. Said of software that is functional but easily broken
  2112.    by changes in operating environment or configuration, or by any
  2113.    minor tweak to the software itself.  Also, any system that
  2114.    responds inappropriately and disastrously to expected external
  2115.    stimuli; e.g., a file system that is usually totally scrambled by a
  2116.    power failure is said to be brittle.  This term is often used to
  2117.    describe the results of a research effort that were never intended
  2118.    to be robust, but it can be applied to commercially developed
  2119.    software, which displays the quality far more often than it ought
  2120.    to.  Oppose {robust}.
  2121.  
  2122. broadcast storm: n. An incorrect packet broadcast on a network that
  2123.    causes most hosts to respond all at once, typically with wrong
  2124.    answers that start the process over again.  See {network
  2125.    meltdown}.
  2126.  
  2127. broken: adj. 1. Not working properly (of programs).  2. Behaving
  2128.    strangely; especially (when used of people) exhibiting extreme
  2129.    depression.
  2130.  
  2131. broken arrow: [IBM] n. The error code displayed on line 25 of a
  2132.    3270 terminal (or a PC emulating a 3270) for various kinds of
  2133.    protocol violations and "unexpected" error conditions (including
  2134.    connection to a {down} computer).  On a PC, simulated with
  2135.    `->/_', with the two center characters overstruck. In true
  2136.    {luser} fashion, the original documentation of these codes
  2137.    (visible on every 3270 terminal, and necessary for debugging
  2138.    network problems) was confined to an IBM customer engineering
  2139.    manual.
  2140.  
  2141.    Note: to appreciate this term fully, it helps to know that `broken
  2142.    arrow' is also military jargon for an accident involving nuclear
  2143.    weapons.... 
  2144.  
  2145. broket: /broh'k*t/ or /broh'ket`/ [by analogy with `bracket': a
  2146.    `broken bracket'] n. Either of the characters `<' and `>',
  2147.    when used as paired enclosing delimiters.  This word
  2148.    originated as a contraction of the phrase `broken bracket', that
  2149.    is, a bracket that is bent in the middle.  (At MIT, and apparently
  2150.    in the {Real World} as well, these are usually called {angle
  2151.    brackets}.)
  2152.  
  2153. Brooks's Law: prov. "Adding manpower to a late software project
  2154.    makes it later" --- a result of the fact that the advantage from
  2155.    splitting work among N programmers is O(N) (that is,
  2156.    proportional to N), but the complexity and communications
  2157.    cost associated with coordinating and then merging their work
  2158.    is O(N^2) (that is, proportional to the square of N).
  2159.    The quote is from Fred Brooks, a manager of IBM's OS/360 project
  2160.    and author of `The Mythical Man-Month' (Addison-Wesley, 1975,
  2161.    ISBN 0-201-00650-2), an excellent early book on software
  2162.    engineering.  The myth in question has been most tersely expressed
  2163.    as "Programmer time is fungible" and Brooks established
  2164.    conclusively that it is not.  Hackers have never forgotten his
  2165.    advice; too often, {management} does.  See also
  2166.    {creationism}, {second-system effect}.
  2167.  
  2168. BRS: /B-R-S/ n. Syn. {Big Red Switch}.  This abbreviation is
  2169.    fairly common on-line.
  2170.  
  2171. brute force: adj. Describes a primitive programming style, one in
  2172.    which the programmer relies on the computer's processing power
  2173.    instead of using his or her own intelligence to simplify the problem,
  2174.    often ignoring problems of scale and applying na"ive methods suited
  2175.    to small problems directly to large ones.
  2176.  
  2177.    The {canonical} example of a brute-force algorithm is associated
  2178.    with the `traveling salesman problem' (TSP), a classical NP-hard
  2179.    problem: Suppose a person is in, say, Boston, and wishes to drive
  2180.    to N other cities.  In what order should he or she visit
  2181.    them in order to minimize the distance travelled?  The brute-force
  2182.    method is to simply generate all possible routes and compare the
  2183.    distances; while guaranteed to work and simple to implement, this
  2184.    algorithm is clearly very stupid in that it considers even
  2185.    obviously absurd routes (like going from Boston to Houston via San
  2186.    Francisco and New York, in that order).  For very small N it
  2187.    works well, but it rapidly becomes absurdly inefficient when
  2188.    N increases (for N = 15, there are already
  2189.    1,307,674,368,000 possible routes to consider, and for
  2190.    N = 1000 --- well, see {bignum}).  See
  2191.    also {NP-}.
  2192.  
  2193.    A more simple-minded example of brute-force programming is finding
  2194.    the smallest number in a large list by first using an existing
  2195.    program to sort the list in ascending order, and then picking the
  2196.    first number off the front.
  2197.  
  2198.    Whether brute-force programming should be considered stupid or not
  2199.    depends on the context; if the problem isn't too big, the extra CPU
  2200.    time spent on a brute-force solution may cost less than the
  2201.    programmer time it would take to develop a more `intelligent'
  2202.    algorithm.  Alternatively, a more intelligent algorithm may imply
  2203.    more long-term complexity cost and bug-chasing than are justified
  2204.    by the speed improvement.
  2205.  
  2206.    Ken Thompson, co-inventor of UNIX, is reported to have uttered the
  2207.    epigram "When in doubt, use brute force".  He probably intended
  2208.    this as a {ha ha only serious}, but the original UNIX kernel's
  2209.    preference for simple, robust, and portable algorithms over
  2210.    {brittle} `smart' ones does seem to have been a significant
  2211.    factor in the success of that OS.  Like so many other tradeoffs in
  2212.    software design, the choice between brute force and complex,
  2213.    finely-tuned cleverness is often a difficult one that requires both
  2214.    engineering savvy and delicate esthetic judgment.
  2215.  
  2216. brute force and ignorance: n. A popular design technique at many
  2217.    software houses --- {brute force} coding unrelieved by any
  2218.    knowledge of how problems have been previously solved in elegant
  2219.    ways.  Dogmatic adherence to design methodologies tends to
  2220.    encourage it.  Characteristic of early {larval stage}
  2221.    programming; unfortunately, many never outgrow it.  Often
  2222.    abbreviated BFI: "Gak, they used a bubble sort!  That's strictly
  2223.    from BFI."  Compare {bogosity}.
  2224.  
  2225. BSD: /B-S-D/ n. [acronym for `Berkeley System Distribution'] a
  2226.    family of {{UNIX}} versions for the DEC {VAX} and PDP-11
  2227.    developed by Bill Joy and others at {Berzerkeley} starting around
  2228.    1980, incorporating paged virtual memory, TCP/IP networking
  2229.    enhancements, and many other features.  The BSD versions (4.1, 4.2,
  2230.    and 4.3) and the commercial versions derived from them (SunOS, ULTRIX,
  2231.    and Mt. Xinu) held the technical lead in the UNIX world until
  2232.    AT&T's successful standardization efforts after about 1986, and are
  2233.    still widely popular.  See {{UNIX}}, {USG UNIX}.
  2234.  
  2235. bubble sort: n. Techspeak for a particular sorting technique in
  2236.    which pairs of adjacent values in the list to be sorted are
  2237.    compared and interchanged if they are out of order; thus, list
  2238.    entries `bubble upward' in the list until they bump into one with a
  2239.    lower sort value.  Because it is not very good relative to other
  2240.    methods and is the one typically stumbled on by {na"ive} and
  2241.    untutored programmers, hackers consider it the {canonical}
  2242.    example of a na"ive algorithm.  The canonical example of a really
  2243.    *bad* algorithm is {bogo-sort}.  A bubble sort might be used
  2244.    out of ignorance, but any use of bogo-sort could issue only from
  2245.    brain damage or willful perversity.
  2246.  
  2247. bucky bits: /buh'kee bits/ n. 1. obs. The bits produced by the
  2248.    CONTROL and META shift keys on a SAIL keyboard, resulting in a
  2249.    9-bit keyboard character set.  The MIT AI TV (Knight) keyboards
  2250.    extended this with TOP and separate left and right CONTROL and META
  2251.    keys, resulting in a 12-bit character set; later, LISP Machines
  2252.    added such keys as SUPER, HYPER, and GREEK (see {space-cadet
  2253.    keyboard}).  2. By extension, bits associated with `extra' shift
  2254.    keys on any keyboard, e.g., the ALT on an IBM PC or command and
  2255.    option keys on a Macintosh.
  2256.  
  2257.    It is rumored that `bucky bits' were named for Buckminster Fuller
  2258.    during a period when he was consulting at Stanford.  Actually,
  2259.    `Bucky' was Niklaus Wirth's nickname when *he* was at
  2260.    Stanford; he first suggested the idea of an EDIT key to set the
  2261.    8th bit of an otherwise 7-bit ASCII character.  This was used in a
  2262.    number of editors written at Stanford or in its environs (TV-EDIT
  2263.    and NLS being the best-known).  The term spread to MIT and CMU
  2264.    early and is now in general use.  See {double bucky},
  2265.    {quadruple bucky}.
  2266.  
  2267. buffer overflow: n. What happens when you try to stuff more data
  2268.    into a buffer (holding area) than it can handle.  This may be due
  2269.    to a mismatch in the processing rates of the producing and
  2270.    consuming processes (see {overrun}), or because the buffer is
  2271.    simply too small to hold all the data that must accumulate before a
  2272.    piece of it can be processed. For example, in a text-processing
  2273.    tool that {crunch}es a line at a time, a short line buffer can
  2274.    result in {lossage} as input from a long line overflows the
  2275.    buffer and trashes data beyond it.  Good defensive programming
  2276.    would check for overflow on each character and stop accepting data
  2277.    when the buffer is full up.  The term is used of and by humans in a
  2278.    metaphorical sense. "What time did I agree to meet you?  My buffer
  2279.    must have overflowed."  Or "If I answer that phone my buffer is
  2280.    going to overflow."  See also {spam}, {overrun screw}.
  2281.  
  2282. bug: n. An unwanted and unintended property of a program or hardware,
  2283.    esp. one that causes it to malfunction.  Antonym of {feature}.
  2284.    Examples: "There's a bug in the editor: it writes things out
  2285.    backwards."  "The system crashed because of a hardware bug."
  2286.    "Fred is a winner, but he has a few bugs"  (i.e., Fred is a good
  2287.    guy, but he has a few personality problems).
  2288.  
  2289.    Historical note: Some have said this term came from telephone
  2290.    company usage, in which "bugs in a telephone cable" were blamed
  2291.    for noisy lines, but this appears to be an incorrect folk
  2292.    etymology.  Admiral Grace Hopper (an early computing pioneer better
  2293.    known for inventing {COBOL}) liked to tell a story in which a
  2294.    technician solved a persistent {glitch} in the Harvard Mark II
  2295.    machine by pulling an actual insect out from between the
  2296.    contacts of one of its relays, and she subsequently promulgated
  2297.    {bug} in its hackish sense as a joke about the incident (though,
  2298.    as she was careful to admit, she was not there when it happened).
  2299.    For many years the logbook associated with the incident and the
  2300.    actual bug in question (a moth) sat in a display case at the Naval
  2301.    Surface Warfare Center.  The entire story, with a picture of the
  2302.    logbook and the moth taped into it, is recorded in the `Annals of
  2303.    the History of Computing', Vol. 3, No. 3 (July 1981), pp. 285--286.
  2304.  
  2305.    The text of the log entry (from September 9, 1945), reads "1545
  2306.    Relay #70 Panel F (moth) in relay.  First actual case of bug being
  2307.    found".  This wording seems to establish that the term was already in use
  2308.    at the time in its current specific sense.  Indeed, the use of
  2309.    `bug' to mean an industrial defect was already established in
  2310.    Thomas Edison's time, and `bug' in the sense of an disruptive event
  2311.    goes back to Shakespeare!  In the first edition of Samuel Johnson's
  2312.    dictionary one meaning of `bug' is "A frightful object; a walking
  2313.    spectre"; this is traced to `bugbear', a Welsh term for a variety
  2314.    of mythological monster which (to complete the circle) has recently
  2315.    been reintroduced into the popular lexicon through fantasy
  2316.    role-playing games.
  2317.  
  2318.    In any case, in jargon the word almost never refers to insects.
  2319.    Here is a plausible conversation that never actually happened:
  2320.  
  2321.    "There is a bug in this ant farm!"
  2322.  
  2323.    "What do you mean?  I don't see any ants in it."
  2324.  
  2325.    "That's the bug."
  2326.  
  2327.    [There has been a widespread myth that the original bug was moved
  2328.    to the Smithsonian, and an earlier version of this entry so
  2329.    asserted.  A correspondent who thought to check discovered that the
  2330.    bug was not there.  While investigating this, your editor
  2331.    discovered that the NSWC still had the bug, but had unsuccessfully
  2332.    tried to get the Smithsonian to accept it --- and that the present
  2333.    curator of the History of American Technology Museum didn't
  2334.    know this and agreed that it would make a worthwhile exhibit.
  2335.    Thus, the process of investigating the original-computer-bug bug
  2336.    may have fixed it in an entirely unexpected way, by making the myth
  2337.    true!  --- ESR]
  2338.  
  2339. bug-compatible: adj. Said of a design or revision that has been
  2340.    badly compromised by a requirement to be compatible with
  2341.    {fossil}s or {misfeature}s in other programs or (esp.)
  2342.    previous releases of itself. "MS-DOS 2.0 used \ as a path
  2343.    separator to be bug-compatible with some cretin's choice of / as an
  2344.    option character in 1.0."
  2345.  
  2346. bug-for-bug compatible: n. Same as {bug-compatible}, with the
  2347.    additional implication that much tedious effort went into ensuring
  2348.    that each (known) bug was replicated.
  2349.  
  2350. buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX
  2351.    operating system in its earlier *severely* buggy versions.
  2352.    Still used to describe ULTRIX, but without venom.  Compare
  2353.    {HP-SUX}.
  2354.  
  2355. bulletproof: adj. Used of an algorithm or implementation considered
  2356.    extremely {robust}; lossage-resistant; capable of correctly
  2357.    recovering from any imaginable exception condition.  This is a rare
  2358.    and valued quality.  Syn. {armor-plated}.
  2359.  
  2360. bum: 1. vt. To make highly efficient, either in time or space,
  2361.    often at the expense of clarity.  "I managed to bum three more
  2362.    instructions out of that code."  "I spent half the night bumming
  2363.    the interrupt code."  2. To squeeze out excess; to remove
  2364.    something in order to improve whatever it was removed from (without
  2365.    changing function; this distinguishes the process from a
  2366.    {featurectomy}).  3. n. A small change to an algorithm, program,
  2367.    or hardware device to make it more efficient.  "This hardware bum
  2368.    makes the jump instruction faster."  Usage: now uncommon, largely
  2369.    superseded by v. {tune} (and n. {tweak}, {hack}), though
  2370.    none of these exactly capture sense 2.  All these uses are rare in
  2371.    Commonwealth hackish, because in the parent dialects of English
  2372.    `bum' is a rude synonym for `buttocks'.
  2373.  
  2374. bump: vt. Synonym for increment.  Has the same meaning as
  2375.    C's ++ operator.  Used esp. of counter variables, pointers, and index
  2376.    dummies in `for', `while', and `do-while' loops.
  2377.  
  2378. burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame},
  2379.    but connotes that the source is truly clueless and ineffectual
  2380.    (mere flamers can be competent).  A term of deep contempt.
  2381.    "There's some guy on the phone burbling about how he got a DISK
  2382.    FULL error and it's all our comm software's fault."
  2383.  
  2384. buried treasure: n. A surprising piece of code found in some
  2385.    program.  While usually not wrong, it tends to vary from {crufty}
  2386.    to {bletcherous}, and has lain undiscovered only because it was
  2387.    functionally correct, however horrible it is.  Used sarcastically,
  2388.    because what is found is anything *but* treasure.  Buried
  2389.    treasure almost always needs to be dug up and removed.  "I just
  2390.    found that the scheduler sorts its queue using {bubble sort}!
  2391.    Buried treasure!"
  2392.  
  2393. burn-in period: n. 1. A factory test designed to catch systems
  2394.    with {marginal} components before they get out the door; the
  2395.    theory is that burn-in will protect customers by outwaiting the
  2396.    steepest part of the {bathtub curve} (see {infant
  2397.    mortality}).  2. A period of indeterminate length in which a person
  2398.    using a computer is so intensely involved in his project that he
  2399.    forgets basic needs such as food, drink, sleep, etc.  Warning:
  2400.    Excessive burn-in can lead to burn-out.  See {hack mode},
  2401.    {larval stage}.
  2402.  
  2403. burst page: n. Syn. {banner}, sense 1.
  2404.  
  2405. busy-wait: vi. Used of human behavior, conveys that the subject is
  2406.    busy waiting for someone or something, intends to move instantly as
  2407.    soon as it shows up, and thus cannot do anything else at the
  2408.    moment.  "Can't talk now, I'm busy-waiting till Bill gets off the
  2409.    phone."
  2410.  
  2411.    Technically, `busy-wait' means to wait on an event by
  2412.    {spin}ning through a tight or timed-delay loop that polls for
  2413.    the event on each pass, as opposed to setting up an interrupt
  2414.    handler and continuing execution on another part of the task.  This
  2415.    is a wasteful technique, best avoided on time-sharing systems where
  2416.    a busy-waiting program may {hog} the processor.
  2417.  
  2418. buzz: vi. 1. Of a program, to run with no indication of progress
  2419.    and perhaps without guarantee of ever finishing; esp. said of
  2420.    programs thought to be executing tight loops of code.  A program
  2421.    that is buzzing appears to be {catatonic}, but you never get out
  2422.    of catatonia, while a buzzing loop may eventually end of its own
  2423.    accord.  "The program buzzes for about 10 seconds trying to sort
  2424.    all the names into order."  See {spin}; see also {grovel}.
  2425.    2. [ETA Systems] To test a wire or printed circuit trace for
  2426.    continuity by applying an AC rather than DC signal.  Some wire
  2427.    faults will pass DC tests but fail a buzz test.  3. To process an
  2428.    array or list in sequence, doing the same thing to each element.
  2429.    "This loop buzzes through the tz array looking for a terminator
  2430.    type."
  2431.  
  2432. BWQ: /B-W-Q/ [IBM: acronym, `Buzz Word Quotient'] The
  2433.    percentage of buzzwords in a speech or documents.  Usually roughly
  2434.    proportional to {bogosity}.  See {TLA}.
  2435.  
  2436. by hand: adv. Said of an operation (especially a repetitive,
  2437.    trivial, and/or tedious one) that ought to be performed
  2438.    automatically by the computer, but which a hacker instead has to
  2439.    step tediously through.  "My mailer doesn't have a command to
  2440.    include the text of the message I'm replying to, so I have to do it
  2441.    by hand."  This does not necessarily mean the speaker has to
  2442.    retype a copy of the message; it might refer to, say, dropping into
  2443.    a {subshell} from the mailer, making a copy of one's mailbox file,
  2444.    reading that into an editor, locating the top and bottom of the
  2445.    message in question, deleting the rest of the file, inserting `>'
  2446.    characters on each line, writing the file, leaving the editor,
  2447.    returning to the mailer, reading the file in, and later remembering
  2448.    to delete the file.  Compare {eyeball search}.
  2449.  
  2450. byte:: /bi:t/ [techspeak] n. A unit of memory or data equal to
  2451.    the amount used to represent one character; on modern architectures
  2452.    this is usually 8 bits, but may be 9 on 36-bit machines.  Some
  2453.    older architectures used `byte' for quantities of 6 or 7 bits, and
  2454.    the PDP-10 supported `bytes' that were actually bitfields of
  2455.    1 to 36 bits!  These usages are now obsolete, and even 9-bit bytes
  2456.    have become rare in the general trend toward power-of-2 word sizes.
  2457.  
  2458.    Historical note: The term originated in 1956 during the early
  2459.    design phase for the IBM Stretch computer; originally it was
  2460.    described as 1 to 6 bits (typical I/O equipment of the period
  2461.    used 6-bit chunks of information).  The move to an 8-bit byte
  2462.    happened in late 1956, and this size was later adopted and
  2463.    promulgated as a standard by the System/360.  The term `byte' was
  2464.    coined by mutating the word `bite' so it would not be accidentally
  2465.    misspelled as {bit}.  See also {nybble}.
  2466.  
  2467. bytesexual: /bi:t`sek'shu-*l/ adj. Said of hardware, denotes
  2468.    willingness to compute or pass data in either {big-endian} or
  2469.    {little-endian} format (depending, presumably, on a {mode bit}
  2470.    somewhere).  See also {NUXI problem}.
  2471.  
  2472. = C =
  2473.  
  2474. C: n. 1. The third letter of the English alphabet.  2. ASCII
  2475.    1000011.  3. The name of a programming language designed by
  2476.    Dennis Ritchie during the early 1970s and immediately used to
  2477.    reimplement {{UNIX}}.  So called because many features derived
  2478.    from an earlier compiler named `B' in commemoration of
  2479.    *its* parent, BCPL; before Bjarne Stroustrup settled the
  2480.    question by designing C++, there was a humorous debate over whether
  2481.    C's successor should be named `D' or `P'.  C became immensely
  2482.    popular outside Bell Labs after about 1980 and is now the dominant
  2483.    language in systems and microcomputer applications programming.
  2484.    See also {languages of choice}, {indent style}.
  2485.  
  2486.    C is often described, with a mixture of fondness and disdain
  2487.    varying according to the speaker, as "a language that combines
  2488.    all the elegance and power of assembly language with all the
  2489.    readability and maintainability of assembly language".
  2490.  
  2491. calculator: [Cambridge] n. Syn. for {bitty box}.
  2492.  
  2493. can: vt. To abort a job on a time-sharing system.  Used esp. when the
  2494.    person doing the deed is an operator, as in "canned from the
  2495.    {{console}}".  Frequently used in an imperative sense, as in "Can
  2496.    that print job, the LPT just popped a sprocket!"  Synonymous with
  2497.    {gun}.  It is said that the ASCII character with mnemonic CAN
  2498.    (0011000) was used as a kill-job character on some early OSes.
  2499.  
  2500. canonical: [historically, `according to religious law'] adj. The
  2501.    usual or standard state or manner of something.  This word has a
  2502.    somewhat more technical meaning in mathematics.  Two formulas such
  2503.    as 9 + x and x + 9 are said to be equivalent because
  2504.    they mean the same thing, but the second one is in `canonical
  2505.    form' because it is written in the usual way, with the highest
  2506.    power of x first.  Usually there are fixed rules you can use
  2507.    to decide whether something is in canonical form.  The jargon
  2508.    meaning, a relaxation of the technical meaning, acquired its
  2509.    present loading in computer-science culture largely through its
  2510.    prominence in Alonzo Church's work in computation theory and
  2511.    mathematical logic (see {Knights of the Lambda Calculus}).
  2512.    Compare {vanilla}.
  2513.  
  2514.    This word has an interesting history.  Non-technical academics do
  2515.    not use the adjective `canonical' in any of the senses defined
  2516.    above with any regularity; they do however use the nouns `canon' and
  2517.    `canonicity' (not *canonicalness or *canonicality). The `canon' of
  2518.    a given author is the complete body of authentic works by that
  2519.    author (this usage is familiar to Sherlock Holmes fans as well as
  2520.    to literary scholars).  `*The* canon' is the body of works in
  2521.    a given field (e.g., works of literature, or of art, or of music)
  2522.    deemed worthwhile for students to study and for scholars to
  2523.    investigate.
  2524.  
  2525.    These non-techspeak academic usages derive ultimately from the
  2526.    historical meaning, specifically the classification of the books of
  2527.    the Bible into two groups by Christian theologians.  The
  2528.    `canonical' books were the ones widely accepted as Holy
  2529.    Scripture and held to be of primary authority.  The
  2530.    `deuterocanonical' books (literally `secondarily canonical';
  2531.    also known as the `Apochrypha') were held to be of lesser
  2532.    authority --- indeed they have been held in such low esteem that to
  2533.    this day they are omitted from most Protestant bibles.
  2534.  
  2535.    Hackers invest this term with a playfulness that makes an ironic
  2536.    contrast with its historical meaning.  A true story: One Bob
  2537.    Sjoberg, new at the MIT AI Lab, expressed some annoyance at the use
  2538.    of jargon.  Over his loud objections, GLS and RMS made a point of
  2539.    using it as much as possible in his presence, and eventually it
  2540.    began to sink in.  Finally, in one conversation, he used the word
  2541.    `canonical' in jargon-like fashion without thinking.  Steele:
  2542.    "Aha!  We've finally got you talking jargon too!"  Stallman:
  2543.    "What did he say?"  Steele: "Bob just used `canonical' in the
  2544.    canonical way."
  2545.  
  2546.    Of course, canonicality depends on context, but it is implicitly
  2547.    defined as the way *hackers* normally expect things to be.
  2548.    Thus, a hacker may claim with a straight face that `according to
  2549.    religious law' is *not* the canonical meaning of `canonical'.
  2550.  
  2551. card: n. 1. An electronic printed-circuit board (see also {tall
  2552.    card}, {short card}.  2. obs. Syn. {{punched card}}.
  2553.  
  2554. card walloper: n. An EDP programmer who grinds out batch programs
  2555.    that do stupid things like print people's paychecks.  Compare
  2556.    {code grinder}.  See also {{punched card}}, {eighty-column
  2557.    mind}.
  2558.  
  2559. careware: /keir'weir/ n. {Shareware} for which either the
  2560.    author suggests that some payment be made to a nominated charity
  2561.    or a levy directed to charity is included on top of the
  2562.    distribution charge.  Syn. {charityware}; compare
  2563.    {crippleware}, sense 2.
  2564.  
  2565. cargo cult programming: n. A style of (incompetent) programming
  2566.    dominated by ritual inclusion of code or program structures that
  2567.    serve no real purpose.  A cargo cult programmer will usually
  2568.    explain the extra code as a way of working around some bug
  2569.    encountered in the past, but usually neither the bug nor the reason
  2570.    the code apparently avoided the bug was ever fully understood
  2571.    (compare {shotgun debugging}, {voodoo programming}).
  2572.  
  2573.    The term `cargo cult' is a reference to aboriginal religions that
  2574.    grew up in the South Pacific after World War II.  The practices of
  2575.    these cults center on building elaborate mockups of airplanes and
  2576.    military style landing strips in the hope of bringing the return of
  2577.    the god-like airplanes that brought such marvelous cargo during the
  2578.    war.  Hackish usage probably derives from Richard Feynman's
  2579.    characterization of certain practices as "cargo cult science" in
  2580.    his book `Surely You're Joking, Mr. Feynman' (W. W. Norton
  2581.    & Co, New York 1985, ISBN 0-393-01921-7).
  2582.  
  2583. case and paste: [from `cut and paste'] n. 1. The addition of a new
  2584.    {feature} to an existing system by selecting the code from an
  2585.    existing feature and pasting it in with minor changes.  Common in
  2586.    telephony circles because most operations in a telephone switch are
  2587.    selected using `case' statements.  Leads to {software bloat}.
  2588.  
  2589.    In some circles of EMACS users this is called `programming by
  2590.    Meta-W', because Meta-W is the EMACS command for copying a block of
  2591.    text to a kill buffer in preparation to pasting it in elsewhere.
  2592.    The term is condescending, implying that the programmer is acting
  2593.    mindlessly rather than thinking carefully about what is required to
  2594.    integrate the code for two similar cases.
  2595.  
  2596. casters-up mode: [IBM] n. Yet another synonym for `broken' or
  2597.    `down'.
  2598.  
  2599. casting the runes: n. What a {guru} does when you ask him or her
  2600.    to run a particular program and type at it because it never works
  2601.    for anyone else; esp. used when nobody can ever see what the guru
  2602.    is doing different from what J. Random Luser does.  Compare
  2603.    {incantation}, {runes}, {examining the entrails}; also see
  2604.    the AI koan about Tom Knight in appendix A.
  2605.  
  2606. cat: [from `catenate' via {{UNIX}} `cat(1)'] vt.
  2607.    1. [techspeak] To spew an entire file to the screen or some other
  2608.    output sink without pause.  2. By extension, to dump large amounts
  2609.    of data at an unprepared target or with no intention of browsing it
  2610.    carefully.  Usage: considered silly.  Rare outside UNIX sites.  See
  2611.    also {dd}, {BLT}.
  2612.  
  2613.    Among UNIX fans, `cat(1)' is considered an excellent example
  2614.    of user-interface design, because it outputs the file contents
  2615.    without such verbosity as spacing or headers between the files, and
  2616.    because it does not require the files to consist of lines of text,
  2617.    but works with any sort of data.
  2618.  
  2619.    Among UNIX-haters, `cat(1)' is considered the {canonical}
  2620.    example of *bad* user-interface design.  This because it is more
  2621.    often used to {blast} a file to standard output than to
  2622.    concatenate two files.  The name `cat' for the former
  2623.    operation is just as unintuitive as, say, LISP's {cdr}.
  2624.  
  2625.    Of such oppositions are {holy wars} made....
  2626.  
  2627. catatonic: adj. Describes a condition of suspended animation in
  2628.    which something is so {wedged} or {hung} that it makes no
  2629.    response.  If you are typing on a terminal and suddenly the
  2630.    computer doesn't even echo the letters back to the screen as you
  2631.    type, let alone do what you're asking it to do, then the computer
  2632.    is suffering from catatonia (possibly because it has crashed).
  2633.    "There I was in the middle of a winning game of {nethack} and it
  2634.    went catatonic on me!  Aaargh!" Compare {buzz}.
  2635.  
  2636. cdr: /ku'dr/ or /kuh'dr/ [from LISP] vt. To skip past the
  2637.    first item from a list of things (generalized from the LISP
  2638.    operation on binary tree structures, which returns a list
  2639.    consisting of all but the first element of its argument).  In the
  2640.    form `cdr down', to trace down a list of elements:  "Shall we
  2641.    cdr down the agenda?"  Usage: silly.  See also {loop through}.
  2642.  
  2643.    Historical note: The instruction format of the IBM 7090 that hosted
  2644.    the original LISP implementation featured two 15-bit fields called
  2645.    the `address' and `decrement' parts.  The term `cdr' was originally
  2646.    `Contents of Decrement part of Register'.  Similarly, `car' stood
  2647.    for `Contents of Address part of Register'.
  2648.  
  2649.    The cdr and car operations have since become bases for
  2650.    formation of compound metaphors in non-LISP contexts.  GLS recalls,
  2651.    for example, a programming project in which strings were
  2652.    represented as linked lists; the get-character and skip-character
  2653.    operations were of course called CHAR and CHDR.
  2654.  
  2655. chad: /chad/ n. 1. The perforated edge strips on printer paper, after
  2656.    they have been separated from the printed portion.  Also called
  2657.    {selvage} and {perf}.  2. obs. The confetti-like paper bits punched
  2658.    out of cards or paper tape; this was also called `chaff', `computer
  2659.    confetti', and `keypunch droppings'.
  2660.  
  2661.    Historical note: One correspondent believes `chad' (sense 2)
  2662.    derives from the Chadless keypunch (named for its inventor), which
  2663.    cut little u-shaped tabs in the card to make a hole when the tab
  2664.    folded back, rather than punching out a circle/rectangle; it was
  2665.    clear that if the Chadless keypunch didn't make them, then the
  2666.    stuff that other keypunches made had to be `chad'.
  2667.  
  2668. chad box: n. {Iron Age} card punches contained boxes inside them,
  2669.    about the size of a lunchbox (or in some models a large
  2670.    wastebasket), that held the {chad} (sense 2).  You had to open
  2671.    the covers of the card punch periodically and empty the chad box.
  2672.    The {bit bucket} was notionally the equivalent device in the CPU
  2673.    enclosure, which was typically across the room in another great
  2674.    gray-and-blue box.
  2675.  
  2676. chain: [orig. from BASIC's `CHAIN' statement] vi. To hand off
  2677.    execution to a child or successor without going through the
  2678.    {OS} command interpreter that invoked it.  The state of the
  2679.    parent program is lost and there is no returning to it.  Though
  2680.    this facility used to be common on memory-limited micros and is
  2681.    still widely supported for backward compatibility, the jargon usage
  2682.    is semi-obsolescent; in particular, most UNIX programmers will
  2683.    think of this as an {exec}.  Oppose the more modern {subshell}.
  2684.  
  2685. char: /keir/ or /char/; rarely, /kar/ n. Shorthand for
  2686.    `character'.  Esp. used by C programmers, as `char' is
  2687.    C's typename for character data.
  2688.  
  2689. charityware: /char'it-ee-weir`/ n. Syn. {careware}.
  2690.  
  2691. chase pointers: 1. vi. To go through multiple levels of
  2692.    indirection, as in traversing a linked list or graph structure.
  2693.    Used esp. by programmers in C, where explicit pointers are a very
  2694.    common data type.  This is techspeak, but it remains jargon when
  2695.    used of human networks.  "I'm chasing pointers.  Bob said you
  2696.    could tell me who to talk to about...." See {dangling
  2697.    pointer} and {snap}.  2. [Cambridge] `pointer chase' or
  2698.    `pointer hunt': The process of going through a dump
  2699.    (interactively or on a large piece of paper printed with hex
  2700.    {runes}) following dynamic data-structures.  Used only in a
  2701.    debugging context.
  2702.  
  2703. chemist: [Cambridge] n. Someone who wastes computer time on
  2704.    {number-crunching} when you'd far rather the machine were doing
  2705.    something more productive, such as working out anagrams of your
  2706.    name or printing Snoopy calendars or running {life} patterns.
  2707.    May or may not refer to someone who actually studies chemistry.
  2708.  
  2709. Chernobyl chicken: n. See {laser chicken}.
  2710.  
  2711. Chernobyl packet: /cher-noh'b*l pak'*t/ n. A network packet that
  2712.    induces {network meltdown} (the result of a {broadcast storm}),
  2713.    in memory of the 1987 nuclear accident at Chernobyl in the Ukraine.
  2714.    The typical case of this is an IP Ethernet datagram that passes
  2715.    through a gateway with both source and destination Ether and IP
  2716.    address set as the respective broadcast addresses for the
  2717.    subnetworks being gated between.  Compare {Christmas tree
  2718.    packet}.
  2719.  
  2720. chicken head: [Commodore] n. The Commodore Business Machines logo,
  2721.    which strongly resembles a poultry part.  Rendered in ASCII as
  2722.    `C='.  With the arguable exception of the Amiga (see {amoeba}),
  2723.    Commodore's machines are notoriously crocky little {bitty box}es
  2724.    (see also {PETSCII}).  Thus, this usage may owe something to
  2725.    Philip K.  Dick's novel `Do Androids Dream of Electric Sheep?'
  2726.    (the basis for the movie `Blade Runner'), in which a
  2727.    `chickenhead' is a mutant with below-average intelligence.
  2728.  
  2729. chiclet keyboard: n. A keyboard with small rectangular or
  2730.    lozenge-shaped rubber or plastic keys that look like pieces of
  2731.    chewing gum.  (Chiclets is the brand name of a variety of chewing
  2732.    gum that does in fact resemble the keys of chiclet keyboards.)
  2733.    Used esp. to describe the original IBM PCjr keyboard.  Vendors
  2734.    unanimously liked these because they were cheap, and a lot of early
  2735.    portable and laptop products got launched using them.  Customers
  2736.    rejected the idea with almost equal unanimity, and chiclets are not
  2737.    often seen on anything larger than a digital watch any more.
  2738.  
  2739. chine nual: /sheen'yu-*l/ [MIT] n.,obs. The Lisp Machine Manual, so
  2740.    called because the title was wrapped around the cover so only those
  2741.    letters showed on the front.
  2742.  
  2743. Chinese Army technique: n. Syn. {Mongolian Hordes technique}.
  2744.  
  2745. choke: v. To reject input, often ungracefully.  "Nuls make System
  2746.    V's `lpr(1)' choke."  "I tried building an {EMACS} binary to
  2747.    use {X}, but `cpp(1)' choked on all those `#define's."
  2748.    See {barf}, {gag}, {vi}.
  2749.  
  2750. chomp: vi. To {lose}; specifically, to chew on something of
  2751.    which more was bitten off than one can.  Probably related to
  2752.    gnashing of teeth.  See {bagbiter}.  A hand gesture commonly
  2753.    accompanies this.  To perform it, hold the four fingers
  2754.    together and place the thumb against their tips.  Now open and
  2755.    close your hand rapidly to suggest a biting action (much like what
  2756.    Pac-Man does in the classic video game, though this pantomime seems
  2757.    to predate that).  The gesture alone means `chomp chomp' (see
  2758.    Verb Doubling in the "Jargon Construction" section of the
  2759.    Prependices).  The hand may be pointed at the object of complaint,
  2760.    and for real emphasis you can use both hands at once.  Doing this
  2761.    to a person is equivalent to saying "You chomper!"  If you point
  2762.    the gesture at yourself, it is a humble but humorous admission of
  2763.    some failure.  You might do this if someone told you that a program
  2764.    you had written had failed in some surprising way and you felt dumb
  2765.    for not having anticipated it.
  2766.  
  2767. chomper: n. Someone or something that is chomping; a loser.  See
  2768.    {loser}, {bagbiter}, {chomp}.
  2769.  
  2770. Christmas tree: n. A kind of RS-232 line tester or breakout box
  2771.    featuring rows of blinking red and green LEDs suggestive of
  2772.    Christmas lights.
  2773.  
  2774. Christmas tree packet: n. A packet with every single option set for
  2775.    whatever protocol is in use.  See {kamikaze packet}, {Chernobyl
  2776.    packet}.  (The term doubtless derives from a fanciful image of each
  2777.    little option bit being represented by a different-colored light
  2778.    bulb, all turned on.)
  2779.  
  2780. chrome: [from automotive slang via wargaming] n. Showy features
  2781.    added to attract users but contributing little or nothing to
  2782.    the power of a system.  "The 3D icons in Motif are just chrome,
  2783.    but they certainly are *pretty* chrome!"  Distinguished from
  2784.    {bells and whistles} by the fact that the latter are usually
  2785.    added to gratify developers' own desires for featurefulness. 
  2786.    Often used as a term of contempt.
  2787.  
  2788. chug: vi. To run slowly; to {grind} or {grovel}.  "The disk is
  2789.    chugging like crazy."
  2790.  
  2791. Church of the SubGenius: n. A mutant offshoot of
  2792.    {Discordianism} launched in 1981 as a spoof of fundamentalist
  2793.    Christianity by the `Reverend' Ivan Stang, a brilliant satirist
  2794.    with a gift for promotion.  Popular among hackers as a rich source
  2795.    of bizarre imagery and references such as "Bob" the divine
  2796.    drilling-equipment salesman, the Benevolent Space Xists, and the
  2797.    Stark Fist of Removal.  Much SubGenius theory is concerned with the
  2798.    acquisition of the mystical substance or quality of
  2799.    `slack'.
  2800.  
  2801. Cinderella Book: [CMU] n. `Introduction to Automata Theory,
  2802.    Languages, and Computation', by John Hopcroft and Jeffrey Ullman,
  2803.    (Addison-Wesley, 1979).  So called because the cover depicts a girl
  2804.    (putatively Cinderella) sitting in front of a Rube Goldberg device
  2805.    and holding a rope coming out of it.  The back cover depicts the
  2806.    girl with the device in shambles after she has pulled on the rope.
  2807.    See also {{book titles}}.
  2808.  
  2809. CI$: // n. Hackerism for `CIS', CompuServe Information Service.
  2810.    The dollar sign refers to CompuServe's rather steep line charges.  Often
  2811.    used in {sig block}s just before a CompuServe address.  Syn.
  2812.    {Compu$erve}.
  2813.  
  2814. Classic C: /klas'ik C/ [a play on `Coke Classic'] n. The
  2815.    C programming language as defined in the first edition of {K&R},
  2816.    with some small additions.  It is also known as `K&R C'.  The name
  2817.    came into use while C was being standardized by the ANSI X3J11
  2818.    committee.  Also `C Classic'.  This is sometimes applied
  2819.    elsewhere: thus, `X Classic', where X = Star Trek (referring to the
  2820.    original TV series) or X = PC (referring to IBM's ISA-bus machines
  2821.    as opposed to the PS/2 series).  This construction is especially
  2822.    used of product series in which the newer versions are considered
  2823.    serious losers relative to the older ones.
  2824.  
  2825. clean: 1. adj. Used of hardware or software designs, implies
  2826.    `elegance in the small', that is, a design or implementation that
  2827.    may not hold any surprises but does things in a way that is
  2828.    reasonably intuitive and relatively easy to comprehend from the
  2829.    outside.  The antonym is `grungy' or {crufty}.  2. v. To remove
  2830.    unneeded or undesired files in a effort to reduce clutter:  "I'm
  2831.    cleaning up my account." "I cleaned up the garbage and now have
  2832.    100 Meg free on that partition."
  2833.  
  2834. CLM: /C-L-M/ [Sun: `Career Limiting Move'] 1. n. An action
  2835.    endangering one's future prospects of getting plum projects and
  2836.    raises, and possibly one's job:  "His Halloween costume was a
  2837.    parody of his manager.  He won the prize for `best CLM'."
  2838.    2. adj.  Denotes extreme severity of a bug, discovered by a
  2839.    customer and obviously missed earlier because of poor testing:
  2840.    "That's a CLM bug!"
  2841.  
  2842. clobber: vt. To overwrite, usually unintentionally: "I walked off
  2843.    the end of the array and clobbered the stack."  Compare {mung},
  2844.    {scribble}, {trash}, and {smash the stack}.
  2845.  
  2846. clocks: n. Processor logic cycles, so called because each
  2847.    generally corresponds to one clock pulse in the processor's timing.
  2848.    The relative execution times of instructions on a machine are
  2849.    usually discussed in clocks rather than absolute fractions of a
  2850.    second; one good reason for this is that clock speeds for various
  2851.    models of the machine may increase as technology improves, and it
  2852.    is usually the relative times one is interested in when discussing
  2853.    the instruction set.  Compare {cycle}.
  2854.  
  2855. clone: n. 1. An exact duplicate: "Our product is a clone of
  2856.    their product."  Implies a legal reimplementation from
  2857.    documentation or by reverse-engineering.  Also connotes lower
  2858.    price.  2. A shoddy, spurious copy: "Their product is a
  2859.    clone of our product."  3. A blatant ripoff, most likely violating
  2860.    copyright, patent, or trade secret protections: "Your
  2861.    product is a clone of my product."  This use implies legal
  2862.    action is pending.  4. A `PC clone'; a PC-BUS/ISA or
  2863.    EISA-compatible 80x86-based microcomputer (this use is sometimes
  2864.    spelled `klone' or `PClone').  These invariably have much
  2865.    more bang for the buck than the IBM archetypes they resemble.
  2866.    5. In the construction `UNIX clone': An OS designed to deliver
  2867.    a UNIX-lookalike environment without UNIX license fees, or with
  2868.    additional `mission-critical' features such as support for
  2869.    real-time programming.  6. v. To make an exact copy of something.
  2870.    "Let me clone that" might mean "I want to borrow that paper so I
  2871.    can make a photocopy" or "Let me get a copy of that file before
  2872.    you {mung} it".
  2873.  
  2874. clover key: [Mac users] n. See {command key}.
  2875.  
  2876. clustergeeking: /kluh'st*r-gee`king/ [CMU] n.  Spending more time
  2877.    at a computer cluster doing CS homework than most people spend
  2878.    breathing.
  2879.  
  2880. COBOL: /koh'bol/ [COmmon Business-Oriented Language] n.
  2881.    (Synonymous with {evil}.)  A weak, verbose, and flabby language
  2882.    used by {card walloper}s to do boring mindless things on
  2883.    {dinosaur} mainframes.  Hackers believe all COBOL programmers
  2884.    are {suit}s or {code grinder}s, and no self-respecting hacker
  2885.    will ever admit to having learned the language.  Its very name is
  2886.    seldom uttered without ritual expressions of disgust or horror.
  2887.    See also {fear and loathing}, {software rot}.
  2888.  
  2889. COBOL fingers: /koh'bol fing'grz/ n. Reported from Sweden, a
  2890.    (hypothetical) disease one might get from coding in COBOL.  The
  2891.    language requires code verbose beyond all reason; thus it is
  2892.    alleged that programming too much in COBOL causes one's fingers to
  2893.    wear down to stubs by the endless typing.  "I refuse to type in
  2894.    all that source code again; it would give me COBOL fingers!"
  2895.  
  2896. code grinder: n. 1. A {suit}-wearing minion of the sort hired in
  2897.    legion strength by banks and insurance companies to implement
  2898.    payroll packages in RPG and other such unspeakable horrors.  In his
  2899.    native habitat, the code grinder often removes the suit jacket to
  2900.    reveal an underplumage consisting of button-down shirt (starch
  2901.    optional) and a tie.  In times of dire stress, the sleeves (if
  2902.    long) may be rolled up and the tie loosened about half an inch.  It
  2903.    seldom helps.  The {code grinder}'s milieu is about as far from
  2904.    hackerdom as you can get and still touch a computer; the term
  2905.    connotes pity.  See {Real World}, {suit}.  2. Used of or to a
  2906.    hacker, a really serious slur on the person's creative ability;
  2907.    connotes a design style characterized by primitive technique,
  2908.    rule-boundedness, {brute force}, and utter lack of imagination.
  2909.    Compare {card walloper}; contrast {hacker}, {real
  2910.    programmer}.
  2911.  
  2912. code police: [by analogy with George Orwell's `thought police'] n.
  2913.    A mythical team of Gestapo-like storm troopers that might burst
  2914.    into one's office and arrest one for violating programming style
  2915.    rules.  May be used either seriously, to underline a claim that a
  2916.    particular style violation is dangerous, or ironically, to suggest
  2917.    that the practice under discussion is condemned mainly by
  2918.    anal-retentive {weenie}s.  "Dike out that goto or the code
  2919.    police will get you!"  The ironic usage is perhaps more common.
  2920.  
  2921. codewalker: n. A program component that traverses other programs for
  2922.    a living.  Compilers have codewalkers in their front ends; so do
  2923.    cross-reference generators and some database front ends.  Other
  2924.    utility programs that try to do too much with source code may turn
  2925.    into codewalkers.  As in "This new `vgrind' feature would require a
  2926.    codewalker to implement."
  2927.  
  2928. coefficient of X: n. Hackish speech makes rather heavy use of
  2929.    pseudo-mathematical metaphors.  Four particularly important ones
  2930.    involve the terms `coefficient', `factor', `index', and
  2931.    `quotient'.  They are often loosely applied to things you
  2932.    cannot really be quantitative about, but there are subtle
  2933.    distinctions among them that convey information about the way the
  2934.    speaker mentally models whatever he or she is describing.
  2935.  
  2936.    `Foo factor' and `foo quotient' tend to describe something for
  2937.    which the issue is one of presence or absence.  The canonical
  2938.    example is {fudge factor}.  It's not important how much you're
  2939.    fudging; the term simply acknowledges that some fudging is needed.
  2940.    You might talk of liking a movie for its silliness factor.
  2941.    Quotient tends to imply that the property is a ratio of two opposing
  2942.    factors: "I would have won except for my luck quotient."  This
  2943.    could also be "I would have won except for the luck factor", but
  2944.    using *quotient* emphasizes that it was bad luck overpowering
  2945.    good luck (or someone else's good luck overpowering your own).
  2946.  
  2947.    `Foo index' and `coefficient of foo' both tend to imply
  2948.    that foo is, if not strictly measurable, at least something that
  2949.    can be larger or smaller.  Thus, you might refer to a paper or
  2950.    person as having a `high bogosity index', whereas you would be less
  2951.    likely to speak of a `high bogosity factor'.  `Foo index' suggests
  2952.    that foo is a condensation of many quantities, as in the mundane
  2953.    cost-of-living index; `coefficient of foo' suggests that foo is a
  2954.    fundamental quantity, as in a coefficient of friction.  The choice
  2955.    between these terms is often one of personal preference; e.g., some
  2956.    people might feel that bogosity is a fundamental attribute and thus
  2957.    say `coefficient of bogosity', whereas others might feel it is a
  2958.    combination of factors and thus say `bogosity index'.
  2959.  
  2960. cokebottle: /kohk'bot-l/ n. Any very unusual character,
  2961.    particularly one you can't type because it it isn't on your
  2962.    keyboard.  MIT people used to complain about the
  2963.    `control-meta-cokebottle' commands at SAIL, and SAIL people
  2964.    complained right back about the `altmode-altmode-cokebottle'
  2965.    commands at MIT.  After the demise of the {space-cadet
  2966.    keyboard}, `cokebottle' faded away as serious usage, but was
  2967.    often invoked humorously to describe an (unspecified) weird or
  2968.    non-intuitive keystroke command.  It may be due for a second
  2969.    inning, however.  The OSF/Motif window manager, `mwm(1)', has
  2970.    a reserved keystroke for switching to the default set of
  2971.    keybindings and behavior.  This keystroke is (believe it or not)
  2972.    `control-meta-bang' (see {bang}).  Since the exclamation point
  2973.    looks a lot like an upside down Coke bottle, Motif hackers have
  2974.    begun referring to this keystroke as `cokebottle'.  See also
  2975.    {quadruple bucky}.
  2976.  
  2977. cold boot: n. See {boot}.
  2978.  
  2979. COME FROM: n. A semi-mythical language construct dual to the `go
  2980.    to'; `COME FROM' <label> would cause the referenced label to act as a
  2981.    sort of trapdoor, so that if the program ever reached it control
  2982.    would quietly and {automagically} be transferred to the statement
  2983.    following the `COME FROM'.  `COME FROM' was first proposed in a
  2984.    {Datamation} article of December 1973 (reprinted in the April 1984
  2985.    issue of `Communications of the ACM') that parodied the
  2986.    then-raging `structured programming' {holy wars} (see
  2987.    {considered harmful}).  Mythically, some variants are the
  2988.    `assigned COME FROM' and the `computed COME FROM'
  2989.    (parodying some nasty control constructs in FORTRAN and some
  2990.    extended BASICs).  Of course, multi-tasking (or non-determinism)
  2991.    could be implemented by having more than one `COME FROM' statement
  2992.    coming from the same label.
  2993.  
  2994.    In some ways the FORTRAN `DO' looks like a `COME FROM'
  2995.    statement.  After the terminating statement number/`CONTINUE'
  2996.    is reached, control continues at the statement following the DO.
  2997.    Some generous FORTRANs would allow arbitrary statements (other than
  2998.    `CONTINUE') for the statement, leading to examples like:
  2999.  
  3000.            DO 10 I=1,LIMIT
  3001.      C imagine many lines of code here, leaving the
  3002.      C original DO statement lost in the spaghetti...
  3003.            WRITE(6,10) I,FROB(I)
  3004.       10   FORMAT(1X,I5,G10.4)
  3005.  
  3006.    in which the trapdoor is just after the statement labeled 10.
  3007.    (This is particularly surprising because the label doesn't appear
  3008.    to have anything to do with the flow of control at all!)
  3009.  
  3010.    While sufficiently astonishing to the unsuspecting reader, this
  3011.    form of `COME FROM' statement isn't completely general.  After all,
  3012.    control will eventually pass to the following statement.  The
  3013.    implementation of the general form was left to Univac FORTRAN,
  3014.    ca. 1975.  The statement `AT 100' would perform a `COME
  3015.    FROM 100'.  It was intended strictly as a debugging aid, with dire
  3016.    consequences promised to anyone so deranged as to use it in
  3017.    production code.  More horrible things had already been perpetrated
  3018.    in production languages, however; doubters need only contemplate
  3019.    the `ALTER' verb in {COBOL}.
  3020.  
  3021.    `COME FROM' was supported under its own name for the first
  3022.    time 15 years later, in C-INTERCAL (see {INTERCAL},
  3023.    {retrocomputing}); knowledgeable observers are still reeling
  3024.    from the shock.
  3025.  
  3026. comm mode: /kom mohd/ [ITS: from the feature supporting on-line
  3027.    chat; the term may spelled with one or two m's] Syn. for {talk
  3028.    mode}.
  3029.  
  3030. command key: [Mac users] n. The Macintosh key with the cloverleaf
  3031.    graphic on its keytop; sometimes referred to as `flower',
  3032.    `pretzel', `clover', `propeller', `beanie' (an apparent
  3033.    reference to the major feature of a propeller beanie), or
  3034.    {splat}.  The Mac's equivalent of an {ALT} key.  The
  3035.    proliferation of terms for this creature may illustrate one subtle
  3036.    peril of iconic interfaces.
  3037.  
  3038. comment out: vt. To surround a section of code with comment
  3039.    delimiters or to prefix every line in the section with a comment
  3040.    marker; this prevents it from being compiled or interpreted.  Often
  3041.    done when the code is redundant or obsolete, but you want to leave
  3042.    it in the source to make the intent of the active code clearer;
  3043.    also when the code in that section is broken and you want to bypass
  3044.    it in order to debug some other part of the code.  Compare
  3045.    {condition out}, usually the preferred technique in languages
  3046.    (such as {C}) that make it possible.
  3047.  
  3048. Commonwealth Hackish:: n. Hacker jargon as spoken outside
  3049.    the U.S., esp. in the British Commonwealth.  It is reported that
  3050.    Commonwealth speakers are more likely to pronounce truncations like
  3051.    `char' and `soc', etc., as spelled (/char/, /sok/), as
  3052.    opposed to American /keir/ and /sohsh/.  Dots in {newsgroup}
  3053.    names tend to be pronounced more often (so soc.wibble is /sok dot
  3054.    wib'l/ rather than /sohsh wib'l/).  The prefix {meta} may be
  3055.    pronounced /mee't*/; similarly, Greek letter beta is often
  3056.    /bee't*/, zeta is often /zee't*/, and so forth.  Preferred
  3057.    metasyntactic variables include `eek', `ook',
  3058.    `frodo', and `bilbo'; `wibble', `wobble', and
  3059.    in emergencies `wubble'; `banana', `wombat',
  3060.    `frog', {fish}, and so on and on (see {foo}, sense 4).
  3061.  
  3062.    Alternatives to verb doubling include suffixes `-o-rama',
  3063.    `frenzy' (as in feeding frenzy), and `city' (examples: "barf
  3064.    city!" "hack-o-rama!" "core dump frenzy!").  Finally, note
  3065.    that the American terms `parens', `brackets', and `braces' for (),
  3066.    [], and {} are uncommon; Commonwealth hackish prefers
  3067.    `brackets', `square brackets', and `curly brackets'.  Also, the
  3068.    use of `pling' for {bang} is common outside the United States.
  3069.  
  3070.    See also {attoparsec}, {calculator}, {chemist}, {console
  3071.    jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek},
  3072.    {heavy metal}, {leaky heap}, {lord high fixer}, {noddy},
  3073.    {psychedelicware}, {plingnet}, {raster blaster}, {seggie},
  3074.    {terminal junkie}, {tick-list features}, {weeble},
  3075.    {weasel}, {YABA}, and notes or definitions under {Bad Thing},
  3076.    {barf}, {bogus}, {bum}, {chase pointers}, {cosmic rays},
  3077.    {crippleware}, {crunch}, {dodgy}, {gonk}, {hamster},
  3078.    {hardwarily}, {mess-dos}, {nybble}, {proglet}, {root},
  3079.    {SEX}, {tweak}, and {xyzzy}.
  3080.  
  3081. compact: adj. Of a design, describes the valuable property that it
  3082.    can all be apprehended at once in one's head.  This generally means
  3083.    the thing created from the design can be used with greater facility
  3084.    and fewer errors than an equivalent tool that is not compact.
  3085.    Compactness does not imply triviality or lack of power; for
  3086.    example, C is compact and FORTRAN is not, but C is more powerful
  3087.    than FORTRAN.  Designs become non-compact through accreting
  3088.    {feature}s and {cruft} that don't merge cleanly into the
  3089.    overall design scheme (thus, some fans of {Classic C} maintain
  3090.    that ANSI C is no longer compact).
  3091.  
  3092. compiler jock: n. See {jock} (sense 2).
  3093.  
  3094. compress: [UNIX] vt. When used without a qualifier, generally
  3095.    refers to {crunch}ing of a file using a particular
  3096.    C implementation of Lempel-Ziv compression by James A. Woods et al. and
  3097.    widely circulated via {USENET}.  Use of {crunch} itself in this
  3098.    sense is rare among UNIX hackers.
  3099.  
  3100. Compu$erve: n. See {CI$}.
  3101.  
  3102. computer confetti: n. Syn. {chad}.  Though this term is common,
  3103.    this use of the punched-card chad is not a good idea, as the pieces
  3104.    are stiff and have sharp corners that could injure the eyes.  GLS
  3105.    reports that he once attended a wedding at MIT during which he and
  3106.    a few other guests enthusiastically threw chad instead of rice. The
  3107.    groom later grumbled that he and his bride had spent most of the
  3108.    evening trying to get the stuff out of their hair.
  3109.  
  3110. computer geek: n. One who eats (computer) bugs for a living.  One
  3111.    who fulfills all the dreariest negative stereotypes about hackers:
  3112.    an asocial, malodorous, pasty-faced monomaniac with all the
  3113.    personality of a cheese grater.  Cannot be used by outsiders
  3114.    without implied insult to all hackers; compare black-on-black usage
  3115.    of `nigger'.  A computer geek may be either a fundamentally
  3116.    clueless individual or a proto-hacker in {larval stage}.  Also
  3117.    called `turbo nerd', `turbo geek'.  See also
  3118.    {clustergeeking}, {geek out}, {wannabee}, {terminal
  3119.    junkie}.
  3120.  
  3121. computron: /kom'pyoo-tron`/ n. 1. A notional unit of computing
  3122.    power combining instruction speed and storage capacity, dimensioned
  3123.    roughly in instructions-per-second times megabytes-of-main-store
  3124.    times megabytes-of-mass-storage.  "That machine can't run GNU
  3125.    EMACS, it doesn't have enough computrons!"  This usage is usually
  3126.    found in metaphors that treat computing power as a fungible
  3127.    commodity good, like a crop yield or diesel horsepower.  See
  3128.    {bitty box}, {Get a real computer!}, {toy}, {crank}.
  3129.    2. A mythical subatomic particle that bears the unit quantity of
  3130.    computation or information, in much the same way that an electron
  3131.    bears one unit of electric charge (see also {bogon}).  An
  3132.    elaborate pseudo-scientific theory of computrons has been developed
  3133.    based on the physical fact that the molecules in a solid object
  3134.    move more rapidly as it is heated.  It is argued that an object
  3135.    melts because the molecules have lost their information about where
  3136.    they are supposed to be (that is, they have emitted computrons).
  3137.    This explains why computers get so hot and require air
  3138.    conditioning; they use up computrons.  Conversely, it should be
  3139.    possible to cool down an object by placing it in the path of a
  3140.    computron beam.  It is believed that this may also explain why
  3141.    machines that work at the factory fail in the computer room: the
  3142.    computrons there have been all used up by the other hardware.
  3143.    (This theory probably owes something to the "Warlock" stories
  3144.    by Larry Niven, the best known being "What Good is a Glass
  3145.    Dagger?", in which magic is fueled by an exhaustible natural
  3146.    resource called `mana'.)
  3147.  
  3148. condition out: vt. To prevent a section of code from being compiled
  3149.    by surrounding it with a conditional-compilation directive whose
  3150.    condition is always false.  The {canonical} examples are `#if
  3151.    0' (or `#ifdef notdef', though some find this {bletcherous})
  3152.    and `#endif' in C.  Compare {comment out}.
  3153.  
  3154. condom: n. 1. The protective plastic bag that accompanies 3.5-inch
  3155.    microfloppy diskettes.  Rarely, also used of (paper) disk envelopes.
  3156.    Unlike the write protect tab, the condom (when left on) not only
  3157.    impedes the practice of {SEX} but has also been shown to have a high
  3158.    failure rate as drive mechanisms attempt to access the disk --- and
  3159.    can even fatally frustrate insertion.  2. The protective cladding
  3160.    on a {light pipe}.
  3161.  
  3162. connector conspiracy: [probably came into prominence with the
  3163.    appearance of the KL-10 (one model of the {PDP-10}), none of
  3164.    whose connectors matched anything else] n. The tendency of
  3165.    manufacturers (or, by extension, programmers or purveyors of
  3166.    anything) to come up with new products that don't fit together
  3167.    with the old stuff, thereby making you buy either all new stuff or
  3168.    expensive interface devices.  The KL-10 Massbus connector was
  3169.    actually *patented* by DEC, which reputedly refused to license
  3170.    the design and thus effectively locked third parties out of
  3171.    competition for the lucrative Massbus peripherals market.  This is
  3172.    a source of never-ending frustration for the diehards who maintain
  3173.    older PDP-10 or VAX systems.  Their CPUs work fine, but they are
  3174.    stuck with dying, obsolescent disk and tape drives with low
  3175.    capacity and high power requirements.
  3176.  
  3177.    In these latter days of open-systems computing this term has fallen
  3178.    somewhat into disuse, to be replaced by the observation that
  3179.    "Standards are great!  There are so *many* of them to choose
  3180.    from!"  Compare {backward combatability}.
  3181.  
  3182. cons: /konz/ or /kons/ [from LISP] 1. vt. To add a new element
  3183.    to a specified list, esp. at the top.  "OK, cons picking a
  3184.    replacement for the console TTY onto the agenda."  2. `cons up':
  3185.    vt. To synthesize from smaller pieces: "to cons up an example".
  3186.  
  3187.    In LISP itself, `cons' is the most fundamental operation for
  3188.    building structures.  It takes any two objects and returns a
  3189.    `dot-pair' or two-branched tree with one object hanging from each
  3190.    branch.  Because the result of a cons is an object, it can be used
  3191.    to build binary trees of any shape and complexity.  Hackers think
  3192.    of it as a sort of universal constructor, and that is where the
  3193.    jargon meanings spring from.
  3194.  
  3195. considered harmful: adj. Edsger W. Dijkstra's note in the
  3196.    March 1968 `Communications of the ACM', "Goto Statement
  3197.    Considered Harmful", fired the first salvo in the structured
  3198.    programming wars.  Amusingly, the ACM considered the resulting
  3199.    acrimony sufficiently harmful that it will (by policy) no longer
  3200.    print an article taking so assertive a position against a coding
  3201.    practice.  In the ensuing decades, a large number of both serious
  3202.    papers and parodies have borne titles of the form "X
  3203.    considered Y".  The structured-programming wars eventually blew
  3204.    over with the realization that both sides were wrong, but use of
  3205.    such titles has remained as a persistent minor in-joke (the
  3206.    `considered silly' found at various places in this lexicon is
  3207.    related).
  3208.  
  3209. console:: n. 1. The operator's station of a {mainframe}.  In
  3210.    times past, this was a privileged location that conveyed godlike
  3211.    powers to anyone with fingers on its keys.  Under UNIX and other
  3212.    modern timesharing OSes, such privileges are guarded by passwords
  3213.    instead, and the console is just the {tty} the system was booted
  3214.    from.  Some of the mystique remains, however, and it is traditional
  3215.    for sysadmins to post urgent messages to all users from the console
  3216.    (on UNIX, /dev/console).  2. On microcomputer UNIX boxes, the main
  3217.    screen and keyboard (as opposed to character-only terminals talking
  3218.    to a serial port).  Typically only the console can do real graphics
  3219.    or run {X}.  See also {CTY}.
  3220.  
  3221. console jockey: n. See {terminal junkie}.
  3222.  
  3223. content-free: [by analogy with techspeak `context-free'] adj.
  3224.    Used of a message that adds nothing to the recipient's knowledge.
  3225.    Though this adjective is sometimes applied to {flamage}, it more
  3226.    usually connotes derision for communication styles that exalt form
  3227.    over substance or are centered on concerns irrelevant to the
  3228.    subject ostensibly at hand.  Perhaps most used with reference to
  3229.    speeches by company presidents and other professional manipulators.
  3230.    "Content-free?  Uh...that's anything printed on glossy
  3231.    paper."  See also {four-color glossies}.  "He gave a talk on
  3232.    the implications of electronic networks for postmodernism and the
  3233.    fin-de-siecle aesthetic.  It was content-free."
  3234.  
  3235. control-C: vi. 1. "Stop whatever you are doing."  From the
  3236.    interrupt character used on many operating systems to abort a
  3237.    running program.  Considered silly.  2. interj. Among BSD UNIX
  3238.    hackers, the canonical humorous response to "Give me a break!"
  3239.  
  3240. control-O: vi. "Stop talking."  From the character used on some
  3241.    operating systems to abort output but allow the program to keep on
  3242.    running.  Generally means that you are not interested in hearing
  3243.    anything more from that person, at least on that topic; a standard
  3244.    response to someone who is flaming.  Considered silly.
  3245.  
  3246. control-Q: vi. "Resume."  From the ASCII XON character used to
  3247.    undo a previous control-S (in fact it is also pronounced
  3248.    XON /X-on/).
  3249.  
  3250. control-S: vi. "Stop talking for a second."  From the ASCII XOFF
  3251.    character (this is also pronounced XOFF /X-of/).  Control-S
  3252.    differs from {control-O} in that the person is asked to stop
  3253.    talking (perhaps because you are on the phone) but will be allowed
  3254.    to continue when you're ready to listen to him --- as opposed to
  3255.    control-O, which has more of the meaning of "Shut up."  Considered
  3256.    silly.
  3257.  
  3258. Conway's Law: prov. The rule that the organization of the software and
  3259.    the organization of the software team will be congruent; originally
  3260.    stated as "If you have four groups working on a compiler, you'll
  3261.    get a 4-pass compiler".
  3262.  
  3263.    This was originally promulgated by Melvin Conway, an early
  3264.    proto-hacker who wrote an assembler for the Burroughs 220 called
  3265.    SAVE.  The name `SAVE' didn't stand for anything; it was just that
  3266.    you lost fewer card decks and listings because they all had SAVE
  3267.    written on them.
  3268.  
  3269. cookbook: [from amateur electronics and radio] n. A book of small
  3270.    code segments that the reader can use to do various {magic}
  3271.    things in programs.  One current example is the `PostScript
  3272.    Language Tutorial and Cookbook' by Adobe Systems, Inc
  3273.    (Addison-Wesley, ISBN 0-201-10179-3) which has recipes for things
  3274.    like wrapping text around arbitrary curves and making 3D fonts.
  3275.    Cookbooks, slavishly followed, can lead one into {voodoo
  3276.    programming}, but are useful for hackers trying to {monkey up}
  3277.    small programs in unknown languages.  This is analogous to the role
  3278.    of phrasebooks in human languages.
  3279.  
  3280. cookie: n. A handle, transaction ID, or other token of agreement
  3281.    between cooperating programs.  "I give him a packet, he gives me
  3282.    back a cookie."  The claim check you get from a dry-cleaning shop
  3283.    is a perfect mundane example of a cookie; the only thing it's
  3284.    useful for is to relate a later transaction to this one (so you get
  3285.    the same clothes back).  Compare {magic cookie}; see also
  3286.    {fortune cookie}.
  3287.  
  3288. cookie bear: n. Syn. {cookie monster}.
  3289.  
  3290. cookie file: n. A collection of {fortune cookie}s in a format
  3291.    that facilitates retrieval by a fortune program.  There are several
  3292.    different ones in public distribution, and site admins often
  3293.    assemble their own from various sources including this lexicon.
  3294.  
  3295. cookie monster: [from "Sesame Street"] n. Any of a family of
  3296.    early (1970s) hacks reported on {{TOPS-10}}, {{ITS}}, {{Multics}},
  3297.    and elsewhere that would lock up either the victim's terminal (on a
  3298.    time-sharing machine) or the {{console}} (on a batch
  3299.    {mainframe}), repeatedly demanding "I WANT A COOKIE".  The
  3300.    required responses ranged in complexity from "COOKIE" through
  3301.    "HAVE A COOKIE" and upward.  See also {wabbit}.
  3302.  
  3303. copper: n. Conventional electron-carrying network cable with a
  3304.    core conductor of copper --- or aluminum!  Opposed to {light
  3305.    pipe} or, say, a short-range microwave link.
  3306.  
  3307. copy protection: n. A class of clever methods for preventing
  3308.    incompetent pirates from stealing software and legitimate customers
  3309.    from using it.  Considered silly.
  3310.  
  3311. copybroke: /ko'pee-brohk/ adj. [play on `copyright'] Used to
  3312.    describe an instance of a copy-protected program that has been
  3313.    `broken'; that is, a copy with the copy-protection scheme disabled.
  3314.    Syn.  {copywronged}.
  3315.  
  3316. copyleft: /kop'ee-left/ [play on `copyright'] n. 1. The
  3317.    copyright notice (`General Public License') carried by {GNU}
  3318.    {EMACS} and other Free Software Foundation software, granting reuse
  3319.    and reproduction rights to all comers (but see also {General
  3320.    Public Virus}).  2. By extension, any copyright notice intended to
  3321.    achieve similar aims.
  3322.  
  3323. copywronged: /ko'pee-rongd/ [play on `copyright'] adj. Syn. for
  3324.    {copybroke}.
  3325.  
  3326. core: n. Main storage or RAM.  Dates from the days of ferrite-core
  3327.    memory; now archaic as techspeak most places outside IBM, but also
  3328.    still used in the UNIX community and by old-time hackers or those
  3329.    who would sound like them.  Some derived idioms are quite current;
  3330.    `in core', for example, means `in memory' (as opposed to `on
  3331.    disk'), and both {core dump} and the `core image' or `core
  3332.    file' produced by one are terms in favor.  Commonwealth hackish
  3333.    prefers {store}.
  3334.  
  3335. core dump: n. [common {Iron Age} jargon, preserved by UNIX]
  3336.    1. [techspeak] A copy of the contents of {core}, produced when a
  3337.    process is aborted by certain kinds of internal error.  2. By
  3338.    extension, used for humans passing out, vomiting, or registering
  3339.    extreme shock.  "He dumped core.  All over the floor.  What a
  3340.    mess."  "He heard about X and dumped core."  3. Occasionally
  3341.    used for a human rambling on pointlessly at great length; esp. in
  3342.    apology: "Sorry, I dumped core on you".  4. A recapitulation of
  3343.    knowledge (compare {bits}, sense 1).  Hence, spewing all one
  3344.    knows about a topic, esp. in a lecture or answer to an exam
  3345.    question.  "Short, concise answers are better than core dumps"
  3346.    (from the instructions to an exam at Columbia; syn.  {brain
  3347.    dump}).  See {core}.
  3348.  
  3349. core leak: n. Syn. {memory leak}.
  3350.  
  3351. Core Wars: n. A game between `assembler' programs in a
  3352.    simulated machine, where the objective is to kill your opponent's
  3353.    program by overwriting it.  Popularized by A. K. Dewdney's column
  3354.    in `Scientific American' magazine, this was actually
  3355.    devised by Victor Vyssotsky, Robert Morris, and Dennis Ritchie in
  3356.    the early 1960s (their original game was called `Darwin' and ran on
  3357.    a PDP-1 at Bell Labs).  See {core}.
  3358.  
  3359. corge: /korj/ [originally, the name of a cat] n. Yet another
  3360.    meta-syntactic variable, invented by Mike Gallaher and propagated
  3361.    by the {GOSMACS} documentation.  See {grault}.
  3362.  
  3363. cosmic rays: n. Notionally, the cause of {bit rot}.  However, this is
  3364.    a semi-independent usage that may be invoked as a humorous way to
  3365.    {handwave} away any minor {randomness} that doesn't seem worth the
  3366.    bother of investigating.  "Hey, Eric --- I just got a burst of
  3367.    garbage on my {tube}, where did that come from?"  "Cosmic rays, I
  3368.    guess."  Compare {sunspots}, {phase of the moon}.  The British seem
  3369.    to prefer the usage `cosmic showers'; `alpha particles' is also
  3370.    heard, because stray alpha particles passing through a memory chip
  3371.    can cause single-bit errors (this becomes increasingly more likely
  3372.    as memory sizes and densities increase).
  3373.  
  3374.    Factual note: Alpha particles cause bit rot, cosmic rays do not
  3375.    (except occasionally in spaceborne computers).  Intel could not
  3376.    explain random bit drops in their early chips, and one hypothesis
  3377.    was cosmic rays.  So they created the World's Largest Lead Safe,
  3378.    using 25 tons of the stuff, and used two identical boards for
  3379.    testing.  One was placed in the safe, one outside.  The hypothesis
  3380.    was that if cosmic rays were causing the bit drops, they should see
  3381.    a statistically significant difference between the error rates on
  3382.    the two boards.  They did not observe such a difference.  Further
  3383.    investigation demonstrated conclusively that the bit drops were due
  3384.    to alpha particle emissions from thorium (and to a much lesser
  3385.    degree uranium) in the encapsulation material.  Since it is
  3386.    impossible to eliminate these radioactives (they are uniformly
  3387.    distributed through the earth's crust, with the statistically
  3388.    insignificant exception of uranium lodes) it became obvious that
  3389.    you have to design memories to withstand these hits.
  3390.  
  3391. cough and die: v. Syn. {barf}.  Connotes that the program is
  3392.    throwing its hands up by design rather than because of a bug or
  3393.    oversight.  "The parser saw a control-A in its input where it was
  3394.    looking for a printable, so it coughed and died."
  3395.  
  3396. cowboy: [Sun, from William Gibson's {cyberpunk} SF] n. Synonym
  3397.    for {hacker}.  It is reported that at Sun this word is often
  3398.    said with reverence.
  3399.  
  3400. CP/M:: /C-P-M/ n. [Control Program for Microcomputers] An
  3401.    early microcomputer {OS} written by hacker Gary Kildall for
  3402.    8080- and Z80-based machines, very popular in the late 1970s but
  3403.    virtually wiped out by MS-DOS after the release of the IBM PC
  3404.    in 1981.  Legend has it that Kildall's company blew its chance to
  3405.    write the OS for the IBM PC because Kildall decided to spend a day
  3406.    IBM's reps wanted to meet with him enjoying the perfect flying
  3407.    weather in his private plane.  Many of CP/M's features and conventions
  3408.    strongly resemble those of early DEC operating systems such as
  3409.    {{TOPS-10}}, OS/8, RSTS, and RSX-11.  See {{MS-DOS}},
  3410.    {operating system}.
  3411.  
  3412. CPU Wars: /C-P-U worz/ n. A 1979 large-format comic by Chas
  3413.    Andres chronicling the attempts of the brainwashed androids of IPM
  3414.    (Impossible to Program Machines) to conquer and destroy the
  3415.    peaceful denizens of HEC (Human Engineered Computers).  This rather
  3416.    transparent allegory featured many references to {ADVENT} and
  3417.    the immortal line "Eat flaming death, minicomputer mongrels!"
  3418.    (uttered, of course, by an IPM stormtrooper).  It is alleged that
  3419.    the author subsequently received a letter of appreciation on IBM
  3420.    company stationery from the head of IBM's Thomas J. Watson Research
  3421.    Laboratories (then, as now, one of the few islands of true
  3422.    hackerdom in the IBM archipelago).  The lower loop of the B in the
  3423.    IBM logo, it is said, had been carefully whited out.  See {eat
  3424.    flaming death}.
  3425.  
  3426. cracker: n. One who breaks security on a system.  Coined ca. 1985
  3427.    by hackers in defense against journalistic misuse of {hacker}
  3428.    (q.v., sense 8).  An earlier attempt to establish `worm' in this
  3429.    sense around 1981--82 on USENET was largely a failure.
  3430.  
  3431. crank: [from automotive slang] vt. Verb used to describe the
  3432.    performance of a machine, especially sustained performance.  "This
  3433.    box cranks (or, cranks at) about 6 {megaflops}, with a burst mode
  3434.    of twice that on vectorized operations."
  3435.  
  3436. crash: 1. n. A sudden, usually drastic failure.  Most often said
  3437.    of the {system} (q.v., sense 1), sometimes of magnetic disk
  3438.    drives.  "Three {luser}s lost their files in last night's disk
  3439.    crash."  A disk crash that involves the read/write heads dropping
  3440.    onto the surface of the disks and scraping off the oxide may also
  3441.    be referred to as a `head crash', whereas the term `system
  3442.    crash' usually, though not always, implies that the operating
  3443.    system or other software was at fault.  2. v. To fail suddenly.
  3444.    "Has the system just crashed?"  "Something crashed the OS!" See
  3445.    {down}.  Also used transitively to indicate the cause of the
  3446.    crash (usually a person or a program, or both).  "Those idiots
  3447.    playing {SPACEWAR} crashed the system." 3. vi. Sometimes said
  3448.    of people hitting the sack after a long {hacking run}; see
  3449.    {gronk out}.
  3450.  
  3451. crash and burn: vi.,n. A spectacular crash, in the mode of the
  3452.    conclusion of the car-chase scene in the movie "Bullitt" and
  3453.    many subsequent imitators.  Sun-3 monitors losing the flyback
  3454.    transformer and lightning strikes on VAX-11/780 backplanes are
  3455.    notable crash and burn generators.  The construction
  3456.    `crash-and-burn machine' is reported for a computer used
  3457.    exclusively for alpha or {beta} testing, or reproducing bugs
  3458.    (i.e., not for development).  The implication is that it wouldn't
  3459.    be such a disaster if that machine crashed, since only the testers
  3460.    would be inconvenienced.
  3461.  
  3462. crawling horror: n. Ancient crufty hardware or software that is
  3463.    kept obstinately alive by forces beyond the control of the hackers
  3464.    at a site.  Like {dusty deck} or {gonkulator}, but connotes
  3465.    that the thing described is not just an irritation but an active
  3466.    menace to health and sanity.  "Mostly we code new stuff in C, but
  3467.    they pay us to maintain one big FORTRAN II application from
  3468.    nineteen-sixty-X that's a real crawling horror...."  Compare
  3469.    {WOMBAT}.
  3470.  
  3471. cray: /kray/ n. 1. (properly, capitalized) One of the line of
  3472.    supercomputers designed by Cray Research.  2. Any supercomputer at
  3473.    all.  3. The {canonical} {number-crunching} machine.
  3474.  
  3475.    The term is actually the lowercased last name of Seymour Cray, a
  3476.    noted computer architect and co-founder of the company.  Numerous
  3477.    vivid legends surround him, some true and some admittedly invented
  3478.    by Cray Research brass to shape their corporate culture and image.
  3479.  
  3480. cray instability: n. A shortcoming of a program or algorithm that
  3481.    manifests itself only when a large problem is being run on a powerful
  3482.    machine (see {cray}).  Generally more subtle than bugs that can
  3483.    be detected in smaller problems running on a workstation or mini.
  3484.  
  3485. crayola: /kray-oh'l*/ n. A super-mini or -micro computer that
  3486.    provides some reasonable percentage of supercomputer performance
  3487.    for an unreasonably low price.  Might also be a {killer micro}.
  3488.  
  3489. crayon: n. 1. Someone who works on Cray supercomputers.  More
  3490.    specifically, it implies a programmer, probably of the CDC ilk,
  3491.    probably male, and almost certainly wearing a tie (irrespective of
  3492.    gender).  Systems types who have a UNIX background tend not to be
  3493.    described as crayons.  2. A {computron} (sense 2) that
  3494.    participates only in {number-crunching}.  3. A unit of
  3495.    computational power equal to that of a single Cray-1.  There is a
  3496.    standard joke about this that derives from an old Crayola crayon
  3497.    promotional gimmick: When you buy 64 crayons you get a free
  3498.    sharpener.
  3499.  
  3500. creationism: n. The (false) belief that large, innovative designs
  3501.    can be completely specified in advance and then painlessly magicked
  3502.    out of the void by the normal efforts of a team of normally
  3503.    talented programmers.  In fact, experience has shown repeatedly
  3504.    that good designs arise only from evolutionary, exploratory
  3505.    interaction between one (or at most a small handful of)
  3506.    exceptionally able designer(s) and an active user population ---
  3507.    and that the first try at a big new idea is always wrong.
  3508.    Unfortunately, because these truths don't fit the planning models
  3509.    beloved of {management}, they are generally ignored.
  3510.  
  3511. creeping elegance: n. Describes a tendency for parts of a design to
  3512.    become {elegant} past the point of diminishing return.  This
  3513.    often happens at the expense of the less interesting parts of the
  3514.    design, the schedule, and other things deemed important in the
  3515.    {Real World}.  See also {creeping featurism}, {second-system
  3516.    effect}, {tense}.
  3517.  
  3518. creeping featurism: /kree'ping fee'chr-izm/ n. 1. Describes a
  3519.    systematic tendency to load more {chrome} and {feature}s onto
  3520.    systems at the expense of whatever elegance they may have possessed
  3521.    when originally designed.  See also {feeping creaturism}.  "You
  3522.    know, the main problem with {BSD} UNIX has always been creeping
  3523.    featurism."  2. More generally, the tendency for anything
  3524.    complicated to become even more complicated because people keep
  3525.    saying "Gee, it would be even better if it had this feature
  3526.    too".  (See {feature}.)  The result is usually a patchwork
  3527.    because it grew one ad-hoc step at a time, rather than being
  3528.    planned.  Planning is a lot of work, but it's easy to add just one
  3529.    extra little feature to help someone ... and then another ...
  3530.    and another....  When creeping featurism gets out of hand, it's
  3531.    like a cancer.  Usually this term is used to describe computer
  3532.    programs, but it could also be said of the federal government, the
  3533.    IRS 1040 form, and new cars.  A similar phenomenon sometimes
  3534.    afflicts conscious redesigns; see {second-system effect}.  See
  3535.    also {creeping elegance}.
  3536.  
  3537. creeping featuritis: /kree'ping fee'-chr-i:`t*s/ n. Variant of
  3538.    {creeping featurism}, with its own spoonerization: `feeping
  3539.    creaturitis'.  Some people like to reserve this form for the
  3540.    disease as it actually manifests in software or hardware, as
  3541.    opposed to the lurking general tendency in designers' minds.  (After
  3542.    all, -ism means `condition' or `pursuit of', whereas -itis usually
  3543.    means `inflammation of'.)
  3544.  
  3545. cretin: /kret'n/ or /kree'tn/ n. Congenital {loser}; an obnoxious
  3546.    person; someone who can't do anything right.  It has been observed
  3547.    that many American hackers tend to favor the British pronunciation
  3548.    /kre'tn/ over standard American /kree'tn/; it is thought this may
  3549.    be due to the insidious phonetic influence of Monty Python's Flying
  3550.    Circus.
  3551.  
  3552. cretinous: /kret'n-*s/ or /kreet'n-*s/ adj. Wrong; stupid;
  3553.    non-functional; very poorly designed.  Also used pejoratively of
  3554.    people.  See {dread high-bit disease} for an example.
  3555.    Approximate synonyms: {bletcherous}, `bagbiting' (see
  3556.    {bagbiter}), {losing}, {brain-damaged}.
  3557.  
  3558. crippleware: n. 1. Software that has some important functionality
  3559.    deliberately removed, so as to entice potential users to pay for a
  3560.    working version.  2. [Cambridge] {Guiltware} that exhorts you to
  3561.    donate to some charity (compare {careware}).  3. Hardware
  3562.    deliberately crippled, which can be upgraded to a more expensive
  3563.    model by a trivial change (e.g., cutting a jumper).
  3564.  
  3565. critical mass: n. In physics, the minimum amount of fissionable
  3566.    material required to sustain a chain reaction.  Of a software
  3567.    product, describes a condition of the software such that fixing one
  3568.    bug introduces one plus {epsilon} bugs.  When software achieves
  3569.    critical mass, it can only be discarded and rewritten.
  3570.  
  3571. crlf: /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ n. (often
  3572.    capitalized as `CRLF') A carriage return (CR) followed by a line
  3573.    feed (LF).  More loosely, whatever it takes to get you from the
  3574.    end of one line of text to the beginning of the next line.  See
  3575.    {newline}, {terpri}.  Under {{UNIX}} influence this usage
  3576.    has become less common (UNIX uses a bare line feed as its `CRLF').
  3577.  
  3578. crock: [from the obvious mainstream scatologism] n. 1. An awkward
  3579.    feature or programming technique that ought to be made cleaner.
  3580.    Using small integers to represent error codes without the
  3581.    program interpreting them to the user (as in, for example, UNIX
  3582.    `make(1)', which returns code 139 for a process that dies due
  3583.    to {segfault}).  2. A technique that works acceptably, but which
  3584.    is quite prone to failure if disturbed in the least, for example
  3585.    depending on the machine opcodes having particular bit patterns so
  3586.    that you can use instructions as data words too; a tightly woven,
  3587.    almost completely unmodifiable structure.  See {kluge},
  3588.    {brittle}.  Also in the adjectives `crockish' and
  3589.    `crocky', and the nouns `crockishness' and `crockitude'.
  3590.  
  3591. cross-post: [USENET] vi. To post a single article simultaneously to
  3592.    several newsgroups.  Distinguished from posting the article
  3593.    repeatedly, once to each newsgroup, which causes people to see it
  3594.    multiple times (this is very bad form).  Gratuitous cross-posting
  3595.    without a Followup-To line directing responses to a single followup
  3596.    group is frowned upon, as it tends to cause {followup} articles
  3597.    to go to inappropriate newsgroups when people respond to only one
  3598.    part of the original posting.
  3599.  
  3600. crudware: /kruhd'weir/ n. Pejorative term for the hundreds of
  3601.    megabytes of low-quality {freeware} circulated by user's groups
  3602.    and BBS systems in the micro-hobbyist world.  "Yet *another*
  3603.    set of disk catalog utilities for {{MS-DOS}}?  What crudware!"
  3604.  
  3605. cruft: /kruhft/ [back-formation from {crufty}] 1. n. An
  3606.    unpleasant substance.  The dust that gathers under your bed is
  3607.    cruft; the TMRC Dictionary correctly noted that attacking it with a
  3608.    broom only produces more.  2. n. The results of shoddy
  3609.    construction.  3. vt. [from `hand cruft', pun on `hand craft'] To
  3610.    write assembler code for something normally (and better) done by a
  3611.    compiler (see {hand-hacking}).  4. n. Excess; superfluous junk.
  3612.    Esp. used of redundant or superseded code.
  3613.  
  3614. cruft together: vt. (also `cruft up') To throw together
  3615.    something ugly but temporarily workable.  Like vt. {kluge up},
  3616.    but more pejorative.  "There isn't any program now to reverse all
  3617.    the lines of a file, but I can probably cruft one together in about
  3618.    10 minutes."  See {hack together}, {hack up}, {kluge up},
  3619.    {crufty}.
  3620.  
  3621. cruftsmanship: /kruhfts'm*n-ship / n. [from {cruft}] The
  3622.    antithesis of craftsmanship.
  3623.  
  3624. crufty: /kruhf'tee/ [origin unknown; poss. from `crusty' or
  3625.    `cruddy'] adj. 1. Poorly built, possibly over-complex.  The
  3626.    {canonical} example is "This is standard old crufty DEC
  3627.    software".  In fact, one fanciful theory of the origin of `crufty'
  3628.    holds that was originally a mutation of `crusty' applied to DEC
  3629.    software so old that the `s' characters were tall and skinny, looking
  3630.    more like `f' characters.  2. Unpleasant, especially to the touch,
  3631.    often with encrusted junk.  Like spilled coffee smeared with peanut
  3632.    butter and catsup.  3. Generally unpleasant.  4. (sometimes spelled
  3633.    `cruftie') n. A small crufty object (see {frob}); often one
  3634.    that doesn't fit well into the scheme of things.  "A LISP property
  3635.    list is a good place to store crufties (or, collectively,
  3636.    {random} cruft)."
  3637.  
  3638. crumb: n. Two binary digits; a {quad}.  Larger than a {bit},
  3639.    smaller than a {nybble}.  Considered silly.  Syn. {tayste}.
  3640.  
  3641. crunch: 1. vi. To process, usually in a time-consuming or
  3642.    complicated way.  Connotes an essentially trivial operation that is
  3643.    nonetheless painful to perform.  The pain may be due to the
  3644.    triviality's being embedded in a loop from 1 to 1,000,000,000.
  3645.    "FORTRAN programs do mostly {number-crunching}."  2. vt. To
  3646.    reduce the size of a file by a complicated scheme that produces bit
  3647.    configurations completely unrelated to the original data, such as
  3648.    by a Huffman code.  (The file ends up looking like a paper document
  3649.    would if somebody crunched the paper into a wad.)  Since such
  3650.    compression usually takes more computations than simpler methods
  3651.    such as run-length encoding, the term is doubly appropriate.  (This
  3652.    meaning is usually used in the construction `file crunch(ing)' to
  3653.    distinguish it from {number-crunching}.)  See {compress}.
  3654.    3. n. The character `#'.  Used at XEROX and CMU, among other
  3655.    places.  See {{ASCII}}.  4. vt. To squeeze program source into a
  3656.    minimum-size representation that will still compile or execute.
  3657.    The term came into being specifically for a famous program on the
  3658.    BBC micro that crunched BASIC source in order to make it run more
  3659.    quickly (it was a wholly interpretive BASIC, so the number of
  3660.    characters mattered).  {Obfuscated C Contest} entries are often
  3661.    crunched; see the first example under that entry.
  3662.  
  3663. cruncha cruncha cruncha: /kruhn'ch* kruhn'ch* kruhn'ch*/ interj.
  3664.    An encouragement sometimes muttered to a machine bogged down in a
  3665.    serious {grovel}.  Also describes a notional sound made by
  3666.    groveling hardware.  See {wugga wugga}, {grind} (sense 3).
  3667.  
  3668. cryppie: /krip'ee/ n. A cryptographer.  One who hacks or implements
  3669.    cryptographic software or hardware.
  3670.  
  3671. CTSS: /C-T-S-S/ n. Compatible Time-Sharing System.  An early
  3672.    (1963) experiment in the design of interactive time-sharing
  3673.    operating systems, ancestral to {{Multics}}, {{UNIX}}, and
  3674.    {{ITS}}.  The name {{ITS}} (Incompatible Time-sharing System)
  3675.    was a hack on CTSS, meant both as a joke and to express some basic
  3676.    differences in philosophy about the way I/O services should be
  3677.    presented to user programs.
  3678.  
  3679. CTY: /sit'ee/ or /C-T-Y/ n. [MIT] The terminal physically
  3680.    associated with a computer's system {{console}}.  The term is a
  3681.    contraction of `Console {tty}', that is, `Console TeleTYpe'.
  3682.    This {{ITS}}- and {{TOPS-10}}-associated term has become less
  3683.    common, as most UNIX hackers simply refer to the CTY as `the
  3684.    console'.
  3685.  
  3686. cube: n. 1. [short for `cubicle'] A module in the open-plan
  3687.    offices used at many programming shops.  "I've got the manuals in
  3688.    my cube."  2. A NeXT machine (which resembles a matte-black cube).
  3689.  
  3690. cubing: [parallel with `tubing'] vi. 1. Hacking on an IPSC (Intel
  3691.    Personal SuperComputer) hypercube.  "Louella's gone cubing
  3692.    *again*!!"  2. Hacking Rubik's Cube or related puzzles,
  3693.    either physically or mathematically.  3. An indescribable form of
  3694.    self-torture (see sense 1 or #2).
  3695.  
  3696. cursor dipped in X: n. There are a couple of metaphors in English
  3697.    of the form `pen dipped in X' (perhaps the most common values of X
  3698.    are `acid', `bile', and `vitriol').  These map over neatly to this
  3699.    hackish usage (the cursor being what moves, leaving letters behind,
  3700.    when one is composing on-line).  "Talk about a {nastygram}!  He
  3701.    must've had his cursor dipped in acid when he wrote that one!"
  3702.  
  3703. cuspy: /kuhs'pee/ [WPI: from the DEC acronym CUSP, for `Commonly
  3704.    Used System Program', i.e., a utility program used by many people]
  3705.    adj. 1. (of a program) Well-written.  2. Functionally excellent.  A
  3706.    program that performs well and interfaces well to users is cuspy.
  3707.    See {rude}.  3. [NYU] Said of an attractive woman, especially one
  3708.    regarded as available.  Implies a certain curvaceousness.
  3709.  
  3710. cut a tape: [poss. fr. mainstream `cut a check' or from the
  3711.    recording industry's `cut a record'] vi. To write a software or
  3712.    document distribution on magnetic tape for shipment.  Has nothing
  3713.    to do with physically cutting the medium!  Though this usage is
  3714.    quite widespread, one never speaks of analogously `cutting a disk'
  3715.    or anything else in this sense.
  3716.  
  3717. cybercrud: /si:'ber-kruhd/ [coined by Ted Nelson] n. Obfuscatory
  3718.    tech-talk.  Verbiage with a high {MEGO} factor.  The computer
  3719.    equivalent of bureaucratese.
  3720.  
  3721. cyberpunk: /si:'ber-puhnk/ [orig. by SF writer Bruce Bethke and/or
  3722.    editor Gardner Dozois] n.,adj. A subgenre of SF launched in 1982
  3723.    by William Gibson's epoch-making novel `Neuromancer' (though
  3724.    its roots go back through Vernor Vinge's `True Names' (see
  3725.    the Bibliography) to John Brunner's 1975 novel `The Shockwave
  3726.    Rider').  Gibson's near-total ignorance of computers and the
  3727.    present-day hacker culture enabled him to speculate about the role
  3728.    of computers and hackers in the future in ways hackers have since
  3729.    found both irritatingly na"ive and tremendously stimulating.
  3730.    Gibson's work was widely imitated, in particular by the short-lived
  3731.    but innovative "Max Headroom" TV series.  See {cyberspace},
  3732.    {ice}, {go flatline}.
  3733.  
  3734. cyberspace: /si:'ber-spays/ n. 1. Notional `information-space'
  3735.    loaded with visual cues and navigable with brain-computer
  3736.    interfaces called `cyberspace decks'; a characteristic prop of
  3737.    {cyberpunk} SF.  At the time of this writing (mid-1991),
  3738.    serious efforts to construct {virtual reality} interfaces
  3739.    modeled explicitly on Gibsonian cyberspace are already under way,
  3740.    using more conventional devices such as glove sensors and binocular
  3741.    TV headsets.  Few hackers are prepared to deny outright the
  3742.    possibility of a cyberspace someday evolving out of the network
  3743.    (see {network, the}).  2. Occasionally, the metaphoric location
  3744.    of the mind of a person in {hack mode}.  Some hackers report
  3745.    experiencing strong eidetic imagery when in hack mode;
  3746.    interestingly, independent reports from multiple sources suggest
  3747.    that there are common features to the experience.  In particular,
  3748.    the dominant colors of this subjective `cyberspace' are often
  3749.    gray and silver, and the imagery often involves constellations of
  3750.    marching dots, elaborate shifting patterns of lines and angles, or
  3751.    moire patterns.
  3752.  
  3753. cycle: 1. n. The basic unit of computation.  What every hacker
  3754.    wants more of (noted hacker Bill Gosper describes himself as a
  3755.    "cycle junkie"). One can describe an instruction as taking so
  3756.    many `clock cycles'.  Often the computer can access its
  3757.    memory once on every clock cycle, and so one speaks also of
  3758.    `memory cycles'.  These are technical meanings of {cycle}.  The
  3759.    jargon meaning comes from the observation that there are only so
  3760.    many cycles per second, and when you are sharing a computer the
  3761.    cycles get divided up among the users.  The more cycles the
  3762.    computer spends working on your program rather than someone else's,
  3763.    the faster your program will run.  That's why every hacker wants
  3764.    more cycles: so he can spend less time waiting for the computer to
  3765.    respond.  2. By extension, a notional unit of *human* thought
  3766.    power, emphasizing that lots of things compete for the typical
  3767.    hacker's think time.  "I refused to get involved with the Rubik's
  3768.    Cube back when it was big.  Knew I'd burn too many cycles on it if
  3769.    I let myself."  3. vt. Syn. {bounce}, {120 reset}; from the
  3770.    phrase `cycle power'. "Cycle the machine again, that serial port's
  3771.    still hung."
  3772.  
  3773. cycle crunch: n. A situation where the number of people trying to
  3774.    use the computer simultaneously has reached the point where no one
  3775.    can get enough cycles because they are spread too thin and the
  3776.    system has probably begun to {thrash}.  This is an inevitable
  3777.    result of Parkinson's Law applied to timesharing.  Usually the only
  3778.    solution is to buy more computer.  Happily, this has rapidly become
  3779.    easier in recent years, so much so that the very term `cycle
  3780.    crunch' now has a faintly archaic flavor; most hackers now use
  3781.    workstations or personal computers as opposed to traditional
  3782.    timesharing systems.
  3783.  
  3784. cycle drought: n. A scarcity of cycles.  It may be due to a {cycle
  3785.    crunch}, but it could also occur because part of the computer is
  3786.    temporarily not working, leaving fewer cycles to go around.
  3787.    "The {high moby} is {down}, so we're running with only
  3788.    half the usual amount of memory.  There will be a cycle drought
  3789.    until it's fixed."
  3790.  
  3791. cycle of reincarnation: [coined by Ivan Sutherland ca. 1970] n.
  3792.    Term used to refer to a well-known effect whereby function in a
  3793.    computing system family is migrated out to special-purpose
  3794.    peripheral hardware for speed, then the peripheral evolves toward
  3795.    more computing power as it does its job, then somebody notices that
  3796.    it is inefficient to support two asymmetrical processors in the
  3797.    architecture and folds the function back into the main CPU, at
  3798.    which point the cycle begins again.  Several iterations of this
  3799.    cycle have been observed in graphics-processor design, and at least
  3800.    one or two in communications and floating-point processors.  Also
  3801.    known as `the Wheel of Life', `the Wheel of Samsara', and other
  3802.    variations of the basic Hindu/Buddhist theological idea.
  3803.  
  3804. cycle server: n. A powerful machine that exists primarily for
  3805.    running large {batch} jobs.  Implies that interactive tasks such as
  3806.    editing are done on other machines on the network, such as
  3807.    workstations.
  3808.  
  3809. = D =
  3810.  
  3811. D. C. Power Lab: n. The former site of {{SAIL}}.  Hackers thought
  3812.    this was very funny because the obvious connection to electrical
  3813.    engineering was nonexistent --- the lab was named for a Donald C.
  3814.    Power.  Compare {Marginal Hacks}.
  3815.  
  3816. daemon: /day'mn/ or /dee'mn/ [from the mythological meaning,
  3817.    later rationalized as the acronym `Disk And Execution MONitor'] n.
  3818.    A program that is not invoked explicitly, but lies dormant waiting
  3819.    for some condition(s) to occur.  The idea is that the perpetrator
  3820.    of the condition need not be aware that a daemon is lurking (though
  3821.    often a program will commit an action only because it knows that it
  3822.    will implicitly invoke a daemon).  For example, under {{ITS}}
  3823.    writing a file on the {LPT} spooler's directory would invoke the
  3824.    spooling daemon, which would then print the file.  The advantage is
  3825.    that programs wanting (in this example) files printed need not
  3826.    compete for access to the {LPT}.  They simply enter their
  3827.    implicit requests and let the daemon decide what to do with them.
  3828.    Daemons are usually spawned automatically by the system, and may
  3829.    either live forever or be regenerated at intervals.  Daemon and
  3830.    {demon} are often used interchangeably, but seem to have
  3831.    distinct connotations.  The term `daemon' was introduced to
  3832.    computing by {CTSS} people (who pronounced it /dee'mon/) and
  3833.    used it to refer to what ITS called a {dragon}.  Although the
  3834.    meaning and the pronunciation have drifted, we think this glossary
  3835.    reflects current (1991) usage.
  3836.  
  3837. dangling pointer: n. A reference that doesn't actually lead
  3838.    anywhere (in C and some other languages, a pointer that doesn't
  3839.    actually point at anything valid).  Usually this is because it
  3840.    formerly pointed to something that has moved or disappeared.  Used
  3841.    as jargon in a generalization of its techspeak meaning; for
  3842.    example, a local phone number for a person who has since moved to the
  3843.    other coast is a dangling pointer.
  3844.  
  3845. Datamation: /day`t*-may'sh*n/ n. A magazine that many hackers
  3846.    assume all {suit}s read.  Used to question an unbelieved quote,
  3847.    as in "Did you read that in `Datamation?'" It used to
  3848.    publish something hackishly funny every once in a while, like the
  3849.    original paper on {COME FROM} in 1973, but it has since become much
  3850.    more exclusively {suit}-oriented and boring.
  3851.  
  3852. day mode: n. See {phase} (sense 1).  Used of people only.
  3853.  
  3854. dd: /dee-dee/ [UNIX: from IBM {JCL}] vt. Equivalent to {cat}
  3855.    or {BLT}.  This was originally the name of a UNIX copy command
  3856.    with special options suitable for block-oriented devices.  Often
  3857.    used in heavy-handed system maintenance, as in "Let's dd the root
  3858.    partition onto a tape, then use the boot PROM to load it back on to
  3859.    a new disk".  The UNIX `dd(1)' was designed with a weird,
  3860.    distinctly non-UNIXy keyword option syntax reminiscent of IBM
  3861.    System/360 JCL (which had a similar DD command); though the command
  3862.    filled a need, the interface design was clearly a prank.  The
  3863.    jargon usage is now very rare outside UNIX sites and now nearly
  3864.    obsolete even there, as `dd(1)' has been {deprecated} for a
  3865.    long time (though it has no exact replacement).  Replaced by
  3866.    {BLT} or simple English `copy'.
  3867.  
  3868. DDT: /D-D-T/ n. 1. Generic term for a program that assists in
  3869.    debugging other programs by showing individual machine instructions
  3870.    in a readable symbolic form and letting the user change them.  In
  3871.    this sense the term DDT is now archaic, having been widely
  3872.    displaced by `debugger' or names of individual programs like
  3873.    `dbx', `adb', `gdb', or `sdb'.  2. [ITS] Under
  3874.    MIT's fabled {{ITS}} operating system, DDT (running under the alias
  3875.    HACTRN) was also used as the {shell} or top level command
  3876.    language used to execute other programs.  3. Any one of several
  3877.    specific DDTs (sense 1) supported on early DEC hardware.  The DEC
  3878.    PDP-10 Reference Handbook (1969) contained a footnote on the first
  3879.    page of the documentation for DDT which illuminates the origin of
  3880.    the term:
  3881.  
  3882.      Historical footnote: DDT was developed at MIT for the PDP-1
  3883.      computer in 1961.  At that time DDT stood for "DEC Debugging Tape".
  3884.      Since then, the idea of an on-line debugging program has propagated
  3885.      throughout the computer industry.  DDT programs are now available
  3886.      for all DEC computers.  Since media other than tape are now
  3887.      frequently used, the more descriptive name "Dynamic Debugging
  3888.      Technique" has been adopted, retaining the DDT acronym.  Confusion
  3889.      between DDT-10 and another well known pesticide,
  3890.      dichloro-diphenyl-trichloroethane (C14-H9-Cl5) should be minimal
  3891.      since each attacks a different, and apparently mutually exclusive,
  3892.      class of bugs.
  3893.  
  3894.    Sadly, this quotation was removed from later editions of the
  3895.    handbook after the {suit}s took over and DEC became much more
  3896.    `businesslike'.
  3897.  
  3898. de-rezz: /dee-rez'/ [from `de-resolve' via the movie "Tron"]
  3899.    (also `derez') 1. vi. To disappear or dissolve; the image that goes
  3900.    with it is of an object breaking up into raster lines and static
  3901.    and then dissolving.  Occasionally used of a person who seems to
  3902.    have suddenly `fuzzed out' mentally rather than physically.
  3903.    Usage: extremely silly, also rare.  This verb was actually invented
  3904.    as *fictional* hacker jargon, and adopted in a spirit of irony
  3905.    by real hackers years after the fact.  2. vt. On a Macintosh, many
  3906.    program structures (including the code itself) are managed in small
  3907.    segments of the program file known as `resources'. The standard
  3908.    resource compiler is Rez.  The standard resource decompiler is
  3909.    DeRez.  Thus, decompiling a resource is `derezzing'.  Usage: very
  3910.    common.
  3911.  
  3912. dead code: n. Routines that can never be accessed because all calls
  3913.    to them have been removed, or code that cannot be reached because
  3914.    it is guarded by a control structure that provably must always
  3915.    transfer control somewhere else.  The presence of dead code may
  3916.    reveal either logical errors due to alterations in the program or
  3917.    significant changes in the assumptions and environment of the
  3918.    program (see also {software rot}); a good compiler should report
  3919.    dead code so a maintainer can think about what it means.  Syn.
  3920.    {grunge}.
  3921.  
  3922. DEADBEEF: /ded-beef/ n. The hexadecimal word-fill pattern for
  3923.    freshly allocated memory (decimal -21524111) under a number of
  3924.    IBM environments, including the RS/6000.  As in "Your program is
  3925.    DEADBEEF" (meaning gone, aborted, flushed from memory); if you
  3926.    start from an odd half-word boundary, of course, you have
  3927.    BEEFDEAD.
  3928.  
  3929. deadlock: n. 1. [techspeak] A situation wherein two or more
  3930.    processes are unable to proceed because each is waiting for one of
  3931.    the others to do something.  A common example is a program
  3932.    communicating to a server, which may find itself waiting for output
  3933.    from the server before sending anything more to it, while the
  3934.    server is similarly waiting for more input from the controlling
  3935.    program before outputting anything.  (It is reported that this
  3936.    particular flavor of deadlock is sometimes called a `starvation
  3937.    deadlock', though the term `starvation' is more properly used for
  3938.    situations where a program can never run simply because it never
  3939.    gets high enough priority.  Another common flavor is
  3940.    `constipation', where each process is trying to send stuff to
  3941.    the other but all buffers are full because nobody is reading
  3942.    anything.)  See {deadly embrace}.  2. Also used of
  3943.    deadlock-like interactions between humans, as when two people meet
  3944.    in a narrow corridor, and each tries to be polite by moving aside
  3945.    to let the other pass, but they end up swaying from side to side
  3946.    without making any progress because they always both move the same
  3947.    way at the same time.
  3948.  
  3949. deadly embrace: n. Same as {deadlock}, though usually used only when
  3950.    exactly 2 processes are involved.  This is the more popular term in
  3951.    Europe, while {deadlock} predominates in the United States.
  3952.  
  3953. Death Star: [from the movie "Star Wars"] 1. The AT&T corporate
  3954.    logo, which appears on computers sold by AT&T and bears an uncanny
  3955.    resemblance to the `Death Star' in the movie.  This usage is
  3956.    particularly common among partisans of {BSD} UNIX, who tend to
  3957.    regard the AT&T versions as inferior and AT&T as a bad guy.  Copies
  3958.    still circulate of a poster printed by Mt. Xinu showing a starscape
  3959.    with a space fighter labeled 4.2 BSD streaking away from a broken
  3960.    AT&T logo wreathed in flames.  2. AT&T's internal magazine,
  3961.    `Focus', uses `death star' for an incorrectly done AT&T logo
  3962.    in which the inner circle in the top left is dark instead of light
  3963.    --- a frequent result of dark-on-light logo images.
  3964.  
  3965. DEC Wars: n. A 1983 {USENET} posting by Alan Hastings and Steve Tarr
  3966.    spoofing the "Star Wars" movies in hackish terms.  Some years
  3967.    later, ESR (disappointed by Hastings and Tarr's failure to exploit a
  3968.    great premise more thoroughly) posted a 3-times-longer complete
  3969.    rewrite called "UNIX WARS"; the two are often confused.
  3970.  
  3971. DEChead: /dek'hed/ n. 1. A DEC {field servoid}.  Not flattering.
  3972.    2. [from `deadhead'] A Grateful Dead fan working at DEC.
  3973.  
  3974. deckle: /dek'l/ [from dec- and {nickle}] n. Two {nickle}s;
  3975.    10 bits.  Reported among developers for Mattel's GI 1600 (the
  3976.    Intellivision games processor), a chip with 16-bit-wide RAM but
  3977.    10-bit-wide ROM.
  3978.  
  3979. deep hack mode: n. See {hack mode}.
  3980.  
  3981. deep magic: [poss. from C. S. Lewis's "Narnia" books] n. An
  3982.    awesomely arcane technique central to a program or system, esp. one
  3983.    not generally published and available to hackers at large (compare
  3984.    {black art}); one that could only have been composed by a true
  3985.    {wizard}.  Compiler optimization techniques and many aspects of
  3986.    {OS} design used to be {deep magic}; many techniques in
  3987.    cryptography, signal processing, graphics, and AI still are.
  3988.    Compare {heavy wizardry}.  Esp. found in comments of the form
  3989.    "Deep magic begins here...".  Compare {voodoo programming}.
  3990.  
  3991. deep space: n. 1. Describes the notional location of any program
  3992.    that has gone {off the trolley}.  Esp. used of programs that
  3993.    just sit there silently grinding long after either failure or some
  3994.    output is expected.  "Uh oh.  I should have gotten a prompt ten
  3995.    seconds ago.  The program's in deep space somewhere." Compare
  3996.    {buzz}, {catatonic}, {hyperspace}.  2. The metaphorical
  3997.    location of a human so dazed and/or confused or caught up in some
  3998.    esoteric form of {bogosity} that he or she no longer responds
  3999.    coherently to normal communication.  Compare {page out}.
  4000.  
  4001. defenestration: [from the traditional Czechoslovak method of
  4002.    assassinating prime ministers, via SF fandom] n. 1. Proper karmic
  4003.    retribution for an incorrigible punster.  "Oh, ghod, that was
  4004.    *awful*!"  "Quick! Defenestrate him!"  2. The act of
  4005.    exiting a window system in order to get better response time from a
  4006.    full-screen program.  This comes from the dictionary meaning of
  4007.    `defenestrate', which is to throw something out a window.  3. The
  4008.    act of discarding something under the assumption that it will
  4009.    improve matters.  "I don't have any disk space left."  "Well,
  4010.    why don't you defenestrate that 100 megs worth of old core dumps?"
  4011.    4. [proposed] The requirement to support a command-line interface.
  4012.    "It has to run on a VT100."  "Curses!  I've been
  4013.    defenestrated!"
  4014.  
  4015. defined as: adj. In the role of, usually in an organization-chart
  4016.    sense.  "Pete is currently defined as bug prioritizer."  Compare
  4017.    {logical}.
  4018.  
  4019. dehose: /dee-hohz/ vt. To clear a {hosed} condition.
  4020.  
  4021. delint: /dee-lint/ v. To modify code to remove problems detected
  4022.    when {lint}ing.
  4023.  
  4024. delta: n. 1. [techspeak] A quantitative change, especially a small
  4025.    or incremental one (this use is general in physics and
  4026.    engineering).  "I just doubled the speed of my program!"  "What
  4027.    was the delta on program size?"  "About 30 percent."  (He
  4028.    doubled the speed of his program, but increased its size by only 30
  4029.    percent.)  2. [UNIX] A {diff}, especially a {diff} stored
  4030.    under the set of version-control tools called SCCS (Source Code
  4031.    Control System) or RCS (Revision Control System).  3. n. A small
  4032.    quantity, but not as small as {epsilon}.  The jargon usage of
  4033.    {delta} and {epsilon} stems from the traditional use of these
  4034.    letters in mathematics for very small numerical quantities,
  4035.    particularly in `epsilon-delta' proofs in limit theory (as in the
  4036.    differential calculus).  The term {delta} is often used, once
  4037.    {epsilon} has been mentioned, to mean a quantity that is
  4038.    slightly bigger than {epsilon} but still very small.  "The cost
  4039.    isn't epsilon, but it's delta" means that the cost isn't totally
  4040.    negligible, but it is nevertheless very small.  Common
  4041.    constructions include `within delta of ---', `within epsilon of
  4042.    ---': that is, close to and even closer to.
  4043.  
  4044. demented: adj. Yet another term of disgust used to describe a
  4045.    program.  The connotation in this case is that the program works as
  4046.    designed, but the design is bad.  Said, for example, of a program
  4047.    that generates large numbers of meaningless error messages,
  4048.    implying that it is on the brink of imminent collapse.  Compare
  4049.    {wonky}, {bozotic}.
  4050.  
  4051. demigod: n. A hacker with years of experience, a national reputation,
  4052.    and a major role in the development of at least one design, tool,
  4053.    or game used by or known to more than half of the hacker community.
  4054.    To qualify as a genuine demigod, the person must recognizably
  4055.    identify with the hacker community and have helped shape it.  Major
  4056.    demigods include Ken Thompson and Dennis Ritchie (co-inventors of
  4057.    {{UNIX}} and {C}) and Richard M. Stallman (inventor of
  4058.    {EMACS}).  In their hearts of hearts, most hackers dream of
  4059.    someday becoming demigods themselves, and more than one major
  4060.    software project has been driven to completion by the author's
  4061.    veiled hopes of apotheosis.  See also {net.god}, {true-hacker}.
  4062.  
  4063. demo: /de'moh/ [short for `demonstration'] 1. v. To demonstrate a
  4064.    product or prototype.  A far more effective way of inducing bugs to
  4065.    manifest than any number of {test} runs, especially when
  4066.    important people are watching.  2. n. The act of demoing.
  4067.  
  4068. demo mode: [Sun] n. 1. The state of being {heads down} in order
  4069.    to finish code in time for a {demo}, usually due yesterday.
  4070.    2. A mode in which video games sit there by themselves running
  4071.    through a portion of the game, also known as `attract mode'.
  4072.    Some serious {app}s have a demo mode they use as a screen saver,
  4073.    or may go through a demo mode on startup (for example, the
  4074.    Microsoft Windows opening screen --- which lets you impress your
  4075.    neighbors without actually having to put up with {Microsloth
  4076.    Windows}).
  4077.  
  4078. demon: n. 1. [MIT] A portion of a program that is not invoked
  4079.    explicitly, but that lies dormant waiting for some condition(s) to
  4080.    occur.  See {daemon}.  The distinction is that demons are
  4081.    usually processes within a program, while daemons are usually
  4082.    programs running on an operating system.  Demons are particularly
  4083.    common in AI programs.  For example, a knowledge-manipulation
  4084.    program might implement inference rules as demons.  Whenever a new
  4085.    piece of knowledge was added, various demons would activate (which
  4086.    demons depends on the particular piece of data) and would create
  4087.    additional pieces of knowledge by applying their respective
  4088.    inference rules to the original piece.  These new pieces could in
  4089.    turn activate more demons as the inferences filtered down through
  4090.    chains of logic.  Meanwhile, the main program could continue with
  4091.    whatever its primary task was.  2. [outside MIT] Often used
  4092.    equivalently to {daemon} --- especially in the {{UNIX}} world,
  4093.    where the latter spelling and pronunciation is considered mildly
  4094.    archaic.
  4095.  
  4096. depeditate: /dee-ped'*-tayt/ [by (faulty) analogy with
  4097.    `decapitate'] vt.  Humorously, to cut off the feet of.  When one is
  4098.    using some computer-aided typesetting tools, careless placement of
  4099.    text blocks within a page or above a rule can result in chopped-off
  4100.    letter descenders.  Such letters are said to have been depeditated.
  4101.  
  4102. deprecated: adj. Said of a program or feature that is considered
  4103.    obsolescent and in the process of being phased out, usually in
  4104.    favor of a specified replacement.  Deprecated features can,
  4105.    unfortunately, linger on for many years.
  4106.  
  4107. deserves to lose: adj. Said of someone who willfully does the
  4108.    {Wrong Thing}; humorously, if one uses a feature known to be
  4109.    {marginal}.  What is meant is that one deserves the consequences
  4110.    of one's {losing} actions.  "Boy, anyone who tries to use
  4111.    {mess-dos} deserves to {lose}!" ({{ITS}} fans used to say this
  4112.    of {{UNIX}}; many still do.)  See also {screw}, {chomp},
  4113.    {bagbiter}.
  4114.  
  4115. desk check: n.,v. To {grovel} over hardcopy of source code,
  4116.    mentally simulating the control flow; a method of catching bugs.
  4117.    No longer common practice in this age of on-screen editing, fast
  4118.    compiles, and sophisticated debuggers --- though some maintain
  4119.    stoutly that it ought to be.  Compare {eyeball search},
  4120.    {vdiff}, {vgrep}.
  4121.  
  4122. Devil Book: n. `The Design and Implementation of the 4.3BSD
  4123.    UNIX Operating System', by Samuel J. Leffler, Marshall Kirk
  4124.    McKusick, Michael J. Karels, and John S. Quarterman (Addison-Wesley
  4125.    Publishers, 1989) --- the standard reference book on the internals
  4126.    of {BSD} UNIX.  So called because the cover has a picture
  4127.    depicting a little devil (a visual play on {daemon}) in
  4128.    sneakers, holding a pitchfork (referring to one of the
  4129.    characteristic features of UNIX, the {fork(2)} system call).
  4130.  
  4131. devo: /dee'voh/ [orig. in-house jargon at Symbolics] n. A person in a
  4132.    development group.  See also {doco} and {mango}.
  4133.  
  4134. dickless workstation: n. Extremely pejorative hackerism for
  4135.    `diskless workstation', a class of botches including the Sun 3/50
  4136.    and other machines designed exclusively to network with an
  4137.    expensive central disk server.  These combine all the disadvantages
  4138.    of time-sharing with all the disadvantages of distributed personal
  4139.    computers.
  4140.  
  4141. dictionary flame: [USENET] n. An attempt to sidetrack a debate
  4142.    away from issues by insisting on meanings for key terms that
  4143.    presuppose a desired conclusion or smuggle in an implicit premise.
  4144.    A common tactic of people who prefer argument over definitions to
  4145.    disputes about reality.
  4146.  
  4147. diddle: 1. vt. To work with or modify in a not particularly
  4148.    serious manner.  "I diddled a copy of {ADVENT} so it didn't
  4149.    double-space all the time."  "Let's diddle this piece of code and
  4150.    see if the problem goes away."  See {tweak} and {twiddle}.
  4151.    2. n. The action or result of diddling.  See also {tweak},
  4152.    {twiddle}, {frob}.
  4153.  
  4154. diff: /dif/ n. 1. A change listing, especially giving differences
  4155.    between (and additions to) source code or documents (the term is
  4156.    often used in the plural `diffs').  "Send me your diffs for the
  4157.    Jargon File!"  Compare {vdiff}.  2. Specifically, such a listing
  4158.    produced by the `diff(1)' command, esp. when used as
  4159.    specification input to the `patch(1)' utility (which can
  4160.    actually perform the modifications; see {patch}).  This is a
  4161.    common method of distributing patches and source updates in the
  4162.    UNIX/C world.  See also {vdiff}, {mod}.
  4163.  
  4164. digit: n. An employee of Digital Equipment Corporation.  See also
  4165.    {VAX}, {VMS}, {PDP-10}, {{TOPS-10}}, {DEChead}, {double
  4166.    DECkers}, {field circus}.
  4167.  
  4168. dike: vt. To remove or disable a portion of something, as a wire
  4169.    from a computer or a subroutine from a program.  A standard slogan
  4170.    is "When in doubt, dike it out".  (The implication is that it is
  4171.    usually more effective to attack software problems by reducing
  4172.    complexity than by increasing it.)  The word `dikes' is widely
  4173.    used among mechanics and engineers to mean `diagonal cutters',
  4174.    esp.  a heavy-duty metal-cutting device, but may also refer to a
  4175.    kind of wire-cutters used by electronics techs.  To `dike
  4176.    something out' means to use such cutters to remove something.
  4177.    Indeed, the TMRC Dictionary defined dike as "to attack with
  4178.    dikes".  Among hackers this term has been metaphorically extended
  4179.    to informational objects such as sections of code.
  4180.  
  4181. ding: n.,vi. 1. Synonym for {feep}.  Usage: rare among hackers,
  4182.    but commoner in the {Real World}.  2. `dinged': What happens
  4183.    when someone in authority gives you a minor bitching about
  4184.    something, esp. something trivial.  "I was dinged for having a
  4185.    messy desk."
  4186.  
  4187. dink: /dink/ n. Said of a machine that has the {bitty box}
  4188.    nature; a machine too small to be worth bothering with --- sometimes
  4189.    the system you're currently forced to work on.  First heard from an
  4190.    MIT hacker (BADOB) working on a CP/M system with 64K, in reference
  4191.    to any 6502 system, then from fans of 32-bit architectures about
  4192.    16-bit machines.  "GNUMACS will never work on that dink machine."
  4193.    Probably derived from mainstream `dinky', which isn't sufficiently
  4194.    pejorative.
  4195.  
  4196. dinosaur: n. 1. Any hardware requiring raised flooring and special
  4197.    power.  Used especially of old minis and mainframes, in contrast
  4198.    with newer microprocessor-based machines.  In a famous quote from
  4199.    the 1988 UNIX EXPO, Bill Joy compared the mainframe in the massive
  4200.    IBM display with a grazing dinosaur "with a truck outside pumping
  4201.    its bodily fluids through it".  IBM was not amused.  Compare
  4202.    {big iron}; see also {mainframe}.  2. [IBM] A very conservative
  4203.    user; a {zipperhead}.
  4204.  
  4205. dinosaur pen: n. A traditional {mainframe} computer room complete with
  4206.    raised flooring, special power, its own ultra-heavy-duty air
  4207.    conditioning, and a side order of Halon fire extinguishers.  See
  4208.    {boa}.
  4209.  
  4210. dinosaurs mating: n. Said to occur when yet another {big iron}
  4211.    merger or buyout occurs; reflects a perception by hackers that
  4212.    these signal another stage in the long, slow dying of the
  4213.    {mainframe} industry.  In its glory days of the 1960s, it was
  4214.    `IBM and the Seven Dwarves': Burroughs, Control Data, General
  4215.    Electric, Honeywell, NCR, RCA, and Univac.  RCA and GE sold out
  4216.    early, and it was `IBM and the Bunch' (Burroughs, Univac, NCR,
  4217.    Control Data, and Honeywell) for a while.  Honeywell was bought out
  4218.    by Bull; Burroughs merged with Univac to form Unisys (in 1984 --- this
  4219.    was when the phrase `dinosaurs mating' was coined); and as this is
  4220.    written AT&T is attempting to recover from a disastrously bad first
  4221.    6 years in the hardware industry by absorbing NCR.  More such
  4222.    earth-shaking unions of doomed giants seem inevitable.
  4223.  
  4224. dirty power: n. Electrical mains voltage that is unfriendly to
  4225.    the delicate innards of computers.  Spikes, {drop-outs}, average
  4226.    voltage significantly higher or lower than nominal, or just plain
  4227.    noise can all cause problems of varying subtlety and severity.
  4228.  
  4229. Discordianism: /dis-kor'di-*n-ism/ n. The veneration of
  4230.    {Eris}, a.k.a. Discordia; widely popular among hackers.
  4231.    Discordianism was popularized by Robert Anton Wilson's
  4232.    `Illuminatus!' trilogy as a sort of self-subverting Dada-Zen
  4233.    for Westerners --- it should on no account be taken seriously but
  4234.    is far more serious than most jokes.  Consider, for example, the
  4235.    Fifth Commandment of the Pentabarf, from `Principia
  4236.    Discordia': "A Discordian is Prohibited of Believing What he
  4237.    Reads."  Discordianism is usually connected with an elaborate
  4238.    conspiracy theory/joke involving millennia-long warfare between the
  4239.    anarcho-surrealist partisans of Eris and a malevolent,
  4240.    authoritarian secret society called the Illuminati.  See
  4241.    appendix B, {Church of the SubGenius}, and {ha ha only
  4242.    serious}.
  4243.  
  4244. disk farm: n. (also {laundromat}) A large room or rooms filled
  4245.    with disk drives (esp. {washing machine}s).
  4246.  
  4247. display hack: n. A program with the same approximate purpose as a
  4248.    kaleidoscope: to make pretty pictures.  Famous display hacks
  4249.    include {munching squares}, {smoking clover}, the BSD UNIX
  4250.    `rain(6)' program, `worms(6)' on miscellaneous UNIXes,
  4251.    and the {X} `kaleid(1)' program.  Display hacks can also be
  4252.    implemented without programming by creating text files containing
  4253.    numerous escape sequences for interpretation by a video terminal;
  4254.    one notable example displayed, on any VT100, a Christmas tree with
  4255.    twinkling lights and a toy train circling its base.  The {hack
  4256.    value} of a display hack is proportional to the esthetic value of
  4257.    the images times the cleverness of the algorithm divided by the
  4258.    size of the code.  Syn. {psychedelicware}.
  4259.  
  4260. Dissociated Press: [play on `Associated Press'; perhaps inspired
  4261.    by a reference in the 1949 Bugs Bunny cartoon "What's Up,
  4262.    Doc?"] n.  An algorithm for transforming any text into potentially
  4263.    humorous garbage even more efficiently than by passing it through a
  4264.    {marketroid}.  You start by printing any N consecutive
  4265.    words (or letters) in the text.  Then at every step you search for
  4266.    any random occurrence in the original text of the last N
  4267.    words (or letters) already printed and then print the next word or
  4268.    letter.  {EMACS} has a handy command for this.  Here is a short
  4269.    example of word-based Dissociated Press applied to an earlier
  4270.    version of this Jargon File:
  4271.  
  4272.      wart: n. A small, crocky {feature} that sticks out of
  4273.      an array (C has no checks for this).  This is relatively
  4274.      benign and easy to spot if the phrase is bent so as to be
  4275.      not worth paying attention to the medium in question.
  4276.  
  4277.    Here is a short example of letter-based Dissociated Press applied
  4278.    to the same source:
  4279.  
  4280.      window sysIWYG: n. A bit was named aften /bee't*/ prefer
  4281.      to use the other guy's re, especially in every cast a
  4282.      chuckle on neithout getting into useful informash speech
  4283.      makes removing a featuring a move or usage actual
  4284.      abstractionsidered interj. Indeed spectace logic or problem!
  4285.  
  4286.    A hackish idle pastime is to apply letter-based Dissociated Press
  4287.    to a random body of text and {vgrep} the output in hopes of finding
  4288.    an interesting new word.  (In the preceding example, `window
  4289.    sysIWYG' and `informash' show some promise.)  Iterated applications
  4290.    of Dissociated Press usually yield better results.  Similar
  4291.    techniques called `travesty generators' have been employed with
  4292.    considerable satirical effect to the utterances of USENET flamers;
  4293.    see {pseudo}.
  4294.  
  4295. distribution: n. 1. A software source tree packaged for
  4296.    distribution; but see {kit}.  2. A vague term encompassing
  4297.    mailing lists and USENET newsgroups (but not {BBS} {fora}); any
  4298.    topic-oriented message channel with multiple recipients.  3. An
  4299.    information-space domain (usually loosely correlated with
  4300.    geography) to which propagation of a USENET message is restricted;
  4301.    a much-underutilized feature.
  4302.  
  4303. do protocol: [from network protocol programming] vi. To perform an
  4304.    interaction with somebody or something that follows a clearly
  4305.    defined procedure.  For example, "Let's do protocol with the
  4306.    check" at a restaurant means to ask for the check, calculate the
  4307.    tip and everybody's share, collect money from everybody, generate
  4308.    change as necessary, and pay the bill.  See {protocol}.
  4309.  
  4310. doc: /dok/ n. Common spoken and written shorthand for
  4311.    `documentation'.  Often used in the plural `docs' and in the
  4312.    construction `doc file' (documentation available on-line).
  4313.  
  4314. doco: /do'koh/ [orig. in-house jargon at Symbolics] n. A
  4315.    documentation writer.  See also {devo} and {mango}.
  4316.  
  4317. documentation:: n. The multiple kilograms of macerated, pounded,
  4318.    steamed, bleached, and pressed trees that accompany most modern
  4319.    software or hardware products (see also {tree-killer}).  Hackers
  4320.    seldom read paper documentation and (too) often resist writing it;
  4321.    they prefer theirs to be terse and on-line.  A common comment on
  4322.    this is "You can't {grep} dead trees".  See {drool-proof
  4323.    paper}, {verbiage}.
  4324.  
  4325. dodgy: adj. Syn. with {flaky}.  Preferred outside the U.S.
  4326.  
  4327. dogcow: /dog'kow/ n. See {Moof}.
  4328.  
  4329. dogwash: /dog'wosh/ [From a quip in the `urgency' field of a very
  4330.    optional software change request, ca. 1982.  It was something like
  4331.    "Urgency: Wash your dog first".] 1. n. A project of minimal
  4332.    priority, undertaken as an escape from more serious work.  2. v.
  4333.    To engage in such a project.  Many games and much {freeware} get
  4334.    written this way.
  4335.  
  4336. domainist: /doh-mayn'ist/ adj. 1. Said of an {{Internet
  4337.    address}} (as opposed to a {bang path}) because the part to the
  4338.    right of the `@' specifies a nested series of `domains';
  4339.    for example, eric@snark.thyrsus.com specifies the machine
  4340.    called snark in the subdomain called thyrsus within the
  4341.    top-level domain called com.  See also {big-endian}, sense 2.
  4342.    2. Said of a site, mailer, or routing program which knows how to
  4343.    handle domainist addresses.  3. Said of a person (esp. a site
  4344.    admin) who prefers domain addressing, supports a domainist mailer,
  4345.    or prosyletizes for domainist addressing and disdains {bang
  4346.    path}s.  This is now (1991) semi-obsolete, as most sites have
  4347.    converted.
  4348.  
  4349. Don't do that, then!: [from an old doctor's office joke about a
  4350.    patient with a trivial complaint] Stock response to a user
  4351.    complaint.  "When I type control-S, the whole system comes to a
  4352.    halt for thirty seconds."  "Don't do that, then!" (or "So don't
  4353.    do that!").  Compare {RTFM}.
  4354.  
  4355. dongle: /dong'gl/ n. 1. A security or {copy-protection} device
  4356.    for commercial microcomputer programs consisting of a serialized
  4357.    EPROM and some drivers in a D-25 connector shell, which must be
  4358.    connected to an I/O port of the computer while the program is run.
  4359.    Programs that use a dongle query the port at startup and at
  4360.    programmed intervals thereafter, and terminate if it does not
  4361.    respond with the dongle's programmed validation code.  Thus, users
  4362.    can make as many copies of the program as they want but must pay
  4363.    for each dongle.  The idea was clever, but it was initially a failure, as
  4364.    users disliked tying up a serial port this way.  Most dongles on
  4365.    the market today (1991) will pass data through the port and monitor
  4366.    for {magic} codes (and combinations of status lines) with minimal
  4367.    if any interference with devices further down the line --- this
  4368.    innovation was necessary to allow daisy-chained dongles for
  4369.    multiple pieces of software.  The devices are still not widely
  4370.    used, as the industry has moved away from copy-protection schemes
  4371.    in general.  2. By extension, any physical electronic key or
  4372.    transferrable ID required for a program to function.  See
  4373.    {dongle-disk}.
  4374.  
  4375. dongle-disk: /don'gl disk/ n. See {dongle}; a `dongle-disk'
  4376.    is a floppy disk with some coding that allows an application to
  4377.    identify it uniquely.  It can therefore be used as a {dongle}.
  4378.    Also called a `key disk'.
  4379.  
  4380. donuts: n.obs. A collective noun for any set of memory bits.  This is
  4381.    extremely archaic and may no longer be live jargon; it dates from the
  4382.    days of ferrite-{core} memories in which each bit was implemented by
  4383.    a doughnut-shaped magnetic flip-flop.
  4384.  
  4385. doorstop: n. Used to describe equipment that is non-functional and
  4386.    halfway expected to remain so, especially obsolete equipment kept
  4387.    around for political reasons or ostensibly as a backup.  "When we
  4388.    get another Wyse-50 in here, that ADM 3 will turn into a doorstop."
  4389.    Compare {boat anchor}.
  4390.  
  4391. dot file: [UNIX] n. A file which is not visible to normal
  4392.    directory-browsing tools (on UNIX, files named with a leading dot
  4393.    are, by convention, not normally presented in directory listings).
  4394.    Many programs define one or more dot files in which startup or
  4395.    configuration information may be optionally recorded; a user can
  4396.    customize the program's behavior by creating the appropriate file in
  4397.    the current or home directory.  See also {rc file}.
  4398.  
  4399. double bucky: adj. Using both the CTRL and META keys.  "The
  4400.    command to burn all LEDs is double bucky F."
  4401.  
  4402.    This term originated on the Stanford extended-ASCII keyboard, and
  4403.    was later taken up by users of the {space-cadet keyboard} at
  4404.    MIT.  A typical MIT comment was that the Stanford {bucky bits}
  4405.    (control and meta shifting keys) were nice, but there weren't
  4406.    enough of them; you could type only 512 different characters on a
  4407.    Stanford keyboard.  An obvious way to address this was simply to
  4408.    add more shifting keys, and this was eventually done; but a
  4409.    keyboard with that many shifting keys is hard on touch-typists, who
  4410.    don't like to move their hands away from the home position on the
  4411.    keyboard.  It was half-seriously suggested that the extra shifting
  4412.    keys be implemented as pedals; typing on such a keyboard would be
  4413.    very much like playing a full pipe organ.  This idea is mentioned
  4414.    in a parody of a very fine song by Jeffrey Moss called
  4415.    "Rubber Duckie", which was published in `The Sesame
  4416.    Street Songbook' (Simon and Schuster 1971, ISBN 671-21036-X).
  4417.    These lyrics were written on May 27, 1978, in celebration of the
  4418.    Stanford keyboard:
  4419.  
  4420.                  Double Bucky
  4421.  
  4422.          Double bucky, you're the one!
  4423.          You make my keyboard lots of fun.
  4424.              Double bucky, an additional bit or two:
  4425.          (Vo-vo-de-o!)
  4426.          Control and meta, side by side,
  4427.          Augmented ASCII, nine bits wide!
  4428.              Double bucky!  Half a thousand glyphs, plus a few!
  4429.              Oh,
  4430.              I sure wish that I
  4431.              Had a couple of
  4432.                  Bits more!
  4433.              Perhaps a
  4434.              Set of pedals to
  4435.              Make the number of
  4436.                  Bits four:
  4437.              Double double bucky!
  4438.          Double bucky, left and right
  4439.          OR'd together, outta sight!
  4440.              Double bucky, I'd like a whole word of
  4441.              Double bucky, I'm happy I heard of
  4442.              Double bucky, I'd like a whole word of you!
  4443.  
  4444.          --- The Great Quux (with apologies to Jeffrey Moss)
  4445.  
  4446.    [This, by the way, is an excellent example of computer {filk} --- ESR]
  4447.  
  4448.    See also {meta bit}, {cokebottle}, and {quadruple bucky}.
  4449.  
  4450. double DECkers: n. Used to describe married couples in which both
  4451.    partners work for Digital Equipment Corporation.
  4452.  
  4453. doubled sig: [USENET] n. A {sig block} that has been included
  4454.    twice in a {USENET} article or, less commonly, in an electronic
  4455.    mail message.  An article or message with a doubled sig can be
  4456.    caused by improperly configured software.  More often, however, it
  4457.    reveals the author's lack of experience in electronic
  4458.    communication.  See {BIFF}, {pseudo}.
  4459.  
  4460. down: 1. adj. Not operating.  "The up escalator is down" is
  4461.    considered a humorous thing to say, and "The elevator is down"
  4462.    always means "The elevator isn't working" and never refers to
  4463.    what floor the elevator is on.  With respect to computers, this
  4464.    usage has passed into the mainstream; the extension to other kinds
  4465.    of machine is still hackish.  2. `go down' vi. To stop
  4466.    functioning; usually said of the {system}.  The message from the
  4467.    {console} that every hacker hates to hear from the operator is
  4468.    "The system will go down in 5 minutes".  3. `take down',
  4469.    `bring down' vt. To deactivate purposely, usually for repair work
  4470.    or {PM}.  "I'm taking the system down to work on that bug in the
  4471.    tape drive."  Occasionally one hears the word `down' by itself
  4472.    used as a verb in this vt. sense.  See {crash}; oppose {up}.
  4473.  
  4474. download: vt. To transfer data or (esp.) code from a larger `host'
  4475.    system (esp. a {mainframe}) over a digital comm link to a smaller
  4476.    `client' system, esp. a microcomputer or specialized peripheral.
  4477.    Oppose {upload}.
  4478.  
  4479.    However, note that ground-to-space communications has its own usage
  4480.    rule for this term.  Space-to-earth transmission is always download
  4481.    and the reverse upload regardless of the relative size of the
  4482.    computers involved.  So far the in-space machines have invariably
  4483.    been smaller; thus the upload/download distinction has been
  4484.    reversed from its usual sense.
  4485.  
  4486. DP: /D-P/ n. 1. Data Processing.  Listed here because,
  4487.    according to hackers, use of the term marks one immediately as a
  4488.    {suit}.  See {DPer}.  2. Common abbrev for {Dissociated
  4489.    Press}.
  4490.  
  4491. DPB: /d*-pib'/ [from the PDP-10 instruction set] vt. To plop
  4492.    something down in the middle.  Usage: silly.  "DPB
  4493.    yourself into that couch there."  The connotation would be that
  4494.    the couch is full except for one slot just big enough for you to
  4495.    sit in.  DPB means `DePosit Byte', and was the name of a PDP-10
  4496.    instruction that inserts some bits into the middle of some other
  4497.    bits.  This usage has been kept alive by the Common LISP function
  4498.    of the same name.
  4499.  
  4500. DPer: /dee-pee-er/ n. Data Processor.  Hackers are absolutely
  4501.    amazed that {suit}s use this term self-referentially.
  4502.    "*Computers* process data, not people!"  See {DP}.
  4503.  
  4504. dragon: n. [MIT] A program similar to a {daemon}, except that it
  4505.    is not invoked at all, but is instead used by the system to perform
  4506.    various secondary tasks.  A typical example would be an accounting
  4507.    program, which keeps track of who is logged in, accumulates
  4508.    load-average statistics, etc.  Under ITS, many terminals displayed
  4509.    a list of people logged in, where they were, what they were
  4510.    running, etc., along with some random picture (such as a unicorn,
  4511.    Snoopy, or the Enterprise), which was generated by the `name
  4512.    dragon'.  Usage: rare outside MIT --- under UNIX and most other OSes
  4513.    this would be called a `background demon' or {daemon}.  The
  4514.    best-known UNIX example of a dragon is `cron(1)'.  At SAIL,
  4515.    they called this sort of thing a `phantom'.
  4516.  
  4517. Dragon Book: n. The classic text `Compilers: Principles,
  4518.    Techniques and Tools', by Alfred V. Aho, Ravi Sethi, and Jeffrey D.
  4519.    Ullman (Addison-Wesley 1986; ISBN 0-201-10088-6), so called because
  4520.    of the cover design featuring a dragon labeled `complexity of
  4521.    compiler design' and a knight bearing the lance `LALR parser
  4522.    generator' among his other trappings.  This one is more
  4523.    specifically known as the `Red Dragon Book' (1986); an earlier
  4524.    edition, sans Sethi and titled `Principles Of Compiler Design'
  4525.    (Alfred V. Aho and Jeffrey D. Ullman; Addison-Wesley, 1977; ISBN
  4526.    0-201-00022-9), was the `Green Dragon Book' (1977).  (Also `New
  4527.    Dragon Book', `Old Dragon Book'.)  The horsed knight and the
  4528.    Green Dragon were warily eying each other at a distance; now the
  4529.    knight is typing (wearing gauntlets!) at a terminal showing a
  4530.    video-game representation of the Red Dragon's head while the rest
  4531.    of the beast extends back in normal space.  See also {{book
  4532.    titles}}.
  4533.  
  4534. drain: [IBM] v. Syn. for {flush} (sense 2).  Has a connotation
  4535.    of finality about it; one speaks of draining a device before taking
  4536.    it offline.
  4537.  
  4538. dread high-bit disease: n. A condition endemic to PRIME (a.k.a.
  4539.    PR1ME) minicomputers that results in all the characters having
  4540.    their high (0x80) bit ON rather than OFF.  This of course makes
  4541.    transporting files to other systems much more difficult, not to
  4542.    mention talking to true 8-bit devices.  It is reported that
  4543.    PRIME adopted the reversed-8-bit convention in order to save
  4544.    25 cents per serial line per machine.  This probably qualifies as one
  4545.    of the most {cretinous} design tradeoffs ever made.  See {meta
  4546.    bit}.   A few other machines (including the Atari 800) have exhibited
  4547.    similar brain damage.
  4548.  
  4549. DRECNET: /drek'net/ [from Yiddish/German `dreck', meaning
  4550.    dirt] n. Deliberate distortion of DECNET, a networking protocol
  4551.    used in the {VMS} community.  So called because DEC helped write
  4552.    the Ethernet specification and then (either stupidly or as a
  4553.    malignant customer-control tactic) violated that spec in the design
  4554.    of DRECNET in a way that made it incompatible.  See also
  4555.    {connector conspiracy}.
  4556.  
  4557. driver: n. 1. The {main loop} of an event-processing program;
  4558.    the code that gets commands and dispatches them for execution.
  4559.    2. [techspeak] In `device driver', code designed to handle a
  4560.    particular peripheral device such as a magnetic disk or tape unit.
  4561.    3. In the TeX   general, `driver' also means a program that translates some
  4562.    device-independent or other common format to something a real
  4563.    device can actually understand.
  4564.  
  4565. droid: n. A person (esp. a low-level bureaucrat or
  4566.    service-business employee) exhibiting most of the following
  4567.    characteristics: (a) na"ive trust in the wisdom of the parent
  4568.    organization or `the system'; (b) a propensity to believe
  4569.    obvious nonsense emitted by authority figures (or computers!);
  4570.    blind faith; (c) a rule-governed mentality, one unwilling or unable
  4571.    to look beyond the `letter of the law' in exceptional
  4572.    situations; and (d) no interest in fixing that which is broken; an
  4573.    "It's not my job, man" attitude.
  4574.  
  4575.    Typical droid positions include supermarket checkout assistant and
  4576.    bank clerk; the syndrome is also endemic in low-level government
  4577.    employees.  The implication is that the rules and official
  4578.    procedures constitute software that the droid is executing.  This
  4579.    becomes a problem when the software has not been properly debugged.
  4580.    The term `droid mentality' is also used to describe the mindset
  4581.    behind this behavior. Compare {suit}, {marketroid}; see
  4582.    {-oid}.
  4583.  
  4584. drool-proof paper: n. Documentation that has been obsessively {dumbed
  4585.    down}, to the point where only a {cretin} could bear to read it, is
  4586.    said to have succumbed to the `drool-proof paper syndrome' or to
  4587.    have been `written on drool-proof paper'.  For example, this is
  4588.    an actual quote from Apple's LaserWriter manual: "Do not expose
  4589.    your LaserWriter to open fire or flame."
  4590.  
  4591. drop on the floor: vt. To react to an error condition by silently
  4592.    discarding messages or other valuable data.  "The gateway
  4593.    ran out of memory, so it just started dropping packets on the
  4594.    floor."  Also frequently used of faulty mail and netnews relay
  4595.    sites that lose messages.  See also {black hole}, {bit bucket}.
  4596.  
  4597. drop-ins: [prob. by analogy with {drop-outs}] n. Spurious
  4598.    characters appearing on a terminal or console as a result of line noise or
  4599.    a system malfunction of some sort.  Esp. used when these are
  4600.    interspersed with one's own typed input.  Compare {drop-outs}.
  4601.  
  4602. drop-outs: n. 1. A variety of `power glitch' (see {glitch});
  4603.    momentary 0 voltage on the electrical mains.  2. Missing characters
  4604.    in typed input due to software malfunction or system saturation
  4605.    (this can happen under UNIX when a bad connection to a modem swamps
  4606.    the processor with spurious character interrupts).  3. Mental
  4607.    glitches; used as a way of describing those occasions when the mind
  4608.    just seems to shut down for a couple of beats.  See {glitch},
  4609.    {fried}.
  4610.  
  4611. drugged: adj. (also `on drugs') 1. Conspicuously stupid,
  4612.    heading toward {brain-damaged}.  Often accompanied by a
  4613.    pantomime of toking a joint (but see appendix B).  2. Of hardware,
  4614.    very slow relative to normal performance.
  4615.  
  4616. drunk mouse syndrome: n. A malady exhibited by the mouse pointing
  4617.    device of some computers.  The typical symptom is for the mouse
  4618.    cursor on the screen to move in random directions and not in sync
  4619.    with the motion of the actual mouse.  Can usually be corrected by
  4620.    unplugging the mouse and plugging it back again.  Another
  4621.    recommended fix for optical mice is to rotate your mouse pad
  4622.    90 degrees.
  4623.  
  4624.    At Xerox PARC in the 1970s, most people kept a can of copier
  4625.    cleaner (isopropyl alcohol) at their desks.  When the steel ball on
  4626.    the mouse had picked up enough {cruft} to be unreliable, the mouse
  4627.    was doused in cleaner, which restored it for a while.  However,
  4628.    this operation left a fine residue that accelerated the accumulation
  4629.    of cruft, so the dousings became more and more frequent.  Finally,
  4630.    the mouse was declared `alcoholic' and sent to the clinic to be
  4631.    dried out in a CFC ultrasonic bath.
  4632.  
  4633. dumbass attack: /duhm'as *-tak'/ [Purdue] n. Notional cause of a
  4634.    novice's mistake made by the experienced, especially one made while
  4635.    running as root under UNIX, e.g., typing `rm -r *' or
  4636.    `mkfs' on a mounted file system.  Compare {adger}.
  4637.  
  4638. dumbed down: adj. Simplified, with a strong connotation of
  4639.    *over*simplified.  Often, a {marketroid} will insist that the
  4640.    interfaces and documentation of software be dumbed down after the
  4641.    designer has burned untold gallons of midnight oil making it
  4642.    smart.  This creates friction.  See {user-friendly}.
  4643.  
  4644. dump: n. 1. An undigested and voluminous mass of information about a
  4645.    problem or the state of a system, especially one routed to the
  4646.    slowest available output device (compare {core dump}), and most
  4647.    especially one consisting of hex or octal {runes} describing the
  4648.    byte-by-byte state of memory, mass storage, or some file.  In {elder
  4649.    days}, debugging was generally done by `groveling over' a dump
  4650.    (see {grovel}); increasing use of high-level languages and
  4651.    interactive debuggers has made this uncommon, and the term `dump'
  4652.    now has a faintly archaic flavor.  2. A backup.  This usage is
  4653.    typical only at large timesharing installations.
  4654.  
  4655. dup killer: /d[y]oop kill'r/ [FidoNet] n. Software that is
  4656.    supposed to detect and delete duplicates of a message that may
  4657.    have reached the FidoNet system via different routes.
  4658.  
  4659. dup loop: /d[y]oop loop/ (also `dupe loop') [FidoNet] n. An
  4660.    incorrectly configured system or network gateway may propagate
  4661.    duplicate messages on one or more {echo}es, with different
  4662.    identification information that renders {dup killer}s
  4663.    ineffective.  If such a duplicate message eventually reaches a
  4664.    system through which it has already passed (with the original
  4665.    identification information), all systems passed on the way back to
  4666.    that system are said to be involved in a {dup loop}.
  4667.  
  4668. dusty deck: n. Old software (especially applications) which one is
  4669.    obliged to remain compatible with (or to maintain).  The term
  4670.    implies that the software in question is a holdover from card-punch
  4671.    days.  Used esp. when referring to old scientific and
  4672.    {number-crunching} software, much of which was written in FORTRAN
  4673.    and very poorly documented but is believed to be too expensive to
  4674.    replace.  See {fossil}.
  4675.  
  4676. DWIM: /dwim/ [acronym, `Do What I Mean'] 1. adj. Able to guess, sometimes
  4677.    even correctly, the result intended when bogus input was provided.
  4678.    2. n.,obs. The BBNLISP/INTERLISP function that attempted to
  4679.    accomplish this feat by correcting many of the more common errors.
  4680.    See {hairy}.  3. Occasionally, an interjection hurled at a
  4681.    balky computer, esp. when one senses one might be tripping over
  4682.    legalisms (see {legalese}).
  4683.  
  4684.    Warren Teitelman originally wrote DWIM to fix his typos and
  4685.    spelling errors, so it was somewhat idiosyncratic to his style, and
  4686.    would often make hash of anyone else's typos if they were
  4687.    stylistically different.  This led a number of victims of DWIM to
  4688.    claim the acronym stood for `Damn Warren's Infernal Machine!'.
  4689.  
  4690.    In one notorious incident, Warren added a DWIM feature to the
  4691.    command interpreter used at Xerox PARC.  One day another hacker
  4692.    there typed `delete *$' to free up some disk space.  (The editor
  4693.    there named backup files by appending `$' to the original file
  4694.    name, so he was trying to delete any backup files left over from
  4695.    old editing sessions.)  It happened that there weren't any editor
  4696.    backup files, so DWIM helpfully reported `*$ not found, assuming
  4697.    you meant 'delete *'.'  It then started to delete all the files on
  4698.    the disk!  The hacker managed to stop it with a {Vulcan nerve
  4699.    pinch} after only a half dozen or so files were lost.
  4700.    
  4701.    The hacker later said he had been sorely tempted to go to Warren's
  4702.    office, tie Warren down in his chair in front of his workstation,
  4703.    and then type `delete *$' twice.
  4704.  
  4705.    DWIM is often suggested in jest as a desired feature for a complex
  4706.    program; it is also occasionally described as the single
  4707.    instruction the ideal computer would have.  Back when proofs of
  4708.    program correctness were in vogue, there were also jokes about
  4709.    `DWIMC' (Do What I Mean, Correctly).  A related term, more often
  4710.    seen as a verb, is DTRT (Do The Right Thing); see {Right Thing}.
  4711.  
  4712. dynner: /din'r/ 32 bits, by analogy with {nybble} and
  4713.    {{byte}}.  Usage: rare and extremely silly.  See also {playte},
  4714.    {tayste}, {crumb}.
  4715.  
  4716. = E =
  4717.  
  4718. earthquake: [IBM] n. The ultimate real-world shock test for
  4719.    computer hardware.  Hackish sources at IBM deny the rumor that the
  4720.    Bay Area quake of 1989 was initiated by the company to test
  4721.    quality-assurance procedures at its California plants.
  4722.  
  4723. Easter egg: n. 1. A message hidden in the object code of a program
  4724.    as a joke, intended to be found by persons disassembling or
  4725.    browsing the code.  2. A message, graphic, or sound effect emitted
  4726.    by a program (or, on a PC, the BIOS ROM) in response to some
  4727.    undocumented set of commands or keystrokes, intended as a joke or
  4728.    to display program credits.  One well-known early Easter egg found
  4729.    in a couple of OSes caused them to respond to the command
  4730.    `make love' with `not war?'.  Many personal computers
  4731.    have much more elaborate eggs hidden in ROM, including lists of the
  4732.    developers' names, political exhortations, snatches of music, and
  4733.    (in one case) graphics images of the entire development team.
  4734.  
  4735. Easter egging: [IBM] n. The act of replacing unrelated parts more or
  4736.    less at random in hopes that a malfunction will go away.  Hackers
  4737.    consider this the normal operating mode of {field circus} techs and
  4738.    do not love them for it.  Compare {shotgun debugging}.
  4739.  
  4740. eat flaming death: imp. A construction popularized among hackers by
  4741.    the infamous {CPU Wars} comic; supposed to derive from a famously
  4742.    turgid line in a WWII-era anti-Nazi propaganda comic that ran
  4743.    "Eat flaming death, non-Aryan mongrels!" or something of the sort
  4744.    (however, it is also reported that the Firesign Theater's
  4745.    1975 album "In The Next World, You're On Your Own" included the
  4746.    phrase "Eat flaming death, fascist media pigs"; this may have been
  4747.    an influence).  Used in humorously overblown expressions of
  4748.    hostility. "Eat flaming death, {{EBCDIC}} users!"
  4749.  
  4750. EBCDIC:: /eb's*-dik/, /eb'see`dik/, or /eb'k*-dik/ [acronym,
  4751.    Extended Binary Coded Decimal Interchange Code] n. An alleged
  4752.    character set used on IBM {dinosaur}s.  It exists in at least six
  4753.    mutually incompatible versions, all featuring such delights as
  4754.    non-contiguous letter sequences and the absence of several ASCII
  4755.    punctuation characters fairly important for modern computer
  4756.    languages (exactly which characters are absent varies according to
  4757.    which version of EBCDIC you're looking at).  IBM adapted EBCDIC
  4758.    from {{punched card}} code in the early 1960s and promulgated it
  4759.    as a customer-control tactic (see {connector conspiracy}),
  4760.    spurning the already established ASCII standard.  Today, IBM claims
  4761.    to be an open-systems company, but IBM's own description of the
  4762.    EBCDIC variants and how to convert between them is still internally
  4763.    classified top-secret, burn-before-reading.  Hackers blanch at the
  4764.    very *name* of EBCDIC and consider it a manifestation of
  4765.    purest {evil}.  See also {fear and loathing}.
  4766.  
  4767. echo: [FidoNet] n. A {topic group} on {FidoNet}'s echomail
  4768.    system.  Compare {newsgroup}.
  4769.  
  4770. eighty-column mind: [IBM] n. The sort said to be possessed by
  4771.    persons for whom the transition from {punched card} to tape was
  4772.    traumatic (nobody has dared tell them about disks yet).  It is said
  4773.    that these people, including (according to an old joke) the founder
  4774.    of IBM, will be buried `face down, 9-edge first' (the 9-edge being
  4775.    the bottom of the card).  This directive is inscribed on IBM's
  4776.    1422 and 1602 card readers and is referenced in a famous bit of
  4777.    doggerel called "The Last Bug", the climactic lines of which
  4778.    are as follows:
  4779.  
  4780.         He died at the console
  4781.         Of hunger and thirst.
  4782.         Next day he was buried,
  4783.         Face down, 9-edge first.
  4784.  
  4785.    The eighty-column mind is thought by most hackers to dominate IBM's
  4786.    customer base and its thinking.  See {IBM}, {fear and
  4787.    loathing}, {card walloper}.
  4788.  
  4789. El Camino Bignum: /el' k*-mee'noh big'nuhm/ n. The road
  4790.    mundanely called El Camino Real, a road through the San Francisco
  4791.    peninsula that originally extended all the way down to Mexico City
  4792.    and many portions of which are still intact.  Navigation on the San
  4793.    Francisco peninsula is usually done relative to El Camino Real,
  4794.    which defines {logical} north and south even though it isn't
  4795.    really north-south many places.  El Camino Real runs right past
  4796.    Stanford University and so is familiar to hackers.
  4797.  
  4798.    The Spanish word `real' (which has two syllables: /ray-ahl'/)
  4799.    means `royal'; El Camino Real is `the royal road'.  In the FORTRAN
  4800.    language, a `real' quantity is a number typically precise to 7
  4801.    significant digits, and a `double precision' quantity is a larger
  4802.    floating-point number, precise to perhaps fourteen significant
  4803.    digits (other languages have similar `real' types).
  4804.  
  4805.    When a hacker from MIT visited Stanford in 1976, he remarked what a
  4806.    long road El Camino Real was.  Making a pun on `real', he started
  4807.    calling it `El Camino Double Precision' --- but when the hacker
  4808.    was told that the road was hundreds of miles long, he renamed it
  4809.    `El Camino Bignum', and that name has stuck.  (See {bignum}.)
  4810.  
  4811. elder days: n. The heroic age of hackerdom (roughly, pre-1980); the
  4812.    era of the {PDP-10}, {TECO}, {{ITS}}, and the ARPANET.  This
  4813.    term has been rather consciously adopted from J. R. R. Tolkien's
  4814.    fantasy epic `The Lord of the Rings'.  Compare {Iron Age};
  4815.    see also {elvish}.
  4816.  
  4817. elegant: [from mathematical usage] adj. Combining simplicity, power,
  4818.    and a certain ineffable grace of design.  Higher praise than
  4819.    `clever', `winning', or even {cuspy}.
  4820.  
  4821. elephantine: adj. Used of programs or systems that are both
  4822.    conspicuous {hog}s (owing perhaps to poor design founded on
  4823.    {brute force and ignorance}) and exceedingly {hairy} in source
  4824.    form.  An elephantine program may be functional and even friendly,
  4825.    but (as in the old joke about being in bed with an elephant) it's
  4826.    tough to have around all the same (and, like a pachyderm, difficult
  4827.    to maintain).  In extreme cases, hackers have been known to make
  4828.    trumpeting sounds or perform expressive proboscatory mime at the
  4829.    mention of the offending program.  Usage: semi-humorous.  Compare
  4830.    `has the elephant nature' and the somewhat more pejorative
  4831.    {monstrosity}.  See also {second-system effect} and
  4832.    {baroque}.
  4833.  
  4834. elevator controller: n. Another archetypal dumb embedded-systems
  4835.    application, like {toaster} (which superseded it).  During one
  4836.    period (1983--84) in the deliberations of ANSI X3J11 (the
  4837.    C standardization committee) this was the canonical example of a
  4838.    really stupid, memory-limited computation environment.  "You can't
  4839.    require `printf(3)' to be part of the default runtime library
  4840.    --- what if you're targeting an elevator controller?"  Elevator
  4841.    controllers became important rhetorical weapons on both sides of
  4842.    several {holy wars}.
  4843.  
  4844. ELIZA effect: /*-li:'z* *-fekt'/ [AI community] n. The tendency of 
  4845.    humans to attach associations to terms from prior experience.
  4846.    For example, there is nothing magic about the symbol `+' that 
  4847.    makes it well-suited to indicate addition; it's just that people
  4848.    associate it with addition.  Using `+' or `plus' to mean addition
  4849.    in a computer language is taking advantage of the ELIZA effect.
  4850.  
  4851.    This term comes from the famous ELIZA program, which simulated a
  4852.    Rogerian psychoanalyst by rephrasing many of the patient's
  4853.    statements as questions and posing them to the patient.  It worked
  4854.    by simple pattern recognition and substitution of key words into
  4855.    canned phrases.  It was so convincing, however, that there are many
  4856.    anecdotes about people becoming very emotionally caught up in
  4857.    dealing with ELIZA.  All this was due to people's tendency to
  4858.    attach to words meanings which the computer never put there.  The
  4859.    ELIZA effect is a {Good Thing} when writing a programming
  4860.    language, but it can blind you to serious shortcomings when
  4861.    analyzing an Artificial Intelligence system.  Compare
  4862.    {ad-hockery}; see also {AI-complete}.
  4863.  
  4864. elvish: n. 1. The Tengwar of Feanor, a table of letterforms
  4865.    resembling the beautiful Celtic half-uncial hand of the `Book
  4866.    of Kells'.  Invented and described by J. R. R. Tolkien
  4867.    in `The Lord of The Rings' as an orthography for his fictional
  4868.    `elvish' languages, this system (which is both visually and
  4869.    phonetically elegant) has long fascinated hackers (who tend to be
  4870.    interested by artificial languages in general).  It is traditional
  4871.    for graphics printers, plotters, window systems, and the like to
  4872.    support a Feanorian typeface as one of their demo items.  See also
  4873.    {elder days}.  2. By extension, any odd or unreadable typeface
  4874.    produced by a graphics device.  3. The typeface mundanely called
  4875.    `B"ocklin', an art-decoish display font.
  4876.  
  4877. EMACS: /ee'maks/ [from Editing MACroS] n. The ne plus ultra of
  4878.    hacker editors, a program editor with an entire LISP system inside
  4879.    it.  It was originally written by Richard Stallman in {TECO}
  4880.    under {{ITS}} at the MIT AI lab, but the most widely used versions
  4881.    now run under UNIX.  It includes facilities to run compilation
  4882.    subprocesses and send and receive mail; many hackers spend up to
  4883.    80% of their {tube time} inside it.
  4884.  
  4885.    Some versions running under window managers iconify as an
  4886.    overflowing kitchen sink, perhaps to suggest the one feature the
  4887.    editor does not (yet) include.  Indeed, some hackers find EMACS too
  4888.    heavyweight and {baroque} for their taste, and expand the name as
  4889.    `Escape Meta Alt Control Shift' to spoof its heavy reliance on
  4890.    keystrokes decorated with {bucky bits}.  Other spoof expansions
  4891.    include `Eight Megabytes And Constantly Swapping', `Eventually
  4892.    `malloc()'s All Computer Storage', and `EMACS Makes A Computer
  4893.    Slow' (see {{recursive acronym}}).  See also {vi}.
  4894.  
  4895. email: /ee'mayl/ 1. n. Electronic mail automatically passed
  4896.    through computer networks and/or via modems over common-carrier
  4897.    lines.  Contrast {snail-mail}, {paper-net}, {voice-net}.  See
  4898.    {network address}.  2. vt. To send electronic mail.
  4899.  
  4900.    Oddly enough, the word `emailed' is actually listed in the OED; it
  4901.    means "embossed (with a raised pattern) or arranged in a net work".
  4902.    A use from 1480 is given. The word is derived from French
  4903.    `emmailleure', network.
  4904.  
  4905. emoticon: /ee-moh'ti-kon/ n. An ASCII glyph used to indicate an
  4906.    emotional state in email or news.  Hundreds have been proposed, but
  4907.    only a few are in common use.  These include:
  4908.  
  4909.      :-)
  4910.           `smiley face' (for humor, laughter, friendliness,
  4911.           occasionally sarcasm)
  4912.  
  4913.      :-(
  4914.           `frowney face' (for sadness, anger, or upset)
  4915.  
  4916.      ;-)
  4917.           `half-smiley' ({ha ha only serious});
  4918.           also known as `semi-smiley' or `winkey face'.
  4919.  
  4920.      :-/
  4921.           `wry face'
  4922.  
  4923.    (These may become more comprehensible if you tilt your head
  4924.    sideways, to the left.)
  4925.  
  4926.    The first 2 listed are by far the most frequently encountered.
  4927.    Hyphenless forms of them are common on CompuServe, GEnie, and BIX;
  4928.    see also {bixie}.  On {USENET}, `smiley' is often used as a
  4929.    generic term synonymous with {emoticon}, as well as specifically
  4930.    for the happy-face emoticon.
  4931.  
  4932.    It appears that the emoticon was invented by one Scott Fahlman on
  4933.    the CMU {bboard} systems around 1980.  He later wrote: "I wish I
  4934.    had saved the original post, or at least recorded the date for
  4935.    posterity, but I had no idea that I was starting something that
  4936.    would soon pollute all the world's communication channels."  [GLS
  4937.    confirms that he remembers this original posting].
  4938.  
  4939.    Note for the {newbie}: Overuse of the smiley is a mark of
  4940.    loserhood!  More than one per paragraph is a fairly sure sign that
  4941.    you've gone over the line.
  4942.  
  4943. empire: n. Any of a family of military simulations derived from a
  4944.    game written by Peter Langston many years ago.  There are five or six
  4945.    multi-player variants of varying degrees of sophistication, and one
  4946.    single-player version implemented for both UNIX and VMS; the latter is
  4947.    even available as MS-DOS freeware.  All are notoriously addictive.
  4948.  
  4949. engine: n. 1. A piece of hardware that encapsulates some function
  4950.    but can't be used without some kind of {front end}.  Today we
  4951.    have, especially, `print engine': the guts of a laser printer.
  4952.    2. An analogous piece of software; notionally, one that does a lot
  4953.    of noisy crunching, such as a `database engine'.
  4954.  
  4955.    The hackish senses of `engine' are actually close to its original,
  4956.    pre-Industrial-Revolution sense of a skill, clever device, or
  4957.    instrument (the word is cognate to `ingenuity').  This sense had
  4958.    not been completely eclipsed by the modern connotation of
  4959.    power-transducing machinery in Charles Babbage's time, which
  4960.    explains why he named the stored-program computer that
  4961.    he designed in 1844 the `Analytical Engine'.
  4962.  
  4963. English: 1. n.,obs. The source code for a program, which may be in
  4964.    any language, as opposed to the linkable or executable binary
  4965.    produced from it by a compiler.  The idea behind the term is that
  4966.    to a real hacker, a program written in his favorite programming
  4967.    language is at least as readable as English.  Usage: used mostly by
  4968.    old-time hackers, though recognizable in context.  2. The official
  4969.    name of the database language used by the Pick Operating System,
  4970.    actually a sort of crufty interpreted BASIC with delusions of
  4971.    grandeur.  The name permits {marketroid}s to say "Yes, and you
  4972.    can program our computers in English!" to ignorant {suit}s
  4973.    without quite running afoul of the truth-in-advertising laws.
  4974.  
  4975. enhancement: n. {Marketroid}-speak for a bug {fix}.  This abuse
  4976.    of language is a popular and time-tested way to turn incompetence
  4977.    into increased revenue.  A hacker being ironic would instead call
  4978.    the fix a {feature} --- or perhaps save some effort by declaring
  4979.    the bug itself to be a feature.
  4980.  
  4981. ENQ: /enkw/ or /enk/ [from the ASCII mnemonic ENQuire for
  4982.    0000101] An on-line convention for querying someone's availability.
  4983.    After opening a {talk mode} connection to someone apparently in
  4984.    heavy hack mode, one might type `SYN SYN ENQ?' (the SYNs
  4985.    representing notional synchronization bytes), and expect a return
  4986.    of {ACK} or {NAK} depending on whether or not the person felt
  4987.    interruptible.  Compare {ping}, {finger}, and the usage of
  4988.    `FOO?' listed under {talk mode}.
  4989.  
  4990. EOF: /E-O-F/ [acronym, `End Of File'] n. 1. [techspeak] Refers
  4991.    esp. to whatever {out-of-band} value is returned by
  4992.    C's sequential character-input functions (and their equivalents in
  4993.    other environments) when end of file has been reached.  This value
  4994.    is -1 under C libraries postdating V6 UNIX, but was
  4995.    originally 0.  2. Used by extension in non-computer contexts when a
  4996.    human is doing something that can be modeled as a sequential read
  4997.    and can't go further.  "Yeah, I looked for a list of 360 mnemonics
  4998.    to post as a joke, but I hit EOF pretty fast; all the library had
  4999.    was a {JCL} manual."  See also {EOL}.
  5000.  
  5001. EOL: /E-O-L/ [End Of Line] n. Syn. for {newline}, derived
  5002.    perhaps from the original CDC6600 Pascal.  Now rare, but widely
  5003.    recognized and occasionally used for brevity.  Used in the
  5004.    example entry under {BNF}.  See also {EOF}.
  5005.  
  5006. EOU: /E-O-U/ n. The mnemonic of a mythical ASCII control
  5007.    character (End Of User) that could make an ASR-33 Teletype explode
  5008.    on receipt.  This parodied the numerous obscure delimiter and
  5009.    control characters left in ASCII from the days when it was
  5010.    associated more with wire-service teletypes than computers (e.g.,
  5011.    FS, GS, RS, US, EM, SUB, ETX, and esp. EOT).  It is worth
  5012.    remembering that ASR-33s were big, noisy mechanical beasts with a
  5013.    lot of clattering parts; the notion that one might explode was
  5014.    nowhere near as ridiculous as it might seem to someone sitting in
  5015.    front of a {tube} or flatscreen today.
  5016.  
  5017. epoch: [UNIX: prob. from astronomical timekeeping] n. The time and
  5018.    date corresponding to 0 in an operating system's clock and
  5019.    timestamp values.  Under most UNIX versions the epoch is 00:00:00
  5020.    GMT, January 1, 1970.  System time is measured in seconds or
  5021.    {tick}s past the epoch.  Weird problems may ensue when the clock
  5022.    wraps around (see {wrap around}), which is not necessarily a
  5023.    rare event; on systems counting 10 ticks per second, a signed
  5024.    32-bit count of ticks is good only for 6.8 years.  The
  5025.    1-tick-per-second clock of UNIX is good only until January 18,
  5026.    2038, assuming word lengths don't increase by then.  See also
  5027.    {wall time}.
  5028.  
  5029. epsilon: [see {delta}] 1. n. A small quantity of anything.  "The
  5030.    cost is epsilon."  2. adj. Very small, negligible; less than
  5031.    {marginal}.  "We can get this feature for epsilon cost."
  5032.    3. `within epsilon of': close enough to be indistinguishable for
  5033.    all practical purposes.  This is even closer than being `within
  5034.    delta of'.  "That's not what I asked for, but it's within
  5035.    epsilon of what I wanted."  Alternatively, it may mean not close
  5036.    enough, but very little is required to get it there: "My program
  5037.    is within epsilon of working."
  5038.  
  5039. epsilon squared: n. A quantity even smaller than {epsilon}, as
  5040.    small in comparison to epsilon as epsilon is to something normal;
  5041.    completely negligible.  If you buy a supercomputer for a million
  5042.    dollars, the cost of the thousand-dollar terminal to go with it is
  5043.    {epsilon}, and the cost of the ten-dollar cable to connect them
  5044.    is epsilon squared.  Compare {lost in the underflow}, {lost
  5045.    in the noise}.
  5046.  
  5047. era, the: Syn. {epoch}.  Webster's Unabridged makes these words
  5048.    almost synonymous, but `era' usually connotes a span of time rather
  5049.    than a point in time.  The {epoch} usage is recommended.
  5050.  
  5051. Eric Conspiracy: n. A shadowy group of mustachioed hackers named
  5052.    Eric first pinpointed as a sinister conspiracy by an infamous
  5053.    talk.bizarre posting ca. 1986; this was doubtless influenced by the
  5054.    numerous `Eric' jokes in the Monty Python oeuvre.  There do indeed
  5055.    seem to be considerably more mustachioed Erics in hackerdom than
  5056.    the frequency of these three traits can account for unless they are
  5057.    correlated in some arcane way.  Well-known examples include Eric
  5058.    Allman (he of the `Allman style' described under {indent style})
  5059.    and Erik Fair (co-author of NNTP); your editor has heard from about
  5060.    fourteen others by email, and the organization line `Eric
  5061.    Conspiracy Secret Laboratories' now emanates regularly from more
  5062.    than one site.
  5063.  
  5064. Eris: /e'ris/ n. The Greek goddess of Chaos, Discord, Confusion,
  5065.    and Things You Know Not Of; her name was latinized to Discordia and
  5066.    she was worshiped by that name in Rome.  Not a very friendly deity
  5067.    in the Classical original, she was reinvented as a more benign
  5068.    personification of creative anarchy starting in 1959 by the
  5069.    adherents of {Discordianism} and has since been a semi-serious
  5070.    subject of veneration in several `fringe' cultures, including
  5071.    hackerdom.  See {Discordianism}, {Church of the SubGenius}.
  5072.  
  5073. erotics: /ee-ro'tiks/ n. [Helsinki University of Technology,
  5074.    Finland] n. English-language university slang for electronics.
  5075.    Often used by hackers in Helsinki, maybe because good electronics
  5076.    excites them and makes them warm.
  5077.  
  5078. essentials: n. Things necessary to maintain a productive and secure
  5079.    hacking environment.  "A jug of wine, a loaf of bread, a
  5080.    20-megahertz 80386 box with 8 meg of core and a 300-megabyte disk
  5081.    supporting full UNIX with source and X windows and EMACS and UUCP
  5082.    via a 'blazer to a friendly Internet site, and thou."
  5083.  
  5084. evil: adj. As used by hackers, implies that some system, program,
  5085.    person, or institution is sufficiently maldesigned as to be not
  5086.    worth the bother of dealing with.  Unlike the adjectives in the
  5087.    {cretinous}/{losing}/{brain-damaged} series, `evil' does not
  5088.    imply incompetence or bad design, but rather a set of goals or
  5089.    design criteria fatally incompatible with the speaker's.  This is
  5090.    more an esthetic and engineering judgment than a moral one in the
  5091.    mainstream sense.  "We thought about adding a {Blue Glue}
  5092.    interface but decided it was too evil to deal with."  "{TECO}
  5093.    is neat, but it can be pretty evil if you're prone to typos."
  5094.    Often pronounced with the first syllable lengthened, as /eeee'vil/.
  5095.  
  5096. exa-: /ek's*/ [SI] pref. See {{quantifiers}}.
  5097.  
  5098. examining the entrails: n. The process of {grovel}ling through a
  5099.    core dump or hex image in the attempt to discover the bug that
  5100.    brought a program or system down.  Compare {runes},
  5101.    {incantation}, {black art}, {desk check}.
  5102.  
  5103. EXCH: /eks'ch*/ or /eksch/ vt. To exchange two things, each for the
  5104.    other; to swap places.  If you point to two people sitting down and
  5105.    say "Exch!", you are asking them to trade places.  EXCH,
  5106.    meaning EXCHange, was originally the name of a PDP-10 instruction
  5107.    that exchanged the contents of a register and a memory location.
  5108.    Many newer hackers tend to be thinking instead of the PostScript
  5109.    exchange operator (which is usually written in lowercase).
  5110.  
  5111. excl: /eks'kl/ n. Abbreviation for `exclamation point'.  See
  5112.    {bang}, {shriek}, {{ASCII}}.
  5113.  
  5114. EXE: /eks'ee/ or /eek'see/ or /E-X-E/ n. An executable
  5115.    binary file.  Some operating systems (notably MS-DOS, VMS, and
  5116.    TWENEX) use the extension .EXE to mark such files.  This usage is
  5117.    also occasionally found among UNIX programmers even though UNIX
  5118.    executables don't have any required suffix.
  5119.  
  5120. exec: /eg-zek'/ vt.,n.  1. [UNIX: from `execute'] Synonym for
  5121.    {chain}, derives from the `exec(2)' call.  2. [from
  5122.    `executive'] obs. The command interpreter for an {OS} (see
  5123.    {shell}); term esp. used around mainframes, and prob. derived from
  5124.    UNIVAC's archaic EXEC 2 and EXEC 8 operating systems.  3. At IBM,
  5125.    the equivalent of a shell command file (among VM/CMS users).
  5126.  
  5127.    The mainstream `exec' as an abbreviation for (human) executive is
  5128.    *not* used.  To a hacker, an `exec' is a always a program,
  5129.    never a person.
  5130.  
  5131. exercise, left as an: [from technical books] Used to complete a
  5132.    proof when one doesn't mind a {handwave}, or to avoid one
  5133.    entirely.  The complete phrase is: "The proof (or the rest) is left as
  5134.    an exercise for the reader."  This comment *has* occasionally
  5135.    been attached to unsolved research problems by authors possessed of
  5136.    either an evil sense of humor or a vast faith in the capabilities
  5137.    of their audiences.
  5138.  
  5139. eyeball search: n. To look for something in a mass of code or data
  5140.    with one's own native optical sensors, as opposed to using some
  5141.    sort of pattern matching software like {grep} or any other
  5142.    automated search tool.  Also called a {vgrep}; compare
  5143.    {vdiff}, {desk check}.
  5144.  
  5145. = F =
  5146.  
  5147. fab: /fab/ [from `fabricate'] v. 1. To produce chips from a
  5148.    design that may have been created by someone at another company.
  5149.    Fabbing chips based on the designs of others is the activity of a
  5150.    {silicon foundry}.  To a hacker, `fab' is practically never short
  5151.    for `fabulous'.  2. `fab line': the production system
  5152.    (lithography, diffusion, etching, etc.) for chips at a chip
  5153.    manufacturer.  Different `fab lines' are run with different
  5154.    process parameters, die sizes, or technologies, or simply to
  5155.    provide more manufacturing volume.
  5156.  
  5157. face time: n. Time spent interacting with somebody face-to-face (as
  5158.    opposed to via electronic links).  "Oh, yeah, I spent some face
  5159.    time with him at the last Usenix."
  5160.  
  5161. factor: n. See {coefficient}.
  5162.  
  5163. fall over: [IBM] vi. Yet another synonym for {crash} or {lose}.
  5164.    `Fall over hard' equates to {crash and burn}.
  5165.  
  5166. fall through: v. (n. `fallthrough', var. `fall-through') 1. To
  5167.    exit a loop by exhaustion, i.e., by having fulfilled its exit
  5168.    condition rather than via a break or exception condition that exits
  5169.    from the middle of it.  This usage appears to be *really* old,
  5170.    dating from the 1940s and 1950s.  2. To fail a test that would have
  5171.    passed control to a subroutine or some other distant portion of code.
  5172.    3. In C, `fall-through' occurs when the flow of execution in a
  5173.    switch statement reaches a `case' label other than by jumping
  5174.    there from the switch header, passing a point where one would
  5175.    normally expect to find a `break'.  A trivial example:
  5176.  
  5177.      switch (color)
  5178.      {
  5179.      case GREEN:
  5180.         do_green();
  5181.         break;
  5182.      case PINK:
  5183.         do_pink();
  5184.         /* FALL THROUGH */
  5185.      case RED:
  5186.         do_red();
  5187.         break;
  5188.      default:
  5189.         do_blue();
  5190.         break;
  5191.      }
  5192.  
  5193.    The variant spelling `/* FALL THRU */' is also common.
  5194.  
  5195.    The effect of this code is to `do_green()' when color is
  5196.    `GREEN', `do_red()' when color is `RED',
  5197.    `do_blue()' on any other color other than `PINK', and
  5198.    (and this is the important part) `do_pink()' *and then*
  5199.    `do_red()' when color is `PINK'.  Fall-through is
  5200.    {considered harmful} by some, though there are contexts (such as
  5201.    the coding of state machines) in which it is natural; it is
  5202.    generally considered good practice to include a comment
  5203.    highlighting the fall-through where one would normally expect a
  5204.    break.
  5205.  
  5206. fandango on core: [UNIX/C hackers, from the Mexican dance] n.
  5207.    In C, a wild pointer that runs out of bounds, causing a {core
  5208.    dump}, or corrupts the `malloc(3)' {arena} in such a way as
  5209.    to cause mysterious failures later on, is sometimes said to have
  5210.    `done a fandango on core'.  On low-end personal machines without an
  5211.    MMU, this can corrupt the OS itself, causing massive lossage.
  5212.    Other frenetic dances such as the rhumba, cha-cha, or watusi, may
  5213.    be substituted.  See {aliasing bug}, {precedence lossage},
  5214.    {smash the stack}, {memory leak}, {overrun screw},
  5215.    {core}.
  5216.  
  5217. FAQ list: /F-A-Q list/ [USENET] n. A compendium of accumulated
  5218.    lore, posted periodically to high-volume newsgroups in an attempt
  5219.    to forestall Frequently Asked Questions.  This lexicon itself
  5220.    serves as a good example of a collection of one kind of lore,
  5221.    although it is far too big for a regular posting.  Examples: "What
  5222.    is the proper type of NULL?"  and "What's that funny name for
  5223.    the `#' character?" are both Frequently Asked Questions.
  5224.    Several extant FAQ lists do (or should) make reference to the
  5225.    Jargon File (the on-line version of this lexicon).
  5226.  
  5227. FAQL: /fa'kl/ n. Syn. {FAQ list}.
  5228.  
  5229. farming: [Adelaide University, Australia] n. What the heads of a
  5230.    disk drive are said to do when they plow little furrows in the
  5231.    magnetic media.  Associated with a {crash}.  Typically used as
  5232.    follows: "Oh no, the machine has just crashed; I hope the hard
  5233.    drive hasn't gone {farming} again."
  5234.  
  5235. fascist: adj. 1. Said of a computer system with excessive or
  5236.    annoying security barriers, usage limits, or access policies.  The
  5237.    implication is that said policies are preventing hackers from
  5238.    getting interesting work done.  The variant `fascistic' seems
  5239.    to have been preferred at MIT, poss. by analogy with
  5240.    `touristic' (see {tourist}).  2. In the design of languages
  5241.    and other software tools, `the fascist alternative' is the most
  5242.    restrictive and structured way of capturing a particular function;
  5243.    the implication is that this may be desirable in order to simplify
  5244.    the implementation or provide tighter error checking.  Compare
  5245.    {bondage-and-discipline language}, but that term is global rather
  5246.    than local.
  5247.  
  5248. faulty: adj. Non-functional; buggy.  Same denotation as
  5249.    {bletcherous}, {losing}, q.v., but the connotation is much
  5250.    milder.
  5251.  
  5252. fd leak: /ef dee leek/ n. A kind of programming bug analogous to a
  5253.    {core leak}, in which a program fails to close file descriptors
  5254.    (`fd's) after file operations are completed, and thus eventually
  5255.    runs out of them.  See {leak}.
  5256.  
  5257. fear and loathing: [from Hunter Thompson] n. A state inspired by the
  5258.    prospect of dealing with certain real-world systems and standards
  5259.    that are totally {brain-damaged} but ubiquitous --- Intel 8086s,
  5260.    or {COBOL}, or {{EBCDIC}}, or any {IBM} machine except the
  5261.    Rios (a.k.a.  the RS/6000).  "Ack!  They want PCs to be able to
  5262.    talk to the AI machine.  Fear and loathing time!"
  5263.  
  5264. feature: n. 1. A good property or behavior (as of a program).
  5265.    Whether it was intended or not is immaterial.  2. An intended
  5266.    property or behavior (as of a program).  Whether it is good or not
  5267.    is immaterial (but if bad, it is also a {misfeature}).  3. A
  5268.    surprising property or behavior; in particular, one that is
  5269.    purposely inconsistent because it works better that way --- such an
  5270.    inconsistency is therefore a {feature} and not a {bug}.  This
  5271.    kind of feature is sometimes called a {miswart}; see that entry
  5272.    for a classic example.  4. A property or behavior that is
  5273.    gratuitous or unnecessary, though perhaps also impressive or cute.
  5274.    For example, one feature of Common LISP's `format' function is
  5275.    the ability to print numbers in two different Roman-numeral formats
  5276.    (see {bells, whistles, and gongs}).  5. A property or behavior
  5277.    that was put in to help someone else but that happens to be in your
  5278.    way.  6. A bug that has been documented.  To call something a
  5279.    feature sometimes means the author of the program did not consider
  5280.    the particular case, and that the program responded in a way that was
  5281.    unexpected but not strictly incorrect.  A standard joke is that a
  5282.    bug can be turned into a {feature} simply by documenting it
  5283.    (then theoretically no one can complain about it because it's in
  5284.    the manual), or even by simply declaring it to be good.  "That's
  5285.    not a bug, that's a feature!" is a common catchphrase.  See also
  5286.    {feetch feetch}, {creeping featurism}, {wart}, {green
  5287.    lightning}.
  5288.  
  5289.    The relationship among bugs, features, misfeatures, warts, and
  5290.    miswarts might be clarified by the following hypothetical exchange
  5291.    between two hackers on an airliner:
  5292.  
  5293.    A: "This seat doesn't recline."
  5294.  
  5295.    B: "That's not a bug, that's a feature.  There is an emergency
  5296.    exit door built around the window behind you, and the route has to
  5297.    be kept clear."
  5298.  
  5299.    A: "Oh.  Then it's a misfeature; they should have increased the
  5300.    spacing between rows here."
  5301.  
  5302.    B: "Yes.  But if they'd increased spacing in only one section it
  5303.    would have been a wart --- they would've had to make
  5304.    nonstandard-length ceiling panels to fit over the displaced
  5305.    seats."
  5306.  
  5307.    A: "A miswart, actually.  If they increased spacing throughout
  5308.    they'd lose several rows and a chunk out of the profit margin.  So
  5309.    unequal spacing would actually be the Right Thing."
  5310.  
  5311.    B: "Indeed."
  5312.  
  5313.    {Undocumented feature} is a common, allegedly humorous euphemism
  5314.    for a {bug}.
  5315.  
  5316. feature creature: [poss. fr. slang `creature feature' for a horror
  5317.    movie] n. One who loves to add features to designs or programs,
  5318.    perhaps at the expense of coherence, concision, or {taste}.  See
  5319.    also {feeping creaturism}, {creeping featurism}.
  5320.  
  5321. feature shock: [from Alvin Toffler's book title `Future
  5322.    Shock'] n.  A user's (or programmer's!) confusion when confronted
  5323.    with a package that has too many features and poor introductory
  5324.    material.
  5325.  
  5326. featurectomy: /fee`ch*r-ek't*-mee/ n. The act of removing a
  5327.    feature from a program.  Featurectomies come in two flavors, the
  5328.    `righteous' and the `reluctant'.  Righteous featurectomies are
  5329.    performed because the remover believes the program would be more
  5330.    elegant without the feature, or there is already an equivalent and
  5331.    better way to achieve the same end.  (This is not quite the same
  5332.    thing as removing a {misfeature}.)  Reluctant featurectomies are
  5333.    performed to satisfy some external constraint such as code size or
  5334.    execution speed.
  5335.  
  5336. feep: /feep/ 1. n. The soft electronic `bell' sound of a
  5337.    display terminal (except for a VT-52); a beep (in fact, the
  5338.    microcomputer world seems to prefer {beep}).  2. vi. To cause
  5339.    the display to make a feep sound.  ASR-33s (the original TTYs) do
  5340.    not feep; they have mechanical bells that ring.  Alternate forms:
  5341.    {beep}, `bleep', or just about anything suitably
  5342.    onomatopoeic.  (Jeff MacNelly, in his comic strip "Shoe", uses
  5343.    the word `eep' for sounds made by computer terminals and video
  5344.    games; this is perhaps the closest written approximation yet.)  The
  5345.    term `breedle' was sometimes heard at SAIL, where the terminal
  5346.    bleepers are not particularly soft (they sound more like the
  5347.    musical equivalent of a raspberry or Bronx cheer; for a close
  5348.    approximation, imagine the sound of a Star Trek communicator's beep
  5349.    lasting for 5 seconds).  The `feeper' on a VT-52 has been
  5350.    compared to the sound of a '52 Chevy stripping its gears.  See also
  5351.    {ding}.
  5352.  
  5353. feeper: /fee'pr/ n. The device in a terminal or workstation (usually
  5354.    a loudspeaker of some kind) that makes the {feep} sound.
  5355.  
  5356. feeping creature: [from {feeping creaturism}] n. An unnecessary
  5357.    feature; a bit of {chrome} that, in the speaker's judgment, is
  5358.    the camel's nose for a whole horde of new features.
  5359.  
  5360. feeping creaturism: /fee'ping kree`ch*r-izm/ n. A deliberate
  5361.    spoonerism for {creeping featurism}, meant to imply that the
  5362.    system or program in question has become a misshapen creature of
  5363.    hacks.  This term isn't really well defined, but it sounds so neat
  5364.    that most hackers have said or heard it.  It is probably reinforced
  5365.    by an image of terminals prowling about in the dark making their
  5366.    customary noises.
  5367.  
  5368. feetch feetch: /feech feech/ interj. If someone tells you about
  5369.    some new improvement to a program, you might respond: "Feetch,
  5370.    feetch!"  The meaning of this depends critically on vocal
  5371.    inflection.  With enthusiasm, it means something like "Boy, that's
  5372.    great!  What a great hack!"  Grudgingly or with obvious doubt, it
  5373.    means "I don't know; it sounds like just one more unnecessary and
  5374.    complicated thing".  With a tone of resignation, it means, "Well,
  5375.    I'd rather keep it simple, but I suppose it has to be done".
  5376.  
  5377. fence: n. 1. A sequence of one or more distinguished
  5378.    ({out-of-band}) characters (or other data items), used to
  5379.    delimit a piece of data intended to be treated as a unit (the
  5380.    computer-science literature calls this a `sentinel').  The NUL
  5381.    (ASCII 0000000) character that terminates strings in C is a fence.
  5382.    Hex FF is probably the most common fence character after NUL.  See
  5383.    {zigamorph}.  2. [among users of optimizing compilers] Any
  5384.    technique, usually exploiting knowledge about the compiler, that
  5385.    blocks certain optimizations.  Used when explicit mechanisms are
  5386.    not available or are overkill.  Typically a hack: "I call a dummy
  5387.    procedure there to force a flush of the optimizer's
  5388.    register-coloring info" can be expressed by the shorter "That's a
  5389.    fence procedure".
  5390.  
  5391. fencepost error: n. 1. A problem with the discrete equivalent of a
  5392.    boundary condition.  Often exhibited in programs by iterative
  5393.    loops.  From the following problem: "If you build a fence 100 feet
  5394.    long with posts 10 feet apart, how many posts do you need?"
  5395.    Either 9 or 11 is a better answer than the obvious 10.  For
  5396.    example, suppose you have a long list or array of items, and want
  5397.    to process items m through n; how many items are there?  The
  5398.    obvious answer is n - m, but that is off by one; the right
  5399.    answer is n - m + 1.  A program that used the `obvious'
  5400.    formula would have a fencepost error in it.  See also {zeroth}
  5401.    and {off-by-one error}, and note that not all off-by-one errors
  5402.    are fencepost errors.  The game of Musical Chairs involves a
  5403.    catastrophic off-by-one error where N people try to sit in
  5404.    N - 1 chairs, but it's not a fencepost error.  Fencepost
  5405.    errors come from counting things rather than the spaces between
  5406.    them, or vice versa, or by neglecting to consider whether one
  5407.    should count one or both ends of a row.  2. Occasionally, an error
  5408.    induced by unexpectedly regular spacing of inputs, which can (for
  5409.    instance) screw up your hash table.
  5410.  
  5411. fepped out: /fept owt/ adj. The Symbolics 3600 Lisp Machine has a
  5412.    Front-End Processor called a `FEP' (compare sense 2 of {box}).
  5413.    When the main processor gets {wedged}, the FEP takes control of
  5414.    the keyboard and screen.  Such a machine is said to have
  5415.    `fepped out'.
  5416.  
  5417. FidoNet: n. A worldwide hobbyist network of personal computers
  5418.    which exchange mail, discussion groups, and files.  Founded in 1984
  5419.    and originally consisting only of IBM PCs and compatibles, FidoNet
  5420.    now includes such diverse machines as Apple ][s, Ataris, Amigas,
  5421.    and UNIX systems.  Though it is much younger than {USENET},
  5422.    FidoNet is already (in early 1991) a significant fraction of
  5423.    USENET's size at some 8000 systems.
  5424.  
  5425. field circus: [a derogatory pun on `field service'] n. The field
  5426.    service organization of any hardware manufacturer, but especially
  5427.    DEC.  There is an entire genre of jokes about DEC field circus
  5428.    engineers:
  5429.  
  5430.      Q: How can you recognize a DEC field circus engineer
  5431.         with a flat tire?
  5432.      A: He's changing each tire to see which one is flat.
  5433.  
  5434.      Q: How can you recognize a DEC field circus engineer
  5435.         who is out of gas?
  5436.      A: He's changing each tire to see which one is flat.
  5437.  
  5438.    There is also the `Field Circus Cheer' (from the {plan file} for
  5439.    DEC on MIT-AI):
  5440.  
  5441.      Maynard! Maynard!
  5442.      Don't mess with us!
  5443.      We're mean and we're tough!
  5444.      If you get us confused
  5445.      We'll screw up your stuff.
  5446.  
  5447.    (DEC's service HQ is located in Maynard, Massachusetts.)
  5448.  
  5449. field servoid: [play on `android'] /fee'ld ser'voyd/ n.
  5450.    Representative of a field service organization (see {field
  5451.    circus}).  This has many of the implications of {droid}.
  5452.  
  5453. Fight-o-net: [FidoNet] n. Deliberate distortion of {FidoNet},
  5454.    often applied after a flurry of {flamage} in a particular
  5455.    {echo}, especially the SYSOP echo or Fidonews (see {'Snooze}).
  5456.  
  5457. File Attach: [FidoNet] 1. n. A file sent along with a mail message
  5458.    from one BBS to another.  2. vt. Sending someone a file by using
  5459.    the File Attach option in a BBS mailer.
  5460.  
  5461. File Request: [FidoNet] 1. n. The {FidoNet} equivalent of
  5462.    {FTP}, in which one BBS system automatically dials another and
  5463.    {snarf}s one or more files.  Files are often announced as being
  5464.    "available for {FReq}" in the same way that files are announced
  5465.    as being "available for/by anonymous FTP" on the Internet.
  5466.    2. vt. The act of getting a copy of a file by using the File
  5467.    Request option of the BBS mailer.
  5468.  
  5469. filk: /filk/ [from SF fandom, where a typo for `folk' was
  5470.    adopted as a new word] n.,v. A `filk' is a popular or folk song
  5471.    with lyrics revised or completely new lyrics, intended for humorous
  5472.    effect when read and/or to be sung late at night at SF conventions.
  5473.    There is a flourishing subgenre of these called `computer filks',
  5474.    written by hackers and often containing rather sophisticated
  5475.    technical humor.  See {double bucky} for an example.
  5476.  
  5477. film at 11: [MIT: in parody of TV newscasters] Used in conversation
  5478.    to announce ordinary events, with a sarcastic implication that
  5479.    these events are earth-shattering.  "{{ITS}} crashes; film at 11."
  5480.    "Bug found in scheduler; film at 11."
  5481.  
  5482. filter: [orig. {{UNIX}}, now also in {{MS-DOS}}] n. A program that
  5483.    processes an input data stream into an output data stream in some
  5484.    well-defined way, and does no I/O to anywhere else except possibly
  5485.    on error conditions; one designed to be used as a stage in a
  5486.    `pipeline' (see {plumbing}).
  5487.  
  5488. Finagle's Law: n. The generalized or `folk' version of
  5489.    {Murphy's Law}, fully named "Finagle's Law of Dynamic
  5490.    Negatives" and usually rendered "Anything that can go wrong,
  5491.    will".  One variant favored among hackers is "The perversity of
  5492.    the Universe tends towards a maximum" (but see also {Hanlon's
  5493.    Razor}).  The label `Finagle's Law' was popularized by SF author
  5494.    Larry Niven in several stories depicting a frontier culture of
  5495.    asteroid miners; this `Belter' culture professed a religion
  5496.    and/or running joke involving the worship of the dread god Finagle
  5497.    and his mad prophet Murphy.
  5498.  
  5499. fine: [WPI] adj. Good, but not good enough to be {cuspy}.  The word
  5500.    `fine' is used elsewhere, of course, but without the implicit
  5501.    comparison to the higher level implied by {cuspy}.
  5502.  
  5503. finger: [WAITS, via BSD UNIX] 1. n. A program that displays a
  5504.    particular user or all users logged on the system or a remote
  5505.    system.  Typically shows full name, last login time, idle time,
  5506.    terminal line, and terminal location (where applicable).  May also
  5507.    display a {plan file} left by the user.  2. vt. To apply finger
  5508.    to a username.  3. vt. By extension, to check a human's current
  5509.    state by any means.  "Foodp?"  "T!"  "OK, finger Lisa and see
  5510.    if she's idle."  4. Any picture (composed of ASCII characters)
  5511.    depicting `the finger'.  Originally a humorous component of one's
  5512.    plan file to deter the curious fingerer (sense 2), it has entered
  5513.    the arsenal of some {flamer}s.
  5514.  
  5515. finger-pointing syndrome: n. All-too-frequent result of bugs, esp.
  5516.    in new or experimental configurations.  The hardware vendor points
  5517.    a finger at the software.  The software vendor points a finger
  5518.    at the hardware.  All the poor users get is the finger.
  5519.  
  5520. firebottle: n. A large, primitive, power-hungry active electrical
  5521.    device, similar in function to a FET but constructed out of glass,
  5522.    metal, and vacuum.  Characterized by high cost, low density, low
  5523.    reliability, high-temperature operation, and high power
  5524.    dissipation.  Sometimes mistakenly called a `tube' in the U.S.
  5525.    or a `valve' in England; another hackish term is {glassfet}.
  5526.  
  5527. firefighting: n. 1. What sysadmins have to do to correct sudden
  5528.    operational problems.  An opposite of hacking.  "Been hacking your
  5529.    new newsreader?"  "No, a power glitch hosed the network and I spent
  5530.    the whole afternoon fighting fires."  2. The act of throwing lots
  5531.    of manpower and late nights at a project, esp. to get it out
  5532.    before deadline.  See also {gang bang}, {Mongolian Hordes
  5533.    technique}; however, the term `firefighting' connotes that the
  5534.    effort is going into chasing bugs rather than adding features.
  5535.  
  5536. firewall code: n. The code you put in a system (say, a telephone
  5537.    switch) to make sure that the users can't do any damage. Since
  5538.    users always want to be able to do everything but never want to
  5539.    suffer for any mistakes, the construction of a firewall is a
  5540.    question not only of defensive coding but also of interface
  5541.    presentation, so that users don't even get curious about those
  5542.    corners of a system where they can burn themselves.
  5543.  
  5544. firewall machine: n. A dedicated gateway machine with special
  5545.    security precautions on it, used to service outside network
  5546.    connections and dial-in lines.  The idea is to protect a cluster of
  5547.    more loosely administered machines hidden behind it from
  5548.    {cracker}s.  The typical firewall is an inexpensive micro-based
  5549.    UNIX box kept clean of critical data, with a bunch of modems and
  5550.    public network ports on it but just one carefully watched
  5551.    connection back to the rest of the cluster.  The special
  5552.    precautions may include threat monitoring, callback, and even a
  5553.    complete {iron box} keyable to particular incoming IDs or
  5554.    activity patterns.  Syn. {flytrap}, {Venus flytrap}.
  5555.  
  5556. fireworks mode: n. The mode a machine is sometimes said to be in when
  5557.    it is performing a {crash and burn} operation.
  5558.  
  5559. firmy: /fer'mee/ Syn. {stiffy} (a 3.5-inch floppy disk).
  5560.  
  5561. fish: [Adelaide University, Australia] n. 1. Another metasyntactic
  5562.    variable.  See {foo}.  Derived originally from the Monty Python
  5563.    skit in the middle of "The Meaning of Life" entitled "Find the
  5564.    Fish".  2. A pun for `microfiche'.  A microfiche file cabinet may be
  5565.    referred to as a `fish tank'.
  5566.  
  5567. FISH queue: [acronym, by analogy with FIFO (First In, First Out)]
  5568.    n. `First In, Still Here'.  A joking way of pointing out that
  5569.    processing of a particular sequence of events or requests has
  5570.    stopped dead.  Also `FISH mode' and `FISHnet'; the latter
  5571.    may be applied to any network that is running really slowly or
  5572.    exhibiting extreme flakiness.
  5573.  
  5574. fix: n.,v. What one does when a problem has been reported too many
  5575.    times to be ignored.
  5576.  
  5577. flag: n. A variable or quantity that can take on one of two
  5578.    values; a bit, particularly one that is used to indicate one of two
  5579.    outcomes or is used to control which of two things is to be done.
  5580.    "This flag controls whether to clear the screen before printing
  5581.    the message."  "The program status word contains several flag
  5582.    bits."  Used of humans analogously to {bit}.  See also
  5583.    {hidden flag}, {mode bit}.
  5584.  
  5585. flag day: n. A software change that is neither forward- nor
  5586.    backward-compatible, and which is costly to make and costly to
  5587.    reverse.  "Can we install that without causing a flag day for all
  5588.    users?"  This term has nothing to do with the use of the word
  5589.    {flag} to mean a variable that has two values.  It came into use
  5590.    when a massive change was made to the {{Multics}} timesharing
  5591.    system to convert from the old ASCII code to the new one; this was
  5592.    scheduled for Flag Day (a U.S. holiday), June 14, 1966.  See also
  5593.    {backward combatability}.
  5594.  
  5595. flaky: adj. (var sp. `flakey') Subject to frequent {lossage}.
  5596.    This use is of course related to the common slang use of the word
  5597.    to describe a person as eccentric, crazy, or just unreliable.  A
  5598.    system that is flaky is working, sort of --- enough that you are
  5599.    tempted to try to use it --- but fails frequently enough that the
  5600.    odds in favor of finishing what you start are low.  Commonwealth
  5601.    hackish prefers {dodgy} or {wonky}.
  5602.  
  5603. flamage: /flay'm*j/ n. Flaming verbiage, esp. high-noise,
  5604.    low-signal postings to {USENET} or other electronic {fora}.
  5605.    Often in the phrase `the usual flamage'.  `Flaming' is the act
  5606.    itself; `flamage' the content; a `flame' is a single flaming
  5607.    message.  See {flame}.
  5608.  
  5609. flame: 1. vi. To post an email message intended to insult and
  5610.    provoke.  2. vi. To speak incessantly and/or rabidly on some
  5611.    relatively uninteresting subject or with a patently ridiculous
  5612.    attitude.  3. vt. Either of senses 1 or 2, directed with
  5613.    hostility at a particular person or people.  4. n. An instance of
  5614.    flaming.  When a discussion degenerates into useless controversy,
  5615.    one might tell the participants "Now you're just flaming" or
  5616.    "Stop all that flamage!" to try to get them to cool down (so to
  5617.    speak).
  5618.  
  5619.    USENETter Marc Ramsey, who was at WPI from 1972 to 1976, adds: "I
  5620.    am 99% certain that the use of `flame' originated at WPI.  Those
  5621.    who made a nuisance of themselves insisting that they needed to use
  5622.    a TTY for `real work' came to be known as `flaming asshole lusers'.
  5623.    Other particularly annoying people became `flaming asshole ravers',
  5624.    which shortened to `flaming ravers', and ultimately `flamers'.  I
  5625.    remember someone picking up on the Human Torch pun, but I don't
  5626.    think `flame on/off' was ever much used at WPI."  See also
  5627.    {asbestos}.
  5628.  
  5629.    The term may have been independently invented at several different
  5630.    places; it is also reported that `flaming' was in use to mean
  5631.    something like `interminably drawn-out semi-serious discussions'
  5632.    (late-night bull sessions) at Carleton College during 1968--1971.
  5633.  
  5634. flame bait: n. A posting intended to trigger a {flame war}, or one
  5635.    that invites flames in reply.
  5636.  
  5637. flame on: vi.,interj.  1. To begin to {flame}.  The punning
  5638.    reference to Marvel Comics's Human Torch is no longer widely
  5639.    recognized.  2. To continue to flame.  See {rave}, {burble}.
  5640.  
  5641. flame war: n. (var. `flamewar') An acrimonious dispute,
  5642.    especially when conducted on a public electronic forum such as
  5643.    {USENET}.
  5644.  
  5645. flamer: n. One who habitually {flame}s.  Said esp. of obnoxious
  5646.    {USENET} personalities.
  5647.  
  5648. flap: vt. 1. To unload a DECtape (so it goes flap, flap,
  5649.    flap...).  Old-time hackers at MIT tell of the days when the
  5650.    disk was device 0 and {microtape}s were 1, 2,... and
  5651.    attempting to flap device 0 would instead start a motor banging
  5652.    inside a cabinet near the disk.  2. By extension, to unload any
  5653.    magnetic tape.  See also {macrotape}.  Modern cartridge tapes no
  5654.    longer actually flap, but the usage has remained.
  5655.  
  5656. flarp: /flarp/ [Rutgers University] n. Yet another metasyntactic
  5657.    variable (see {foo}).  Among those who use it, it is associated
  5658.    with a legend that any program not containing the word `flarp'
  5659.    somewhere will not work.  The legend is discreetly silent on the
  5660.    reliability of programs which *do* contain the magic word.
  5661.  
  5662. flat: adj. 1. Lacking any complex internal structure.  "That
  5663.    {bitty box} has only a flat filesystem, not a hierarchical
  5664.    one."  The verb form is {flatten}.  2. Said of a memory
  5665.    architecture (like that of the VAX or 680x0) that is one big linear
  5666.    address space (typically with each possible value of a processor
  5667.    register corresponding to a unique core address), as opposed to a
  5668.    `segmented' architecture (like that of the 80x86) in which
  5669.    addresses are composed from a base-register/offset pair (segmented
  5670.    designs are generally considered {cretinous}).
  5671.  
  5672. flat-ASCII: adj. Said of a text file that contains only 7-bit ASCII
  5673.    characters and uses only ASCII-standard control characters (that
  5674.    is, has no embedded codes specific to a particular text formatter
  5675.    or markup language, and no {meta}-characters).  Syn.
  5676.    {plain-ASCII}.  Compare {flat-file}.
  5677.  
  5678. flat-file: adj. A {flatten}ed representation of some database or
  5679.    tree or network structure as a single file from which the
  5680.    structure could implicitly be rebuilt, esp. one in {flat-ASCII}
  5681.    form.
  5682.  
  5683. flatten: vt. To remove structural information, esp. to filter
  5684.    something with an implicit tree structure into a simple sequence of
  5685.    leaves; also tends to imply mapping to {flat-ASCII}.  "This code
  5686.    flattens an expression with parentheses into an equivalent
  5687.    {canonical} form."
  5688.  
  5689. flavor: n. 1. Variety, type, kind.  "DDT commands come in two
  5690.    flavors."  "These lights come in two flavors, big red ones and
  5691.    small green ones."  See {vanilla}.  2. The attribute that causes
  5692.    something to be {flavorful}.  Usually used in the phrase "yields
  5693.    additional flavor".  "This convention yields additional flavor by
  5694.    allowing one to print text either right-side-up or upside-down."
  5695.    See {vanilla}.  This usage was certainly reinforced by the
  5696.    terminology of quantum chromodynamics, in which quarks (the
  5697.    constituents of, e.g., protons) come in six flavors (up, down,
  5698.    strange, charm, top, bottom) and three colors (red, blue, green)
  5699.    --- however, hackish use of `flavor' at MIT predated QCD.  3. The
  5700.    term for `class' (in the object-oriented sense) in the LISP Machine
  5701.    Flavors system.  Though the Flavors design has been superseded
  5702.    (notably by the Common LISP CLOS facility), the term `flavor' is
  5703.    still used as a general synonym for `class' by some LISP hackers.
  5704.  
  5705. flavorful: adj. Full of {flavor}; esthetically pleasing.  See
  5706.    {random} and {losing} for antonyms.  See also the entries for
  5707.    {taste} and {elegant}.
  5708.  
  5709. flippy: /flip'ee/ n. A single-sided floppy disk altered for
  5710.    double-sided use by addition of a second write-notch, so called
  5711.    because it must be flipped over for the second side to be
  5712.    accessible.  No longer common.
  5713.  
  5714. flowchart:: [techspeak] n. An archaic form of visual control-flow
  5715.    specification employing arrows and `speech balloons' of various
  5716.    shapes.  Hackers never use flowcharts, consider them extremely
  5717.    silly, and associate them with {COBOL} programmers, {card
  5718.    walloper}s, and other lower forms of life.  This is because (from a
  5719.    hacker's point of view) they are no easier to read than code, are
  5720.    less precise, and tend to fall out of sync with the code (so that
  5721.    they either obfuscate it rather than explaining it or require
  5722.    extra maintenance effort that doesn't improve the code).  See also
  5723.    {pdl}, sense 3.
  5724.  
  5725. flower key: [Mac users] n. See {command key}.
  5726.  
  5727. flush: v. 1. To delete something, usually superfluous, or to abort
  5728.    an operation.  "All that nonsense has been flushed."  2. [UNIX/C]
  5729.    To force buffered I/O to disk, as with an `fflush(3)' call.
  5730.    This is *not* an abort or deletion as in sense 1, but a
  5731.    demand for early completion!  3. To leave at the end of a day's
  5732.    work (as opposed to leaving for a meal).  "I'm going to flush
  5733.    now."  "Time to flush."  4. To exclude someone from an activity,
  5734.    or to ignore a person.
  5735.  
  5736.    `Flush' was standard ITS terminology for aborting an output
  5737.    operation; one spoke of the text that would have been printed, but
  5738.    was not, as having been flushed.  It is speculated that this term
  5739.    arose from a vivid image of flushing unwanted characters by hosing
  5740.    down the internal output buffer, washing the characters away before
  5741.    they can be printed.  The UNIX/C usage, on the other hand, was
  5742.    propagated by the `fflush(3)' call in C's standard I/O library
  5743.    (though it is reported to have been in use among BLISS programmers
  5744.    at DEC and on Honeywell and IBM machines as far back as 1965).
  5745.    UNIX/C hackers find the ITS usage confusing, and vice versa.
  5746.  
  5747. Flyspeck 3: n. Standard name for any font that is so tiny as to be
  5748.    unreadable (by analogy with such names as `Helvetica 10' for
  5749.    10-point Helvetica).  Legal boilerplate is usually printed in
  5750.    Flyspeck 3.
  5751.  
  5752. flytrap: n. See {firewall machine}.
  5753.  
  5754. FOAF: // [USENET] n. Acronym for `Friend Of A Friend'.  The
  5755.    source of an unverified, possibly untrue story.  This was not
  5756.    originated by hackers (it is used in Jan Brunvand's books on urban
  5757.    folklore), but is much better recognized on USENET and elsewhere
  5758.    than in mainstream English.
  5759.  
  5760. FOD: /fod/ v. [Abbreviation for `Finger of Death', originally a
  5761.    spell-name from fantasy gaming] To terminate with extreme prejudice
  5762.    and with no regard for other people.  From {MUD}s where the
  5763.    wizard command `FOD <player>' results in the immediate and total
  5764.    death of <player>, usually as punishment for obnoxious behavior.
  5765.    This migrated to other circumstances, such as "I'm going to fod
  5766.    the process that is burning all the cycles."  Compare {gun}.
  5767.  
  5768.    In aviation, FOD means Foreign Object Damage, e.g., what happens
  5769.    when a jet engine sucks up a rock on the runway or a bird in
  5770.    flight.  Finger of Death is a distressingly apt description of
  5771.    what this does to the engine.
  5772.  
  5773. fold case: v. See {smash case}.  This term tends to be used
  5774.    more by people who don't mind that their tools smash case.  It also
  5775.    connotes that case is ignored but case distinctions in data
  5776.    processed by the tool in question aren't destroyed.
  5777.  
  5778. followup: n. On USENET, a {posting} generated in response to
  5779.    another posting (as opposed to a {reply}, which goes by email
  5780.    rather than being broadcast).  Followups include the ID of the
  5781.    {parent message} in their headers; smart news-readers can use
  5782.    this information to present USENET news in `conversation' sequence
  5783.    rather than order-of-arrival.  See {thread}.
  5784.  
  5785. foo: /foo/ 1. interj. Term of disgust.  2. Used very generally
  5786.    as a sample name for absolutely anything, esp. programs and files
  5787.    (esp. scratch files).  3. First on the standard list of
  5788.    metasyntactic variables used in syntax examples.  See also
  5789.    {bar}, {baz}, {qux}, {quux}, {corge}, {grault},
  5790.    {garply}, {waldo}, {fred}, {plugh}, {xyzzy},
  5791.    {thud}.
  5792.  
  5793.    {foo} is the {canonical} example of a `metasyntactic
  5794.    variable' --- a name used in examples and understood to stand for
  5795.    whatever thing is under discussion, or any random member of a class
  5796.    of things under discussion.  To avoid confusion, hackers never use
  5797.    `foo' or other words like it as permanent names for anything.  In
  5798.    filenames, a common convention is that any filename beginning
  5799.    `foo' is a scratch file that may be deleted at any time.
  5800.  
  5801.    The etymology of hackish `foo' is obscure.  When used in
  5802.    connection with `bar' it is generally traced to the WWII-era Army
  5803.    slang acronym FUBAR (`Fucked Up Beyond All Recognition'), later
  5804.    bowdlerized to {foobar}.  (See also {FUBAR}).
  5805.  
  5806.    However, the use of the word `foo' itself has more complicated
  5807.    antecedents, including a long history in comic strips and cartoons.
  5808.    The old "Smokey Stover" comic strips by Bill Holman often
  5809.    included the word `FOO', in particular on license plates of cars;
  5810.    allegedly, `FOO' and `BAR' also occurred in Walt Kelly's
  5811.    "Pogo" strips.  In the 1938 cartoon "Daffy Doc", a very
  5812.    early version of Daffy Duck holds up a sign saying "SILENCE IS
  5813.    FOO!"; oddly, this seems to refer to some approving or positive
  5814.    affirmative use of foo.  It is even possible that hacker usage
  5815.    actually springs from `FOO, Lampoons and Parody', the title of
  5816.    a comic book first issued in September 1958; the byline read
  5817.    `C. Crumb' but this may well have been a sort-of pseudonym for
  5818.    noted weird-comix artist Robert Crumb.  The title FOO was featured
  5819.    in large letters on the front cover.
  5820.  
  5821.    An old-time member reports that in the 1959 `Dictionary of the
  5822.    TMRC Language', compiled at {TMRC} there was an entry that went
  5823.    something like this:
  5824.  
  5825.         FOO: The first syllable of the sacred chant phrase "FOO MANE PADME
  5826.         HUM."  Our first obligation is to keep the foo counters turning.
  5827.  
  5828.    For more about the legendary foo counters, see {TMRC}.  Almost
  5829.    the entire AI staff was involved with TMRC, so it is not clear
  5830.    which group introduced the other to the word FOO.
  5831.  
  5832.    Very probably, hackish `foo' had no single origin and derives
  5833.    through all these channels from Yiddish `feh' and/or English
  5834.    `fooey'.
  5835.  
  5836. foobar: n. Another common metasyntactic variable; see {foo}.
  5837.    Hackers do *not* generally use this to mean {FUBAR} in
  5838.    either the slang or jargon sense.
  5839.  
  5840. fool: n. As used by hackers, specifically describes a person who
  5841.    habitually reasons from obviously or demonstrably incorrect
  5842.    premises and cannot be persuaded by evidence to do otherwise; it is
  5843.    not generally used in its other senses, i.e., to describe a person
  5844.    with a native incapacity to reason correctly, or a clown.  Indeed,
  5845.    in hackish experience many fools are capable of reasoning all too
  5846.    effectively in executing their errors.  See also {cretin},
  5847.    {loser}, {fool file, the}.
  5848.  
  5849. fool file, the: [USENET] n. A notional repository of all the most
  5850.    dramatically and abysmally stupid utterances ever.  There is a
  5851.    subgenre of {sig block}s that consists of the header "From the
  5852.    fool file:" followed by some quote the poster wishes to represent
  5853.    as an immortal gem of dimwittery; for this to be really effective,
  5854.    the quote has to be so obviously wrong as to be laughable.  More
  5855.    than one USENETter has achieved an unwanted notoriety by being
  5856.    quoted in this way.
  5857.  
  5858. Foonly: n. 1. The {PDP-10} successor that was to have been built by
  5859.    the Super Foonly project at the Stanford Artificial Intelligence
  5860.    Laboratory along with a new operating system.  The intention was to
  5861.    leapfrog from the old DEC timesharing system SAIL was running to a
  5862.    new generation, bypassing TENEX which at that time was the ARPANET
  5863.    standard.  ARPA funding for both the Super Foonly and the new
  5864.    operating system was cut in 1974.  Most of the design team went to
  5865.    DEC and contributed greatly to the design of the PDP-10 model KL10.
  5866.    2. The name of the company formed by Dave Poole, one of the
  5867.    principal Super Foonly designers, and one of hackerdom's more
  5868.    colorful personalities.  Many people remember the parrot which sat
  5869.    on Poole's shoulder and was a regular companion.  3. Any of the
  5870.    machines built by Poole's company.  The first was the F-1 (a.k.a.
  5871.    Super Foonly), which was the computational engine used to create
  5872.    the graphics in the movie "TRON".  The F-1 was the fastest
  5873.    PDP-10 ever built, but only one was ever made.  The effort drained
  5874.    Foonly of its financial resources, and they turned towards building
  5875.    smaller, slower, and much less expensive machines.  Unfortunately,
  5876.    these ran not the popular {TOPS-20} but a TENEX varient called
  5877.    Foonex; this seriously limited their market.  Also, the machines
  5878.    shipped were actually wire-wrapped engineering prototypes requiring
  5879.    individual attention from more than usually competent site
  5880.    personnel, and thus had significant reliability problems.  Poole's
  5881.    legendary temper and unwillingness to suffer fools gladly did not
  5882.    help matters.  By the time of the Jupiter project cancellation in
  5883.    1983 Foonly's proposal to build another F-1 was eclipsed by the
  5884.    {Mars}, and the company never quite recovered.  See the
  5885.    {Mars} entry for the continuation and moral of this story.
  5886.  
  5887. footprint: n. 1. The floor or desk area taken up by a piece of
  5888.    hardware.  2. [IBM] The audit trail (if any) left by a crashed
  5889.    program (often in plural, `footprints').  See also
  5890.    {toeprint}.
  5891.  
  5892. for free: adj. Said of a capability of a programming language or
  5893.    hardware equipment that is available by its design without needing
  5894.    cleverness to implement: "In APL, we get the matrix operations for
  5895.    free."  "And owing to the way revisions are stored in this
  5896.    system, you get revision trees for free."  Usually it refers to a
  5897.    serendipitous feature of doing things a certain way (compare
  5898.    {big win}), but it may refer to an intentional but secondary
  5899.    feature.
  5900.  
  5901. for the rest of us: [from the Mac slogan "The computer for the
  5902.    rest of us"] adj. 1. Used to describe a {spiffy} product whose
  5903.    affordability shames other comparable products, or (more often)
  5904.    used sarcastically to describe {spiffy} but very overpriced
  5905.    products.  2. Describes a program with a limited interface,
  5906.    deliberately limited capabilities, non-orthogonality, inability to
  5907.    compose primitives, or any other limitation designed to not
  5908.    `confuse' a na"ive user.  This places an upper bound on how far that
  5909.    user can go before the program begins to get in the way of the task
  5910.    instead of helping accomplish it.  Used in reference to Macintosh
  5911.    software which doesn't provide obvious capabilities because it is
  5912.    thought that the poor lusers might not be able to handle them.
  5913.    Becomes `the rest of *them*' when used in third-party
  5914.    reference; thus, "Yes, it is an attractive program, but it's
  5915.    designed for The Rest Of Them" means a program that superficially
  5916.    looks neat but has no depth beyond the surface flash.  See also
  5917.    {WIMP environment}, {Macintrash}, {user-friendly}.
  5918.  
  5919. fora: pl.n. Plural of {forum}.
  5920.  
  5921. foreground: [UNIX] vt. To foreground a task is to bring it to
  5922.    the top of one's {stack} for immediate processing, and hackers
  5923.    often use it in this sense for non-computer tasks. "If your
  5924.    presentation is due next week, I guess I'd better foreground
  5925.    writing up the design document."
  5926.  
  5927.    Technically, on a time-sharing system, a task executing in
  5928.    foreground is one able to accept input from and return output to
  5929.    the user; oppose {background}.  Nowadays this term is primarily
  5930.    associated with {{UNIX}}, but it appears first to have been used
  5931.    in this sense on OS/360.  Normally, there is only one foreground
  5932.    task per terminal (or terminal window); having multiple processes
  5933.    simultaneously reading the keyboard is a good way to {lose}.
  5934.  
  5935. forked: [UNIX; prob. influenced by a mainstream expletive] adj.
  5936.    Terminally slow, or dead.  Originated when one system slowed to
  5937.    incredibly bad speeds because of a process recursively spawning copies
  5938.    of itself (using the UNIX system call `fork(2)') and taking up
  5939.    all the process table entries.
  5940.  
  5941. Fortrash: /for'trash/ n. Hackerism for the FORTRAN language,
  5942.    referring to its primitive design, gross and irregular syntax,
  5943.    limited control constructs, and slippery, exception-filled
  5944.    semantics.
  5945.  
  5946. fortune cookie: [UNIX] n. A random quote, item of trivia, joke, or
  5947.    maxim printed to the user's tty at login time or (less commonly) at
  5948.    logout time.  Items from this lexicon have often been used as
  5949.    fortune cookies.  See {cookie file}.
  5950.  
  5951. forum: n. [USENET, GEnie CI$; pl. `fora' or `forums'] Any
  5952.    discussion group accessible through a dial-in {BBS}, a
  5953.    {mailing list}, or a {newsgroup} (see {network, the}).  A
  5954.    forum functions much like a bulletin board; users submit
  5955.    {posting}s for all to read and discussion ensues.  Contrast
  5956.    real-time chat via {talk mode} or point-to-point personal
  5957.    {email}.
  5958.  
  5959. fossil: n. 1. In software, a misfeature that becomes understandable
  5960.    only in historical context, as a remnant of times past retained so
  5961.    as not to break compatibility.  Example: the retention of octal as
  5962.    default base for string escapes in {C}, in spite of the better
  5963.    match of hexadecimal to ASCII and modern byte-addressable
  5964.    architectures.  See {dusty deck}.  2. More restrictively, a
  5965.    feature with past but no present utility.  Example: the
  5966.    force-all-caps (LCASE) bits in the V7 and {BSD} UNIX tty driver,
  5967.    designed for use with monocase terminals.  In a perversion of the
  5968.    usual backward-compatibility goal, this functionality has actually
  5969.    been expanded and renamed in some later {USG UNIX} releases as
  5970.    the IUCLC and OLCUC bits.  3. The FOSSIL (Fido/Opus/Seadog
  5971.    Standard Interface Level) driver specification for serial-port
  5972.    access to replace the {brain-dead} routines in the IBM PC ROMs.
  5973.    Fossils are used by most MS-DOS {BBS} software in lieu of
  5974.    programming the {bare metal} of the serial ports, as the ROM
  5975.    routines do not support interrupt-driven operation or setting
  5976.    speeds above 9600.  Since the FOSSIL specification allows
  5977.    additional functionality to be hooked in, drivers that use the
  5978.    {hook} but do not provide serial-port access themselves are named
  5979.    with a modifier, as in `video fossil'.
  5980.  
  5981. four-color glossies: 1. Literature created by {marketroid}s
  5982.    that allegedly containing technical specs but which is in fact as
  5983.    superficial as possible without being totally {content-free}.
  5984.    "Forget the four-color glossies, give me the tech ref manuals."
  5985.    Often applied as an indication of superficiality even when the
  5986.    material is printed on ordinary paper in black and white.
  5987.    Four-color-glossy manuals are *never* useful for finding a
  5988.    problem.  2. [rare] Applied by extension to manual pages that don't
  5989.    contain enough information to diagnose why the program doesn't
  5990.    produce the expected or desired output.
  5991.  
  5992. fragile: adj. Syn {brittle}.
  5993.  
  5994. fred: n. 1. The personal name most frequently used as a
  5995.    metasyntactic variable (see {foo}).  Allegedly popular because
  5996.    it's easy for a non-touch-typist to type on a standard QWERTY
  5997.    keyboard.  Unlike {J. Random Hacker} or `J. Random Loser',
  5998.    this name has no positive or negative loading (but see {Mbogo,
  5999.    Dr. Fred}).  2. An acronym for `Flipping Ridiculous Electronic
  6000.    Device'; other F-verbs may be substituted for `flipping'.
  6001.  
  6002. frednet: /fred'net/ n. Used to refer to some {random} and
  6003.    uncommon protocol encountered on a network.  "We're implementing
  6004.    bridging in our router to solve the frednet problem."
  6005.  
  6006. freeware: n. Free software, often written by enthusiasts and
  6007.    distributed by users' groups, or via electronic mail, local
  6008.    bulletin boards, {USENET}, or other electronic media.  At one
  6009.    time, `freeware' was a trademark of Andrew Fluegelman, the author
  6010.    of the well-known MS-DOS comm program PC-TALK III.  It wasn't
  6011.    enforced after his mysterious disappearance and presumed death
  6012.    in 1984.  See {shareware}.
  6013.  
  6014. freeze: v. To lock an evolving software distribution or document
  6015.    against changes so it can be released with some hope of stability.
  6016.    Carries the strong implication that the item in question will
  6017.    `unfreeze' at some future date.  "OK, fix that bug and we'll
  6018.    freeze for release."
  6019.  
  6020.    There are more specific constructions on this.  A `feature freeze',
  6021.    for example, locks out modifications intended to introduce new
  6022.    features; a `code freeze' connotes no more changes at all.
  6023.    At Sun Microsystems and elsewhere, one may also hear references to
  6024.    `code slush' --- that is, an almost-but-not-quite frozen state.
  6025.  
  6026. fried: adj. 1. Non-working due to hardware failure; burnt out.
  6027.    Especially used of hardware brought down by a `power glitch' (see
  6028.    {glitch}), {drop-outs}, a short, or some other electrical
  6029.    event.  (Sometimes this literally happens to electronic circuits!
  6030.    In particular, resistors can burn out and transformers can melt
  6031.    down, emitting noxious smoke.  However, this term is also used
  6032.    metaphorically.)  Compare {frotzed}.  2. Of people, exhausted.
  6033.    Said particularly of those who continue to work in such a state.
  6034.    Often used as an explanation or excuse.  "Yeah, I know that fix
  6035.    destroyed the file system, but I was fried when I put it in."
  6036.    Esp. common in conjunction with `brain': "My brain is fried
  6037.    today, I'm very short on sleep."
  6038.  
  6039. friode: /fri:'ohd/ [TMRC] n. A reversible (that is, fused or
  6040.    blown) diode.  Compare {fried}.
  6041.  
  6042. fritterware: n. An excess of capability that serves no productive
  6043.    end.  The canonical example is font-diddling software on the Mac
  6044.    (see {macdink}); the term describes anything that eats huge
  6045.    amounts of time for quite marginal gains in function but seduces
  6046.    people into using it anyway.
  6047.  
  6048.  
  6049. frob: /frob/ 1. n. [MIT] The {TMRC} definition was "FROB = a
  6050.    protruding arm or trunnion"; by metaphoric extension, a `frob' is
  6051.    any random small thing; an object that you can comfortably hold in
  6052.    one hand; something you can frob.  See {frobnitz}.  2. vt.
  6053.    Abbreviated form of {frobnicate}.  3. [from the {MUD} world]
  6054.    A command on some MUDs that changes a player's experience level
  6055.    (this can be used to make wizards); also, to request {wizard}
  6056.    privileges on the `professional courtesy' grounds that one is a
  6057.    wizard elsewhere.
  6058.  
  6059. frobnicate: /frob'ni-kayt/ vt. [Poss. derived from {frobnitz}, and
  6060.    usually abbreviated to {frob}, but `frobnicate' is recognized
  6061.    as the official full form.] To manipulate or adjust, to tweak.
  6062.    One frequently frobs bits or other 2-state devices.  Thus:
  6063.    "Please frob the light switch" (that is, flip it), but also
  6064.    "Stop frobbing that clasp; you'll break it".  One also sees the
  6065.    construction `to frob a frob'.  See {tweak} and {twiddle}.
  6066.    Usage: frob, twiddle, and tweak sometimes connote
  6067.    points along a continuum.  `Frob' connotes aimless manipulation;
  6068.    `twiddle' connotes gross manipulation, often a coarse search for
  6069.    a proper setting; `tweak' connotes fine-tuning.  If someone is
  6070.    turning a knob on an oscilloscope, then if he's carefully adjusting
  6071.    it, he is probably tweaking it; if he is just turning it but looking
  6072.    at the screen, he is probably twiddling it; but if he's just doing
  6073.    it because turning a knob is fun, he's frobbing it.  The variant
  6074.    `frobnosticate' has been recently reported.
  6075.  
  6076. frobnitz: /frob'nits/, pl. `frobnitzem' /frob'nit-zm/ or
  6077.    `frobni' /frob'ni:/ n. An unspecified physical object, a
  6078.    widget.  Also refers to electronic black boxes.  This rare form is
  6079.    usually abbreviated to `frotz', or more commonly to {frob}.
  6080.    Also used are `frobnule' (/frob'n[y]ool/) and `frobule'
  6081.    (/frob'yool/).  Starting perhaps in 1979, `frobozz'
  6082.    /fruh-boz'/ (plural: `frobbotzim' /fruh-bot'zm/) has also
  6083.    become very popular, largely through its exposure as a name via
  6084.    {Zork}.  These can also be applied to nonphysical objects, such
  6085.    as data structures.
  6086.  
  6087. frog: alt. `phrog' 1. interj. Term of disgust (we seem to have
  6088.    a lot of them).  2. Used as a name for just about anything.  See
  6089.    {foo}.  3. n. Of things, a crock.  4. n. Of people, somewhere
  6090.    in between a turkey and a toad.  5. `froggy': adj. Similar to
  6091.    `bagbiting' (see {bagbiter}), but milder.  "This froggy
  6092.    program is taking forever to run!"
  6093.  
  6094. front end: n. 1. An intermediary computer that does set-up and
  6095.    filtering for another (usually more powerful but less friendly)
  6096.    machine (a `back end').  2. What you're talking to when you
  6097.    have a conversation with someone who is making replies without
  6098.    paying attention.  "Look at the dancing elephants!"  "Uh-huh."
  6099.    "Do you know what I just said?"  "Sorry, you were talking to the
  6100.    front end."  See also {fepped out}.  3. Software that provides
  6101.    an interface to another program `behind' it, which may not be as
  6102.    user-friendly.  Probably from analogy with hardware front-ends (see
  6103.    sense 1) that interfaced with mainframes.
  6104.  
  6105. frotz: /frots/ 1. n. See {frobnitz}.  2. `mumble frotz': An
  6106.    interjection of very mild disgust.
  6107.  
  6108. frotzed: /frotst/ adj. {down} because of hardware problems.  Compare
  6109.    {fried}.  A machine that is merely frotzed may be fixable
  6110.    without replacing parts, but a fried machine is more seriously
  6111.    damaged.
  6112.  
  6113. frowney: n. (alt. `frowney face')  See {emoticon}.
  6114.  
  6115. fry: 1. vi. To fail.  Said especially of smoke-producing hardware
  6116.    failures.  More generally, to become non-working.  Usage: never
  6117.    said of software, only of hardware and humans.  See {fried},
  6118.    {magic smoke}.  2. vt. To cause to fail; to {roach}, {toast},
  6119.    or {hose} a piece of hardware.  Never used of software or humans,
  6120.    but compare {fried}.
  6121.  
  6122. FTP: /F-T-P/, *not* /fit'ip/ 1. [techspeak] n. The File
  6123.    Transfer Protocol for transmitting files between systems on the
  6124.    Internet.  2. vt. To {beam} a file using the File Transfer
  6125.    Protocol.  3. Sometimes used as a generic even for file transfers
  6126.    not using {FTP}.  "Lemme get a copy of `Wuthering
  6127.    Heights' ftp'd from uunet."
  6128.  
  6129. FUBAR: n. The Failed UniBus Address Register in a VAX.  A good
  6130.    example of how jargon can occasionally be snuck past the {suit}s;
  6131.    see {foobar}.
  6132.  
  6133. fuck me harder: excl. Sometimes uttered in response to egregious
  6134.    misbehavior, esp. in software, and esp. of misbehaviors which
  6135.    seem unfairly persistent (as though designed in by the imp of the
  6136.    perverse).  Often theatrically elaborated: "Aiighhh! Fuck me with
  6137.    a piledriver and 16 feet of curare-tipped wrought-iron fence
  6138.    *and no lubricants*!" The phrase is sometimes heard
  6139.    abbreviated `FMH' in polite company.
  6140.  
  6141.    [This entry is an extreme example of the hackish habit of coining
  6142.    elaborate and evocative terms for lossage. Here we see a quite
  6143.    self-conscious parody of mainstream expletives that has become a
  6144.    running gag in part of the hacker culture; it illustrates the
  6145.    hackish tendency to turn any situation, even one of extreme
  6146.    frustration, into an intellectual game (the point being, in this
  6147.    case, to creatively produce a long-winded description of the
  6148.    most anatomically absurd mental image possible --- the short forms
  6149.    implicitly allude to all the ridiculous long forms ever spoken).
  6150.    Scatological language is actually relatively uncommon among
  6151.    hackers, and there was some controversy over whether this entry
  6152.    ought to be included at all.  As it reflects a live usage
  6153.    recognizably peculiar to the hacker culture, we feel it is
  6154.    in the hackish spirit of truthfulness and opposition to all
  6155.    forms of censorship to record it here. --ESR & GLS]
  6156.  
  6157. FUD: /fuhd/ n. Defined by Gene Amdahl after he left IBM to found
  6158.    his own company: "FUD is the fear, uncertainty, and doubt that IBM
  6159.    sales people instill in the minds of potential customers who might
  6160.    be considering [Amdahl] products."  The idea, of course, was to
  6161.    persuade them to go with safe IBM gear rather than with
  6162.    competitors' equipment.  This was traditionally done by promising
  6163.    that Good Things would happen to people who stuck with IBM, but
  6164.    Dark Shadows loomed over the future of competitors' equipment or
  6165.    software.  See {IBM}.
  6166.  
  6167. FUD wars: /fuhd worz/ n. [from {FUD}] Political posturing engaged in
  6168.    by hardware and software vendors ostensibly committed to
  6169.    standardization but actually willing to fragment the market to
  6170.    protect their own shares.  The UNIX International vs. OSF conflict
  6171.    is but one outstanding example.
  6172.  
  6173. fudge: 1. vt. To perform in an incomplete but marginally acceptable
  6174.    way, particularly with respect to the writing of a program.  "I
  6175.    didn't feel like going through that pain and suffering, so I fudged
  6176.    it --- I'll fix it later."  2. n. The resulting code.
  6177.  
  6178. fudge factor: n. A value or parameter that is varied in an ad hoc way
  6179.    to produce the desired result.  The terms `tolerance' and
  6180.    {slop} are also used, though these usually indicate a one-sided
  6181.    leeway, such as a buffer that is made larger than necessary
  6182.    because one isn't sure exactly how large it needs to be, and it is
  6183.    better to waste a little space than to lose completely for not
  6184.    having enough.  A fudge factor, on the other hand, can often be
  6185.    tweaked in more than one direction.  A good example is the `fuzz'
  6186.    typically allowed in floating-point calculations: two numbers being
  6187.    compared for equality must be allowed to differ by a small amount;
  6188.    if that amount is too small, a computation may never terminate,
  6189.    while if it is too large, results will be needlessly inaccurate.
  6190.    Fudge factors are frequently adjusted incorrectly by programmers
  6191.    who don't fully understand their import.  See also {coefficient
  6192.    of X}.
  6193.  
  6194. fuel up: vi. To eat or drink hurriedly in order to get back to
  6195.    hacking.  "Food-p?"  "Yeah, let's fuel up."  "Time for a
  6196.    {great-wall}!"  See also {{oriental food}}.
  6197.  
  6198. fuggly: /fuhg'lee/ adj. Emphatic form of {funky}; funky +
  6199.    ugly).  Unusually for hacker jargon, this may actually derive from
  6200.    black street-jive.  To say it properly, the first syllable should
  6201.    be growled rather than spoken.  Usage: humorous.  "Man, the
  6202.    {{ASCII}}-to-{{EBCDIC}} code in that printer driver is
  6203.    *fuggly*."  See also {wonky}.
  6204.  
  6205. funky: adj. Said of something that functions, but in a slightly
  6206.    strange, klugey way.  It does the job and would be difficult to
  6207.    change, so its obvious non-optimality is left alone.  Often used to
  6208.    describe interfaces.  The more bugs something has that nobody has
  6209.    bothered to fix because workarounds are easier, the funkier it is.
  6210.    {TECO} and UUCP are funky.  The Intel i860's exception handling is
  6211.    extraordinarily funky.  Most standards acquire funkiness as they
  6212.    age.  "The new mailer is installed, but is still somewhat funky;
  6213.    if it bounces your mail for no reason, try resubmitting it."
  6214.    "This UART is pretty funky.  The data ready line is active-high in
  6215.    interrupt mode and active-low in DMA mode."  See {fuggly}.
  6216.  
  6217. funny money: n. 1. Notional `dollar' units of computing time and/or
  6218.    storage handed to students at the beginning of a computer course;
  6219.    also called `play money' or `purple money' (in implicit
  6220.    opposition to real or `green' money).  When your funny money
  6221.    ran out, your account froze and you needed to go to a professor to
  6222.    get more.  Fortunately, the plunging cost of timesharing cycles has
  6223.    made this less common.  The amounts allocated were almost
  6224.    invariably too small, even for the non-hackers who wanted to slide
  6225.    by with minimum work.  In extreme cases, the practice led to
  6226.    small-scale black markets in bootlegged computer accounts.  2. By
  6227.    extension, phantom money or quantity tickets of any kind used as a
  6228.    resource-allocation hack within a system.  Antonym: `real
  6229.    money'.
  6230.  
  6231. fuzzball: [TCP/IP hackers] n. A DEC LSI-11 running a particular
  6232.    suite of homebrewed software written by Dave Mills and assorted
  6233.    co-conspirators, used in the early 1980s for Internet protocol
  6234.    testbedding and experimentation.  These were used as NSFnet
  6235.    backbone sites in its early 56KB-line days; a few are still active
  6236.    on the Internet as of early 1991, doing odd jobs such as network
  6237.    time service.
  6238.  
  6239. = G =
  6240.  
  6241. G: [SI] pref.,suff. See {{quantifiers}}.
  6242.  
  6243. gabriel: /gay'bree-*l/ [for Dick Gabriel, SAIL LISP hacker and
  6244.    volleyball fanatic] n. An unnecessary (in the opinion of the
  6245.    opponent) stalling tactic, e.g., tying one's shoelaces or combing one's hair
  6246.    repeatedly, asking the time, etc.  Also used to refer to the
  6247.    perpetrator of such tactics.  Also, `pulling a Gabriel',
  6248.    `Gabriel mode'.
  6249.  
  6250. gag: vi. Equivalent to {choke}, but connotes more disgust. "Hey,
  6251.    this is FORTRAN code.  No wonder the C compiler gagged."  See also
  6252.    {barf}.
  6253.  
  6254. gang bang: n. The use of large numbers of loosely coupled
  6255.    programmers in an attempt to wedge a great many features into a
  6256.    product in a short time.  Though there have been memorable gang
  6257.    bangs (e.g., that over-the-weekend assembler port mentioned in
  6258.    Steven Levy's `Hackers'), most are perpetrated by large
  6259.    companies trying to meet deadlines and produce enormous buggy
  6260.    masses of code entirely lacking in {orthogonal}ity.  When
  6261.    market-driven managers make a list of all the features the
  6262.    competition has and assign one programmer to implement each, they
  6263.    often miss the importance of maintaining a coherent design.  See
  6264.    also {firefighting}, {Mongolian Hordes technique},
  6265.    {Conway's Law}.
  6266.  
  6267. garbage collect: vi. (also `garbage collection', n.) See {GC}.
  6268.  
  6269. garply: /gar'plee/ [Stanford] n. Another meta-syntactic variable (see
  6270.    {foo}); once popular among SAIL hackers.
  6271.  
  6272. gas: [as in `gas chamber'] 1. interj. A term of disgust and
  6273.    hatred, implying that gas should be dispensed in generous
  6274.    quantities, thereby exterminating the source of irritation.  "Some
  6275.    loser just reloaded the system for no reason!  Gas!"  2. interj. A
  6276.    suggestion that someone or something ought to be flushed out of
  6277.    mercy.  "The system's getting {wedged} every few minutes.
  6278.    Gas!"  3. vt.  To {flush} (sense 1).  "You should gas that old
  6279.    crufty software."  4. [IBM] n. Dead space in nonsequentially
  6280.    organized files that was occupied by data that has been deleted;
  6281.    the compression operation that removes it is called `degassing' (by
  6282.    analogy, perhaps, with the use of the same term in vacuum
  6283.    technology). 5. [IBM] n.  Empty space on a disk that has been
  6284.    clandestinely allocated against future need.
  6285.  
  6286. gaseous: adj. Deserving of being {gas}sed.  Disseminated by
  6287.    Geoff Goodfellow while at SRI; became particularly popular after
  6288.    the Moscone-Milk killings in San Francisco, when it was learned
  6289.    that the defendant Dan White (a politician who had supported
  6290.    Proposition 7) would get the gas chamber under Proposition 7 if
  6291.    convicted of first-degree murder (he was eventually convicted of
  6292.    manslaughter).
  6293.  
  6294. GC: /G-C/ [from LISP terminology; `Garbage Collect']
  6295.    1. vt. To clean up and throw away useless things.  "I think I'll
  6296.    GC the top of my desk today."  When said of files, this is
  6297.    equivalent to {GFR}.  2. vt. To recycle, reclaim, or put to
  6298.    another use.  3. n. An instantiation of the garbage collector
  6299.    process.
  6300.  
  6301.    `Garbage collection' is computer-science jargon for a particular
  6302.    class of strategies for dynamically reallocating computer memory.
  6303.    One such strategy involves periodically scanning all the data in
  6304.    memory and determining what is no longer accessible; useless data
  6305.    items are then discarded so that the memory they occupy can be
  6306.    recycled and used for another purpose.  Implementations of the LISP
  6307.    language usually use garbage collection.
  6308.  
  6309.    In jargon, the full phrase is sometimes heard but the {abbrev} is
  6310.    more frequently used because it is shorter.  Note that there is an
  6311.    ambiguity in usage that has to be resolved by context: "I'm going
  6312.    to garbage-collect my desk" usually means to clean out the
  6313.    drawers, but it could also mean to throw away or recycle the desk
  6314.    itself.
  6315.  
  6316. GCOS:: /jee'kohs/ n. A {quick-and-dirty} {clone} of
  6317.    System/360 DOS that emerged from GE around 1970; originally called
  6318.    GECOS (the General Electric Comprehensive Operating System).  Later
  6319.    kluged to support primitive timesharing and transaction processing.
  6320.    After the buyout of GE's computer division by Honeywell, the name
  6321.    was changed to General Comprehensive Operating System (GCOS).
  6322.    Other OS groups at Honeywell began referring to it as `God's Chosen
  6323.    Operating System', allegedly in reaction to the GCOS crowd's
  6324.    uninformed and snotty attitude about the superiority of their
  6325.    product.  All this might be of zero interest, except for two facts:
  6326.    (1) The GCOS people won the political war, and this led in the
  6327.    orphaning and eventual death of Honeywell {{Multics}}, and
  6328.    (2) GECOS/GCOS left one permanent mark on UNIX.  Some early UNIX
  6329.    systems at Bell Labs were GCOS machines for print spooling and
  6330.    various other services; the field added to `/etc/passwd' to
  6331.    carry GCOS ID information was called the `GECOS field' and
  6332.    survives today as the `pw_gecos' member used for the user's
  6333.    full name and other human-ID information.  GCOS later played a
  6334.    major role in keeping Honeywell a dismal also-ran in the mainframe
  6335.    market, and was itself ditched for UNIX in the late 1980s when
  6336.    Honeywell retired its aging {big iron} designs.
  6337.  
  6338. GECOS:: /jee'kohs/ n. See {{GCOS}}.
  6339.  
  6340. gedanken: /g*-don'kn/ adj. Ungrounded; impractical; not
  6341.    well-thought-out; untried; untested.  `Gedanken' is a German word
  6342.    for `thought'.  A thought experiment is one you carry out in your
  6343.    head.  In physics, the term `gedanken experiment' is used to
  6344.    refer to an experiment that is impractical to carry out, but useful
  6345.    to consider because you can reason about it theoretically.  (A
  6346.    classic gedanken experiment of relativity theory involves thinking
  6347.    about a man in an elevator accelerating through space.)  Gedanken
  6348.    experiments are very useful in physics, but you have to be careful.
  6349.    It's too easy to idealize away some important aspect of the real world
  6350.    in contructing your `apparatus'.
  6351.  
  6352.    Among hackers, accordingly, the word has a pejorative connotation.
  6353.    It is said of a project, especially one in artificial intelligence
  6354.    research, that is written up in grand detail (typically as a Ph.D.
  6355.    thesis) without ever being implemented to any great extent.  Such a
  6356.    project is usually perpetrated by people who aren't very good
  6357.    hackers or find programming distasteful or are just in a hurry.  A
  6358.    `gedanken thesis' is usually marked by an obvious lack of intuition
  6359.    about what is programmable and what is not, and about what does and
  6360.    does not constitute a clear specification of an algorithm.  See
  6361.    also {AI-complete}, {DWIM}.
  6362.  
  6363. geef: v. [ostensibly from `gefingerpoken'] vt. Syn. {mung}.  See
  6364.    also {blinkenlights}.
  6365.  
  6366. geek out: vi. To temporarily enter techno-nerd mode while in a
  6367.    non-hackish context, for example at parties held near computer
  6368.    equipment.  Especially used when you need to do something highly
  6369.    technical and don't have time to explain: "Pardon me while I geek
  6370.    out for a moment."  See {computer geek}.
  6371.  
  6372. gen: /jen/ n.,v. Short for {generate}, used frequently in both spoken
  6373.    and written contexts.
  6374.  
  6375. gender mender: n. A cable connector shell with either two male or two
  6376.    female connectors on it, used to correct the mismatches that result
  6377.    when some {loser} didn't understand the RS232C specification and
  6378.    the distinction between DTE and DCE.  Used esp. for RS-232C
  6379.    parts in either the original D-25 or the IBM PC's bogus D-9 format.
  6380.    Also called `gender bender', `gender blender', `sex
  6381.    changer', and even `homosexual adapter'; however, there appears
  6382.    to be some confusion as to whether a `male homosexual adapter' has
  6383.    pins on both sides (is male) or sockets on both sides (connects two
  6384.    males).
  6385.  
  6386. General Public Virus: n. Pejorative name for some versions of the
  6387.    {GNU} project {copyleft} or General Public License (GPL), which
  6388.    requires that any tools or {app}s incorporating copylefted code
  6389.    must be source-distributed on the same counter-commercial terms as
  6390.    GNU stuff.  Thus it is alleged that the copyleft `infects' software
  6391.    generated with GNU tools, which may in turn infect other software
  6392.    that reuses any of its code.  The Free Software Foundation's
  6393.    official position as of January 1991 is that copyright law limits
  6394.    the scope of the GPL to "programs textually incorporating
  6395.    significant amounts of GNU code", and that the `infection' is not
  6396.    passed on to third parties unless actual GNU source is transmitted
  6397.    (as in, for example, use of the Bison parser skeleton).
  6398.    Nevertheless, widespread suspicion that the {copyleft} language
  6399.    is `boobytrapped' has caused many developers to avoid using GNU
  6400.    tools and the GPL.  Recent (July 1991) changes in the language of
  6401.    the version 2.00 language may eliminate this problem.
  6402.  
  6403. generate: vt. To produce something according to an algorithm or
  6404.    program or set of rules, or as a (possibly unintended) side effect
  6405.    of the execution of an algorithm or program.  The opposite of
  6406.    {parse}.  This term retains its mechanistic connotations (though
  6407.    often humorously) when used of human behavior.  "The guy is
  6408.    rational most of the time, but mention nuclear energy around him
  6409.    and he'll generate {infinite} flamage."
  6410.  
  6411. gensym: /jen'sim/ [from MacLISP for `generated symbol'] 1. v.
  6412.    To invent a new name for something temporary, in such a way that
  6413.    the name is almost certainly not in conflict with one already in
  6414.    use.  2. n.  The resulting name.  The canonical form of a gensym is
  6415.    `Gnnnn' where nnnn represents a number; any LISP hacker would
  6416.    recognize G0093 (for example) as a gensym.  3. A freshly generated
  6417.    data structure with a gensymmed name.  These are useful for storing
  6418.    or uniquely identifying crufties (see {cruft}).
  6419.  
  6420. Get a life!: imp. Hacker-standard way of suggesting that the person
  6421.    to whom you are speaking has succumbed to terminal geekdom (see
  6422.    {computer geek}).  Often heard on {USENET}, esp. as a way of
  6423.    suggesting that the target is taking some obscure issue of
  6424.    {theology} too seriously.  This exhortation was popularized by
  6425.    William Shatner on a "Saturday Night Live" episode in a speech that
  6426.    ended "Get a *life*!", but some respondents believe it to
  6427.    have been in use before then.
  6428.  
  6429. Get a real computer!: imp. Typical hacker response to news that
  6430.    somebody is having trouble getting work done on a system that
  6431.    (a) is single-tasking, (b) has no hard disk, or (c) has an address
  6432.    space smaller than 4 megabytes.  This is as of mid-1991; note that
  6433.    the threshold for `real computer' rises with time, and it may well
  6434.    be (for example) that machines with character-only displays will be
  6435.    generally considered `unreal' in a few years (GLS points out that
  6436.    they already are in some circles).  See {essentials}, {bitty
  6437.    box}, and {toy}.
  6438.  
  6439. GFR: /G-F-R/ vt. [ITS] From `Grim File Reaper', an ITS and Lisp
  6440.    Machine utility.  To remove a file or files according to some
  6441.    program-automated or semi-automatic manual procedure, especially
  6442.    one designed to reclaim mass storage space or reduce name-space
  6443.    clutter (the original GFR actually moved files to tape).  Often
  6444.    generalized to pieces of data below file level.  "I used to have
  6445.    his phone number, but I guess I {GFR}ed it."  See also
  6446.    {prowler}, {reaper}.  Compare {GC}, which discards only
  6447.    provably worthless stuff.
  6448.  
  6449. gig: /jig/ or /gig/ [SI] n. See {{quantifiers}}.
  6450.  
  6451. giga-: /ji'ga/ or /gi'ga/ [SI] pref. See {{quantifiers}}.
  6452.  
  6453. GIGO: /gi:'goh/ [acronym] 1. `Garbage In, Garbage Out' ---
  6454.    usually said in response to {luser}s who complain that a program
  6455.    didn't complain about faulty data.  Also commonly used to describe
  6456.    failures in human decision making due to faulty, incomplete, or
  6457.    imprecise data.  2. `Garbage In, Gospel Out': this more recent
  6458.    expansion is a sardonic comment on the tendency human beings have
  6459.    to put excessive trust in `computerized' data.
  6460.  
  6461. gillion: /gil'y*n/ or /jil'y*n/ [formed from {giga-} by analogy
  6462.    with mega/million and tera/trillion] n. 10^9. Same as an
  6463.    American billion or a British `milliard'.  How one pronounces
  6464.    this depends on whether one speaks {giga-} with a hard or
  6465.    soft `g'.
  6466.  
  6467. GIPS: /gips/ or /jips/ [analogy with {MIPS}] n.
  6468.    Giga-Instructions per Second (also possibly `Gillions of
  6469.    Instructions per Second'; see {gillion}).  In 1991, this is used
  6470.    of only a handful of highly parallel machines, but this is expected
  6471.    to change.  Compare {KIPS}.
  6472.  
  6473. glark: /glark/ vt. To figure something out from context.  "The
  6474.    System III manuals are pretty poor, but you can generally glark the
  6475.    meaning from context."  Interestingly, the word was originally
  6476.    `glork'; the context was "This gubblick contains many nonsklarkish
  6477.    English flutzpahs, but the overall pluggandisp can be glorked [sic]
  6478.    from context" (David Moser, quoted by Douglas Hofstadter in his
  6479.    "Metamagical Themas" column in the January 1981 `Scientific
  6480.    American').  It is conjectured that hackish usage mutated the verb to
  6481.    `glark' because {glork} was already an established jargon
  6482.    term.  Compare {grok}, {zen}.
  6483.  
  6484. glass: [IBM] n. Synonym for {silicon}.
  6485.  
  6486. glass tty: /glas T-T-Y/ or /glas ti'tee/ n. A terminal that
  6487.    has a display screen but which, because of hardware or software
  6488.    limitations, behaves like a teletype or some other printing
  6489.    terminal, thereby combining the disadvantages of both: like a
  6490.    printing terminal, it can't do fancy display hacks, and like a
  6491.    display terminal, it doesn't produce hard copy.  An example is the
  6492.    early `dumb' version of Lear-Siegler ADM 3 (without cursor
  6493.    control).  See {tube}, {tty}.  See appendix A for an
  6494.    interesting true story about a glass tty.
  6495.  
  6496. glassfet: /glas'fet/ [by analogy with MOSFET, the acronym for
  6497.    `Metal-Oxide-Semiconductor Field-Effect Transistor'] n. Syn.
  6498.    {firebottle}, a humorous way to refer to a vacuum tube.
  6499.  
  6500. glitch: /glich/ [from German `glitschen' to slip, via Yiddish
  6501.    `glitshen', to slide or skid] 1. n. A sudden interruption in
  6502.    electric service, sanity, continuity, or program function.
  6503.    Sometimes recoverable.  An interruption in electric service is
  6504.    specifically called a `power glitch'.  This is of grave concern
  6505.    because it usually crashes all the computers.  In jargon, though, a
  6506.    hacker who got to the middle of a sentence and then forgot how he
  6507.    or she intended to complete it might say, "Sorry, I just
  6508.    glitched".  2. vi. To commit a glitch.  See {gritch}.  3. vt.
  6509.    [Stanford] To scroll a display screen, esp. several lines at a
  6510.    time.  {{WAITS}} terminals used to do this in order to avoid
  6511.    continuous scrolling, which is distracting to the eye.  4. obs.
  6512.    Same as {magic cookie}, sense 2.
  6513.  
  6514.    All these uses of `glitch' derive from the specific technical
  6515.    meaning the term has to hardware people.  If the inputs of a
  6516.    circuit change, and the outputs change to some {random} value for
  6517.    some very brief time before they settle down to the correct value,
  6518.    then that is called a glitch.  This may or may not be harmful,
  6519.    depending on what the circuit is connected to.  This term is
  6520.    techspeak, found in electronics texts.
  6521.  
  6522. glob: /glob/, *not* /glohb/ [UNIX] vt.,n. To expand special
  6523.    characters in a wildcarded name, or the act of so doing (the action
  6524.    is also called `globbing').  The UNIX conventions for filename
  6525.    wildcarding have become sufficiently pervasive that many hackers
  6526.    use some of them in written English, especially in email or news on
  6527.    technical topics.  Those commonly encountered include the following:
  6528.  
  6529.      *
  6530.           wildcard for any string (see also {UN*X})
  6531.   
  6532.      ?
  6533.           wildcard for any character (generally read this way only at the
  6534.           beginning or in the middle of a word)
  6535.  
  6536.      []
  6537.           delimits a wildcard matching any of the enclosed characters
  6538.  
  6539.      {}
  6540.           alternation of comma-separated alternatives; thus, `foo{baz,qux}'
  6541.           would be read as `foobaz' or `fooqux'
  6542.  
  6543.    Some examples: "He said his name was [KC]arl" (expresses
  6544.    ambiguity).  "I don't read talk.politics.*" (any of the
  6545.    talk.politics subgroups on {USENET}).  Other examples are given
  6546.    under the entry for {X}.  Compare {regexp}.
  6547.  
  6548.    Historical note: The jargon usage derives from `glob', the
  6549.    name of a subprogram that expanded wildcards in archaic pre-Bourne
  6550.    versions of the UNIX shell.
  6551.  
  6552. glork: /glork/ 1. interj. Term of mild surprise, usually tinged with
  6553.    outrage, as when one attempts to save the results of 2 hours of
  6554.    editing and finds that the system has just crashed.  2. Used as a
  6555.    name for just about anything.  See {foo}.  3. vt. Similar to
  6556.    {glitch}, but usually used reflexively.  "My program just glorked
  6557.    itself."  See also {glark}.
  6558.  
  6559. glue: n. Generic term for any interface logic or protocol that
  6560.    connects two component blocks.  For example,  {Blue
  6561.    Glue} is IBM's SNA protocol, and hardware designers call anything
  6562.    used to connect large VLSI's or circuit blocks `glue logic'.
  6563.  
  6564. gnarly: /nar'lee/ adj. Both {obscure} and {hairy} in the
  6565.    sense of complex.  "{Yow}! --- the tuned assembler
  6566.    implementation of BitBlt is really gnarly!"  From a similar but
  6567.    less specific usage in surfer slang.
  6568.  
  6569. GNU: /gnoo/, *not* /noo/ 1. [acronym: `GNU's Not UNIX!',
  6570.    see {{recursive acronym}}] A UNIX-workalike development effort of
  6571.    the Free Software Foundation headed by Richard Stallman
  6572.    (rms@gnu.ai.mit.edu).  GNU EMACS and the GNU C compiler, two tools
  6573.    designed for this project, have become very popular in hackerdom
  6574.    and elsewhere.  The GNU project was designed partly to proselytize
  6575.    for RMS's position that information is community property and all
  6576.    software source should be shared.  One of its slogans is "Help
  6577.    stamp out software hoarding!"  Though this remains controversial
  6578.    (because it implicitly denies any right of designers to own,
  6579.    assign, and sell the results of their labors), many hackers who
  6580.    disagree with RMS have nevertheless cooperated to produce large
  6581.    amounts of high-quality software for free redistribution under the
  6582.    Free Software Foundation's imprimatur.  See {EMACS},
  6583.    {copyleft}, {General Public Virus}.  2. Noted UNIX hacker
  6584.    John Gilmore (gnu@toad.com), founder of USENET's anarchic alt.*
  6585.    hierarchy.
  6586.  
  6587. GNUMACS: /gnoo'maks/ [contraction of `GNU EMACS'] Often-heard
  6588.    abbreviated name for the {GNU} project's flagship tool, {EMACS}.
  6589.    Used esp. in contrast with {GOSMACS}.
  6590.  
  6591. go flatline: [from cyberpunk SF, refers to flattening of EEG traces
  6592.    upon brain-death] vi., also adjectival `flatlined'. 1. To die,
  6593.    terminate, or fail, esp. irreversibly.  In hacker parlance, this is
  6594.    used of machines only, human death being considered somewhat too
  6595.    serious a matter to employ jargon-jokes.  2. To go completely
  6596.    quiescent; said of machines undergoing controlled shutdown.  "You
  6597.    can suffer file damage if you shut down UNIX but power off before
  6598.    the system has gone flatline."  3. Of a video tube, to fail by
  6599.    losing vertical scan, so all one sees is a bright horizontal line
  6600.    bisecting the screen.
  6601.  
  6602. go root: [UNIX] vi. To temporarily enter {root mode} in order
  6603.    to perform a privileged operation.  This use is deprecated in
  6604.    Australia, where v. `root' refers to animal sex.
  6605.  
  6606. go-faster stripes: [UK] Syn. {chrome}.
  6607.  
  6608. gobble: vt. To consume or to obtain.  The phrase `gobble up' tends to
  6609.    imply `consume', while `gobble down' tends to imply `obtain'.
  6610.    "The output spy gobbles characters out of a {tty} output buffer."
  6611.    "I guess I'll gobble down a copy of the documentation tomorrow."
  6612.    See also {snarf}.
  6613.  
  6614. Godzillagram: /god-zil'*-gram/ n. [from Japan's national hero]
  6615.    1. A network packet that in theory is a broadcast to every machine
  6616.    in the universe.  The typical case of this is an IP datagram whose
  6617.    destination IP address is [255.255.255.255].  Fortunately, few
  6618.    gateways are foolish enough to attempt to implement this!  2. A
  6619.    network packet of maximum size.  An IP Godzillagram has
  6620.    65,536 octets.
  6621.  
  6622. golden: adj. [prob. from folklore's `golden egg'] When used to
  6623.    describe a magnetic medium (e.g., `golden disk', `golden tape'),
  6624.    describes one containing a tested, up-to-spec, ready-to-ship
  6625.    software version.  Compare {platinum-iridium}.
  6626.  
  6627. golf-ball printer: n. The IBM 2741, a slow but letter-quality
  6628.    printing device and terminal based on the IBM Selectric typewriter.
  6629.    The `golf ball' was a round object bearing reversed embossed
  6630.    images of 88 different characters arranged on four meridians of
  6631.    latitude; one could change the font by swapping in a different golf
  6632.    ball.  This was the technology that enabled APL to use a
  6633.    non-EBCDIC, non-ASCII, and in fact completely non-standard
  6634.    character set.  This put it 10 years ahead of its time --- where it
  6635.    stayed, firmly rooted, for the next 20, until character displays
  6636.    gave way to programmable bit-mapped devices with the flexibility to
  6637.    support other character sets.
  6638.  
  6639. gonk: /gonk/ vt.,n. 1. To prevaricate or to embellish the truth
  6640.    beyond any reasonable recognition.  It is alleged that in German
  6641.    the term is (mythically) `gonken'; in Spanish the verb becomes
  6642.    `gonkar'.  "You're gonking me.  That story you just told me is a
  6643.    bunch of gonk."  In German, for example, "Du gonkst mir" (You're
  6644.    pulling my leg).  See also {gonkulator}.  2. [British] To grab some
  6645.    sleep at an odd time; compare {gronk out}.
  6646.  
  6647. gonkulator: /gon'kyoo-lay-tr/ [from the old "Hogan's Heroes" TV
  6648.    series] n. A pretentious piece of equipment that actually serves no
  6649.    useful purpose.  Usually used to describe one's least favorite
  6650.    piece of computer hardware.  See {gonk}.
  6651.  
  6652. gonzo: /gon'zoh/ [from Hunter S. Thompson] adj. Overwhelming;
  6653.    outrageous; over the top; very large, esp. used of collections of
  6654.    source code, source files, or individual functions.  Has some of the
  6655.    connotations of {moby} and {hairy}, but without the
  6656.    implication of obscurity or complexity.
  6657.  
  6658. Good Thing: n.,adj. Often capitalized; always pronounced as if
  6659.    capitalized.  1. Self-evidently wonderful to anyone in a position
  6660.    to notice: "The Trailblazer's 19.2Kbaud PEP mode with on-the-fly
  6661.    Lempel-Ziv compression is a Good Thing for sites relaying
  6662.    netnews."  2. Something that can't possibly have any ill
  6663.    side-effects and may save considerable grief later: "Removing the
  6664.    self-modifying code from that shared library would be a Good
  6665.    Thing."  3. When said of software tools or libraries, as in "YACC
  6666.    is a Good Thing", specifically connotes that the thing has
  6667.    drastically reduced a programmer's work load.  Oppose {Bad
  6668.    Thing}.
  6669.  
  6670. gorilla arm: n. The side-effect that destroyed touch-screens as a
  6671.    mainstream input technology despite a promising start in the early
  6672.    1980s.  It seems the designers of all those {spiffy} touch-menu
  6673.    systems failed to notice that humans aren't designed to hold their
  6674.    arms in front of their faces making small motions.  After more than
  6675.    a very few selections, the arm begins to feel sore, cramped, and
  6676.    oversized; hence `gorilla arm'.  This is now considered a classic
  6677.    cautionary tale to human-factors designers; "Remember the gorilla
  6678.    arm!" is shorthand for "How is this going to fly in *real*
  6679.    use?".
  6680.  
  6681. gorp: /gorp/ [CMU: perhaps from the canonical hiker's food, Good
  6682.    Old Raisins and Peanuts] Another metasyntactic variable, like
  6683.    {foo} and {bar}.
  6684.  
  6685. GOSMACS: /goz'maks/ [contraction of `Gosling EMACS'] n. The first
  6686.    {EMACS}-in-C implementation, predating but now largely eclipsed by
  6687.    {GNUMACS}.  Originally freeware; a commercial version is now
  6688.    modestly popular as `UniPress EMACS'.  The author (James Gosling)
  6689.    went on to invent {NeWS}.
  6690.  
  6691. Gosperism: /gos'p*r-izm/ A hack, invention, or saying by
  6692.    arch-hacker R. William (Bill) Gosper.  This notion merits its own
  6693.    term because there are so many of them.  Many of the entries in
  6694.    {HAKMEM} are Gosperisms; see also {life}.
  6695.  
  6696. gotcha: n. A {misfeature} of a system, especially a programming
  6697.    language or environment, that tends to breed bugs or mistakes because
  6698.    it behaves in an unexpected way.  For example, a classic gotcha in {C}
  6699.    is the fact that `if (a=b) {code;}' is syntactically valid
  6700.    and sometimes even correct.  It puts the value of `b' into `a'
  6701.    and then executes `code' if `a' is non-zero.  What the
  6702.    programmer probably meant was `if (a==b) {code;}',
  6703.    which executes `code' if `a' and `b' are equal.
  6704.  
  6705. GPL: /G-P-L/ n. Abbrev. for `General Public License' in
  6706.    widespread use; see {copyleft}.
  6707.  
  6708. GPV: /G-P-V/ n. Abbrev. for {General Public Virus} in
  6709.    widespread use.
  6710.  
  6711. grault: /grawlt/ n. Yet another meta-syntactic variable, invented by
  6712.    Mike Gallaher and propagated by the {GOSMACS} documentation.  See
  6713.    {corge}.
  6714.  
  6715. gray goo: n. A hypothetical substance composed of {sagan}s of
  6716.    sub-micron-sized self-replicating robots programmed to make copies
  6717.    of themselves out of whatever is available.  The image that goes
  6718.    with the term is one of the entire biosphere of Earth being
  6719.    eventually converted to robot goo.  This is the simplest of the
  6720.    {{nanotechnology}} disaster scenarios, easily refuted by arguments
  6721.    from energy requirements and elemental abundances.  Compare {blue
  6722.    goo}.
  6723.  
  6724. Great Renaming: n. The {flag day} on which all of the non-local
  6725.    groups on the {USENET} had their names changed from the net.-
  6726.    format to the current multiple-hierarchies scheme.
  6727.  
  6728. Great Runes: n. Uppercase-only text or display messages.  Some
  6729.    archaic operating systems still emit these.  See also {runes},
  6730.    {smash case}, {fold case}.
  6731.  
  6732.    Decades ago, back in the days when it was the sole supplier of
  6733.    long-distance hardcopy transmittal devices, the Teletype
  6734.    Corporation was faced with a major design choice.  To shorten code
  6735.    lengths and cut complexity in the printing mechanism, it had been
  6736.    decided that teletypes would use a monocase font, either ALL UPPER
  6737.    or all lower.  The question was, which one to choose.  A study was
  6738.    conducted on readability under various conditions of bad ribbon,
  6739.    worn print hammers, etc.  Lowercase won; it is less dense and has
  6740.    more distinctive letterforms, and is thus much easier to read both
  6741.    under ideal conditions and when the letters are mangled or partly
  6742.    obscured.  The results were filtered up through {management}.
  6743.    The chairman of Teletype killed the proposal because it failed one
  6744.    incredibly important criterion:
  6745.  
  6746.      "It would be impossible to spell the name of the Deity correctly."
  6747.  
  6748.    In this way (or so, at least, hacker folklore has it) superstition
  6749.    triumphed over utility.  Teletypes were the major input devices on
  6750.    most early computers, and terminal manufacturers looking for
  6751.    corners to cut naturally followed suit until well into the 1970s.
  6752.    Thus, that one bad call stuck us with Great Runes for thirty years.
  6753.  
  6754. great-wall: [from SF fandom] vi.,n. A mass expedition to an
  6755.    oriental restaurant, esp. one where food is served family-style
  6756.    and shared.  There is a common heuristic about the amount of food
  6757.    to order, expressed as "Get N - 1 entrees"; the value of N,
  6758.    which is the number of people in the group, can be inferred from
  6759.    context (see {N}).  See {{oriental food}}, {ravs},
  6760.    {stir-fried random}.
  6761.  
  6762. Green Book: n. 1. One of the three standard PostScript references:
  6763.    `PostScript Language Program Design', bylined `Adobe Systems'
  6764.    (Addison-Wesley, 1988; QA76.73.P67P66 ISBN; 0-201-14396-8); see
  6765.    also {Red Book}, {Blue Book}).  2. Informal name for one of
  6766.    the three standard references on SmallTalk: `Smalltalk-80:
  6767.    Bits of History, Words of Advice', by Glenn Krasner
  6768.    (Addison-Wesley, 1983; QA76.8.S635S58; ISBN 0-201-11669-3) (this,
  6769.    too, is associated with blue and red books).  3. The `X/Open
  6770.    Compatibility Guide'.  Defines an international standard {{UNIX}}
  6771.    environment that is a proper superset of POSIX/SVID; also includes
  6772.    descriptions of a standard utility toolkit, systems administrations
  6773.    features, and the like.  This grimoire is taken with particular
  6774.    seriousness in Europe.  See {Purple Book}.  4. The IEEE 1003.1
  6775.    POSIX Operating Systems Interface standard has been dubbed "The
  6776.    Ugly Green Book".  5. Any of the 1992 standards which will be
  6777.    issued by the CCITT's tenth plenary assembly.  Until now, these
  6778.    have changed color each review cycle (1984 was {Red Book}, 1988
  6779.    {Blue Book}); however, it is rumored that this convention is
  6780.    going to be dropped before 1992.  These include, among other
  6781.    things, the X.400 email standard and the Group 1 through 4 fax
  6782.    standards.  See also {{book titles}}.
  6783.  
  6784. green bytes: n. 1. Meta-information embedded in a file, such as
  6785.    the length of the file or its name; as opposed to keeping such
  6786.    information in a separate description file or record.  The term
  6787.    comes from an IBM user's group meeting (ca. 1962) at which these
  6788.    two approaches were being debated and the diagram of the file on
  6789.    the blackboard had the `green bytes' drawn in green.  2. By
  6790.    extension, the non-data bits in any self-describing format.  "A
  6791.    GIF file contains, among other things, green bytes describing the
  6792.    packing method for the image." Compare {out-of-band},
  6793.    {zigamorph}, {fence} (sense 1).
  6794.  
  6795. green card: n. [after the `IBM System/360 Reference Data'
  6796.    card] This is used for any summary of an assembly language, even if
  6797.    the color is not green.  Less frequently used now because of the
  6798.    decrease in the use of assembly language.  "I'll go get my green
  6799.    card so I can check the addressing mode for that instruction."
  6800.    Some green cards are actually booklets.
  6801.  
  6802.    The original green card became a yellow card when the System/370
  6803.    was introduced, and later a yellow booklet.  An anecdote from IBM
  6804.    refers to a scene that took place in a programmers' terminal room
  6805.    at Yorktown in 1978.  A luser overheard one of the programmers ask
  6806.    another "Do you have a green card?"  The other grunted and
  6807.    passed the first a thick yellow booklet.  At this point the luser
  6808.    turned a delicate shade of olive and rapidly left the room, never
  6809.    to return.  See also {card}.
  6810.  
  6811. green lightning: [IBM] n. 1. Apparently random flashing streaks on
  6812.    the face of 3278-9 terminals while a new symbol set is being
  6813.    downloaded.  This hardware bug was left deliberately unfixed, as
  6814.    some genius within IBM suggested it would let the user know that
  6815.    `something is happening'.  That, it certainly does.  Later
  6816.    microprocessor-driven IBM color graphics displays were actually
  6817.    *programmed* to produce green lightning!  2. [proposed] Any
  6818.    bug perverted into an alleged feature by adroit rationalization or
  6819.    marketing.  "Motorola calls the CISC cruft in the 88000
  6820.    architecture `compatibility logic', but I call it green
  6821.    lightning".  See also {feature}.
  6822.  
  6823. green machine: n. A computer or peripheral device that has been
  6824.    designed and built to military specifications for field equipment
  6825.    (that is, to withstand mechanical shock, extremes of temperature
  6826.    and humidity, and so forth).  Comes from the olive-drab `uniform'
  6827.    paint used for military equipment.
  6828.  
  6829. Green's Theorem: [TMRC] prov. For any story, in any group of people
  6830.    there will be at least one person who has not heard the story.
  6831.    [The name of this theorem is a play on a fundamental theorem in
  6832.    calculus. --- ESR]
  6833.  
  6834. grep: /grep/ [from the qed/ed editor idiom g/re/p , where
  6835.    re stands for a regular expression, to Globally search for the
  6836.    Regular Expression and Print the lines containing matches to it,
  6837.    via {{UNIX}} `grep(1)'] vt. To rapidly scan a file or file set
  6838.    looking for a particular string or pattern.  By extension, to look
  6839.    for something by pattern.  "Grep the bulletin board for the system
  6840.    backup schedule, would you?"  See also {vgrep}.
  6841.  
  6842. grind: vt. 1. [MIT and Berkeley] To format code, especially LISP
  6843.    code, by indenting lines so that it looks pretty.  This usage was
  6844.    associated with the MacLISP community and is now rare;
  6845.    {prettyprint} was and is the generic term for such
  6846.    operations.  2. [UNIX] To generate the formatted version of a
  6847.    document from the nroff, troff, TeX, or Scribe source.  The BSD
  6848.    program `vgrind(1)' grinds code for printing on a Versatec
  6849.    bitmapped printer.  3. To run seemingly interminably, esp. (but
  6850.    not necessarily) if performing some tedious and inherently useless
  6851.    task.  Similar to {crunch} or {grovel}.  Grinding has a
  6852.    connotation of using a lot of CPU time, but it is possible to grind
  6853.    a disk, network, etc.  See also {hog}.  4. To make the whole
  6854.    system slow.  "Troff really grinds a PDP-11."  5. `grind grind'
  6855.    excl. Roughly, "Isn't the machine slow today!"
  6856.  
  6857. grind crank: n. A mythical accessory to a terminal.  A crank on the
  6858.    side of a monitor, which when operated makes a zizzing noise and
  6859.    causes the computer to run faster.  Usually one does not refer to a
  6860.    grind crank out loud, but merely makes the appropriate gesture and
  6861.    noise.  See {grind} and {wugga wugga}.
  6862.  
  6863.    Historical note: At least one real machine actually had a grind
  6864.    crank --- the R1, a research machine built toward the end of the
  6865.    days of the great vacuum tube computers, in 1959.  R1 (also known as
  6866.    `The Rice Institute Computer' (TRIC) and later as `The Rice
  6867.    University Computer' (TRUC)) had a single-step/free-run switch for
  6868.    use when debugging programs.  Since single-stepping through a large
  6869.    program was rather tedious, there was also a crank with a cam and
  6870.    gear arrangement that repeatedly pushed the single-step button.
  6871.    This allowed one to `crank' through a lot of code, then slow down
  6872.    to single-step for a bit when you got near the code of interest, poke
  6873.    at some registers using the console typewriter, and then keep on
  6874.    cranking.
  6875.  
  6876. gritch: /grich/ 1. n. A complaint (often caused by a {glitch}).
  6877.    2. vi. To complain.  Often verb-doubled: "Gritch gritch".  3. A
  6878.    synonym for {glitch} (as verb or noun).
  6879.  
  6880. grok: /grok/, var. /grohk/ [from the novel `Stranger in
  6881.    a Strange Land', by Robert A. Heinlein, where it is a Martian word
  6882.    meaning literally `to drink' and metaphorically `to be one
  6883.    with'] vt. 1. To understand, usually in a global sense.  Connotes
  6884.    intimate and exhaustive knowledge.  Contrast {zen}, similar
  6885.    supernal understanding as a single brief flash.  See also
  6886.    {glark}.  2. Used of programs, may connote merely sufficient
  6887.    understanding.  "Almost all C compilers grok the `void' type
  6888.    these days."
  6889.  
  6890. gronk: /gronk/ [popularized by Johnny Hart's comic strip
  6891.    "B.C." but the word apparently predates that] vt. 1. To
  6892.    clear the state of a wedged device and restart it.  More severe
  6893.    than `to {frob}'.  2. [TMRC] To cut, sever, smash, or
  6894.    similarly disable.  3. The sound made by many 3.5-inch diskette
  6895.    drives.  In particular, the microfloppies on a Commodore Amiga go
  6896.    "grink, gronk".
  6897.  
  6898. gronk out: vi. To cease functioning.  Of people, to go home and go
  6899.    to sleep.  "I guess I'll gronk out now; see you all tomorrow."
  6900.  
  6901. gronked: adj. 1. Broken.  "The teletype scanner was gronked, so
  6902.    we took the system down."  2. Of people, the condition of feeling
  6903.    very tired or (less commonly) sick.  "I've been chasing that bug
  6904.    for 17 hours now and I am thoroughly gronked!"  Compare
  6905.    {broken}, which means about the same as {gronk} used of
  6906.    hardware, but connotes depression or mental/emotional problems in
  6907.    people.
  6908.  
  6909. grovel: vi. 1. To work interminably and without apparent progress.
  6910.    Often used transitively with `over' or `through'.  "The file
  6911.    scavenger has been groveling through the file directories for 10
  6912.    minutes now."  Compare {grind} and {crunch}.  Emphatic form:
  6913.    `grovel obscenely'.  2. To examine minutely or in complete detail.
  6914.    "The compiler grovels over the entire source program before
  6915.    beginning to translate it."  "I grovelled through all the
  6916.    documentation, but I still couldn't find the command I wanted."
  6917.  
  6918. grunge: /gruhnj/ n. 1. That which is grungy, or that which makes
  6919.    it so.  2. [Cambridge] Code which is inaccessible due to changes in
  6920.    other parts of the program.  The preferred term in North America is
  6921.    {dead code}.
  6922.  
  6923. gubbish: /guhb'*sh/ [a portmanteau of `garbage' and `rubbish'?]
  6924.    n. Garbage; crap; nonsense.  "What is all this gubbish?"  The
  6925.    opposite portmanteau `rubbage' is also reported.
  6926.  
  6927. guiltware: /gilt'weir/ n. 1. A piece of {freeware} decorated
  6928.    with a message telling one how long and hard the author worked on
  6929.    it and intimating that one is a no-good freeloader if one does not
  6930.    immediately send the poor suffering martyr gobs of money.
  6931.    2. {Shareware} that works.
  6932.  
  6933. gumby: /guhm'bee/ [from a class of Monty Python characters, poss.
  6934.    themselves named after the 1960s claymation character] n. An act of
  6935.    minor but conspicuous stupidity, often in `gumby maneuver' or
  6936.    `pull a gumby'.
  6937.  
  6938. gun: [ITS: from the `:GUN' command] vt. To forcibly
  6939.    terminate a program or job (computer, not career).  "Some idiot
  6940.    left a background process running soaking up half the cycles, so I
  6941.    gunned it."  Compare {can}.
  6942.  
  6943. gunch: /guhnch/ [TMRC] vt. To push, prod, or poke at a device
  6944.    that has almost produced the desired result.  Implies a threat to
  6945.    {mung}.
  6946.  
  6947. gurfle: /ger'fl/ interj. An expression of shocked disbelief.  "He
  6948.    said we have to recode this thing in FORTRAN by next week.
  6949.    Gurfle!"  Compare {weeble}.
  6950.  
  6951. guru: n. 1. [UNIX] An expert.  Implies not only {wizard} skill
  6952.    but also a history of being a knowledge resource for others.  Less
  6953.    often, used (with a qualifier) for other experts on other systems,
  6954.    as in `VMS guru'.  See {source of all good bits}.  2. Amiga
  6955.    equivalent of `panic' in UNIX.  When the system crashes, a
  6956.    cryptic message "GURU MEDITATION #XXXXXXXX.YYYYYYYY" appears,
  6957.    indicating what the problem was.  An Amiga guru can figure things
  6958.    out from the numbers.  Generally a {guru} event must be followed
  6959.    by a {Vulcan nerve pinch}.
  6960.  
  6961. = H =
  6962.  
  6963. h: [from SF fandom] infix. A method of `marking' common words,
  6964.    i.e., calling attention to the fact that they are being used in a
  6965.    nonstandard, ironic, or humorous way.  Originated in the fannish
  6966.    catchphrase "Bheer is the One True Ghod!" from decades ago.
  6967.    H-infix marking of `Ghod' and other words spread into the 1960s
  6968.    counterculture via underground comix, and into early hackerdom
  6969.    either from the counterculture or from SF fandom (the three overlapped
  6970.    heavily at the time).  More recently, the h infix has become an
  6971.    expected feature of benchmark names (Dhrystone, Rhealstone,
  6972.    etc.); this is prob. patterning on the original Whetstone (the name
  6973.    of a laboratory) but influenced by the fannish/counterculture
  6974.    h infix.
  6975.  
  6976. ha ha only serious: [from SF fandom, orig. as mutation of HHOK,
  6977.    `Ha Ha Only Kidding'] A phrase (often seen abbreviated as HHOS)
  6978.    that aptly captures the flavor of much hacker discourse.  Applied
  6979.    especially to parodies, absurdities, and ironic jokes that are both
  6980.    intended and perceived to contain a possibly disquieting amount of
  6981.    truth, or truths that are constructed on in-joke and self-parody.
  6982.    This lexicon contains many examples of ha-ha-only-serious in both
  6983.    form and content.  Indeed, the entirety of hacker culture is often
  6984.    perceived as ha-ha-only-serious by hackers themselves; to take it
  6985.    either too lightly or too seriously marks a person as an outsider,
  6986.    a {wannabee}, or in {larval stage}.  For further
  6987.    enlightenment on this subject, consult any Zen master.  See also
  6988.    {{Humor, Hacker}}, and {AI koans}.
  6989.  
  6990. hack: 1. n. Originally, a quick job that produces what is needed,
  6991.    but not well.  2. n. An incredibly good, and perhaps very
  6992.    time-consuming, piece of work that produces exactly what is needed.
  6993.    3. vt. To bear emotionally or physically.  "I can't hack this
  6994.    heat!"  4. vt. To work on something (typically a program).  In an
  6995.    immediate sense: "What are you doing?"  "I'm hacking TECO."
  6996.    In a general (time-extended) sense: "What do you do around here?"
  6997.    "I hack TECO."  More generally, "I hack `foo'" is roughly
  6998.    equivalent to "`foo' is my major interest (or project)".  "I
  6999.    hack solid-state physics."  5. vt. To pull a prank on.  See
  7000.    sense 2 and {hacker} (sense 5).  6. vi. To interact with a
  7001.    computer in a playful and exploratory rather than goal-directed
  7002.    way.  "Whatcha up to?"  "Oh, just hacking."  7. n. Short for
  7003.    {hacker}.  8. See {nethack}.
  7004.  
  7005.    Constructions on this term abound.  They include `happy
  7006.    hacking' (a farewell), `how's hacking?' (a friendly greeting
  7007.    among hackers) and `hack, hack' (a fairly content-free but
  7008.    friendly comment, often used as a temporary farewell).  For more on
  7009.    the meaning of hack see appendix A.  See also {neat hack},
  7010.    {real hack}.
  7011.  
  7012. hack attack: [poss. by analogy with `Big Mac Attack' from ads
  7013.    for the McDonald's fast-food chain; the variant `big hack attack'
  7014.    is reported] n. Nearly synonymous with {hacking run}, though the
  7015.    latter more strongly implies an all-nighter.
  7016.  
  7017. hack mode: n. 1. What one is in when hacking, of course.  2. More
  7018.    specifically, a Zen-like state of total focus on The Problem that
  7019.    may be achieved when one is hacking (this is why every good hacker
  7020.    is part mystic).  Ability to enter such concentration at will
  7021.    correlates strongly with wizardliness; it is one of the most
  7022.    important skills learned during {larval stage}.  Sometimes
  7023.    amplified as `deep hack mode'.
  7024.  
  7025.    Being yanked out of hack mode (see {priority interrupt}) may be
  7026.    experienced as a physical shock, and the sensation of being in it
  7027.    is more than a little habituating.  The intensity of this
  7028.    experience is probably by itself sufficient explanation for the
  7029.    existence of hackers, and explains why many resist being promoted
  7030.    out of positions where they can code.  See also {cyberspace}
  7031.    (sense 2).
  7032.  
  7033.    Some aspects of hackish etiquette will appear quite odd to an
  7034.    observer unaware of the high value placed on hack mode.  For
  7035.    example, if someone appears at your door, it is perfectly okay to
  7036.    hold up a hand (without turning one's eyes away from the screen) to
  7037.    avoid being interrupted.  One may read, type, and interact with the
  7038.    computer for quite some time before further acknowledging the
  7039.    other's presence (of course, he or she is reciprocally free to
  7040.    leave without a word).  The understanding is that you might be in
  7041.    {hack mode} with a lot of delicate {state} (sense 2) in your
  7042.    head, and you dare not {swap} that context out until you have
  7043.    reached a good point to pause. See also {juggling eggs}.
  7044.  
  7045. hack on: vt. To {hack}; implies that the subject is some
  7046.    pre-existing hunk of code that one is evolving, as opposed to
  7047.    something one might {hack up}.
  7048.  
  7049. hack together: vt. To throw something together so it will work.
  7050.    Unlike `kluge together' or {cruft together}, this does not
  7051.    necessarily have negative connotations.
  7052.  
  7053. hack up: vt. To {hack}, but generally implies that the result is
  7054.    a hack in sense 1 (a quick hack).  Contrast this with {hack on}.
  7055.    To `hack up on' implies a {quick-and-dirty} modification to an
  7056.    existing system.  Contrast {hacked up}; compare {kluge up},
  7057.    {monkey up}, {cruft together}.
  7058.  
  7059. hack value: n. Often adduced as the reason or motivation for
  7060.    expending effort toward a seemingly useless goal, the point being
  7061.    that the accomplished goal is a hack.  For example, MacLISP had
  7062.    features for reading and printing Roman numerals, which were
  7063.    installed purely for hack value.  See {display hack} for one
  7064.    method of computing hack value, but this cannot really be
  7065.    explained.  As a great artist once said of jazz: "If you hafta ask,
  7066.    you ain't never goin' to find out."
  7067.  
  7068. hack-and-slay: v. (also `hack-and-slash') 1. To play a {MUD}
  7069.    or go mudding, especially with the intention of {berserking} for
  7070.    pleasure.  2. To undertake an all-night programming/hacking
  7071.    session, interspersed with stints of mudding as a change of pace.
  7072.    This term arose on the British academic network amongst students
  7073.    who worked nights and logged onto Essex University's MUDs during
  7074.    public-access hours (2 A.M. to 7 A.M.).  Usually more
  7075.    mudding than work was done in these sessions.
  7076.  
  7077. hacked off: [analogous to `pissed off'] adj. Said of system
  7078.    administrators who have become annoyed, upset, or touchy owing to
  7079.    suspicions that their sites have been or are going to be victimized
  7080.    by crackers, or used for inappropriate, technically illegal, or
  7081.    even overtly criminal activities.  For example, having unreadable
  7082.    files in your home directory called `worm', `lockpick', or `goroot'
  7083.    would probably be an effective (as well as impressively obvious and
  7084.    stupid) way to get your sysadmin hacked off at you.
  7085.  
  7086. hacked up: adj. Sufficiently patched, kluged, and tweaked that the
  7087.    surgical scars are beginning to crowd out normal tissue (compare
  7088.    {critical mass}).  Not all programs that are hacked become
  7089.    `hacked up'; if modifications are done with some eye to coherence
  7090.    and continued maintainability, the software may emerge better for
  7091.    the experience.  Contrast {hack up}.
  7092.  
  7093. hacker: [originally, someone who makes furniture with an axe] n.
  7094.    1. A person who enjoys exploring the details of programmable
  7095.    systems and how to stretch their capabilities, as opposed to most
  7096.    users, who prefer to learn only the minimum necessary.  2. One who
  7097.    programs enthusiastically (even obsessively) or who enjoys
  7098.    programming rather than just theorizing about programming.  3. A
  7099.    person capable of appreciating {hack value}.  4. A person who is
  7100.    good at programming quickly.  5. An expert at a particular program,
  7101.    or one who frequently does work using it or on it; as in `a UNIX
  7102.    hacker'.  (Definitions 1 through 5 are correlated, and people who fit
  7103.    them congregate.)  6. An expert or enthusiast of any kind.  One
  7104.    might be an astronomy hacker, for example.  7. One who enjoys the
  7105.    intellectual challenge of creatively overcoming or circumventing
  7106.    limitations.  8. [deprecated] A malicious meddler who tries to
  7107.    discover sensitive information by poking around.  Hence `password
  7108.    hacker', `network hacker'.  See {cracker}.
  7109.  
  7110.    It is better to be described as a hacker by others than to describe
  7111.    oneself that way.  Hackers consider themselves something of an
  7112.    elite (a meritocracy based on ability), though one to which new
  7113.    members are gladly welcome.  There is thus a certain ego
  7114.    satisfaction to be had in identifying yourself as a hacker (but if
  7115.    you claim to be one and are not, you'll quickly be labeled
  7116.    {bogus}).
  7117.  
  7118. hacking run: [analogy with `bombing run' or `speed run'] n. A
  7119.    hack session extended long outside normal working times, especially
  7120.    one longer than 12 hours.  May cause you to `change phase the hard
  7121.    way' (see {phase}).
  7122.  
  7123. Hacking X for Y: [ITS] n. The information ITS made publicly
  7124.    available about each user (the INQUIR record) was a sort of form in
  7125.    which the user could fill out fields.  On display, two of these
  7126.    fields were combined into a project description of the form
  7127.    "Hacking X for Y" (e.g., `"Hacking perceptrons for
  7128.    Minsky"').  This form of description became traditional and has
  7129.    since been carried over to other systems with more general
  7130.    facilities for self-advertisement (such as UNIX {plan file}s).
  7131.  
  7132. Hackintosh: n. 1. An Apple Lisa that has been hacked into emulating a
  7133.    Macintosh (also called a `Mac XL').  2. A Macintosh assembled
  7134.    from parts theoretically belonging to different models in the line.
  7135.  
  7136. hackish: /hak'ish/ adj. (also {hackishness} n.) 1. Said of
  7137.    something that is or involves a hack.  2. Of or pertaining to
  7138.    hackers or the hacker subculture.  See also {true-hacker}.
  7139.  
  7140. hackishness: n. The quality of being or involving a hack.  This
  7141.    term is considered mildly silly.  Syn.  {hackitude}.
  7142.  
  7143. hackitude: n. Syn. {hackishness}; this word is considered sillier.
  7144.  
  7145. hair: [back-formation from {hairy}] n. The complications that
  7146.    make something hairy.  "Decoding {TECO} commands requires a
  7147.    certain amount of hair."  Often seen in the phrase `infinite
  7148.    hair', which connotes extreme complexity.  Also in `hairiferous'
  7149.    (tending to promote hair growth): "GNUMACS Elisp encourages lusers
  7150.    to write complex editing modes."  "Yeah, it's pretty hairiferous
  7151.    all right." (or just: "Hair squared!")
  7152.  
  7153. hairy: adj. 1. Annoyingly complicated.  "{DWIM} is incredibly
  7154.    hairy."  2. Incomprehensible.  "{DWIM} is incredibly hairy."
  7155.    3. Of people, high-powered, authoritative, rare, expert, and/or
  7156.    incomprehensible.  Hard to explain except in context: "He knows
  7157.    this hairy lawyer who says there's nothing to worry about."  See
  7158.    also {hirsute}.
  7159.  
  7160. HAKMEM: /hak'mem/ n. MIT AI Memo 239 (February 1972).  A
  7161.    legendary collection of neat mathematical and programming hacks
  7162.    contributed by many people at MIT and elsewhere.  (The title of the
  7163.    memo really is "HAKMEM", which is a 6-letterism for `hacks
  7164.    memo'.)  Some of them are very useful techniques, powerful
  7165.    theorems, or interesting unsolved problems, but most fall into the
  7166.    category of mathematical and computer trivia.  Here is a sampling
  7167.    of the entries (with authors), slightly paraphrased:
  7168.  
  7169.    Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less
  7170.    than 2^18.
  7171.  
  7172.    Item 46 (Rich Schroeppel): The most *probable* suit
  7173.    distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3,
  7174.    which is the most *evenly* distributed.  This is because the
  7175.    world likes to have unequal numbers: a thermodynamic effect saying
  7176.    things will not be in the state of lowest energy, but in the state
  7177.    of lowest disordered energy.
  7178.  
  7179.    Item 81 (Rich Schroeppel): Count the magic squares of order 5
  7180.    (that is, all the 5-by-5 arrangements of the numbers from 1 to 25
  7181.    such that all rows, columns, and diagonals add up to the same
  7182.    number).  There are about 320 million, not counting those that
  7183.    differ only by rotation and reflection.
  7184.  
  7185.    Item 154 (Bill Gosper): The myth that any given programming language is
  7186.    machine independent is easily exploded by computing the sum of
  7187.    powers of 2.  If the result loops with period = 1 with
  7188.    sign +, you are on a sign-magnitude machine.  If the result
  7189.    loops with period = 1 at -1, you are on a
  7190.    twos-complement machine.  If the result loops with period greater
  7191.    than 1, including the beginning, you are on a ones-complement
  7192.    machine.  If the result loops with period greater than 1, not
  7193.    including the beginning, your machine isn't binary --- the pattern
  7194.    should tell you the base.  If you run out of memory, you are on a
  7195.    string or bignum system.  If arithmetic overflow is a fatal error,
  7196.    some fascist pig with a read-only mind is trying to enforce machine
  7197.    independence.  But the very ability to trap overflow is machine
  7198.    dependent.  By this strategy, consider the universe, or, more
  7199.    precisely, algebra: Let X = the sum of many powers of 2 =
  7200.    ...111111.  Now add X to itself:
  7201.    X + X = ...111110 Thus, 2X = X - 1, so
  7202.    X = -1.  Therefore algebra is run on a machine (the
  7203.    universe) that is two's-complement.
  7204.  
  7205.    Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only
  7206.    number such that if you represent it on the {PDP-10} as both an
  7207.    integer and a floating-point number, the bit patterns of the two
  7208.    representations are identical.
  7209.  
  7210.    Item 176 (Gosper): The "banana phenomenon" was encountered when
  7211.    processing a character string by taking the last 3 letters typed
  7212.    out, searching for a random occurrence of that sequence in the
  7213.    text, taking the letter following that occurrence, typing it out,
  7214.    and iterating.  This ensures that every 4-letter string output
  7215.    occurs in the original.  The program typed BANANANANANANANA....  We
  7216.    note an ambiguity in the phrase, "the Nth occurrence of."  In one
  7217.    sense, there are five 00's in 0000000000; in another, there are
  7218.    nine.  The editing program TECO finds five.  Thus it finds only the
  7219.    first ANA in BANANA, and is thus obligated to type N next.  By
  7220.    Murphy's Law, there is but one NAN, thus forcing A, and thus a
  7221.    loop.  An option to find overlapped instances would be useful,
  7222.    although it would require backing up N - 1 characters before
  7223.    seeking the next N-character string.
  7224.  
  7225.    Note: This last item refers to a {Dissociated Press}
  7226.    implementation.  See also {banana problem}.
  7227.  
  7228.    HAKMEM also contains some rather more complicated mathematical and
  7229.    technical items, but these examples show some of its fun flavor.
  7230.  
  7231. hakspek: /hak'speek/ n. A shorthand method of spelling found on
  7232.    many British academic bulletin boards and {talker system}s.
  7233.    Syllables and whole words in a sentence are replaced by single
  7234.    ASCII characters the names of which are phonetically similar or
  7235.    equivalent, while multiple letters are usually dropped.  Hence,
  7236.    `for' becomes `4'; `two', `too', and `to' become `2'; `ck'
  7237.    becomes `k'.  "Before I see you tomorrow" becomes "b4 i c u
  7238.    2moro".  First appeared in London about 1986, and was probably
  7239.    caused by the slowness of available talker systems, which
  7240.    operated on archaic machines with outdated operating systems and
  7241.    no standard methods of communication.  Has become rarer since.
  7242.    See also {talk mode}.
  7243.  
  7244. hamster: n. 1. [Fairchild] A particularly slick little piece of code
  7245.    that does one thing well; a small, self-contained hack.  The image
  7246.    is of a hamster happily spinning its exercise wheel.  2. [UK] Any item
  7247.    of hardware made by Amstrad, a company famous for its cheap
  7248.    plastic PC-almost-compatibles.
  7249.  
  7250. hand-hacking: n. 1. The practice of translating {hot spot}s from
  7251.    an {HLL} into hand-tuned assembler, as opposed to trying to
  7252.    coerce the compiler into generating better code.  Both the term and
  7253.    the practice are becoming uncommon.  See {tune}, {bum}, {by
  7254.    hand}; syn.  with v. {cruft}.  2. More generally, manual
  7255.    construction or patching of data sets that would normally be
  7256.    generated by a translation utility and interpreted by another
  7257.    program, and aren't really designed to be read or modified by
  7258.    humans.
  7259.  
  7260. handshaking: n. Hardware or software activity designed to start or
  7261.    keep two machines or programs in synchronization as they {do
  7262.    protocol}.  Often applied to human activity; thus, a hacker might
  7263.    watch two people in conversation nodding their heads to indicate
  7264.    that they have heard each others' points and say "Oh, they're
  7265.    handshaking!".  See also {protocol}.
  7266.  
  7267. handwave: [poss. from gestures characteristic of stage magicians]
  7268.    1. v. To gloss over a complex point; to distract a listener; to
  7269.    support a (possibly actually valid) point with blatantly faulty
  7270.    logic.  2. n. The act of handwaving.  "Boy, what a handwave!"
  7271.  
  7272.    If someone starts a sentence with "Clearly..." or
  7273.    "Obviously..." or "It is self-evident that...", it is
  7274.    a good bet he is about to handwave (alternatively, use of these
  7275.    constructions in a sarcastic tone before a paraphrase of someone
  7276.    else's argument suggests that it is a handwave).  The theory behind
  7277.    this term is that if you wave your hands at the right moment, the
  7278.    listener may be sufficiently distracted to not notice that what you
  7279.    have said is {bogus}.  Failing that, if a listener does object,
  7280.    you might try to dismiss the objection with a wave of your hand.
  7281.  
  7282.    The use of this word is often accompanied by gestures: both hands
  7283.    up, palms forward, swinging the hands in a vertical plane pivoting
  7284.    at the elbows and/or shoulders (depending on the magnitude of the
  7285.    handwave); alternatively, holding the forearms in one position
  7286.    while rotating the hands at the wrist to make them flutter.  In
  7287.    context, the gestures alone can suffice as a remark; if a speaker
  7288.    makes an outrageously unsupported assumption, you might simply wave
  7289.    your hands in this way, as an accusation, far more eloquent than
  7290.    words could express, that his logic is faulty.
  7291.  
  7292. hang: v. 1. To wait for an event that will never occur.  "The
  7293.    system is hanging because it can't read from the crashed drive".
  7294.    See {wedged}, {hung}.  2. To wait for some event to occur; to
  7295.    hang around until something happens.  "The program displays a menu
  7296.    and then hangs until you type a character."  Compare {block}.
  7297.    3. To attach a peripheral device, esp. in the construction `hang
  7298.    off':  "We're going to hang another tape drive off the file
  7299.    server."  Implies a device attached with cables, rather than
  7300.    something that is strictly inside the machine's chassis.
  7301.  
  7302. Hanlon's Razor: prov. A corollary of {Finagle's Law}, similar to
  7303.    Occam's Razor, that reads "Never attribute to malice that which can
  7304.    be adequately explained by stupidity."  The derivation of the
  7305.    common title Hanlon's Razor is unknown; a similar epigram has been
  7306.    attributed to William James.  Quoted here because it seems to be a
  7307.    particular favorite of hackers, often showing up in {fortune
  7308.    cookie} files and the login banners of BBS systems and commercial
  7309.    networks.  This probably reflects the hacker's daily experience of
  7310.    environments created by well-intentioned but short-sighted people.
  7311.  
  7312. happily: adv.  Of software, used to emphasize that a program is
  7313.    unaware of some important fact about its environment, either
  7314.    because it has been fooled into believing a lie, or because it
  7315.    doesn't care.  The sense of `happy' here is not that of elation,
  7316.    but rather that of blissful ignorance.  "The program continues to
  7317.    run, happily unaware that its output is going to /dev/null."
  7318.  
  7319. hard boot: n. See {boot}.
  7320.  
  7321. hardcoded: adj. 1. Said of data inserted directly into a program,
  7322.    where it cannot be easily modified, as opposed to data in some
  7323.    {profile}, resource (see {de-rezz} sense 2), or environment
  7324.    variable that a {user} or hacker can easily modify.  2. In C,
  7325.    this is esp. applied to use of a literal instead of a
  7326.    `#define' macro (see {magic number}).
  7327.  
  7328. hardwarily: /hard-weir'*-lee/ adv. In a way pertaining to
  7329.    hardware.  "The system is hardwarily unreliable."  The adjective
  7330.    `hardwary' is *not* traditionally used, though it has recently
  7331.    been reported from the U.K.  See {softwarily}.
  7332.  
  7333. hardwired: adj. 1. In software, syn. for {hardcoded}.  2. By
  7334.    extension, anything that is not modifiable, especially in the sense
  7335.    of customizable to one's particular needs or tastes.
  7336.  
  7337. has the X nature: [seems to derive from Zen Buddhist koans of the
  7338.    form "Does an X have the Buddha-nature?"] adj. Common hacker
  7339.    construction for `is an X', used for humorous emphasis.  "Anyone
  7340.    who can't even use a program with on-screen help embedded in it
  7341.    truly has the {loser} nature!"  See also {the X that can be Y
  7342.    is not the true X}.
  7343.  
  7344. hash bucket: n. A notional receptacle into which more than one
  7345.    thing accessed by the same key or short code might be dropped.
  7346.    When you look up a name in the phone book (for example), you
  7347.    typically hash it by extracting its first letter; the hash buckets
  7348.    are the alphabetically ordered letter sections.  This is used as
  7349.    techspeak with respect to code that uses actual hash functions; in
  7350.    jargon, it is used for human associative memory as well.  Thus, two
  7351.    things `in the same hash bucket' may be confused with each other.
  7352.    "If you hash English words only by length, you get too many common
  7353.    grammar words in the first couple of hash buckets." Compare {hash
  7354.    collision}.
  7355.  
  7356. hash collision: [from the technical usage] n. (var. `hash
  7357.    clash') When used of people, signifies a confusion in associative
  7358.    memory or imagination, especially a persistent one (see
  7359.    {thinko}).  True story: One of us [ESR] was once on the phone
  7360.    with a friend about to move out to Berkeley.  When asked what he
  7361.    expected Berkeley to be like, the friend replied: "Well, I have
  7362.    this mental picture of naked women throwing Molotov cocktails, but
  7363.    I think that's just a collision in my hash tables."  Compare
  7364.    {hash bucket}.
  7365.  
  7366. hat: n. Common (spoken) name for the circumflex (`^', ASCII
  7367.    1011110) character.  See {ASCII} for other synonyms.
  7368.  
  7369. HCF: /H-C-F/ n. Mnemonic for `Halt and Catch Fire', any of
  7370.    several undocumented and semi-mythical machine instructions with
  7371.    destructive side-effects, supposedly included for test purposes on
  7372.    several well-known architectures going as far back as the IBM 360.
  7373.    The MC6800 microprocessor was the first for which the HCF opcode
  7374.    became widely known.  This instruction caused the processor to
  7375.    {toggle} a subset of the bus lines as rapidly as it could; in
  7376.    some configurations this can actually cause lines to burn
  7377.    up.
  7378.  
  7379. heads down: [Sun] adj. Concentrating, usually so heavily and for so
  7380.    long that everything outside the focus area is missed.  See also
  7381.    {hack mode} and {larval stage}, although it is not confined to
  7382.    fledgling hackers.
  7383.  
  7384. heartbeat: n. 1. The signal emitted by a Level 2 Ethernet
  7385.    transceiver at the end of every packet to show that the
  7386.    collision-detection circuit is still connected.  2. A periodic
  7387.    synchronization signal used by software or hardware, such as a bus
  7388.    clock or a periodic interrupt.  3. The `natural' oscillation
  7389.    frequency of a computer's clock crystal, before frequency division
  7390.    down to the machine's clock rate.  4. A signal emitted at regular
  7391.    intervals by software to demonstrate that it is still alive.
  7392.    Sometimes hardware is designed to reboot the machine if it stops
  7393.    hearing a heartbeat.  See also {breath-of-life packet}.
  7394.  
  7395. heavy metal: [Cambridge] n. Syn. {big iron}.
  7396.  
  7397. heavy wizardry: n. Code or designs that trade on a particularly
  7398.    intimate knowledge or experience of a particular operating system
  7399.    or language or complex application interface.  Distinguished from
  7400.    {deep magic}, which trades more on arcane *theoretical*
  7401.    knowledge.  Writing device drivers is heavy wizardry; so is
  7402.    interfacing to {X} (sense 2) without a toolkit.  Esp. found in
  7403.    comments similar to "Heavy wizardry begins here ...".  Compare
  7404.    {voodoo programming}.
  7405.  
  7406. heavyweight: adj. High-overhead; {baroque}; code-intensive;
  7407.    featureful, but costly.  Esp. used of communication protocols,
  7408.    language designs, and any sort of implementation in which maximum
  7409.    generality and/or ease of implementation has been pushed at the
  7410.    expense of mundane considerations such as speed, memory utilization,
  7411.    and startup time.  {EMACS} is a heavyweight editor; {X} is an
  7412.    *extremely* heavyweight window system.  This term isn't
  7413.    pejorative, but one man's heavyweight is another's {elephantine}
  7414.    and a third's {monstrosity}.  Oppose `lightweight'.
  7415.  
  7416. heisenbug: /hi:'zen-buhg/ [from Heisenberg's Uncertainty
  7417.    Principle in quantum physics] n. A bug that disappears or alters
  7418.    its behavior when one attempts to probe or isolate it.  Antonym of
  7419.    {Bohr bug}; see also {mandelbug}.  In C, nine out of ten heisenbugs
  7420.    result from either {fandango on core} phenomena (esp. lossage
  7421.    related to corruption of the malloc {arena}) or errors that
  7422.    {smash the stack}.
  7423.  
  7424. Helen Keller mode: n. State of a hardware or software system that
  7425.    is deaf, dumb, and blind, i.e., accepting no input and generating no
  7426.    output, usually due to an infinite loop or some other excursion
  7427.    into {deep space}.  (Unfair to the real Helen Keller, whose
  7428.    success at learning speech was triumphant.)  See also
  7429.    {go flatline}, {catatonic}.
  7430.  
  7431. hello, sailor!: interj. Occasional West Coast equivalent of
  7432.    {hello, world}; seems to have originated at SAIL, later
  7433.    associated with the game {Zork} (which also included "hello,
  7434.    aviator" and "hello, implementor").  Originally from the
  7435.    traditional hooker's greeting to a swabbie fresh off the boat, of
  7436.    course.
  7437.  
  7438. hello, wall!: excl. See {wall}.
  7439.  
  7440. hello, world: interj. 1. The canonical minimal test message in the
  7441.    C/UNIX universe.  2. Any of the minimal programs that emit this
  7442.    message.  Traditionally, the first program a C coder is supposed to
  7443.    write in a new environment is one that just prints "hello, world"
  7444.    to standard output (and indeed it is the first example program
  7445.    in {K&R}).  Environments that generate an unreasonably large
  7446.    executable for this trivial test or which require a {hairy}
  7447.    compiler-linker invocation to generate it are considered to
  7448.    {lose} (see {X}).  3. Greeting uttered by a hacker making an
  7449.    entrance or requesting information from anyone present.  "Hello,
  7450.    world!  Is the {VAX} back up yet?"
  7451.  
  7452. hex: n. 1. Short for {{hexadecimal}}, base 16.  2. A 6-pack
  7453.    of anything (compare {quad}, sense 2).  Neither usage has
  7454.    anything to do with {magic} or {black art}, though the pun is
  7455.    appreciated and occasionally used by hackers.  True story: As a
  7456.    joke, some hackers once offered some surplus ICs for sale to be
  7457.    worn as protective amulets against hostile magic.  The chips were,
  7458.    of course, hex inverters.
  7459.  
  7460. hexadecimal:: n. Base 16.  Coined in the early 1960s to replace
  7461.    earlier `sexadecimal', which was too racy and amusing for stuffy
  7462.    IBM, and later adopted by the rest of the industry.
  7463.  
  7464.    Actually, neither term is etymologically pure.  If we take `binary'
  7465.    to be paradigmatic, the most etymologically correct term for
  7466.    base 10, for example, is `denary', which
  7467.    comes from `deni' (ten at a time, ten each), a Latin `distributive'
  7468.    number; the corresponding term for base-16 would be something like
  7469.    `sendenary'.  `Decimal' is from an ordinal number; the
  7470.    corresponding prefix for 6 would imply something like
  7471.    `sextidecimal'.  The `sexa-' prefix is Latin but incorrect in this
  7472.    context, and `hexa-' is Greek.  The word `octal' is similarly
  7473.    incorrect; a correct form would be `octaval' (to go with decimal),
  7474.    or `octonary' (to go with binary).  If anyone ever implements a
  7475.    base-3 computer, computer scientists will be faced with the
  7476.    unprecedented dilemma of a choice between two *correct* forms;
  7477.    both `ternary' and `trinary' have a claim to this throne.
  7478.  
  7479. hexit: /hek'sit/ n. A hexadecimal digit (0--9, and A--F or a--f).
  7480.    Used by people who claim that there are only *ten* digits,
  7481.    dammit; sixteen-fingered human beings are rather rare, despite what
  7482.    some keyboard designs might seem to imply (see {space-cadet
  7483.    keyboard}).
  7484.  
  7485. hidden flag: [scientific computation] n. An extra option added to a
  7486.    routine without changing the calling sequence.  For example,
  7487.    instead of adding an explicit input variable to instruct a routine
  7488.    to give extra diagnostic output, the programmer might just add a
  7489.    test for some otherwise meaningless feature of the existing inputs,
  7490.    such as a negative mass.  Liberal use of hidden flags can make a
  7491.    program very hard to debug and understand.
  7492.  
  7493. high bit: [from `high-order bit'] n. 1. The most significant
  7494.    bit in a byte.  2. By extension, the most significant part of
  7495.    something other than a data byte: "Spare me the whole {saga},
  7496.    just give me the high bit."  See also {meta bit}, {hobbit},
  7497.    {dread high-bit disease}, and compare the mainstream slang
  7498.    `bottom line'.
  7499.  
  7500. high moby: /hi:' mohb'ee/ n. The high half of a 512K {PDP-10}'s
  7501.    physical address space; the other half was of course the low moby.  This
  7502.    usage has been generalized in a way that has outlasted the
  7503.    {PDP-10}; for example, at the 1990 Washington D.C. Area Science
  7504.    Fiction Conclave (Disclave), when a miscommunication resulted in two
  7505.    separate wakes being held in commemoration of the shutdown of MIT's
  7506.    last {{ITS}} machines, the one on the upper floor was dubbed the
  7507.    `high moby' and the other the `low moby'.  All parties involved
  7508.    {grok}ked this instantly.  See {moby}.
  7509.  
  7510. highly: [scientific computation] adv. The preferred modifier for
  7511.    overstating an understatement.  As in: `highly nonoptimal', the
  7512.    worst possible way to do something; `highly nontrivial', either
  7513.    impossible or requiring a major research project; `highly
  7514.    nonlinear', completely erratic and unpredictable; `highly
  7515.    nontechnical', drivel written for {luser}s, oversimplified to the
  7516.    point of being misleading or incorrect (compare {drool-proof
  7517.    paper}).  In other computing cultures, postfixing of {in the
  7518.    extreme} might be preferred.
  7519.  
  7520. hirsute: adj. Occasionally used humorously as a synonym for {hairy}.
  7521.  
  7522. HLL: /H-L-L/ n. [High-Level Language (as opposed to assembler)]
  7523.    Found primarily in email and news rather than speech.  Rarely, the
  7524.    variants `VHLL' and `MLL' are found.  VHLL stands for `Very-High-Level
  7525.    Language' and is used to describe a {bondage-and-discipline
  7526.    language} that the speaker happens to like; Prolog and Backus's FP
  7527.    are often called VHLLs.  `MLL' stands for `Medium-Level Language' and is
  7528.    sometimes used half-jokingly to describe {C}, alluding to its
  7529.    `structured-assembler' image.  See also {languages of choice}.
  7530.  
  7531. hobbit: n. 1. The High Order Bit of a byte; same as the {meta
  7532.    bit} or {high bit}.  2. The non-ITS name of vad@ai.mit.edu
  7533.    (*Hobbit*), master of lasers.
  7534.  
  7535. hog: n.,vt. 1. Favored term to describe programs or hardware that
  7536.    seem to eat far more than their share of a system's resources,
  7537.    esp. those which noticeably degrade interactive response.
  7538.    *Not* used of programs that are simply extremely large or
  7539.    complex or that are merely painfully slow themselves (see {pig,
  7540.    run like a}).  More often than not encountered in qualified forms,
  7541.    e.g., `memory hog', `core hog', `hog the processor', `hog
  7542.    the disk'.  "A controller that never gives up the I/O bus
  7543.    gets killed after the bus-hog timer expires."   2. Also said
  7544.    of *people* who use more than their fair share of resources
  7545.    (particularly disk, where it seems that 10% of the people use 90%
  7546.    of the disk, no matter how big the disk is or how many people use
  7547.    it).  Of course, once disk hogs fill up one filesystem, they
  7548.    typically find some other new one to infect, claiming to the
  7549.    sysadmin that they have an important new project to complete.
  7550.  
  7551. holy wars: [from {USENET}, but may predate it] n. {flame
  7552.    war}s over {religious issues}.  The paper by Danny Cohen that
  7553.    popularized the terms {big-endian} and {little-endian} in
  7554.    connection with the LSB-first/MSB-first controversy was entitled
  7555.    "On Holy Wars and a Plea for Peace".  Other perennial Holy
  7556.    Wars have included {EMACS} vs. {vi}, my personal computer vs.
  7557.    everyone else's personal computer, {{ITS}} vs. {{UNIX}},
  7558.    {{UNIX}} vs. {VMS}, {BSD} UNIX vs. {USG UNIX}, {C} vs.
  7559.    {{Pascal}}, {C} vs. {LISP}, etc., ad nauseam.  The
  7560.    characteristic that distinguishes {holy wars} from normal
  7561.    technical disputes is that in a holy wars most of the participants
  7562.    spend their time trying to pass off personal value choices and
  7563.    cultural attachments as objective technical evaluations. See also
  7564.    {theology}.
  7565.  
  7566. home box: n. A hacker's personal machine, especially one he or she
  7567.    owns.  "Yeah?  Well, *my* home box runs a full 4.2 BSD, so
  7568.    there!"
  7569.  
  7570. hook: n. A software or hardware feature included in order to
  7571.    simplify later additions or changes by a user.  For example,
  7572.    a simple program that prints numbers might always print them in
  7573.    base 10, but a more flexible version would let a variable
  7574.    determine what base to use; setting the variable to 5 would make
  7575.    the program print numbers in base 5.  The variable is a simple
  7576.    hook.  An even more flexible program might examine the variable
  7577.    and treat a value of 16 or less as the base to use, but treat any
  7578.    other number as the address of a user-supplied routine for printing
  7579.    a number.  This is a {hairy} but powerful hook; one can then write a
  7580.    routine to print numbers as Roman numerals, say, or as Hebrew
  7581.    characters, and plug it into the program through the hook.  Often
  7582.    the difference between a good program and a superb one is that the
  7583.    latter has useful hooks in judiciously chosen places.  Both may do
  7584.    the original job about equally well, but the one with the hooks is
  7585.    much more flexible for future expansion of capabilities ({EMACS},
  7586.    for example, is *all* hooks).  The term `user exit' is
  7587.    synonymous but much more formal and less hackish.
  7588.  
  7589. hop: n. One file transmission in a series required to get a file
  7590.    from point A to point B on a store-and-forward network.  On such
  7591.    networks (including {UUCPNET} and {FidoNet}), the important
  7592.    inter-machine metric is the number of hops in the shortest path
  7593.    between them, rather than their geographical separation.  See
  7594.    {bang path}.
  7595.  
  7596. hose: 1. vt. To make non-functional or greatly degraded in
  7597.    performance.  "That big ray-tracing program really hoses the
  7598.    system."  See {hosed}.  2. n. A narrow channel through which
  7599.    data flows under pressure.  Generally denotes data paths that
  7600.    represent performance bottlenecks.  3. n. Cabling, especially
  7601.    thick Ethernet cable.  This is sometimes called `bit hose' or
  7602.    `hosery' (play on `hosiery') or `etherhose'.  See also
  7603.    {washing machine}.
  7604.  
  7605. hosed: adj. Same as {down}.  Used primarily by UNIX hackers.
  7606.    Humorous: also implies a condition thought to be relatively easy to
  7607.    reverse.  Probably derived from the Canadian slang `hoser'
  7608.    popularized by the Bob and Doug Mackenzie skits on SCTV.  See
  7609.    {hose}.  It is also widely used of people in the mainstream sense
  7610.    of `in an extremely unfortunate situation'.
  7611.  
  7612.    Once upon a time, a Cray that had been experiencing periodic
  7613.    difficulties crashed, and it was announced to have been hosed.
  7614.    It was discovered that the crash was due to the disconnection of
  7615.    some coolant hoses.  The problem was corrected, and users were then
  7616.    assured that everything was OK because the system had been rehosed.
  7617.    See also {dehose}.
  7618.  
  7619. hot spot: n. 1. [primarily used by C/UNIX programmers, but
  7620.    spreading] It is received wisdom that in most programs, less than
  7621.    10% of the code eats 90% of the execution time; if one were to
  7622.    graph instruction visits versus code addresses, one would typically
  7623.    see a few huge spikes amidst a lot of low-level noise.  Such spikes
  7624.    are called `hot spots' and are good candidates for heavy
  7625.    optimization or {hand-hacking}.  The term is especially used of
  7626.    tight loops and recursions in the code's central algorithm, as
  7627.    opposed to (say) initial set-up costs or large but infrequent I/O
  7628.    operations.  See {tune}, {bum}, {hand-hacking}.  2. The
  7629.    active location of a cursor on a bit-map display.  "Put the
  7630.    mouse's hot spot on the `ON' widget and click the left button."
  7631.    3. In a massively parallel computer with shared memory, the one
  7632.    location that all 10,000 processors are trying to read or
  7633.    write at once (perhaps because they are all doing a {busy-wait}
  7634.    on the same lock).
  7635.  
  7636. house wizard: [prob. from ad-agency lingo, `house freak'] n. A
  7637.    hacker occupying a technical-specialist, R&D, or systems position
  7638.    at a commercial shop.  A really effective house wizard can have
  7639.    influence out of all proportion to his/her ostensible rank and
  7640.    still not have to wear a suit.  Used esp. of UNIX wizards.  The
  7641.    term `house guru' is equivalent.
  7642.  
  7643. HP-SUX: /H-P suhks/ n. Unflattering hackerism for HP-UX,
  7644.    Hewlett-Packard's UNIX port.  Features some truly unique bogosities
  7645.    in the filesystem internals and elsewhere which occasionally create
  7646.    portability problems.  HP-UX is often referred to as `hockey-pux'
  7647.    inside HP, and one respondent claims that the proper pronunciation
  7648.    is /H-P ukkkhhhh/ as though one were about to spit.  Another such
  7649.    alternate spelling and pronunciation is "H-PUX" /H-puhks/.
  7650.    Hackers at HP/Apollo (the former Apollo Computers which was swallowed
  7651.    by HP in 1989) have been heard to complain that Mr. Packard should
  7652.    have pushed to have his name first, if for no other reason than the
  7653.    greater eloquence of the resulting acronym.  Compare {buglix}.
  7654.    See also {Telerat}, {sun-stools}, {terminak}.
  7655.  
  7656. huff: v. To compress data using a Huffman code.  Various programs
  7657.    that use such methods have been called `HUFF' or some variant
  7658.    thereof.  Oppose {puff}.  Compare {crunch}, {compress}.
  7659.  
  7660. humma: // excl. A filler word used on various `chat' and
  7661.    `talk' programs when you had nothing to say but felt that it was
  7662.    important to say something.  The word apparently originated (at
  7663.    least with this definition) on the MECC Timeshare System (MTS, a
  7664.    now-defunct educational time-sharing system running in Minnesota
  7665.    during the 1970s and the early 1980s) but was later sighted on
  7666.    early UNIX systems.
  7667.  
  7668. Humor, Hacker:: n. A distinctive style of shared intellectual humor
  7669.    found among hackers, having the following distinctive
  7670.    characteristics:
  7671.  
  7672.    1. Fascination with form-vs.-content jokes, paradoxes, and humor
  7673.    having to do with confusion of metalevels (see {meta}).  One way
  7674.    to make a hacker laugh: hold a red index card in front of him/her
  7675.    with "GREEN" written on it, or vice-versa (note, however, that
  7676.    this is funny only the first time).
  7677.  
  7678.    2. Elaborate deadpan parodies of large intellectual constructs, such
  7679.    as specifications (see {write-only memory}), standards documents,
  7680.    language descriptions (see {INTERCAL}), and even entire scientific
  7681.    theories (see {quantum bogodynamics}, {computron}).
  7682.  
  7683.    3. Jokes that involve screwily precise reasoning from bizarre,
  7684.    ludicrous, or just grossly counter-intuitive premises.
  7685.  
  7686.    4. Fascination with puns and wordplay.
  7687.  
  7688.    5. A fondness for apparently mindless humor with subversive
  7689.    currents of intelligence in it --- for example, old Warner Brothers
  7690.    and Rocky & Bullwinkle cartoons, the Marx brothers, the early
  7691.    B-52s, and Monty Python's Flying Circus.  Humor that combines this
  7692.    trait with elements of high camp and slapstick is especially
  7693.    favored.
  7694.  
  7695.    6. References to the symbol-object antinomies and associated ideas
  7696.    in Zen Buddhism and (less often) Taoism.  See {has the X nature},
  7697.    {Discordianism}, {zen}, {ha ha only serious}, {AI koans}.
  7698.  
  7699.    See also {filk}, {retrocomputing}, and appendix B.  If you have an
  7700.    itchy feeling that all 6 of these traits are really aspects of
  7701.    one thing that is incredibly difficult to talk about exactly, you
  7702.    are (a) correct and (b) responding like a hacker.  These traits are
  7703.    also recognizable (though in a less marked form) throughout
  7704.    {{science-fiction fandom}}.
  7705.  
  7706. hung: [from `hung up'] adj. Equivalent to {wedged}, but more
  7707.    common at UNIX/C sites.  Not generally used of people.  Syn. with
  7708.    {locked up}, {wedged}; compare {hosed}.  See also {hang}.
  7709.    A hung state is distinguished from {crash}ed or {down}, where the
  7710.    program or system is also unusable but because it is not running
  7711.    rather than because it is waiting for something.  However, the
  7712.    recovery from both situations is often the same.
  7713.  
  7714. hungry puppy: n. Syn. {slopsucker}.
  7715.  
  7716. hungus: /huhng'g*s/ [perhaps related to slang `humongous'] adj.
  7717.    Large, unwieldy, usually unmanageable.  "TCP is a hungus piece of
  7718.    code."  "This is a hungus set of modifications."
  7719.  
  7720. hyperspace: /hi:'per-spays/ n. A memory location that is *far*
  7721.    away from where the program counter should be pointing, often
  7722.    inaccessible because it is not even mapped in.  "Another core
  7723.    dump --- looks like the program jumped off to hyperspace
  7724.    somehow."  (Compare {jump off into never-never land}.)  This
  7725.    usage is from the SF notion of a spaceship jumping `into
  7726.    hyperspace', that is, taking a shortcut through higher-dimensional
  7727.    space --- in other words, bypassing this universe.  The variant
  7728.    `east hyperspace' is recorded among CMU and Bliss hackers.
  7729.  
  7730. = I =
  7731.  
  7732. I didn't change anything!: interj. An aggrieved cry often heard as
  7733.    bugs manifest during a regression test.  The {canonical} reply to
  7734.    this assertion is "Then it works just the same as it did before,
  7735.    doesn't it?"  See also {one-line fix}.  This is also heard from
  7736.    applications programmers trying to blame an obvious applications
  7737.    problem on an unrelated systems software change, for example a
  7738.    divide-by-0 fault after terminals were added to a network.
  7739.    Usually, their statement is found to be false.  Upon close
  7740.    questioning, they will admit some major restructuring of the
  7741.    program that shouldn't have broken anything, in their opinion,
  7742.    but which actually {hosed} the code completely.
  7743.  
  7744. I see no X here.: Hackers (and the interactive computer games they
  7745.    write) traditionally favor this slightly marked usage over other
  7746.    possible equivalents such as "There's no X here!" or "X is
  7747.    missing."  or "Where's the X?".  This goes back to the original
  7748.    PDP-10 {ADVENT}, which would respond in this wise if you asked
  7749.    it to do something involving an object not present at your location
  7750.    in the game.
  7751.  
  7752. i14y: // n. Abbrev. for `interoperability', with the `14'
  7753.    replacing fourteen letters.  Used in the {X} (windows)
  7754.    community.  Refers to portability and compatibility of data formats
  7755.    (even binary ones) between different programs or implementations of
  7756.    the same program on different machines.
  7757.  
  7758. i18n: // n. Abbrev. for `internationali{z,s}ation', with the 18
  7759.    replacing 18 letters.  Used in the {X} (windows) community.
  7760.  
  7761. IBM: /I-B-M/ Inferior But Marketable; It's Better Manually;
  7762.    Insidious Black Magic; It's Been Malfunctioning; Incontinent Bowel
  7763.    Movement; and a near-{infinite} number of even less complimentary
  7764.    expansions, including `International Business Machines'.  See
  7765.    {TLA}.  These abbreviations illustrate the considerable
  7766.    antipathy most hackers have long felt toward the `industry leader'
  7767.    (see {fear and loathing}).
  7768.  
  7769.    What galls hackers about most IBM machines above the PC level isn't
  7770.    so much that they are underpowered and overpriced (though that does
  7771.    count against them), but that the designs are incredibly archaic,
  7772.    {crufty}, and {elephantine} ... and you can't *fix* them
  7773.    --- source code is locked up tight, and programming tools are
  7774.    expensive, hard to find, and bletcherous to use once you've found
  7775.    them.  With the release of the UNIX-based RIOS family this may have
  7776.    begun to change --- but then, we thought that when the PC-RT came
  7777.    out, too.
  7778.  
  7779.    In the spirit of universal peace and brotherhood, this lexicon now
  7780.    includes a number of entries attributed to `IBM'; these derive from some
  7781.    rampantly unofficial jargon lists circulated within IBM's own
  7782.    beleaguered hacker underground.
  7783.  
  7784. IBM discount: n. A price increase.  Outside IBM, this derives from
  7785.    the common perception that IBM products are generally overpriced
  7786.    (see {clone}); inside, it is said to spring from a belief that
  7787.    large numbers of IBM employees living in an area cause prices to
  7788.    rise.
  7789.  
  7790. ice: [coined by USENETter Tom Maddox, popularized by William
  7791.    Gibson's cyberpunk SF novels: acronym for `Intrusion
  7792.    Countermeasure Electronics'] Security software (in Gibson's novels,
  7793.    software that responds to intrusion by attempting to literally kill
  7794.    the intruder).  Also, `icebreaker': a program designed for
  7795.    cracking security on a system.  Neither term is in serious use yet
  7796.    as of mid-1991, but many hackers find the metaphor attractive, and
  7797.    each may develop a denotation in the future.
  7798.  
  7799. ifdef out: /if'def owt/ v. Syn. for {condition out}, specific
  7800.    to {C}.
  7801.  
  7802. ill-behaved: adj. 1. [numerical analysis] Said of an algorithm or
  7803.    computational method that tends to blow up because of accumulated
  7804.    roundoff error or poor convergence properties.  2. Software that
  7805.    bypasses the defined {OS} interfaces to do things (like screen,
  7806.    keyboard, and disk I/O) itself, often in a way that depends on the
  7807.    hardware of the machine it is running on or which is nonportable or
  7808.    incompatible with other pieces of software.  In the IBM PC/MS-DOS
  7809.    world, there is a folk theorem (nearly true) to the effect that
  7810.    (owing to gross inadequacies and performance penalties in the OS
  7811.    interface) all interesting applications are ill-behaved.  See also
  7812.    {bare metal}. Oppose {well-behaved}, compare {PC-ism}.  See
  7813.    {mess-dos}.
  7814.  
  7815. IMHO: // [from SF fandom via USENET; acronym for `In My Humble
  7816.    Opinion']  "IMHO, mixed-case C names should be avoided, as
  7817.    mistyping something in the wrong case can cause hard-to-detect
  7818.    errors --- and they look too Pascalish anyhow."  Also seen in
  7819.    variant forms such as IMNSHO (In My Not-So-Humble Opinion) and IMAO
  7820.    (In My Arrogant Opinion).
  7821.  
  7822. in the extreme: adj. A preferred superlative suffix for many hackish
  7823.    terms.  See, for example, `obscure in the extreme' under {obscure},
  7824.    and compare {highly}.
  7825.  
  7826. incantation: n. Any particularly arbitrary or obscure command that
  7827.    one must mutter at a system to attain a desired result.  Not used
  7828.    of passwords or other explicit security features.  Especially used
  7829.    of tricks that are so poorly documented they must be learned from a
  7830.    {wizard}.  "This compiler normally locates initialized data
  7831.    in the data segment, but if you {mutter} the right incantation they
  7832.    will be forced into text space."
  7833.  
  7834. include: vt. [USENET] 1. To duplicate a portion (or whole) of
  7835.    another's message (typically with attribution to the source) in a
  7836.    reply or followup, for clarifying the context of one's response.
  7837.    See the the discussion of inclusion styles under "Hacker
  7838.    Writing Style".  2. [from {C}] `#include <disclaimer.h>'
  7839.    has appeared in {sig block}s to refer to a notional `standard
  7840.    disclaimer file'.
  7841.  
  7842. include war: n. Excessive multi-leveled including within a
  7843.    discussion {thread}, a practice that tends to annoy readers.  In
  7844.    a forum with high-traffic newsgroups, such as USENET, this can lead
  7845.    to {flame}s and the urge to start a {kill file}.
  7846.  
  7847. indent style: [C programmers] n. The rules one uses to indent code
  7848.    in a readable fashion; a subject of {holy wars}.  There are four
  7849.    major C indent styles, described below; all have the aim of
  7850.    making it easier for the reader to visually track the scope of
  7851.    control constructs.  The significant variable is the placement of
  7852.    `{' and `}' with respect to the statement(s) they
  7853.    enclose and the guard or controlling statement (`if',
  7854.    `else', `for', `while', or `do') on the block,
  7855.    if any.
  7856.  
  7857.    `K&R style' --- Named after Kernighan & Ritchie, because the
  7858.    examples in {K&R} are formatted this way.  Also called `kernel
  7859.    style' because the UNIX kernel is written in it, and the `One True
  7860.    Brace Style' (abbrev. 1TBS) by its partisans.  The basic indent
  7861.    shown here is eight spaces (or one tab) per level; four or are
  7862.    occasionally seen, but are much less common.
  7863.  
  7864.      if (cond) {
  7865.              <body>
  7866.      }
  7867.  
  7868.    `Allman style' --- Named for Eric Allman, a Berkeley hacker who
  7869.    wrote a lot of the BSD utilities in it (it is sometimes called
  7870.    `BSD style').  Resembles normal indent style in Pascal and Algol.
  7871.    Basic indent per level shown here is eight spaces, but four is just
  7872.    as common (esp. in C++ code).
  7873.  
  7874.      if (cond)
  7875.      {
  7876.              <body>
  7877.      }
  7878.  
  7879.    `Whitesmiths style' --- popularized by the examples that came
  7880.    with Whitesmiths C, an early commercial C compiler.  Basic indent
  7881.    per level shown here is eight spaces, but four is occasionally seen.
  7882.  
  7883.      if (cond)
  7884.              {
  7885.              <body>
  7886.              }
  7887.  
  7888.    `GNU style' --- Used throughout GNU EMACS and the Free Software
  7889.    Foundation code, and just about nowhere else.  Indents are always
  7890.    four spaces per level, with `{' and `}' halfway between the
  7891.    outer and inner indent levels.
  7892.  
  7893.      if (cond)
  7894.        {
  7895.          <body>
  7896.        }
  7897.  
  7898.    Surveys have shown the Allman and Whitesmiths styles to be the most
  7899.    common, with about equal mind shares.  K&R/1TBS used to be nearly
  7900.    universal, but is now much less common (the opening brace tends to
  7901.    get lost against the right paren of the guard part in an `if'
  7902.    or `while', which is a {Bad Thing}).  Defenders of 1TBS
  7903.    argue that any putative gain in readability is less important than
  7904.    their style's relative economy with vertical space, which enables
  7905.    one to see more code on one's screen at once.  Doubtless these
  7906.    issues will continue to be the subject of {holy wars}.
  7907.  
  7908. index: n. See {coefficient}.
  7909.  
  7910. infant mortality: n. It is common lore among hackers that the
  7911.    chances of sudden hardware failure drop off exponentially with a
  7912.    machine's time since power-up (that is, until the relatively
  7913.    distant time at which enough mechanical wear in I/O devices and
  7914.    thermal-cycling stress in components has accumulated for the
  7915.    machine to start going senile).  Up to half of all chip and wire
  7916.    failures happen within a new system's first few weeks; such
  7917.    failures are often referred to as `infant mortality' problems
  7918.    (or, occasionally, as `sudden infant death syndrome').  See
  7919.    {bathtub curve}, {burn-in period}.
  7920.  
  7921. infinite: adj. Consisting of a large number of objects; extreme.
  7922.    Used very loosely as in: "This program produces infinite
  7923.    garbage."  "He is an infinite loser."  The word most likely to
  7924.    follow `infinite', though, is {hair} (it has been pointed out
  7925.    that fractals are an excellent example of infinite hair).  These
  7926.    uses are abuses of the word's mathematical meaning.  The term
  7927.    `semi-infinite', denoting an immoderately large amount of some
  7928.    resource, is also heard.  "This compiler is taking a semi-infinite
  7929.    amount of time to optimize my program."  See also {semi}.
  7930.  
  7931. infinite loop: n. One that never terminates (that is, the machine
  7932.    {spin}s or {buzz}es forever; the usual symptom is
  7933.    {catatonia}).  There is a standard joke that has been made about
  7934.    each generation's exemplar of the ultra-fast machine: "The Cray-3
  7935.    is so fast it can execute an infinite loop in under 2 seconds!"
  7936.  
  7937. infinity: n. 1. The largest value that can be represented in a
  7938.    particular type of variable (register, memory location, data type,
  7939.    whatever).  2. `minus infinity': The smallest such value, not
  7940.    necessarily or even usually the simple negation of plus infinity.
  7941.    In N-bit twos-complement arithmetic, infinity is
  7942.    2^{N-1} - 1 but minus infinity is - (2^{N-1}),
  7943.    not -(2^{N-1} - 1).  Note also that this is different from
  7944.    "time T equals minus infinity", which is closer to a
  7945.    mathematician's usage of infinity.
  7946.  
  7947. insanely great: adj. [Mac community, from Steve Jobs; also BSD UNIX
  7948.    people via Bill Joy] Something so incredibly {elegant} that it is
  7949.    imaginable only to someone possessing the most puissant of
  7950.    {hacker}-natures.
  7951.  
  7952. INTERCAL: /in't*r-kal/ [said by the authors to stand for
  7953.    `Compiler Language With No Pronounceable Acronym'] n. A
  7954.    computer language designed by Don Woods and James Lyon in 1972.
  7955.    INTERCAL is purposely different from all other computer
  7956.    languages in all ways but one; it is purely a written language,
  7957.    being totally unspeakable.  An excerpt from the INTERCAL Reference
  7958.    Manual will make the style of the language clear:
  7959.  
  7960.         It is a well-known and oft-demonstrated fact that a person whose
  7961.         work is incomprehensible is held in high esteem.  For example, if
  7962.         one were to state that the simplest way to store a value of 65536
  7963.         in a 32-bit INTERCAL variable is:
  7964.  
  7965.           DO :1 <- #0$#256
  7966.  
  7967.         any sensible programmer would say that that was absurd.  Since this
  7968.         is indeed the simplest method, the programmer would be made to look
  7969.         foolish in front of his boss, who would of course have happened to
  7970.         turn up, as bosses are wont to do.  The effect would be no less
  7971.         devastating for the programmer having been correct.
  7972.  
  7973.    INTERCAL has many other peculiar features designed to make it even
  7974.    more unspeakable.  The Woods-Lyons implementation was actually used
  7975.    by many (well, at least several) people at Princeton.  The language
  7976.    has been recently reimplemented as C-INTERCAL and is consequently
  7977.    enjoying an unprecedented level of unpopularity; there is even an
  7978.    alt.lang.intercal newsgroup devoted to the study and ...
  7979.    appreciation of the language on USENET.
  7980.  
  7981. interesting: adj. In hacker parlance, this word has strong
  7982.    connotations of `annoying', or `difficult', or both.  Hackers
  7983.    relish a challenge, and enjoy wringing all the irony possible out
  7984.    of the ancient Chinese curse "May you live in interesting times".
  7985.    Oppose {trivial}, {uninteresting}.
  7986.  
  7987. Internet address:: n. 1. [techspeak] An absolute network address of
  7988.    the form foo@bar.baz, where foo is a user name, bar is a
  7989.    {sitename}, and baz is a `domain' name, possibly including
  7990.    periods itself.  Contrast with {bang path}; see also {network,
  7991.    the} and {network address}.  All Internet machines and most UUCP
  7992.    sites can now resolve these addresses, thanks to a large amount of
  7993.    behind-the-scenes magic and PD software written since 1980 or so.
  7994.    See also {bang path}, {domainist}.  2. More loosely, any
  7995.    network address reachable through Internet; this includes {bang
  7996.    path} addresses and some internal corporate and government
  7997.    networks.
  7998.  
  7999.    Reading Internet addresses is something of an art.  Here are the
  8000.    four most important top-level functional Internet domains followed
  8001.    by a selection of geographical domains:
  8002.  
  8003.      com
  8004.           commercial organizations
  8005.      edu
  8006.           educational institutions
  8007.      gov
  8008.           U.S. government civilian sites
  8009.      mil
  8010.           U.S. military sites
  8011.  
  8012.    Note that most of the sites in the com and edu domains are in
  8013.    the U.S. or Canada.
  8014.  
  8015.      us
  8016.           sites in the U.S. outside the functional domains
  8017.      su
  8018.           sites in the Soviet Union (see {kremvax}).
  8019.      uk
  8020.           sites in the United Kingdom
  8021.  
  8022.    Within the us domain, there are subdomains for the fifty
  8023.    states, each generally with a name identical to the state's postal
  8024.    abbreviation.  Within the uk domain, there is an ac subdomain for
  8025.    academic sites and a co domain for commercial ones.  Other
  8026.    top-level domains may be divided up in similar ways.
  8027.  
  8028. interrupt: 1. [techspeak] n. On a computer, an event that
  8029.    interrupts normal processing and temporarily diverts
  8030.    flow-of-control through an "interrupt handler" routine.  See also
  8031.    {trap}.  2. interj. A request for attention from a hacker.
  8032.    Often explicitly spoken.  "Interrupt --- have you seen Joe
  8033.    recently?"  See {priority interrupt}.  3. Under MS-DOS, the
  8034.    term `interrupt' is nearly synonymous with `system call', because
  8035.    the OS and BIOS routines are both called using the INT instruction
  8036.    (see {{interrupt list, the}}) and because programmers so often have
  8037.    to bypass the OS (going directly to a BIOS interrupt) to get
  8038.    reasonable performance.
  8039.  
  8040. interrupt list, the:: [MS-DOS] n. The list of all known software
  8041.    interrupt calls (both documented and undocumented) for IBM PCs and
  8042.    compatibles, maintained and made available for free redistribution
  8043.    by Ralf Brown (ralf@cs.cmu.edu).  As of early 1991, it had grown to
  8044.    approximately a megabyte in length.
  8045.  
  8046. interrupts locked out: When someone is ignoring you.  In a
  8047.    restaurant, after several fruitless attempts to get the waitress's
  8048.    attention, a hacker might well observe "She must have interrupts
  8049.    locked out".  The synonym `interrupts disabled' is also common.
  8050.    Variations of this abound; "to have one's interrupt mask bit set"
  8051.    or "interrupts masked out" is also heard.  See also {spl}.
  8052.  
  8053. iron: n. Hardware, especially older and larger hardware of
  8054.    {mainframe} class with big metal cabinets housing relatively
  8055.    low-density electronics (but the term is also used of modern
  8056.    supercomputers).  Often in the phrase {big iron}.  Oppose
  8057.    {silicon}.  See also {dinosaur}.
  8058.  
  8059. Iron Age: n. In the history of computing, 1961--1971 --- the
  8060.    formative era of commercial {mainframe} technology, when {big
  8061.    iron} {dinosaur}s ruled the earth.  These began with the delivery
  8062.    of the first PDP-1, coincided with the dominance of ferrite
  8063.    {core}, and ended with the introduction of the first commercial
  8064.    microprocessor (the Intel 4004) in 1971.  See also {Stone Age};
  8065.    compare {elder days}.
  8066.  
  8067. iron box: [UNIX/Internet] n. A special environment set up to trap
  8068.    a {cracker} logging in over remote connections long enough to be
  8069.    traced.  May include a modified {shell} restricting the hacker's
  8070.    movements in unobvious ways, and `bait' files designed to keep him
  8071.    interested and logged on.  See also {back door}, {firewall
  8072.    machine}, {Venus flytrap}, and Clifford Stoll's account in
  8073.    `The Cuckoo's Egg' of how he made and used one (see
  8074.    the Bibliography).  Compare {padded cell}.
  8075.  
  8076. ironmonger: [IBM] n. Derogatory.  A hardware specialist.  Compare
  8077.    {sandbender}, {polygon pusher}.
  8078.  
  8079. ITS:: /I-T-S/ n. 1. Incompatible Time-sharing System, an
  8080.    influential but highly idiosyncratic operating system written for
  8081.    PDP-6s and PDP-10s at MIT and long used at the MIT AI Lab.  Much
  8082.    AI-hacker jargon derives from ITS folklore, and to have been `an
  8083.    ITS hacker' qualifies one instantly as an old-timer of the most
  8084.    venerable sort.  ITS pioneered many important innovations,
  8085.    including transparent file sharing between machines and
  8086.    terminal-independent I/O.  After about 1982, most actual work was
  8087.    shifted to newer machines, with the remaining ITS boxes run
  8088.    essentially as a hobby and service to the hacker community.  The
  8089.    shutdown of the lab's last ITS machine in May 1990 marked the end
  8090.    of an era and sent old-time hackers into mourning nationwide (see
  8091.    {high moby}).  The Royal Institute of Technology in Sweden is
  8092.    maintaining one `live' ITS site at its computer museum (right next
  8093.    to the only TOPS-10 system still on the Internet), so ITS is still
  8094.    alleged to hold the record for OS in longest continuous use
  8095.    (however, {{WAITS}} is a credible rival for this palm).  See
  8096.    appendix A.  2. A mythical image of operating-system perfection
  8097.    worshiped by a bizarre, fervent retro-cult of old-time hackers and
  8098.    ex-users (see {troglodyte}, sense 2).  ITS worshipers manage
  8099.    somehow to continue believing that an OS maintained by
  8100.    assembly-language hand-hacking that supported only monocase
  8101.    6-character filenames in one directory per account remains superior
  8102.    to today's state of commercial art (their venom against UNIX is
  8103.    particularly intense).  See also {holy wars},
  8104.    {Weenix}.
  8105.  
  8106. IWBNI: // [acronym] `It Would Be Nice If'.  Compare {WIBNI}.
  8107.  
  8108. IYFEG: // [USENET] Abbreviation for `Insert Your Favorite Ethnic
  8109.    Group'.  Used as a meta-name when telling racist jokes on the net to
  8110.    avoid offending anyone.  See {JEDR}.
  8111.  
  8112. = J =
  8113.  
  8114. J. Random: /J rand'm/ n. [generalized from {J. Random Hacker}]
  8115.    Arbitrary; ordinary; any one; any old.  `J. Random' is often
  8116.    prefixed to a noun to make a name out of it.  It means roughly
  8117.    `some particular' or `any specific one'.  "Would you let
  8118.    J. Random Loser marry your daughter?"  The most common uses are
  8119.    `J. Random Hacker', `J. Random Loser', and `J. Random Nerd'
  8120.    ("Should J. Random Loser be allowed to {gun} down other
  8121.    people?"), but it can be used simply as an elaborate version of
  8122.    {random} in any sense.
  8123.  
  8124. J. Random Hacker: [MIT] /J rand'm hak'r/ n. A mythical figure
  8125.    like the Unknown Soldier; the archetypal hacker nerd.  See
  8126.    {random}, {Suzie COBOL}.  This may originally have been
  8127.    inspired or influenced by `J. Fred Muggs', a show-biz chimpanzee
  8128.    whose name was a household word back in the early days of {TMRC}.
  8129.  
  8130. jaggies: /jag'eez/ n. The `stairstep' effect observable when an
  8131.    edge (esp. a linear edge of very shallow or steep slope) is
  8132.    rendered on a pixel device (as opposed to a vector display).
  8133.  
  8134. JCL: /J-C-L/ n. 1. IBM's supremely {rude} Job Control
  8135.    Language.  JCL is the script language used to control the execution
  8136.    of programs in IBM's batch systems.  JCL has a very {fascist}
  8137.    syntax, and some versions will, for example, {barf} if two
  8138.    spaces appear where it expects one.  Most programmers confronted
  8139.    with JCL simply copy a working file (or card deck), changing the
  8140.    file names.  Someone who actually understands and generates unique
  8141.    JCL is regarded with the mixed respect one gives to someone who
  8142.    memorizes the phone book.  It is reported that hackers at IBM
  8143.    itself sometimes sing "Who's the breeder of the crud that mangles
  8144.    you and me?  I-B-M, J-C-L, M-o-u-s-e" to the tune of the
  8145.    "Mickey Mouse Club" theme to express their opinion of the
  8146.    beast.  2. A comparative for any very {rude} software that a
  8147.    hacker is expected to use.  "That's as bad as JCL."  As with
  8148.    {COBOL}, JCL is often used as an archetype of ugliness even by
  8149.    those who haven't experienced it.  See also {IBM}, {fear and
  8150.    loathing}.
  8151.  
  8152. JEDR: // n. Synonymous with {IYFEG}.  At one time, people in
  8153.    the USENET newsgroup rec.humor.funny tended to use `JEDR'
  8154.    instead of {IYFEG} or `<ethnic>'; this stemmed from a public
  8155.    attempt to suppress the group once made by a loser with initials
  8156.    JEDR after he was offended by an ethnic joke posted there.  (The
  8157.    practice was {retcon}ned by the expanding these initials as
  8158.    `Joke Ethnic/Denomination/Race'.)  After much sound and fury JEDR
  8159.    faded away; this term appears to be doing likewise.  JEDR's only
  8160.    permanent effect on the net.culture was to discredit
  8161.    `sensitivity' arguments for censorship so thoroughly that more
  8162.    recent attempts to raise them have met with immediate and
  8163.    near-universal rejection.
  8164.  
  8165. JFCL: /jif'kl/, /jaf'kl/, /j*-fi'kl/ vt., obs. (alt.
  8166.    `jfcl') To cancel or annul something.  "Why don't you jfcl that
  8167.    out?"  The fastest do-nothing instruction on older models of the
  8168.    PDP-10 happened to be JFCL, which stands for "Jump if Flag set and
  8169.    then CLear the flag"; this does something useful, but is a very
  8170.    fast no-operation if no flag is specified.  Geoff Goodfellow, one
  8171.    of the jargon-1 co-authors, has long had JFCL on the license plate
  8172.    of his BMW.  Usage: rare except among old-time PDP-10 hackers.
  8173.  
  8174. jiffy: n. 1. The duration of one tick of the system clock on the
  8175.    computer (see {tick}).  Often one AC cycle time (1/60 second in
  8176.    the U.S. and Canada, 1/50 most other places), but more recently
  8177.    1/100 sec has become common.  "The swapper runs every 6 jiffies" means
  8178.    that the virtual memory management routine is executed once for
  8179.    every 6 ticks of the clock, or about ten times a second.
  8180.    2. Confusingly, the term is sometimes also used for a 1-millisecond
  8181.    {wall time} interval.  3. Indeterminate time from a few seconds
  8182.    to forever.  "I'll do it in a jiffy" means certainly not now and
  8183.    possibly never.  This is a bit contrary to the more widespread use
  8184.    of the word.  Oppose {nano}. See also {Real Soon Now}.
  8185.  
  8186. job security: n. When some piece of code is written in a
  8187.    particularly {obscure} fashion, and no good reason (such as time
  8188.    or space optimization) can be discovered, it is often said that the
  8189.    programmer was attempting to increase his job security (i.e., by
  8190.    making himself indispensable for maintenance).  This sour joke
  8191.    seldom has to be said in full; if two hackers are looking over some
  8192.    code together and one points at a section and says "job security",
  8193.    the other one may just nod.
  8194.  
  8195. jock: n. 1. A programmer who is characterized by large and somewhat
  8196.    brute-force programs.  See {brute force}.  2. When modified by
  8197.    another noun, describes a specialist in some particular computing
  8198.    area.  The compounds `compiler jock' and `systems jock' seem to be
  8199.    the best-established examples of this.
  8200.  
  8201. joe code: /joh' kohd`/ n. 1. Code that is overly {tense} and
  8202.    unmaintainable.  "{Perl} may be a handy program, but if you look
  8203.    at the source, it's complete joe code."  2. Badly written,
  8204.    possibly buggy code.
  8205.  
  8206.    Correspondents wishing to remain anonymous have fingered a
  8207.    particular Joe at the Lawrence Berkeley Laboratory and observed
  8208.    that usage has drifted slightly; the original sobriquet `Joe code'
  8209.    was intended in sense 1.
  8210.  
  8211. JR[LN]: /J-R-L/, /J-R-N/ n. The names JRL and JRN
  8212.    were sometimes used as example names when discussing a kind of user
  8213.    ID used under {{TOPS-10}}; they were understood to be the initials
  8214.    of (fictitious) programmers named `J. Random Loser' and `J. Random
  8215.    Nerd' (see {J. Random}).  For example, if one said "To log
  8216.    in, type log one comma jay are en" (that is, "log 1,JRN"), the
  8217.    listener would have understood that he should use his own computer
  8218.    ID in place of `JRN'.
  8219.  
  8220. JRST: /jerst/ [based on the PDP-10 jump instruction] v.,obs. To
  8221.    suddenly change subjects, with no intention of returning to the
  8222.    previous topic.  Usage: rather rare except among PDP-10 diehards, and
  8223.    considered silly.  See also {AOS}.
  8224.  
  8225. juggling eggs: vi. Keeping a lot of {state} in your head while
  8226.    modifying a program.  "Don't bother me now, I'm juggling eggs",
  8227.    means that an interrupt is likely to result in the program's being
  8228.    scrambled.  In the classic first-contact SF novel `The Mote in
  8229.    God's Eye', by Larry Niven and Jerry Pournelle, an alien describes a
  8230.    very difficult task by saying "We juggle priceless eggs in
  8231.    variable gravity."  That is a very hackish use of language.  See
  8232.    also {hack mode}.
  8233.  
  8234. jump off into never-never land: [from J. M. Barrie's `Peter
  8235.    Pan'] v. Same as {branch to Fishkill}, but more common in
  8236.    technical cultures associated with non-IBM computers that use the
  8237.    term `jump' rather than `branch'.  Compare {hyperspace}.
  8238.  
  8239. = K =
  8240.  
  8241. K: /K/ [from {kilo-}] n. A kilobyte.  This is used both as a
  8242.    spoken word and a written suffix (like {meg} and {gig} for
  8243.    megabyte and gigabyte).  See {{quantifiers}}.
  8244.  
  8245. K&R: [Kernighan and Ritchie] n. Brian Kernighan and Dennis Ritchie's
  8246.    book `The C Programming Language', esp. the classic and influential
  8247.    first edition (Prentice-Hall 1978; ISBN 0-113-110163-3).  Syn.
  8248.    {White Book}, {Old Testament}.  See also {New Testament}.
  8249.  
  8250. kahuna: /k*-hoo'nuh/ [IBM: from the Hawaiian title for a shaman] n.
  8251.    Synonym for {wizard}, {guru}.
  8252.  
  8253. kamikaze packet: n. The `official' jargon for what is more commonly
  8254.    called a {Christmas tree packet}. RFC-1025, `TCP and IP Bake Off'
  8255.    says:
  8256.  
  8257.      10 points for correctly being able to process a "Kamikaze"
  8258.      packet (AKA nastygram, christmas tree packet, lamp test
  8259.      segment, et al.).  That is, correctly handle a segment with the
  8260.      maximum combination of features at once (e.g., a SYN URG PUSH
  8261.      FIN segment with options and data).
  8262.  
  8263.    See also {Chernobyl packet}.
  8264.  
  8265. kangaroo code: n. Syn. {spaghetti code}.
  8266.  
  8267. ken: /ken/ n. 1. [UNIX] Ken Thompson, principal inventor of
  8268.    UNIX.  In the early days he used to hand-cut distribution tapes,
  8269.    often with a note that read "Love, ken".  Old-timers still use
  8270.    his first name (sometimes uncapitalized, because it's a login name
  8271.    and mail address) in third-person reference; it is widely
  8272.    understood (on USENET, in particular) that without a last name
  8273.    `Ken' refers only to Ken Thompson.  Similarly, Dennis without last
  8274.    name means Dennis Ritchie (and he is often known as dmr).  See
  8275.    also {demigod}, {{UNIX}}.  2. A flaming user.  This was
  8276.    originated by the Software Support group at Symbolics because the
  8277.    two greatest flamers in the user community were both named Ken.
  8278.  
  8279. kgbvax: /K-G-B'vaks/ n. See {kremvax}.
  8280.  
  8281. kill file: [USENET] n. (alt. `KILL file') Per-user file(s) used
  8282.    by some {USENET} reading programs (originally Larry Wall's
  8283.    `rn(1)') to discard summarily (without presenting for reading)
  8284.    articles matching some particularly uninteresting (or unwanted)
  8285.    patterns of subject, author, or other header lines.  Thus to add
  8286.    a person (or subject) to one's kill file is to arrange for that
  8287.    person to be ignored by one's newsreader in future.  By extension,
  8288.    it may be used for a decision to ignore the person or subject in
  8289.    other media.  See also {plonk}.
  8290.  
  8291. killer micro: [popularized by Eugene Brooks] n. A
  8292.    microprocessor-based machine that infringes on mini, mainframe, or
  8293.    supercomputer performance turf.  Often heard in "No one will
  8294.    survive the attack of the killer micros!", the battle cry of the
  8295.    downsizers.  Used esp. of RISC architectures.
  8296.  
  8297.    The popularity of the phrase `attack of the killer micros' is
  8298.    doubtless reinforced by the movie title "Attack Of The Killer
  8299.    Tomatoes" (one of the {canonical} examples of
  8300.    so-bad-it's-wonderful among hackers).  This has even more flavor
  8301.    now that killer micros have gone on the offensive not just
  8302.    individually (in workstations) but in hordes (within massively
  8303.    parallel computers).
  8304.  
  8305. killer poke: n. A recipe for inducing hardware damage on a machine
  8306.    via insertion of invalid values (see {poke}) in a memory-mapped
  8307.    control register; used esp. of various fairly well-known tricks
  8308.    on {bitty box}es without hardware memory management (such as the
  8309.    IBM PC and Commodore PET) that can overload and trash analog
  8310.    electronics in the monitor.  See also {HCF}.
  8311.  
  8312. kilo-: [SI] pref. See {{quantifiers}}.
  8313.  
  8314. KIPS: /kips/ [acronym, by analogy with {MIPS} using {K}] n.
  8315.    Thousands (*not* 1024s) of Instructions Per Second.  Usage:
  8316.    rare.
  8317.  
  8318. KISS Principle: /kis' prin'si-pl/ n. "Keep It Simple, Stupid".
  8319.    A maxim often invoked when discussing design to fend off
  8320.    {creeping featurism} and control development complexity.
  8321.    Possibly related to the {marketroid} maxim on sales
  8322.    presentations, "Keep It Short and Simple".
  8323.  
  8324. kit: [USENET] n. A source software distribution that has been
  8325.    packaged in such a way that it can (theoretically) be unpacked and
  8326.    installed according to a series of steps using only standard UNIX
  8327.    tools, and entirely documented by some reasonable chain of
  8328.    references from the top-level {README file}.  The more general
  8329.    term {distribution} may imply that special tools or more
  8330.    stringent conditions on the host environment are required.
  8331.  
  8332. klone: /klohn/ n. See {clone}, sense 4.
  8333.  
  8334. kludge: /kluhj/ n. Common (but incorrect) variant of {kluge}, q.v.
  8335.  
  8336. kluge: /klooj/ [from the German `klug', clever] 1. n.  A Rube
  8337.    Goldberg (or Heath Robinson) device, whether in hardware or
  8338.    software.  (A long-ago `Datamation' article by Jackson Granholme
  8339.    said: "An ill-assorted collection of poorly matching parts,
  8340.    forming a distressing whole.")  2. n. A clever programming trick
  8341.    intended to solve a particular nasty case in an expedient, if not
  8342.    clear, manner.  Often used to repair bugs.  Often involves
  8343.    {ad-hockery} and verges on being a {crock}.  In fact, the
  8344.    TMRC Dictionary defined `kludge' as "a crock that works".  3. n.
  8345.    Something that works for the wrong reason.  4. vt. To insert a
  8346.    kluge into a program.  "I've kluged this routine to get around
  8347.    that weird bug, but there's probably a better way."  5. [WPI] n. A
  8348.    feature that is implemented in a {rude} manner.
  8349.  
  8350.    Nowadays this term is often encountered in the variant spelling
  8351.    `kludge'.  Reports from {old fart}s are consistent that `kluge'
  8352.    was the original spelling, and that `kludge' arose by mutation
  8353.    sometime in the early 1970s.  Some people who encountered the word
  8354.    first in print or on-line jumped to the reasonable but incorrect
  8355.    conclusion that the word should be pronounced /kluhj/ (rhyming
  8356.    with `sludge').  The result of this tangled history is a mess; in
  8357.    1991, many (perhaps even most) hackers pronounce the word correctly
  8358.    as /klooj/ but spell it incorrectly as `kludge' (compare the
  8359.    pronunciation drift of {mung}).  Some observers consider this
  8360.    appropriate in view of its meaning.
  8361.  
  8362. kluge around: vt. To avoid a bug or difficult condition by
  8363.    inserting a {kluge}.  Compare {workaround}.
  8364.  
  8365. kluge up: vt. To lash together a quick hack to perform a task; this
  8366.    is milder than {cruft together} and has some of the connotations
  8367.    of {hack up} (note, however, that the construction `kluge on'
  8368.    corresponding to {hack on} is never used).  "I've kluged up this
  8369.    routine to dump the buffer contents to a safe place."
  8370.  
  8371. Knights of the Lambda Calculus: n. A semi-mythical organization of
  8372.    wizardly LISP and Scheme hackers.  The name refers to a
  8373.    mathematical formalism invented by Alonzo Church, with which LISP is
  8374.    intimately connected.  There is no enrollment list and the criteria
  8375.    for induction are unclear, but one well-known LISPer has been known
  8376.    to give out buttons and, in general, the *members* know who
  8377.    they are....
  8378.  
  8379. Knuth: [Donald E. Knuth's `The Art of Computer Programming']
  8380.    n. Mythically, the reference that answers all questions about data
  8381.    structures or algorithms.  A safe answer when you do not know:
  8382.    "I think you can find that in Knuth."  Contrast {literature,
  8383.    the}.  See also {bible}.
  8384.  
  8385. kremvax: /krem-vaks/ [from the then large number of {USENET}
  8386.    {VAXen} with names of the form foovax] n. Originally, a
  8387.    fictitious USENET site at the Kremlin, announced on April 1, 1984
  8388.    in a posting ostensibly originated there by Soviet leader
  8389.    Konstantin Chernenko.  The posting was actually forged by Piet
  8390.    Beertema as an April Fool's joke.  Other fictitious sites mentioned in the
  8391.    hoax were moskvax and {kgbvax}, which now seems to be the one by
  8392.    which it is remembered.  This was probably the funniest of the many
  8393.    April Fool's forgeries perpetrated on USENET (which has negligible
  8394.    security against them), because the notion that USENET might ever
  8395.    penetrate the Iron Curtain seemed so totally absurd at the time.
  8396.  
  8397.    In fact, it was only six years later that the first genuine site in
  8398.    Moscow, demos.su, joined USENET.  Some readers needed
  8399.    convincing that the postings from it weren't just another prank.
  8400.    Vadim Antonov (avg@hq.demos.su), the major poster from there
  8401.    up to at least the end of 1990, was quite aware of all this,
  8402.    referred to it frequently in his own postings, and at one point
  8403.    twitted some credulous readers by blandly asserting that he
  8404.    *was* a hoax!
  8405.  
  8406.    Eventually he even arranged to have the domain's gateway site
  8407.    *named* kremvax, thus neatly turning fiction into truth
  8408.    and demonstrating that the hackish sense of humor transcends
  8409.    cultural barriers.  [Mr. Antonov also contributed the
  8410.    Russian-language material for this lexicon. --- ESR]
  8411.  
  8412. = L =
  8413.  
  8414. lace card: n. obs. A {{punched card}} with all holes punched (also
  8415.    called a `whoopee card').  Card readers jammed when they got to
  8416.    one of these, as the resulting card had too little structural
  8417.    strength to avoid buckling inside the mechanism.  Card punches
  8418.    could also jam trying to produce these things owing to power-supply
  8419.    problems.  When some practical joker fed a lace card through the
  8420.    reader, you needed to clear the jam with a `card knife' ---
  8421.    which you used on the joker first.
  8422.  
  8423. language lawyer: n. A person, usually an experienced or senior
  8424.    software engineer, who is intimately familiar with many or most of
  8425.    the numerous restrictions and features (both useful and esoteric)
  8426.    applicable to one or more computer programming languages.  A
  8427.    language lawyer is distinguished by the ability to show you the
  8428.    five sentences scattered through a 200-plus-page manual that
  8429.    together imply the answer to your question "if only you had
  8430.    thought to look there".  Compare {wizard}, {legal},
  8431.    {legalese}.
  8432.  
  8433. languages of choice: n. {C} and {LISP}.  Nearly every hacker
  8434.    knows one of these, and most good ones are fluent in both.  Smalltalk
  8435.    and Prolog are also popular in small but influential communities.
  8436.  
  8437.    There is also a rapidly dwindling category of older hackers with
  8438.    FORTRAN, or even assembler, as their language of choice.  They
  8439.    often prefer to be known as {real programmer}s, and other hackers
  8440.    consider them a bit odd (see "The Story of Mel, a Real Programmer"
  8441.    in appendix A).  Assembler is generally no longer considered
  8442.    interesting or appropriate for anything but {HLL} implementation,
  8443.    {glue}, and a few time-critical and hardware-specific uses in systems
  8444.    programs.  FORTRAN occupies a shrinking niche in scientific
  8445.    programming.
  8446.  
  8447.    Most hackers tend to frown on languages like {{Pascal}} and
  8448.    {{Ada}}, which don't give them the near-total freedom considered
  8449.    necessary for hacking (see {bondage-and-discipline language}), and
  8450.    to regard everything that's even remotely connected with {COBOL}
  8451.    or other traditional {card walloper} languages as a total
  8452.    and unmitigated {loss}.
  8453.  
  8454. larval stage: n. Describes a period of monomaniacal concentration
  8455.    on coding apparently passed through by all fledgling hackers.
  8456.    Common symptoms include the perpetration of more than one 36-hour
  8457.    {hacking run} in a given week; neglect of all other activities
  8458.    including usual basics like food, sleep, and personal hygiene; and
  8459.    a chronic case of advanced bleary-eye.  Can last from 6 months to 2
  8460.    years, the apparent median being around 18 months.  A few so
  8461.    afflicted never resume a more `normal' life, but the ordeal
  8462.    seems to be necessary to produce really wizardly (as opposed to
  8463.    merely competent) programmers.  See also {wannabee}.  A less
  8464.    protracted and intense version of larval stage (typically lasting
  8465.    about a month) may recur when one is learning a new {OS} or
  8466.    programming language.
  8467.  
  8468. lase: /layz/ vt. To print a given document via a laser printer.
  8469.    "OK, let's lase that sucker and see if all those graphics-macro
  8470.    calls did the right things."
  8471.  
  8472. laser chicken: n. Kung Pao Chicken, a standard Chinese dish
  8473.    containing chicken, peanuts, and hot red peppers in a spicy
  8474.    pepper-oil sauce.  Many hackers call it `laser chicken' for
  8475.    two reasons: It can {zap} you just like a laser, and the
  8476.    sauce has a red color reminiscent of some laser beams.
  8477.  
  8478.    In a variation on this theme, it is reported that some Australian
  8479.    hackers have redesignated the common dish `lemon chicken' as
  8480.    `Chernobyl Chicken'.  The name is derived from the color of the
  8481.    sauce, which is considered bright enough to glow in the dark (as,
  8482.    mythically, do some of the inhabitants of Chernobyl).
  8483.  
  8484. laundromat: n. Syn. {disk farm}; see {washing machine}.
  8485.  
  8486. LDB: /l*'d*b/ [from the PDP-10 instruction set] vt. To extract
  8487.    from the middle.  "LDB me a slice of cake, please." This usage
  8488.    has been kept alive by Common LISP's function of the same name.
  8489.    Considered silly.  See also {DPB}.
  8490.  
  8491. leaf site: n. A machine that merely originates and reads USENET
  8492.    news or mail, and does not relay any third-party traffic.  Often
  8493.    uttered in a critical tone; when the ratio of leaf sites to
  8494.    backbone, rib, and other relay sites gets too high, the network
  8495.    tends to develop bottlenecks.  Compare {backbone site}, {rib
  8496.    site}.
  8497.  
  8498. leak: n. With qualifier, one of a class of resource-management bugs
  8499.    that occur when resources are not freed properly after operations
  8500.    on them are finished, so they effectively disappear (leak out).
  8501.    This leads to eventual exhaustion as new allocation requests come
  8502.    in.  {memory leak} and {fd leak} have their own entries; one
  8503.    might also refer, to, say, a `window handle leak' in a window
  8504.    system.
  8505.  
  8506. leaky heap: [Cambridge] n. An {arena} with a {memory leak}.
  8507.  
  8508. legal: adj. Loosely used to mean `in accordance with all the
  8509.    relevant rules', esp. in connection with some set of constraints
  8510.    defined by software.  "The older =+ alternate for += is no longer
  8511.    legal syntax in ANSI C."  "This parser processes each line of
  8512.    legal input the moment it sees the trailing linefeed."  Hackers
  8513.    often model their work as a sort of game played with the
  8514.    environment in which the objective is to maneuver through the
  8515.    thicket of `natural laws' to achieve a desired objective.  Their
  8516.    use of `legal' is flavored as much by this game-playing sense as by
  8517.    the more conventional one having to do with courts and lawyers.
  8518.    Compare {language lawyer}, {legalese}.
  8519.  
  8520. legalese: n. Dense, pedantic verbiage in a language description,
  8521.    product specification, or interface standard; text that seems
  8522.    designed to obfuscate and requires a {language lawyer} to
  8523.    {parse} it.  Though hackers are not afraid of high information
  8524.    density and complexity in language (indeed, they rather enjoy
  8525.    both), they share a deep and abiding loathing for legalese; they
  8526.    associate it with deception, {suit}s, and situations in which
  8527.    hackers generally get the short end of the stick.
  8528.  
  8529. LER: /L-E-R/ [TMRC, from `Light-Emitting Diode] n. A
  8530.    light-emitting resistor (that is, one in the process of burning
  8531.    up).  Ohm's law was broken.  See {SED}.
  8532.  
  8533. LERP: /lerp/ vi.,n. Quasi-acronym for Linear Interpolation, used as a
  8534.    verb or noun for the operation.  E.g., Bresenham's algorithm lerps
  8535.    incrementally between the two endpoints of the line.
  8536.  
  8537. let the smoke out: v. To fry hardware (see {fried}).  See
  8538.    {magic smoke} for the mythology behind this.
  8539.  
  8540. letterbomb: n. A piece of {email} containing {live data}
  8541.    intended to do nefarious things to the recipient's machine or
  8542.    terminal.  It is possible, for example, to send letterbombs that
  8543.    will lock up some specific kinds of terminals when they are viewed,
  8544.    so thoroughly that the user must {cycle power} to unwedge them.
  8545.    Under UNIX, a letterbomb can also try to get part of its contents
  8546.    interpreted as a shell command to the mailer.  The results of this
  8547.    could range from silly to tragic.  See also {Trojan horse};
  8548.    compare {nastygram}.
  8549.  
  8550. lexer: /lek'sr/ n. Common hacker shorthand for `lexical
  8551.    analyzer', the input-tokenizing stage in the parser for a language
  8552.    (the part that breaks it into word-like pieces).  "Some C lexers
  8553.    get confused by the old-style compound ops like `=-'."
  8554.  
  8555. lexiphage: /lek'si-fayj`/ n. A notorious word {chomper} on
  8556.    ITS.  See {bagbiter}.
  8557.  
  8558. life: n. 1. A cellular-automata game invented by John Horton
  8559.    Conway and first introduced publicly by Martin Gardner (`Scientific
  8560.    American', October 1970).  Many hackers pass through a stage of
  8561.    fascination with it, and hackers at various places contributed
  8562.    heavily to the mathematical analysis of this game (most notably
  8563.    Bill Gosper at MIT, who even implemented life in {TECO}!; see
  8564.    {Gosperism}).  When a hacker mentions `life', he is much more
  8565.    likely to mean this game than the magazine, the breakfast cereal,
  8566.    or the human state of existence.  2. The opposite of {USENET}.
  8567.    As in {Get a life!}
  8568.  
  8569. light pipe: n. Fiber optic cable.  Oppose {copper}.
  8570.  
  8571. like kicking dead whales down the beach: adj. Describes a slow,
  8572.    difficult, and disgusting process.  First popularized by a famous
  8573.    quote about the difficulty of getting work done under one of IBM's
  8574.    mainframe OSes.  "Well, you *could* write a C compiler in
  8575.    COBOL, but it would be like kicking dead whales down the beach."
  8576.    See also {fear and loathing}
  8577.  
  8578. like nailing jelly to a tree: adj. Used to describe a task thought
  8579.    to be impossible, esp. one in which the difficulty arises from
  8580.    poor specification or inherent slipperiness in the problem domain.
  8581.    "Trying to display the `prettiest' arrangement of nodes and arcs
  8582.    that diagrams a given graph is like nailing jelly to a tree,
  8583.    because nobody's sure what `prettiest' means algorithmically."
  8584.  
  8585. line eater, the: [USENET] n. 1. A bug in some now-obsolete
  8586.    versions of the netnews software that used to eat up to BUFSIZ
  8587.    bytes of the article text.  The bug was triggered by having the
  8588.    text of the article start with a space or tab.  This bug was
  8589.    quickly personified as a mythical creature called the `line
  8590.    eater', and postings often included a dummy line of `line eater
  8591.    food'.  Ironically, line eater `food' not beginning with a space or
  8592.    tab wasn't actually eaten, since the bug was avoided; but if there
  8593.    *was* a space or tab before it, then the line eater would eat
  8594.    the food *and* the beginning of the text it was supposed to be
  8595.    protecting.  The practice of `sacrificing to the line eater'
  8596.    continued for some time after the bug had been {nailed to the
  8597.    wall}, and is still humorously referred to.  The bug itself is
  8598.    still (in mid-1991) occasionally reported to be lurking in some
  8599.    mail-to-netnews gateways.  2. See {NSA line eater}.
  8600.  
  8601. line starve: [MIT] 1. vi. To feed paper through a printer the wrong
  8602.    way by one line (most printers can't do this).  On a display
  8603.    terminal, to move the cursor up to the previous line of the screen.
  8604.    "To print `X squared', you just output `X', line starve,
  8605.    `2', line feed."  (The line starve causes the `2' to appear on the
  8606.    line above the `X', and the line feed gets back to the original
  8607.    line.)  2. n. A character (or character sequence) that causes a
  8608.    terminal to perform this action.  Unlike `line feed', `line starve'
  8609.    is *not* standard {{ASCII}} terminology.  Even among hackers
  8610.    it is considered a bit silly.  3. [proposed] A sequence such as \c
  8611.    (used in System V echo, as well as nroff/troff) that suppresses a
  8612.    {newline} or other character(s) that would normally be emitted.
  8613.  
  8614. link farm: [UNIX] n. A directory tree that contains many links to
  8615.    files in a master directory tree of files.  Link farms save space
  8616.    when (for example) one is maintaining several nearly identical
  8617.    copies of the same source tree, e.g., when the only difference is
  8618.    architecture-dependent object files.  "Let's freeze the source and
  8619.    then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms."  Link farms
  8620.    may also be used to get around restrictions on the number of
  8621.    `-I' (include-file directory) arguments on older
  8622.    C preprocessors.
  8623.  
  8624. link-dead: [MUD] adj. Said of a {MUD} character who has frozen in
  8625.    place because of a dropped Internet connection.
  8626.  
  8627. lint: [from UNIX's `lint(1)', named perhaps for the bits of
  8628.    fluff it picks from programs] 1. vt. To examine a program closely
  8629.    for style, language usage, and portability problems, esp. if
  8630.    in C, esp. if via use of automated analysis tools, most esp. if
  8631.    the UNIX utility `lint(1)' is used.  This term used to be
  8632.    restricted to use of `lint(1)' itself, but (judging by
  8633.    references on USENET) it has become a shorthand for {desk check}
  8634.    at some non-UNIX shops, even in languages other than C.  Also as
  8635.    v.  {delint}.  2. n. Excess verbiage in a document, as in "this
  8636.    draft has too much lint".
  8637.  
  8638. lion food: [IBM] n. Middle management or HQ staff (by extension,
  8639.    administrative drones in general).  From an old joke about two
  8640.    lions who, escaping from the zoo, split up to increase their
  8641.    chances but agreed to meet after 2 months.  When they finally
  8642.    meet, one is skinny and the other overweight.  The thin one says:
  8643.    "How did you manage?  I ate a human just once and they turned out
  8644.    a small army to chase me --- guns, nets, it was terrible.  Since
  8645.    then I've been reduced to eating mice, insects, even grass."  The
  8646.    fat one replies: "Well, *I* hid near an IBM office and ate a
  8647.    manager a day.  And nobody even noticed!"
  8648.  
  8649. Lions Book: n. `Source Code and Commentary on UNIX level 6',
  8650.    by John Lions.  The two parts of this book contained (1) the entire
  8651.    source listing of the UNIX Version 6 kernel, and (2) a commentary
  8652.    on the source discussing the algorithms.  These were circulated
  8653.    internally at the University of New South Wales beginning 1976--77,
  8654.    and were for years after the *only* detailed kernel
  8655.    documentation available to anyone outside Bell Labs.  Because
  8656.    Western Electric wished to maintain trade secret status on the
  8657.    kernel, the Lions book was never formally published and was only
  8658.    supposed to be distributed to affiliates of source licensees.  In
  8659.    spite of this, it soon spread by samizdat to a good many of the
  8660.    early UNIX hackers.
  8661.  
  8662. LISP: [from `LISt Processing language', but mythically from
  8663.    `Lots of Irritating Superfluous Parentheses'] n. The name of AI's
  8664.    mother tongue, a language based on the ideas of (a) variable-length
  8665.    lists and trees as fundamental data types, and (b) the
  8666.    interpretation of code as data and vice-versa.  Invented by John
  8667.    McCarthy at MIT in the late 1950s, it is actually older than any
  8668.    other {HLL} still in use except FORTRAN.  Accordingly, it has
  8669.    undergone considerable adaptive radiation over the years; modern
  8670.    variants are quite different in detail from the original LISP 1.5.
  8671.    The dominant HLL among hackers until the early 1980s, LISP now
  8672.    shares the throne with {C}.  See {languages of choice}.
  8673.  
  8674.    All LISP functions and programs are expressions that return
  8675.    values; this, together with the high memory utilization of LISPs,
  8676.    gave rise to Alan Perlis's famous quip (itself a take on an Oscar
  8677.    Wilde quote) that "LISP programmers know the value of everything
  8678.    and the cost of nothing".
  8679.  
  8680.    One significant application for LISP has been as a proof by example
  8681.    that most newer languages, such as {COBOL} and {Ada}, are full
  8682.    of unnecessary {crock}s.  When the {Right Thing} has already
  8683.    been done once, there is no justification for {bogosity} in newer
  8684.    languages.
  8685.  
  8686. literature, the: n. Computer-science journals and other
  8687.    publications, vaguely gestured at to answer a question that the
  8688.    speaker believes is {trivial}.  Thus, one might answer an
  8689.    annoying question by saying "It's in the literature."  Oppose
  8690.    {Knuth}, which has no connotation of triviality.
  8691.  
  8692. little-endian: adj. Describes a computer architecture in which,
  8693.    within a given 16- or 32-bit word, bytes at lower addresses have
  8694.    lower significance (the word is stored `little-end-first').  The
  8695.    PDP-11 and VAX families of computers and Intel microprocessors and
  8696.    a lot of communications and networking hardware are little-endian.
  8697.    See {big-endian}, {middle-endian}, {NUXI problem}.  The term
  8698.    is sometimes used to describe the ordering of units other than
  8699.    bytes; most often these are bits within a byte.
  8700.  
  8701. live data: n. 1. Data that is written to be interpreted and takes
  8702.    over program flow when triggered by some un-obvious operation, such
  8703.    as viewing it.  One use of such hacks is to break security.  For
  8704.    example, some smart terminals have commands that allow one to
  8705.    download strings to program keys; this can be used to write live
  8706.    data that, when listed to the terminal, infects it with a
  8707.    security-breaking {virus} that is triggered the next time a
  8708.    hapless user strikes that key.  For another, there are some
  8709.    well-known bugs in {vi} that allow certain texts to send
  8710.    arbitrary commands back to the machine when they are simply viewed.
  8711.    2. In C code, data that includes pointers to function {hook}s
  8712.    (executable code).  3. An object, such as a {trampoline}, that is
  8713.    constructed on the fly by a program and intended to be executed as
  8714.    code. 4. Actual real-world data, as opposed to `test data'.
  8715.    For example, "I think I have the record deletion module
  8716.    finished."  "Have you tried it out on live data?"  It usually
  8717.    carries the connotation that live data is more fragile and must not
  8718.    be corrupted, else bad things will happen.  So a possible alternate
  8719.    response to the above claim might be: "Well, make sure it works
  8720.    perfectly before we throw live data at it."  The implication here
  8721.    is that record deletion is something pretty significant, and a
  8722.    haywire record-deletion module running amok on live data would
  8723.    cause great harm and probably require restoring from backups.
  8724.  
  8725. Live Free Or Die!: imp. 1. The state motto of New Hampshire, which
  8726.    appears on that state's automobile license plates.  2. A slogan
  8727.    associated with UNIX in the romantic days when UNIX aficionados saw
  8728.    themselves as a tiny, beleaguered underground tilting against the
  8729.    windmills of industry.  The "free" referred specifically to
  8730.    freedom from the {fascist} design philosophies and crufty
  8731.    misfeatures common on commercial operating systems.  Armando
  8732.    Stettner, one of the early UNIX developers, used to give out fake
  8733.    license plates bearing this motto under a large UNIX, all in New
  8734.    Hampshire colors of green and white.  These are now valued
  8735.    collector's items.
  8736.  
  8737. livelock: /li:v'lok/ n. A situation in which some critical stage
  8738.    of a task is unable to finish because its clients perpetually
  8739.    create more work for it to do after they have been serviced but
  8740.    before it can clear its queue.  Differs from {deadlock} in that
  8741.    the process is not blocked or waiting for anything, but has a
  8742.    virtually infinite amount of work to do and can never catch up.
  8743.  
  8744. liveware: /li:v'weir/ n. 1. Synonym for {wetware}.  Less
  8745.    common.  2. [Cambridge] Vermin. "Waiter, there's some liveware in my
  8746.    salad..."
  8747.  
  8748. lobotomy: n. 1. What a hacker subjected to formal management
  8749.    training is said to have undergone.  At IBM and elsewhere this term
  8750.    is used by both hackers and low-level management; the latter
  8751.    doubtless intend it as a joke.  2. The act of removing the
  8752.    processor from a microcomputer in order to replace or upgrade it.
  8753.    Some very cheap {clone} systems are sold in `lobotomized' form
  8754.    --- everything but the brain.
  8755.  
  8756. locked and loaded: [from military slang for an M-16 rifle with
  8757.    magazine inserted and prepared for firing] adj. Said of a removable
  8758.    disk volume properly prepared for use --- that is, locked into the
  8759.    drive and with the heads loaded.  Ironically, because their heads
  8760.    are `loaded' whenever the power is up, this description is never
  8761.    used of {{Winchester}} drives (which are named after a rifle).
  8762.  
  8763. locked up: adj. Syn. for {hung}, {wedged}.
  8764.  
  8765. logic bomb: n. Code surreptitiously inserted in an application or
  8766.    OS that causes it to perform some destructive or
  8767.    security-compromising activity whenever specified conditions are
  8768.    met.  Compare {back door}.
  8769.  
  8770. logical: [from the technical term `logical device', wherein a
  8771.    physical device is referred to by an arbitrary `logical' name]
  8772.    adj.  Having the role of.  If a person (say, Les Earnest at SAIL)
  8773.    who had long held a certain post left and were replaced, the
  8774.    replacement would for a while be known as the `logical' Les
  8775.    Earnest.  (This does not imply any judgment on the replacement.)
  8776.    Compare {virtual}.
  8777.  
  8778.    At Stanford, `logical' compass directions denote a coordinate
  8779.    system in which `logical north' is toward San Francisco,
  8780.    `logical west' is toward the ocean, etc., even though logical
  8781.    north varies between physical (true) north near San Francisco and
  8782.    physical west near San Jose.  (The best rule of thumb here is that,
  8783.    by definition, El Camino Real always runs logical north-and-south.)
  8784.    In giving directions, one might say: "To get to Rincon Tarasco
  8785.    restaurant, get onto {El Camino Bignum} going logical north."
  8786.    Using the word `logical' helps to prevent the recipient from
  8787.    worrying about that the fact that the sun is setting almost
  8788.    directly in front of him.  The concept is reinforced by North
  8789.    American highways which are almost, but not quite, consistently
  8790.    labeled with logical rather than physical directions.  A similar
  8791.    situation exists at MIT.  Route 128 (famous for the electronics
  8792.    industry that has grown up along it) is a 3-quarters circle
  8793.    surrounding Boston at a radius of 10 miles, terminating near the
  8794.    coastline at each end.  It would be most precise to describe the
  8795.    two directions along this highway as `clockwise' and
  8796.    `counterclockwise', but the road signs all say "north" and
  8797.    "south", respectively.  A hacker might describe these directions
  8798.    as `logical north' and `logical south', to indicate that they
  8799.    are conventional directions not corresponding to the usual
  8800.    denotation for those words.  (If you went logical south along the
  8801.    entire length of route 128, you would start out going northwest,
  8802.    curve around to the south, and finish headed due east!)
  8803.  
  8804. loop through: vt. To process each element of a list of things.
  8805.    "Hold on, I've got to loop through my paper mail."  Derives from
  8806.    the computer-language notion of an iterative loop; compare `cdr
  8807.    down' (under {cdr}), which is less common among C and UNIX
  8808.    programmers.  ITS hackers used to say `IRP over' after an
  8809.    obscure pseudo-op in the MIDAS PDP-10 assembler.
  8810.  
  8811. lord high fixer: [primarily British, from Gilbert & Sullivan's
  8812.    `lord high executioner'] n. The person in an organization who knows
  8813.    the most about some aspect of a system.  See {wizard}.
  8814.  
  8815. lose: [MIT] vi. 1. To fail.  A program loses when it encounters
  8816.    an exceptional condition or fails to work in the expected manner.
  8817.    2. To be exceptionally unesthetic or crocky.  3. Of people, to
  8818.    be obnoxious or unusually stupid (as opposed to ignorant).  See
  8819.    also {deserves to lose}.  4. n. Refers to something that is
  8820.    {losing}, especially in the phrases "That's a lose!" and "What
  8821.    a lose!"
  8822.  
  8823. lose lose: interj. A reply to or comment on an undesirable
  8824.    situation.  "I accidentally deleted all my files!"  "Lose,
  8825.    lose."
  8826.  
  8827. loser: n. An unexpectedly bad situation, program, programmer, or
  8828.    person.  Someone who habitually loses.  (Even winners can lose
  8829.    occasionally.)  Someone who knows not and knows not that he knows
  8830.    not.  Emphatic forms are `real loser', `total loser', and
  8831.    `complete loser' (but not *`moby loser', which would be a
  8832.    contradiction in terms).  See {luser}.
  8833.  
  8834. losing: adj. Said of anything that is or causes a {lose} or
  8835.    {lossage}.
  8836.  
  8837. loss: n. Something (not a person) that loses; a situation in which
  8838.    something is losing.  Emphatic forms include `moby loss', and
  8839.    `total loss', `complete loss'.  Common interjections are
  8840.    "What a loss!"  and "What a moby loss!"  Note that `moby loss'
  8841.    is OK even though `moby loser' is not used; applied to an abstract
  8842.    noun, moby is simply a magnifier, whereas when applied to a person
  8843.    it implies substance and has positive connotations.  Compare
  8844.    {lossage}.
  8845.  
  8846. lossage: /los'*j/ n. The result of a bug or malfunction.  This
  8847.    is a mass or collective noun.  "What a loss!" and "What
  8848.    lossage!"  are nearly synonymous.  The former is slightly more
  8849.    particular to the speaker's present circumstances; the latter
  8850.    implies a continuing {lose} of which the speaker is currently
  8851.    a victim.  Thus (for example) a temporary hardware failure is a loss,
  8852.    but bugs in an important tool (like a compiler) are serious
  8853.    lossage.
  8854.  
  8855. lost in the noise: adj. Syn. {lost in the underflow}.  This term
  8856.    is from signal processing, where signals of very small amplitude
  8857.    cannot be separated from low-intensity noise in the system.  Though
  8858.    popular among hackers, it is not confined to hackerdom; physicists,
  8859.    engineers, astronomers, and statisticians all use it.
  8860.  
  8861. lost in the underflow: adj. Too small to be worth considering;
  8862.    more specifically, small beyond the limits of accuracy or
  8863.    measurement.  This is a reference to `floating underflow', a
  8864.    condition that can occur when a floating-point arithmetic processor
  8865.    tries to handle quantities smaller than its limit of magnitude.  It
  8866.    is also a pun on `undertow' (a kind of fast, cold current that
  8867.    sometimes runs just offshore and can be dangerous to swimmers).
  8868.    "Well, sure, photon pressure from the stadium lights alters the
  8869.    path of a thrown baseball, but that effect gets lost in the
  8870.    underflow."  See also {overflow bit}.
  8871.  
  8872. lots of MIPS but no I/O: adj. Used to describe a person who is
  8873.    technically brilliant but can't seem to communicate with human
  8874.    beings effectively.  Technically it describes a machine that has
  8875.    lots of processing power but is bottlenecked on input-output (in
  8876.    1991, the IBM Rios, a.k.a. RS/6000, is a notorious recent
  8877.    example).
  8878.  
  8879. low-bandwidth: [from communication theory] adj. Used to indicate a
  8880.    talk that, although not {content-free}, was not terribly
  8881.    informative.  "That was a low-bandwidth talk, but what can you
  8882.    expect for an audience of {suit}s!"  Compare {zero-content},
  8883.    {bandwidth}, {math-out}.
  8884.  
  8885. LPT: /L-P-T/ or /lip'it/ or /lip-it'/ [MIT, via DEC] n.  Line
  8886.    printer, of course.  Rare under UNIX, commoner in hackers with
  8887.    MS-DOS or CP/M background.  The printer device is called
  8888.    `LPT:' on those systems that, like ITS, were strongly
  8889.    influenced by early DEC conventions.
  8890.  
  8891. lunatic fringe: [IBM] n. Customers who can be relied upon to accept
  8892.    release 1 versions of software.
  8893.  
  8894. lurker: n. One of the `silent majority' in a electronic forum;
  8895.    one who posts occasionally or not at all but is known to read the
  8896.    group's postings regularly.  This term is not pejorative and indeed
  8897.    is casually used reflexively: "Oh, I'm just lurking."  Often used
  8898.    in `the lurkers', the hypothetical audience for the group's
  8899.    {flamage}-emitting regulars.
  8900.  
  8901. luser: /loo'zr/ n. A {user}; esp. one who is also a {loser}.
  8902.    ({luser} and {loser} are pronounced identically.)  This word
  8903.    was coined around 1975 at MIT.  Under ITS, when you first walked up
  8904.    to a terminal at MIT and typed Control-Z to get the computer's
  8905.    attention, it printed out some status information, including how
  8906.    many people were already using the computer; it might print
  8907.    "14 users", for example.  Someone thought it would be a great joke to
  8908.    patch the system to print "14 losers" instead.  There ensued a
  8909.    great controversy, as some of the users didn't particularly want to
  8910.    be called losers to their faces every time they used the computer.
  8911.    For a while several hackers struggled covertly, each changing the
  8912.    message behind the back of the others; any time you logged into the
  8913.    computer it was even money whether it would say "users" or
  8914.    "losers".  Finally, someone tried the compromise "lusers", and it
  8915.    stuck.  Later one of the ITS machines supported `luser' as a
  8916.    request-for-help command.  ITS died the death in mid-1990, except
  8917.    as a museum piece; the usage lives on, however, and the term
  8918.    `luser' is often seen in program comments.
  8919.  
  8920. = M =
  8921.  
  8922. M: [SI] pref. (on units) suff. (on numbers) See {{quantifiers}}.
  8923.  
  8924. macdink: /mak'dink/ [from the Apple Macintosh, which is said to
  8925.    encourage such behavior] vt. To make many incremental and
  8926.    unnecessary cosmetic changes to a program or file.  Often the
  8927.    subject of the macdinking would be better off without them.
  8928.    "When I left at 11 P.M. last night, he was still macdinking the
  8929.    slides for his presentation."  See also {fritterware}.
  8930.  
  8931. machinable: adj. Machine-readable.  Having the {softcopy} nature.
  8932.  
  8933. machoflops: /mach'oh-flops/ [pun on `megaflops', a coinage for
  8934.    `millions of FLoating-point Operations Per Second'] n. Refers to
  8935.    artificially inflated performance figures often quoted by computer
  8936.    manufacturers.  Real applications are lucky to get half the quoted
  8937.    speed. See {Your mileage may vary}, {benchmark}.
  8938.  
  8939. Macintoy: /mak'in-toy/ n. The Apple Macintosh, considered as a
  8940.    {toy}.  Less pejorative than {Macintrash}.
  8941.  
  8942. Macintrash: /mak'in-trash`/ n. The Apple Macintosh, as described
  8943.    by a hacker who doesn't appreciate being kept away from the
  8944.    *real computer* by the interface.  The term {maggotbox} has
  8945.    been reported in regular use in the Research Triangle area of North
  8946.    Carolina.  Compare {Macintoy}. See also {beige toaster},
  8947.    {WIMP environment}, {drool-proof paper}, {user-friendly}.
  8948.  
  8949. macro: /mak'roh/ [techspeak] n. A name (possibly followed by a
  8950.    formal {arg} list) that is equated to a text or symbolic
  8951.    expression to which it is to be expanded (possibly with the
  8952.    substitution of actual arguments) by a macro expander.  This
  8953.    definition can be found in any technical dictionary; what those
  8954.    won't tell you is how the hackish connotations of the term have
  8955.    changed over time.
  8956.  
  8957.    The term `macro' originated in early assemblers, which encouraged
  8958.    the use of macros as a structuring and information-hiding device.
  8959.    During the early 1970s, macro assemblers became ubiquitous, and
  8960.    sometimes quite as powerful and expensive as {HLL}s, only to fall
  8961.    from favor as improving compiler technology marginalized assembler
  8962.    programming (see {languages of choice}).  Nowadays the term is
  8963.    most often used in connection with the C preprocessor, LISP, or one
  8964.    of several special-purpose languages built around a macro-expansion
  8965.    facility (such as TeX or UNIX's [nt]roff suite).
  8966.  
  8967.    Indeed, the meaning has drifted enough that the collective
  8968.    `macros' is now sometimes used for code in any special-purpose
  8969.    application control language (whether or not the language is
  8970.    actually translated by text expansion), and for macro-like entities
  8971.    such as the `keyboard macros' supported in some text editors
  8972.    (and PC TSR or Macintosh INIT/CDEV keyboard enhancers).
  8973.  
  8974. macro-: pref. Large.  Opposite of {micro-}.  In the mainstream
  8975.    and among other technical cultures (for example, medical people)
  8976.    this competes with the prefix {mega-}, but hackers tend to
  8977.    restrict the latter to quantification.
  8978.  
  8979. macrology: /mak-rol'*-jee/ n. 1. Set of usually complex or crufty
  8980.    macros, e.g., as part of a large system written in {LISP},
  8981.    {TECO}, or (less commonly) assembler.  2. The art and science
  8982.    involved in comprehending a macrology in sense 1.  Sometimes
  8983.    studying the macrology of a system is not unlike archeology,
  8984.    ecology, or {theology}, hence the sound-alike construction.  See
  8985.    also {boxology}.
  8986.  
  8987. macrotape: /ma'kroh-tayp/ n. An industry-standard reel of tape, as
  8988.    opposed to a {microtape}.
  8989.  
  8990. maggotbox: /mag'*t-boks/ n. See {Macintrash}.  This is even
  8991.    more derogatory.
  8992.  
  8993. magic: adj. 1. As yet unexplained, or too complicated to explain;
  8994.    compare {automagically} and (Arthur C.) Clarke's Third Law:
  8995.    "Any sufficiently advanced technology is indistinguishable from
  8996.    magic."  "TTY echoing is controlled by a large number of magic
  8997.    bits."  "This routine magically computes the parity of an 8-bit
  8998.    byte in three instructions."  2. Characteristic of something that
  8999.    works although no one really understands why (this is especially called
  9000.    {black magic}).  3. [Stanford] A feature not generally
  9001.    publicized that allows something otherwise impossible, or a feature
  9002.    formerly in that category but now unveiled.  Compare {black
  9003.    magic}, {wizardly}, {deep magic}, {heavy wizardry}.
  9004.  
  9005.    For more about hackish `magic', see appendix A.
  9006.  
  9007. magic cookie: [UNIX] n. 1. Something passed between routines or
  9008.    programs that enables the receiver to perform some operation; a
  9009.    capability ticket or opaque identifier.  Especially used of small
  9010.    data objects that contain data encoded in a strange or
  9011.    intrinsically machine-dependent way.  E.g., on non-UNIX OSes with a
  9012.    non-byte-stream model of files, the result of `ftell(3)' may
  9013.    be a magic cookie rather than a byte offset; it can be passed to
  9014.    `fseek(3)', but not operated on in any meaningful way.  The
  9015.    phrase `it hands you a magic cookie' means it returns a result
  9016.    whose contents are not defined but which can be passed back to the
  9017.    same or some other program later.  2. An in-band code for
  9018.    changing graphic rendition (e.g., inverse video or underlining) or
  9019.    performing other control functions.  Some older terminals would
  9020.    leave a blank on the screen corresponding to mode-change magic
  9021.    cookies; this was also called a {glitch}.  See also {cookie}.
  9022.  
  9023. magic number: [UNIX/C] n. 1. In source code, some non-obvious
  9024.    constant whose value is significant to the operation of a program
  9025.    and that is inserted inconspicuously in-line ({hardcoded}),
  9026.    rather than expanded in by a symbol set by a commented
  9027.    `#define'.  Magic numbers in this sense are bad style.  2. A
  9028.    number that encodes critical information used in an algorithm in
  9029.    some opaque way.  The classic examples of these are the numbers
  9030.    used in hash or CRC functions, or the coefficients in a linear
  9031.    congruential generator for pseudo-random numbers.  This sense
  9032.    actually predates and was ancestral to the more common sense 1.
  9033.    3. Special data located at the beginning of a binary data file to
  9034.    indicate its type to a utility.  Under UNIX, the system and various
  9035.    applications programs (especially the linker) distinguish between
  9036.    types of executable file by looking for a magic number.  Once upon
  9037.    a time, these magic numbers were PDP-11 branch instructions that
  9038.    skipped over header data to the start of executable code; the 0407,
  9039.    for example, was octal for `branch 16 bytes relative'.  Nowadays
  9040.    only a {wizard} knows the spells to create magic numbers.  How do
  9041.    you choose a fresh magic number of your own?  Simple --- you pick
  9042.    one at random.  See?  It's magic!
  9043.  
  9044. magic smoke: n. A substance trapped inside IC packages that enables
  9045.    them to function (also called `blue smoke'; this is similar to
  9046.    the archaic `phlogiston' hypothesis about combustion).  Its
  9047.    existence is demonstrated by what happens when a chip burns up ---
  9048.    the magic smoke gets let out, so it doesn't work any more.  See
  9049.    {smoke test}, {let the smoke out}.
  9050.  
  9051.    USENETter Jay Maynard tells the following story: "Once, while
  9052.    hacking on a dedicated Z80 system, I was testing code by blowing
  9053.    EPROMs and plugging them in the system, then seeing what happened.
  9054.    One time, I plugged one in backwards.  I only discovered that
  9055.    *after* I realized that Intel didn't put power-on lights under
  9056.    the quartz windows on the tops of their EPROMs --- the die was
  9057.    glowing white-hot.  Amazingly, the EPROM worked fine after I erased
  9058.    it, filled it full of zeros, then erased it again.  For all I know,
  9059.    it's still in service.  Of course, this is because the magic smoke
  9060.    didn't get let out."  Compare the original phrasing of {Murphy's
  9061.    Law}.
  9062.  
  9063. mailing list: n. (often shortened in context to `list') 1. An
  9064.    {email} address that is an alias (or {macro}, though that word
  9065.    is never used in this connection) for many other email addresses.
  9066.    Some mailing lists are simple `reflectors', redirecting mail sent
  9067.    to them to the list of recipients.  Others are filtered by humans
  9068.    or programs of varying degrees of sophistication; lists filtered by
  9069.    humans are said to be `moderated'.  2. The people who receive
  9070.    your email when you send it to such an address.
  9071.  
  9072.    Mailing lists are one of the primary forms of hacker interaction,
  9073.    along with {USENET}.  They predate USENET, having originated
  9074.    with the first UUCP and ARPANET connections.  They are often used
  9075.    for private information-sharing on topics that would be too
  9076.    specialized for or inappropriate to public USENET groups.  Though
  9077.    some of these maintain purely technical content (such as the
  9078.    Internet Engineering Task Force mailing list), others (like the
  9079.    `sf-lovers' list maintained for many years by Saul Jaffe) are
  9080.    recreational, and others are purely social.  Perhaps the most
  9081.    infamous of the social lists was the eccentric bandykin
  9082.    distribution; its latter-day progeny, lectroids and
  9083.    tanstaafl, still include a number of the oddest and most
  9084.    interesting people in hackerdom.
  9085.  
  9086.    Mailing lists are easy to create and (unlike USENET) don't tie up a
  9087.    significant amount of machine resources.  Thus, they are often
  9088.    created temporarily by working groups, the members of which can
  9089.    then collaborate on a project without ever needing to meet
  9090.    face-to-face.  Much of the material in this book was criticized and
  9091.    polished on just such a mailing list (called `jargon-friends'),
  9092.    which included all the co-authors of Steele-1983.
  9093.  
  9094. main loop: n. Software tools are often written to perform some
  9095.    actions repeatedly on whatever input is handed to them, terminating
  9096.    when there is no more input or they are explicitly told to go away.
  9097.    In such programs, the loop that gets and processes input is called
  9098.    the `main loop'.  See also {driver}.
  9099.  
  9100. mainframe: n. This term originally referred to the cabinet
  9101.    containing the central processor unit or `main frame' of a
  9102.    room-filling {Stone Age} batch machine.  After the emergence of
  9103.    smaller `minicomputer' designs in the early 1970s, the
  9104.    traditional {big iron} machines were described as `mainframe
  9105.    computers' and eventually just as mainframes.  The term carries the
  9106.    connotation of a machine designed for batch rather than interactive
  9107.    use, though possibly with an interactive timesharing operating
  9108.    system retrofitted onto it; it is especially used of machines built
  9109.    by IBM, Unisys, and the other great {dinosaur}s surviving from
  9110.    computing's {Stone Age}.
  9111.  
  9112.    It is common wisdom among hackers that the mainframe architectural
  9113.    tradition is essentially dead (outside of the tiny market for
  9114.    {number-crunching} supercomputers (see {cray})), having been
  9115.    swamped by the recent huge advances in IC technology and low-cost
  9116.    personal computing.  As of 1991, corporate America hasn't quite
  9117.    figured this out yet, though the wave of failures, takeovers, and
  9118.    mergers among traditional mainframe makers are certainly straws in
  9119.    the wind (see {dinosaurs mating}).
  9120.  
  9121. management: n. 1. Corporate power elites distinguished primarily by
  9122.    their distance from actual productive work and their chronic
  9123.    failure to manage (see also {suit}).  Spoken derisively, as in
  9124.    "*Management* decided that ...".  2. Mythically, a vast
  9125.    bureaucracy responsible for all the world's minor irritations.
  9126.    Hackers' satirical public notices are often signed `The Mgt'; this
  9127.    derives from the `Illuminatus' novels (see the Bibliography).
  9128.  
  9129. mandelbug: /mon'del-buhg/ [from the Mandelbrot set] n. A bug
  9130.    whose underlying causes are so complex and obscure as to make its
  9131.    behavior appear chaotic or even non-deterministic.  This term
  9132.    implies that the speaker thinks it is a {Bohr bug}, rather than a
  9133.    {heisenbug}.
  9134.  
  9135. manged: /monjd/ [probably from the French `manger' or Italian
  9136.    `mangiare', to eat; perhaps influenced by English n. `mange',
  9137.    `mangy'] adj. Refers to anything that is mangled or damaged,
  9138.    usually beyond repair.  "The disk was manged after the electrical
  9139.    storm."  Compare {mung}.
  9140.  
  9141. mangle: vt. Used similarly to {mung} or {scribble}, but more violent
  9142.    in its connotations; something that is mangled has been
  9143.    irreversibly and totally trashed.
  9144.  
  9145. mangler: [DEC] n. A manager.  Compare {mango}; see also
  9146.    {management}.  Note that {system mangler} is somewhat different
  9147.    in connotation.
  9148.  
  9149. mango: /mang'go/ [orig. in-house jargon at Symbolics] n. A manager.
  9150.    Compare {mangler}.  See also {devo} and {doco}.
  9151.  
  9152. marbles: [from mainstream "lost all his/her marbles"] pl.n. The
  9153.    minimum needed to build your way further up some hierarchy of tools
  9154.    or abstractions.  After a bad system crash, you need to determine
  9155.    if the machine has enough marbles to come up on its own, or enough
  9156.    marbles to allow a rebuild from backups, or if you need to rebuild
  9157.    from scratch.  "This compiler doesn't even have enough marbles to
  9158.    compile `Hello World'."
  9159.  
  9160. marginal: adj. 1. Extremely small.  "A marginal increase in
  9161.    {core} can decrease {GC} time drastically."  In everyday
  9162.    terms, this means that it is a lot easier to clean off your desk if
  9163.    you have a spare place to put some of the junk while you sort
  9164.    through it.  2. Of extremely small merit.  "This proposed new
  9165.    feature seems rather marginal to me."  3. Of extremely small
  9166.    probability of {win}ning.  "The power supply was rather marginal
  9167.    anyway; no wonder it fried."
  9168.  
  9169. Marginal Hacks: n. Margaret Jacks Hall, a building into which the
  9170.    Stanford AI Lab was moved near the beginning of the 1980s (from the
  9171.    {D. C. Power Lab}).
  9172.  
  9173. marginally: adv. Slightly.  "The ravs here are only marginally
  9174.    better than at Small Eating Place."  See {epsilon}.
  9175.  
  9176. marketroid: /mar'k*-troyd/ alt. `marketing slime',
  9177.    `marketing droid', `marketeer' n. A member of a company's
  9178.    marketing department, esp. one who promises users that the next
  9179.    version of a product will have features that are not actually
  9180.    scheduled for inclusion, are extremely difficult to implement,
  9181.    and/or are in violation of the laws of physics; and/or one who
  9182.    describes existing features (and misfeatures) in ebullient,
  9183.    buzzword-laden adspeak.  Derogatory.  Compare {droid}.
  9184.  
  9185. Mars: n. A legendary tragic failure, the archetypal Hacker Dream
  9186.    Gone Wrong.  Mars was the code name for a family of PDP-10
  9187.    compatible computers built by Systems Concepts (now, The SC Group);
  9188.    the multi-processor SC-30M, the small uniprocessor SC-25M, and the
  9189.    never-built superprocessor SC-40M.  These machines were marvels of
  9190.    engineering design; although not much slower than the unique
  9191.    {Foonly} F-1, they were physically smaller and consumed less
  9192.    power than the much slower DEC KS10 or Foonly F-2, F-3, or F-4
  9193.    machines.  They were slso completely compatible with the DEC KL10,
  9194.    and ran all KL10 binaries, including the operating system, with no
  9195.    modifications at about 2--3 times faster than a KL10.
  9196.    
  9197.    When DEC cancelled the Jupiter project in 1983, Systems Concepts
  9198.    should have made a bundle selling their machine into shops with a
  9199.    lot of software investment in PDP-10s, and in fact their spring
  9200.    1984 announcement generated a great deal of excitement in the
  9201.    PDP-10 world.  TOPS-10 was running on the Mars by the summer of
  9202.    1984, and TOPS-20 by early fall.  Unfortunately, the hackers
  9203.    running Systems Concepts were much better at designing machines
  9204.    than in mass producing or selling them; the company allowed itself
  9205.    to be sidetracked by a bout of perfectionism into continually
  9206.    improving the design, and lost credibility as delivery dates
  9207.    continued to slip.  They also overpriced the product ridiculously;
  9208.    they believed they were competing with the KL10 and VAX 8600 and
  9209.    failed to reckon with the likes of Sun Microsystems and other
  9210.    hungry startups building workstations with power comparable to the
  9211.    KL10 at a fraction of the price.  By the time SC shipped the first
  9212.    SC-30M to Stanford in late 1985, most customers had already made
  9213.    the traumatic decision to abandon the PDP-10, usually for VMS or
  9214.    UNIX boxes.  Most of the Mars computers built ended up being
  9215.    purchased by CompuServe.
  9216.    
  9217.    This tale and the related saga of Foonly hold a lesson for hackers:
  9218.    if you want to play in the Real World, you need to learn Real World
  9219.    moves.
  9220.    
  9221. martian: n. A packet sent on a TCP/IP network with a source
  9222.    address of the test loopback interface [127.0.0.1].  This means
  9223.    that it will come back at you labeled with a source address that
  9224.    is clearly not of this earth.  "The domain server is getting lots
  9225.    of packets from Mars.  Does that gateway have a martian filter?"
  9226.  
  9227. massage: vt. Vague term used to describe `smooth' transformations of
  9228.    a data set into a different form, esp. transformations that do
  9229.    not lose information.  Connotes less pain than {munch} or {crunch}.
  9230.    "He wrote a program that massages X bitmap files into GIF
  9231.    format."  Compare {slurp}.
  9232.  
  9233. math-out: [poss. from `white-out' (the blizzard variety)] n. A
  9234.    paper or presentation so encrusted with mathematical or other
  9235.    formal notation as to be incomprehensible.  This may be a device
  9236.    for concealing the fact that it is actually {content-free}.  See
  9237.    also {numbers}, {social science number}.
  9238.  
  9239. Matrix: [FidoNet] n. 1. What the Opus BBS software and sysops call
  9240.    {FidoNet}.  2. Fanciful term for a {cyberspace} expected to
  9241.    emerge from current networking experiments (see {network, the}).
  9242.    Some people refer to the totality of present networks this way.
  9243.  
  9244. Mbogo, Dr. Fred: /*m-boh'goh, dok'tr fred/ [Stanford] n. The
  9245.    archetypal man you don't want to see about a problem, esp. an
  9246.    incompetent professional; a shyster.  "Do you know a good eye
  9247.    doctor?"  "Sure, try Mbogo Eye Care and Professional Dry
  9248.    Cleaning."  The name comes from synergy between {bogus} and the
  9249.    original Dr. Mbogo, a witch doctor who was Gomez Addams' physician
  9250.    on the old "Addams Family" TV show.  See also
  9251.    {fred}.
  9252.  
  9253. meatware: n. Synonym for {wetware}.  Less common.
  9254.  
  9255. meeces: /mees'*z/ [TMRC] n. Occasional furry visitors who are not
  9256.    {urchin}s.  [That is, mice. This may no longer be in live use; it
  9257.    clearly derives from the refrain of the early-1960s cartoon character
  9258.    Mr. Jinx: "I hate meeces to *pieces*!" --- ESR]
  9259.  
  9260. meg: /meg/ n. See {{quantifiers}}.
  9261.  
  9262. mega-: /me'g*/ [SI] pref. See {{quantifiers}}.
  9263.  
  9264. megapenny: /meg'*-pen`ee/ n. $10,000 (1 cent * 10^6).
  9265.    Used semi-humorously as a unit in comparing computer cost and
  9266.    performance figures.
  9267.  
  9268. MEGO: /me'goh/ or /mee'goh/ [`My Eyes Glaze Over', often `Mine Eyes
  9269.    Glazeth (sic) Over', attributed to the futurologist Herman Kahn]
  9270.    Also `MEGO factor'.  1. n. A {handwave} intended to confuse the
  9271.    listener and hopefully induce agreement because the listener does
  9272.    not want to admit to not understanding what is going on.  MEGO is
  9273.    usually directed at senior management by engineers and contains a
  9274.    high proportion of {TLA}s.  2. excl. An appropriate response to
  9275.    MEGO tactics.  3. Among non-hackers this term often refers not to
  9276.    behavior that causes the eyes to glaze, but to the eye-glazing
  9277.    reaction itself, which may be triggered by the mere threat of
  9278.    technical detail as effectively as by an actual excess of it.
  9279.  
  9280. meltdown, network: n.  See {network meltdown}.
  9281.  
  9282. meme: /meem/ [coined on analogy with `gene' by Richard
  9283.    Dawkins] n. An idea considered as a {replicator}, esp. with
  9284.    the connotation that memes parasitize people into propagating them
  9285.    much as viruses do.  Used esp. in the phrase `meme complex'
  9286.    denoting a group of mutually supporting memes that form an
  9287.    organized belief system, such as a religion.  This lexicon is an
  9288.    (epidemiological) vector of the `hacker subculture' meme complex;
  9289.    each entry might be considered a meme.  However, `meme' is often
  9290.    misused to mean `meme complex'.  Use of the term connotes
  9291.    acceptance of the idea that in humans (and presumably other tool-
  9292.    and language-using sophonts) cultural evolution by selection of
  9293.    adaptive ideas has superseded biological evolution by selection of
  9294.    hereditary traits.  Hackers find this idea congenial for tolerably
  9295.    obvious reasons.
  9296.  
  9297. meme plague: n. The spread of a successful but pernicious {meme},
  9298.    esp. one that parasitizes the victims into giving their all to
  9299.    propagate it.  Astrology, BASIC, and the other guy's religion are
  9300.    often considered to be examples.  This usage is given point by the
  9301.    historical fact that `joiner' ideologies like Naziism or various
  9302.    forms of millennarian Christianity have exhibited plague-like cycles
  9303.    of exponential growth followed by collapses to small reservoir
  9304.    populations.
  9305.  
  9306. memetics: /me-met'iks/ [from {meme}] The study of memes.  As of
  9307.    mid-1991, this is still an extremely informal and speculative
  9308.    endeavor, though the first steps towards at least statistical rigor
  9309.    have been made by H. Keith Henson and others.  Memetics is a
  9310.    popular topic for speculation among hackers, who like to see
  9311.    themselves as the architects of the new information ecologies in
  9312.    which memes live and replicate.
  9313.  
  9314. memory leak: n. An error in a program's dynamic-store allocation
  9315.    logic that causes it to fail to reclaim discarded memory, leading
  9316.    to eventual collapse due to memory exhaustion.  Also (esp. at
  9317.    CMU) called {core leak}.  See {aliasing bug}, {fandango on
  9318.    core}, {smash the stack}, {precedence lossage}, {overrun
  9319.    screw}, {leaky heap}, {leak}.
  9320.  
  9321. menuitis: /men`yoo-i:'tis/ n. Notional disease suffered by software
  9322.    with an obsessively simple-minded menu interface and no escape.
  9323.    Hackers find this intensely irritating and much prefer the
  9324.    flexibility of command-line or language-style interfaces,
  9325.    especially those customizable via macros or a special-purpose
  9326.    language in which one can encode useful hacks.  See
  9327.    {user-obsequious}, {drool-proof paper}, {WIMP environment},
  9328.    {for the rest of us}.
  9329.  
  9330. mess-dos: /mes-dos/ n. Derisory term for MS-DOS.  Often followed
  9331.    by the ritual banishing "Just say No!"  See {{MS-DOS}}.  Most
  9332.    hackers (even many MS-DOS hackers) loathe MS-DOS for its
  9333.    single-tasking nature, its limits on application size, its nasty
  9334.    primitive interface, and its ties to IBMness (see {fear and
  9335.    loathing}).  Also `mess-loss', `messy-dos', `mess-dog',
  9336.    `mess-dross', `mush-dos', and various combinations thereof.  In
  9337.    Ireland and the U.K. it is even sometimes called `Domestos' after a
  9338.    brand of toilet cleanser.
  9339.  
  9340. meta: /me't*/ or /may't*/ or (Commonwealth) /mee't*/ [from
  9341.    analytic philosophy] adj.,pref. One level of description up.
  9342.    A meta-syntactic variable is a variable in notation used to describe
  9343.    syntax, and meta-language is language used to describe language.
  9344.    This is difficult to explain briefly, but much hacker humor turns
  9345.    on deliberate confusion between meta-levels.  See {{Humor,
  9346.    Hacker}}.
  9347.  
  9348. meta bit: n. The top bit of an 8-bit character, which is on in
  9349.    character values 128--255.  Also called {high bit}, {alt bit},
  9350.    or {hobbit}.  Some terminals and consoles (see {space-cadet
  9351.    keyboard}) have a META shift key.  Others (including,
  9352.    *mirabile dictu*, keyboards on IBM PC-class machines) have an
  9353.    ALT key.  See also {bucky bits}.
  9354.  
  9355. MFTL: /M-F-T-L/ [acronym: `My Favorite Toy Language'] 1. adj.
  9356.    Describes a talk on a programming language design that is heavy on
  9357.    the syntax (with lots of BNF), sometimes even talks about semantics
  9358.    (e.g., type systems), but rarely, if ever, has any content (see
  9359.    {content-free}).  More broadly applied to talks --- even when
  9360.    the topic is not a programming language --- in which the subject
  9361.    matter is gone into in unnecessary and meticulous detail at the
  9362.    sacrifice of any conceptual content.  "Well, it was a typical MFTL
  9363.    talk".  2. n. Describes a language about which the developers are
  9364.    passionate (often to the point of prosyletic zeal) but no one else
  9365.    cares about.  Applied to the language by those outside the
  9366.    originating group.  "He cornered me about type resolution in his
  9367.    MFTL."
  9368.  
  9369.    The first great goal in the mind of the designer of an MFTL is
  9370.    usually to write a compiler for it, then bootstrap the design away
  9371.    from contamination by lesser languages by writing a compiler for it
  9372.    in itself.  Thus, the standard put-down question at an MFTL talk is
  9373.    "Has it been used for anything besides its own compiler?".  On
  9374.    the other hand, a language that *cannot* be used to write
  9375.    its own compiler is beneath contempt...
  9376.  
  9377. mickey: n. The resolution unit of mouse movement.  It has been
  9378.    suggested that the `disney' will become a benchmark unit for
  9379.    animation graphics performance.
  9380.  
  9381. mickey mouse program: n. North American equivalent of a {noddy}
  9382.    (that is, trivial) program.  Doesn't necessarily have the
  9383.    belittling connotations of mainstream slang "Oh, that's just
  9384.    mickey mouse stuff!"; sometimes trivial programs can be very
  9385.    useful.
  9386.  
  9387. micro-: pref. 1. Very small; this is the root of its use as a
  9388.    quantifier prefix.  2. A quantifier prefix, calling for
  9389.    multiplication by 10^{-6} (see {{quantifiers}}).  Neither
  9390.    of these uses is peculiar to hackers, but hackers tend to fling
  9391.    them both around rather more freely than is countenanced in
  9392.    standard English.  It is recorded, for example, that one
  9393.    CS professor used to characterize the standard length of his
  9394.    lectures as a microcentury --- that is, about 52.6 minutes (see
  9395.    also {attoparsec}, {nanoacre}, and especially
  9396.    {microfortnight}).  3. Personal or human-scale --- that is,
  9397.    capable of being maintained or comprehended or manipulated by one
  9398.    human being.  This sense is generalized from `microcomputer',
  9399.    and is esp. used in contrast with `macro-' (the corresponding
  9400.    Greek prefix meaning `large').  4. Local as opposed to global (or
  9401.    {macro-}).  Thus a hacker might say that buying a smaller car to
  9402.    reduce pollution only solves a microproblem; the macroproblem of
  9403.    getting to work might be better solved by using mass transit,
  9404.    moving to within walking distance, or (best of all) telecommuting.
  9405.    
  9406.  
  9407. microfloppies: n. 3.5-inch floppies, as opposed to 5.25-inch
  9408.    {vanilla} or mini-floppies and the now-obsolete 8-inch variety.
  9409.    This term may be headed for obsolescence as 5.25-inchers pass out
  9410.    of use, only to be revived if anybody floats a sub-3-inch floppy
  9411.    standard.  See {stiffy}, {minifloppies}.
  9412.  
  9413. microfortnight: n. About 1.2 sec. The VMS operating system has a
  9414.    lot of tuning parameters that you can set with the SYSGEN utility,
  9415.    and one of these is TIMEPROMPTWAIT, the time the system will wait
  9416.    for an operator to set the correct date and time at boot if it
  9417.    realizes that the current value is bogus.  This time is specified
  9418.    in microfortnights!
  9419.  
  9420.    Multiple uses of the millifortnight (about 20 minutes) and
  9421.    {nanofortnight} have also been reported.
  9422.  
  9423. microLenat: /mi:-kroh-len'-*t/ n. See {bogosity}.
  9424.  
  9425. microReid: /mi:'kroh-reed/ n. See {bogosity}.
  9426.  
  9427. Microsloth Windows: /mi:'kroh-sloth` win'dohz/ n. Hackerism for
  9428.    `Microsoft Windows', a windowing system for the IBM-PC which is so
  9429.    limited by bug-for-bug compatibility with {mess-dos} that it is
  9430.    agonizingly slow on anything less than a fast 386.  Compare {X},
  9431.    {sun-stools}.
  9432.  
  9433. microtape: /mi:'kroh-tayp/ n. Occasionally used to mean a
  9434.    DECtape, as opposed to a {macrotape}.  A DECtape is a small
  9435.    reel, about 4 inches in diameter, of magnetic tape about an inch
  9436.    wide.  Unlike drivers for today's {macrotape}s, microtape
  9437.    drivers allow random access to the data, and therefore could be
  9438.    used to support file systems and even for swapping (this was
  9439.    generally done purely for {hack value}, as they were far too
  9440.    slow for practical use).  In their heyday they were used in pretty
  9441.    much the same ways one would now use a floppy disk: as a small,
  9442.    portable way to save and transport files and programs.  Apparently
  9443.    the term `microtape' was actually the official term used within
  9444.    DEC for these tapes until someone coined the word `DECtape',
  9445.    which, of course, sounded sexier to the {marketroid}s.
  9446.  
  9447. middle-endian: adj. Not {big-endian} or {little-endian}.
  9448.    Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3,
  9449.    occasionally found in the packed-decimal formats of minicomputer
  9450.    manufacturers who shall remain nameless.  See {NUXI problem}.
  9451.  
  9452. milliLampson: /mil'*-lamp`sn/ n. A unit of talking speed,
  9453.    abbreviated mL.  Most people run about 200 milliLampsons.  Butler
  9454.    Lampson (a CS theorist and systems implementor highly regarded
  9455.    among hackers) goes at 1000.  A few people speak faster.  This unit
  9456.    is sometimes used to compare the (sometimes widely disparate) rates
  9457.    at which people can generate ideas and actually emit them in
  9458.    speech.  For example, noted computer architect C. Gordon Bell
  9459.    (designer of the PDP-11) is said, with some awe, to think at about
  9460.    1200 mL but only talk at about 300; he is frequently reduced to
  9461.    fragments of sentences as his mouth tries to keep up with his
  9462.    speeding brain.
  9463.  
  9464. minifloppies: n. 5.25-inch {vanilla} floppy disks, as opposed to
  9465.    3.5-inch or {microfloppies} and the now-obsolescent 8-inch
  9466.    variety.  At one time, this term was a trademark of Shugart
  9467.    Associates for their SA-400 minifloppy drive.  Nobody paid any
  9468.    attention.  See {stiffy}.
  9469.  
  9470. MIPS: /mips/ [acronym] n. 1. A measure of computing speed;
  9471.    formally, `Million Instructions Per Second' (that's 10^6
  9472.    per second, not 2^{20}!); often rendered by hackers as
  9473.    `Meaningless Indication of Processor Speed' or in other
  9474.    unflattering ways.  This joke expresses a nearly universal attitude
  9475.    about the value of most {benchmark} claims, said attitude being
  9476.    one of the great cultural divides between hackers and
  9477.    {marketroid}s.  The singular is sometimes `1 MIP' even though
  9478.    this is clearly etymologically wrong.  See also {KIPS} and
  9479.    {GIPS}.  2. Computers, especially large computers, considered
  9480.    abstractly as sources of {computron}s.  "This is just a
  9481.    workstation; the heavy MIPS are hidden in the basement."  3. The
  9482.    corporate name of a particular RISC-chip company; among other
  9483.    things, they designed the processor chips used in DEC's 3100
  9484.    workstation series.  4. Acronym for `Meaningless Information per
  9485.    Second' (a joke, prob. from sense 1).
  9486.  
  9487. misbug: /mis-buhg/ [MIT] n. An unintended property of a program
  9488.    that turns out to be useful; something that should have been a
  9489.    {bug} but turns out to be a {feature}.  Usage: rare.  Compare
  9490.    {green lightning}. See {miswart}.
  9491.  
  9492. misfeature: /mis-fee'chr/ or /mis'fee`chr/ n. A feature that
  9493.    eventually causes lossage, possibly because it is not adequate for
  9494.    a new situation which has evolved.  It is not the same as a bug,
  9495.    because fixing it involves a substantial philosophical change to
  9496.    the structure of the system involved.  A misfeature is different
  9497.    from a simple unforeseen side effect; the term implies that the
  9498.    misfeature was actually carefully planned to be that way, but
  9499.    its future consequences or circumstances just weren't predicted
  9500.    accurately.  This is different from just not having thought ahead
  9501.    about it at all.  Many misfeatures (especially in user-interface
  9502.    design) arise because the designers/implementors mistook their
  9503.    personal tastes for laws of nature.  Often a former feature becomes
  9504.    a misfeature because a tradeoff was made whose parameters
  9505.    subsequently changed (possibly only in the judgment of the
  9506.    implementors).  "Well, yeah, it is kind of a misfeature that file
  9507.    names are limited to 6 characters, but the original implementors
  9508.    wanted to save directory space and we're stuck with it for now."
  9509.  
  9510. Missed'em-five: n. Pejorative hackerism for AT&T System V UNIX,
  9511.    generally used by {BSD} partisans in a bigoted mood.  (The
  9512.    synonym `SysVile' is also encountered.)  See {software bloat},
  9513.    {Berzerkeley}.
  9514.  
  9515. miswart: /mis-wort/ [from {wart} by analogy with {misbug}] n.
  9516.    A {feature} that superficially appears to be a {wart} but has been
  9517.    determined to be the {Right Thing}.  For example, in some versions
  9518.    of the {EMACS} text editor, the `transpose characters' command
  9519.    exchanges the two characters on either side of the cursor on the
  9520.    screen, *except* when the cursor is at the end of a line, in
  9521.    which case the two characters before the cursor are exchanged.
  9522.    While this behavior is perhaps surprising, and certainly
  9523.    inconsistent, it has been found through extensive experimentation
  9524.    to be what most users want.  This feature is a miswart.
  9525.  
  9526. moby: /moh'bee/ [MIT: seems to have been in use among model
  9527.    railroad fans years ago.  Derived from Melville's `Moby Dick' (some
  9528.    say from `Moby Pickle').] 1. adj. Large, immense, complex,
  9529.    impressive.  "A Saturn V rocket is a truly moby frob."  "Some
  9530.    MIT undergrads pulled off a moby hack at the Harvard-Yale game."
  9531.    (See appendix A).  2. n. obs. The maximum address space of a
  9532.    machine (see below).  For a 680[234]0 or VAX or most modern 32-bit
  9533.    architectures, it is 4,294,967,296 8-bit bytes (4 gigabytes).  3. A
  9534.    title of address (never of third-person reference), usually used to
  9535.    show admiration, respect, and/or friendliness to a competent
  9536.    hacker.  "Greetings, moby Dave.  How's that address-book thing for
  9537.    the Mac going?"  4. adj. In backgammon, doubles on the dice, as in
  9538.    `moby sixes', `moby ones', etc.  Compare this with
  9539.    {bignum} (sense 2): double sixes are both bignums and moby
  9540.    sixes, but moby ones are not bignums (the use of `moby' to
  9541.    describe double ones is sarcastic).  Standard emphatic forms:
  9542.    `Moby foo', `moby win', `moby loss'.  `Foby moo': a
  9543.    spoonerism due to Richard Greenblatt.
  9544.  
  9545.    This term entered hackerdom with the Fabritek 256K memory added to
  9546.    the MIT AI PDP-6 machine, which was considered unimaginably huge
  9547.    when it was installed in the 1960s (at a time when a more typical
  9548.    memory size for a timesharing system was 72 kilobytes).  Thus, a
  9549.    moby is classically 256K 36-bit words, the size of a PDP-6 or
  9550.    PDP-10 moby.  Back when address registers were narrow the term was
  9551.    more generally useful, because when a computer had virtual memory
  9552.    mapping, it might actually have more physical memory attached to it
  9553.    than any one program could access directly.  One could then say
  9554.    "This computer has 6 mobies" meaning that the ratio of physical
  9555.    memory to address space is 6, without having to say specifically
  9556.    how much memory there actually is.  That in turn implied that the
  9557.    computer could timeshare six `full-sized' programs without having to
  9558.    swap programs between memory and disk.
  9559.  
  9560.    Nowadays the low cost of processor logic means that address spaces
  9561.    are usually larger than the most physical memory you can cram onto
  9562.    a machine, so most systems have much *less* than one theoretical
  9563.    `native' moby of core.  Also, more modern memory-management
  9564.    techniques (esp. paging) make the `moby count' less significant.
  9565.    However, there is one series of popular chips for which the term
  9566.    could stand to be revived --- the Intel 8088 and 80286 with their
  9567.    incredibly {brain-damaged} segmented-memory designs.  On these, a
  9568.    `moby' would be the 1-megabyte address span of a segment/offset
  9569.    pair (by coincidence, a PDP-10 moby was exactly 1 megabyte of 9-bit
  9570.    bytes).
  9571.  
  9572. mod: vt.,n. 1. Short for `modify' or `modification'.  Very
  9573.    commonly used --- in fact the full terms are considered markers
  9574.    that one is being formal.  The plural `mods' is used esp. with
  9575.    reference to bug fixes or minor design changes in hardware or
  9576.    software, most esp. with respect to {patch} sets or a {diff}.
  9577.    2. Short for {modulo} but used *only* for its techspeak sense.
  9578.  
  9579. mode: n. A general state, usually used with an adjective
  9580.    describing the state.  Use of the word `mode' rather than
  9581.    `state' implies that the state is extended over time, and
  9582.    probably also that some activity characteristic of that state is
  9583.    being carried out. "No time to hack; I'm in thesis mode."  In its
  9584.    jargon sense, `mode' is most often attributed to people, though it is
  9585.    sometimes applied to programs and inanimate objects. In particular,
  9586.    see {hack mode}, {day mode}, {night mode}, {demo mode},
  9587.    {fireworks mode}, and {yoyo mode}; also {talk
  9588.    mode}.
  9589.  
  9590.    One also often hears the verbs `enable' and `disable' used in
  9591.    connection with jargon modes.  Thus, for example, a sillier way of
  9592.    saying "I'm going to crash" is "I'm going to enable crash mode
  9593.    now".  One might also hear a request to "disable flame mode,
  9594.    please".
  9595.  
  9596. mode bit: n. A {flag}, usually in hardware, that selects between
  9597.    two (usually quite different) modes of operation.  The connotations
  9598.    are different from {flag} bit in that mode bits are mainly
  9599.    written during a boot or set-up phase, are seldom explicitly read,
  9600.    and seldom change over the lifetime of an ordinary program.  The
  9601.    classic example was the EBCDIC-vs.-ASCII bit (#12) of the Program
  9602.    Status Word of the IBM 360.  Another was the bit on a PDP-12 that
  9603.    controlled whether it ran the PDP-8 or the LINC instruction set.
  9604.  
  9605. modulo: /mo'dyu-loh/ prep. Except for.  From mathematical
  9606.    terminology; one can consider saying that 4 = 22 except for
  9607.    the 9s (4 = 22 mod 9).  "Well, LISP seems to work okay now,
  9608.    modulo that {GC} bug."  "I feel fine today modulo a slight
  9609.    headache."
  9610.  
  9611. molly-guard: /mol'ee-gard/ [University of Illinois] n. A shield
  9612.    to prevent tripping of some {Big Red Switch} by clumsy or
  9613.    ignorant hands.  Originally used of some plexiglass covers
  9614.    improvised for the BRS on an IBM 4341 after a programmer's toddler
  9615.    daughter (named Molly) frobbed it twice in one day.  Later
  9616.    generalized to covers over stop/reset switches on disk drives and
  9617.    networking equipment.
  9618.  
  9619. Mongolian Hordes technique: n. Development by {gang bang}
  9620.    (poss. from the Sixties counterculture expression `Mongolian
  9621.    clusterfuck' for a public orgy).  Implies that large numbers of
  9622.    inexperienced programmers are being put on a job better performed
  9623.    by a few skilled ones.  Also called `Chinese Army technique';
  9624.    see also {Brooks's Law}.
  9625.  
  9626. monkey up: vt. To hack together hardware for a particular task,
  9627.    especially a one-shot job.  Connotes an extremely {crufty} and
  9628.    consciously temporary solution.  Compare {hack up}, {kluge up},
  9629.    {cruft together}, {cruft together}.
  9630.  
  9631. monkey, scratch: n.  See {scratch monkey}.
  9632.  
  9633. monstrosity: 1. n. A ridiculously {elephantine} program or system,
  9634.    esp. one that is buggy or only marginally functional.  2. The
  9635.    quality of being monstrous (see `Overgeneralization' in the discussion
  9636.    of jargonification).  See also {baroque}.
  9637.  
  9638. Moof: /moof/ [MAC users] n. The Moof or `dogcow' is a
  9639.    semi-legendary creature that lurks in the depths of the Macintosh
  9640.    Technical Notes Hypercard stack V3.1; specifically, the full story
  9641.    of the dogcow is told in technical note #31 (the particular Moof
  9642.    illustrated is properly named `Clarus').  Option-shift-click will
  9643.    cause it to emit a characteristic `Moof!' or `!fooM' sound.
  9644.    *Getting* to tech note 31 is the hard part; to discover how
  9645.    to do that, one must needs examine the stack script with a hackerly
  9646.    eye.  Clue: {rot13} is involved.  A dogcow also appears if you
  9647.    choose `Page Setup...' with a LaserWriter selected and click on
  9648.    the `Options' button.
  9649.  
  9650. Moore's Law: /morz law/ prov. The observation that the logic
  9651.    density of silicon integrated circuits has closely followed the
  9652.    curve (bits per square inch)  = 2^{(n - 1962)}; that is, the
  9653.    amount of information storable in one square inch of silicon has
  9654.    roughly doubled yearly every year since the technology was
  9655.    invented.  See also {Parkinson's Law of Data}.
  9656.  
  9657. moria: /mor'ee-*/ n. Like {nethack} and {rogue}, one of the
  9658.    large PD Dungeons-and-Dragons-like simulation games, available for
  9659.    a wide range of machines and operating systems.  Extremely
  9660.    addictive and a major consumer of time better used for hacking.
  9661.  
  9662. MOTAS: /moh-toz/ [USENET: Member Of The Appropriate Sex, after
  9663.    {MOTOS} and {MOTSS}] n. A potential or (less often) actual sex
  9664.    partner.  See also {SO}.
  9665.  
  9666. MOTOS: /moh-tohs/ [acronym from the 1970 U.S. census forms via
  9667.    USENET: Member Of The Opposite Sex] n. A potential or (less often)
  9668.    actual sex partner.  See {MOTAS}, {MOTSS}, {SO}.  Less
  9669.    common than MOTSS or {MOTAS}, which have largely displaced it.
  9670.  
  9671. MOTSS: /mots/ or /M-O-T-S-S/ [from the 1970 U.S. census forms
  9672.    via USENET, Member Of The Same Sex] n. Esp. one considered as a
  9673.    possible sexual partner.  The gay-issues newsgroup on USENET is
  9674.    called soc.motss.  See {MOTOS} and {MOTAS}, which derive
  9675.    from it.  Also see {SO}.
  9676.  
  9677. mouse ahead: vi. Point-and-click analog of `type ahead'.  To
  9678.    manipulate a computer's pointing device (almost always a mouse in
  9679.    this usage, but not necessarily) and its selection or command
  9680.    buttons before a computer program is ready to accept such input, in
  9681.    anticipation of the program accepting the input.  Handling this
  9682.    properly is rare, but it can help make a {WIMP environment} much
  9683.    more usable, assuming the users are familiar with the behavior of the
  9684.    user interface.
  9685.  
  9686. mouse around: vi. To explore public portions of a large system, esp.
  9687.    a network such as Internet via {FTP} or {TELNET}, looking for
  9688.    interesting stuff to {snarf}.
  9689.  
  9690. mouse belt: n. See {rat belt}.
  9691.  
  9692. mouse droppings: [MS-DOS] n. Pixels (usually single) that are not
  9693.    properly restored when the mouse pointer moves away from a
  9694.    particular location on the screen, producing the appearance that
  9695.    the mouse pointer has left droppings behind.  The major causes for
  9696.    this problem are programs that write to the screen memory
  9697.    corresponding to the mouse pointer's current location without
  9698.    hiding the mouse pointer first, and mouse drivers that do not quite
  9699.    support the graphics mode in use.
  9700.  
  9701. mouse elbow: n. A tennis-elbow-like fatigue syndrome resulting from
  9702.    excessive use of a {WIMP environment}.  Similarly, `mouse
  9703.    shoulder'; GLS reports that he used to get this a lot before he
  9704.    taught himself to be ambimoustrous.
  9705.  
  9706. mouso: /mow'soh/ n. [by analogy with `typo'] An error in mouse usage
  9707.    resulting in an inappropriate selection or graphic garbage on the
  9708.    screen.  Compare {thinko}, {braino}.
  9709.  
  9710. MS-DOS:: /M-S-dos/ [MicroSoft Disk Operating System] n. A
  9711.    {clone} of {{CP/M}} for the 8088 crufted together in 6 weeks by
  9712.    hacker Tim Paterson, who is said to have regretted it ever since.
  9713.    Numerous features, including vaguely UNIX-like but rather broken
  9714.    support for subdirectories, I/O redirection, and pipelines, were
  9715.    hacked into 2.0 and subsequent versions; as a result, there are two
  9716.    or more incompatible versions of many system calls, and MS-DOS
  9717.    programmers can never agree on basic things like what character to
  9718.    use as an option switch or whether to be case-sensitive.  The
  9719.    resulting mess is now the highest-unit-volume OS in history.  Often
  9720.    known simply as DOS, which annoys people familiar with other
  9721.    similarly abbreviated operating systems (the name goes back to the
  9722.    mid-1960s, when it was attached to IBM's first disk operating
  9723.    system for the 360).  Some people like to pronounce DOS like
  9724.    "dose", as in "I don't work on dose, man!", or to compare it
  9725.    to a dose of brain-damaging drugs (a slogan button in wide
  9726.    circulation among hackers exhorts: "MS-DOS: Just say No!").  See
  9727.    {mess-dos}, {ill-behaved}.
  9728.  
  9729. mu: /moo/ The correct answer to the classic trick question
  9730.    "Have you stopped beating your wife yet?".  Assuming that you
  9731.    have no wife or you have never beaten your wife, the answer "yes"
  9732.    is wrong because it implies that you used to beat your wife and
  9733.    then stopped, but "no" is worse because it suggests that you
  9734.    have one and are still beating her.  According to various
  9735.    Discordians and Douglas Hofstadter (see the Bibliography), the
  9736.    correct answer is usually "mu", a Japanese word alleged to mean
  9737.    "Your question cannot be answered because it depends on incorrect
  9738.    assumptions".  Hackers tend to be sensitive to logical
  9739.    inadequacies in language, and many have adopted this suggestion
  9740.    with enthusiasm.  The word `mu' is actually from Chinese, meaning
  9741.    `nothing'; it is used in mainstream Japanese in that sense, but
  9742.    native speakers do not recognize the Discordian question-denying
  9743.    use.  It almost certainly derives from overgeneralization of the
  9744.    answer in the following well-known Rinzei Zen teaching riddle:
  9745.  
  9746.      A monk asked Joshu, "Does a dog have the Buddha nature?"
  9747.      Joshu retorted, "Mu!"
  9748.  
  9749.    See also {has the X nature}, {AI Koans}, and Douglas
  9750.    Hofstadter's `G"odel, Escher, Bach' (pointer in the
  9751.    Bibliography).
  9752.  
  9753. MUD: /muhd/ [acronym, Multi-User Dungeon; alt. Multi-User
  9754.    Dimension] 1. n.  A class of {virtual reality} experiments
  9755.    accessible via the Internet.  These are real-time chat forums with
  9756.    structure; they have multiple `locations' like an adventure game,
  9757.    and may include combat, traps, puzzles, magic, a simple economic
  9758.    system, and the capability for characters to build more structure
  9759.    onto the database that represents the existing world.  2. vi. To
  9760.    play a MUD (see {hack-and-slay}).  The acronym MUD is often
  9761.    lowercased and/or verbed; thus, one may speak of `going
  9762.    mudding', etc.
  9763.  
  9764.    Historically, MUDs (and their more recent progeny with names of MU-
  9765.    form) derive from an AI experiment by Richard Bartle and Roy
  9766.    Trubshaw on the University of Essex's DEC-10 in the early 1980s;
  9767.    descendants of that game still exist today (see {BartleMUD}).
  9768.    The title `MUD' is still trademarked to the commercial MUD run by
  9769.    Bartle on British Telecom (the motto: "You haven't *lived*
  9770.    'til you've *died* on MUD!"); however, this did not stop
  9771.    students on the European academic networks from copying and improving
  9772.    on the MUD concept, from which sprung several new MUDs (VAXMUD,
  9773.    AberMUD, LPMUD).  Many of these had associated bulletin-board
  9774.    systems for social interaction.  Because USENET feeds have been
  9775.    spotty and difficult to get in the U.K.  and the British JANET
  9776.    network doesn't support {FTP} or remote login via telnet, the
  9777.    MUDs became major foci of hackish social interaction there.
  9778.  
  9779.    AberMUD and other variants crossed the Atlantic around 1988 and
  9780.    quickly gained popularity in the U.S.; they became nuclei for large
  9781.    hacker communities with only loose ties to traditional hackerdom
  9782.    (some observers see parallels with the growth of USENET in the
  9783.    early 1980s).  The second wave of MUDs (TinyMUD and variants)
  9784.    tended to emphasize social interaction, puzzles, and cooperative
  9785.    world-building as opposed to combat and competition.  In 1991, over
  9786.    50% of MUD sites are of a third major variety, LPMUD, which
  9787.    synthesizes the combat/puzzle aspects of AberMUD and older systems
  9788.    with the extensibility of TinyMud. The trend toward greater
  9789.    programmability and flexibility will doubtless continue.
  9790.  
  9791.    The state of the art in MUD design is still moving very rapidly,
  9792.    with new simulation designs appearing (seemingly) every month.
  9793.    There is now (early 1991) a move afoot to deprecate the term
  9794.    {MUD} itself, as newer designs exhibit an exploding variety of
  9795.    names corresponding to the different simulation styles being
  9796.    explored.  See also {BartleMUD}, {berserking}, {bonk/oif},
  9797.    {brand brand brand}, {FOD}, {hack-and-slay}, {link-dead},
  9798.    {mudhead}, {posing}, {talk mode}, {tinycrud}.
  9799.  
  9800. mudhead: n. Commonly used to refer to a {MUD} player who
  9801.    sleeps, breathes, and eats MUD.  Mudheads have been known to fail
  9802.    their degrees, drop out, etc., with the consolation, however, that
  9803.    they made wizard level.  When encountered in person, all a mudhead
  9804.    will talk about is two topics: the tactic, character, or wizard
  9805.    that is supposedly always unfairly stopping him/her from becoming a
  9806.    wizard or beating a favorite MUD, and the MUD he or she is writing
  9807.    or going to write because all existing MUDs are so dreadful!  See
  9808.    also {wannabee}.
  9809.  
  9810. multician: /muhl-ti'shn/ [coined at Honeywell, ca. 1970] n.
  9811.    Competent user of {{Multics}}.  Perhaps oddly, no one has ever
  9812.    promoted the analogous `Unician'.
  9813.  
  9814. Multics:: /muhl'tiks/ n. [from "MULTiplexed Information and
  9815.    Computing Service"] An early (late 1960s) timesharing operating
  9816.    system co-designed by a consortium including MIT, GE, and Bell
  9817.    Laboratories.  Very innovative for its time --- among other things,
  9818.    it introduced the idea of treating all devices uniformly as special
  9819.    files.  All the members but GE eventually pulled out after
  9820.    determining that {second-system effect} had bloated Multics to
  9821.    the point of practical unusability (the `lean' predecessor in
  9822.    question was {CTSS}).  Honeywell commercialized Multics after
  9823.    buying out GE's computer group, but it was never very successful
  9824.    (among other things, on some versions one was commonly required to
  9825.    enter a password to log out).  One of the developers left in the
  9826.    lurch by the project's breakup was Ken Thompson, a circumstance
  9827.    which led directly to the birth of {{UNIX}}.  For this and other
  9828.    reasons, aspects of the Multics design remain a topic of occasional
  9829.    debate among hackers.  See also {brain-damaged} and {GCOS}.
  9830.  
  9831. multitask: n. Often used of humans in the same meaning it has for
  9832.    computers, to describe a person doing several things at once (but
  9833.    see {thrash}).  The term `multiplex', from communications
  9834.    technology (meaning to handle more than one channel at the same
  9835.    time), is used similarly.
  9836.  
  9837. mumblage: /muhm'bl*j/ n. The topic of one's mumbling (see {mumble}).
  9838.    "All that mumblage" is used like "all that stuff" when it is
  9839.    not quite clear how the subject of discussion works, or like "all that
  9840.    crap" when `mumble' is being used as an implicit replacement for
  9841.    pejoratives.
  9842.  
  9843. mumble: interj. 1. Said when the correct response is too
  9844.    complicated to enunciate, or the speaker has not thought it out.
  9845.    Often prefaces a longer answer, or indicates a general reluctance
  9846.    to get into a long discussion.  "Don't you think that we could
  9847.    improve LISP performance by using a hybrid reference-count
  9848.    transaction garbage collector, if the cache is big enough and there
  9849.    are some extra cache bits for the microcode to use?"  "Well,
  9850.    mumble ... I'll have to think about it."  2. Sometimes used as
  9851.    an expression of disagreement.  "I think we should buy a
  9852.    {VAX}."  "Mumble!"  Common variant: `mumble frotz' (see
  9853.    {frotz}; interestingly, one does not say `mumble frobnitz'
  9854.    even though `frotz' is short for `frobnitz').  3. Yet another
  9855.    metasyntactic variable, like {foo}.  4. When used as a question
  9856.    ("Mumble?") means "I didn't understand you".  5. Sometimes used
  9857.    in `public' contexts on-line as a placefiller for things one is
  9858.    barred from giving details about.  For example, a poster with
  9859.    pre-released hardware in his machine might say "Yup, my machine
  9860.    now has an extra 16M of memory, thanks to the card I'm testing for
  9861.    Mumbleco."
  9862.  
  9863. munch: [often confused with {mung}, q.v.] vt. To transform
  9864.    information in a serial fashion, often requiring large amounts of
  9865.    computation.  To trace down a data structure.  Related to {crunch}
  9866.    and nearly synonymous with {grovel}, but connotes less pain.
  9867.  
  9868. munching: n. Exploration of security holes of someone else's
  9869.    computer for thrills, notoriety, or to annoy the system manager.
  9870.    Compare {cracker}.  See also {hacked off}.
  9871.  
  9872. munching squares: n. A {display hack} dating back to the PDP-1
  9873.    (ca. 1962, reportedly discovered by Jackson Wright), which employs a
  9874.    trivial computation (repeatedly plotting the graph Y = X XOR T for
  9875.    successive values of T --- see {HAKMEM} items 146--148) to produce
  9876.    an impressive display of moving and growing squares that devour the
  9877.    screen.  The initial value of T is treated as a parameter, which,
  9878.    when well-chosen, can produce amazing effects.  Some of these,
  9879.    later (re)discovered on the LISP machine, have been christened
  9880.    `munching triangles' (try AND for XOR and toggling points
  9881.    instead of plotting them), `munching w's', and `munching
  9882.    mazes'.  More generally, suppose a graphics program produces an
  9883.    impressive and ever-changing display of some basic form, foo, on a
  9884.    display terminal, and does it using a relatively simple program;
  9885.    then the program (or the resulting display) is likely to be
  9886.    referred to as `munching foos' (this is a good example of the use
  9887.    of the word {foo} as a metasyntactic variable).
  9888.  
  9889. munchkin: /muhnch'kin/ [from the squeaky-voiced little people in
  9890.    L. Frank Baum's `The Wizard of Oz'] n. A teenage-or-younger micro
  9891.    enthusiast hacking BASIC or something else equally constricted.  A
  9892.    term of mild derision --- munchkins are annoying but some grow up
  9893.    to be hackers after passing through a {larval stage}.  The term
  9894.    {urchin} is also used.  See also {wannabee}, {bitty box}.
  9895.  
  9896. mundane: [from SF fandom] n. 1. A person who is not in science
  9897.    fiction fandom.  2. A person who is not in the computer industry.
  9898.    In this sense, most often an adjectival modifier as in "in my
  9899.    mundane life...." See also {Real World}.
  9900.  
  9901. mung: /muhng/ alt. `munge' /muhnj/ [in 1960 at MIT, `Mash
  9902.    Until No Good'; sometime after that the derivation from the
  9903.    {{recursive acronym}} `Mung Until No Good' became standard] vt.
  9904.    1. To make changes to a file, esp. large-scale and irrevocable
  9905.    changes.  See {BLT}.  2. To destroy, usually accidentally,
  9906.    occasionally maliciously.  The system only mungs things
  9907.    maliciously; this is a consequence of {Finagle's Law}.  See
  9908.    {scribble}, {mangle}, {trash}, {nuke}.  Reports from
  9909.    {USENET} suggest that the pronunciation /muhnj/ is now usual
  9910.    in speech, but the spelling `mung' is still common in program
  9911.    comments (compare the widespread confusion over the proper spelling
  9912.    of {kluge}).  3. The kind of beans of which the sprouts are used
  9913.    in Chinese food.  (That's their real name!  Mung beans!  Really!)
  9914.  
  9915. Murphy's Law: prov. The correct, *original* Murphy's Law
  9916.    reads: "If there are two or more ways to do something, and one of
  9917.    those ways can result in a catastrophe, then someone will do it."
  9918.    This is a principle of defensive design, cited here because it is
  9919.    usually given in mutant forms less descriptive of the challenges of
  9920.    design for lusers.  For example, you don't make a two-pin plug
  9921.    symmetrical and then label it `THIS WAY UP'; if it matters which
  9922.    way it is plugged in, then you make the design asymmetrical (see
  9923.    also the anecdote under {magic smoke}).
  9924.  
  9925.    Edward A. Murphy, Jr. was one of the engineers on the rocket-sled
  9926.    experiments that were done by the U.S. Air Force in 1949 to test
  9927.    human acceleration tolerances.  One experiment involved a set of
  9928.    16 accelerometers mounted to different parts of the subject's body.
  9929.    There were two ways each sensor could be glued to its mount, and
  9930.    somebody methodically installed all 16 the wrong way around.
  9931.    Murphy then made the original form of his pronouncement, which the
  9932.    test subject (Major John Paul Stapp) quoted at a news conference a
  9933.    few days later.
  9934.  
  9935.    Within months `Murphy's Law' had spread to various technical
  9936.    cultures connected to aerospace engineering.  Before too many years
  9937.    had gone by variants had passed into the popular imagination,
  9938.    changing as they went.  Most of these are variants on "Anything
  9939.    that can go wrong, will"; this is sometimes referred to as
  9940.    {Finagle's Law}.  The memetic drift apparent in these mutants
  9941.    clearly demonstrates Murphy's Law acting on itself!
  9942.  
  9943. Music:: n. A common extracurricular interest of hackers (compare
  9944.    {{science-fiction fandom}}, {{oriental food}}; see also
  9945.    {filk}).  Hackish folklore has long claimed that musical and
  9946.    programming abilities are closely related, and there has been at
  9947.    least one large-scale statistical study that supports this.
  9948.    Hackers, as a rule, like music and often develop musical
  9949.    appreciation in unusual and interesting directions.  Folk music is
  9950.    very big in hacker circles; so is electronic music, and the sort of
  9951.    elaborate instrumental jazz/rock that used to be called
  9952.    `progressive' and isn't recorded much any more.  The hacker's
  9953.    musical range tends to be wide; many can listen with equal
  9954.    appreciation to (say) Talking Heads, Yes, Gentle Giant, Spirogyra,
  9955.    Scott Joplin, Tangerine Dream, King Sunny Ade, The Pretenders, or
  9956.    Bach's Brandenburg Concerti.  It is also apparently true that
  9957.    hackerdom includes a much higher concentration of talented amateur
  9958.    musicians than one would expect from a similar-sized control group
  9959.    of {mundane} types.
  9960.  
  9961. mutter: vt. To quietly enter a command not meant for the ears, eyes,
  9962.    or fingers of ordinary mortals.  Often used in `mutter an
  9963.    {incantation}'.  See also {wizard}.
  9964.  
  9965. = N =
  9966.  
  9967. N: /N/ quant. 1. A large and indeterminate number of objects:
  9968.    "There were N bugs in that crock!"  Also used in its
  9969.    original sense of a variable name: "This crock has N bugs,
  9970.    as N goes to infinity."  (The true number of bugs is always
  9971.    at least N + 1.)  2. A variable whose value is inherited
  9972.    from the current context.  For example, when a meal is being
  9973.    ordered at a restaurant, N may be understood to mean however
  9974.    many people there are at the table.  From the remark "We'd like to
  9975.    order N wonton soups and a family dinner
  9976.    for N - 1" you can deduce that one person at the table
  9977.    wants to eat only soup, even though you don't know how many people
  9978.    there are (see {great-wall}).  3. `Nth': adj. The
  9979.    ordinal counterpart of N, senses #1 and #2.  "Now for the
  9980.    Nth and last time..." In the specific context
  9981.    "Nth-year grad student", N is generally assumed to
  9982.    be at least 4, and is usually 5 or more (see {tenured graduate
  9983.    student}).  See also {{random numbers}}, {two-to-the-n}.
  9984.  
  9985. nailed to the wall: [like a trophy] adj. Said of a bug finally
  9986.    eliminated after protracted, and even heroic, effort.
  9987.  
  9988. nailing jelly: vi. See {like nailing jelly to a tree}.
  9989.  
  9990. na"ive: adj. Untutored in the perversities of some particular
  9991.    program or system; one who still tries to do things in an intuitive
  9992.    way, rather than the right way (in really good designs these
  9993.    coincide, but most designs aren't `really good' in the
  9994.    appropriate sense).  This is completely unrelated to general
  9995.    maturity or competence, or even competence at any other specific
  9996.    program.  It is a sad commentary on the primitive state of
  9997.    computing that the natural opposite of this term is often claimed
  9998.    to be `experienced user' but is really more like `cynical
  9999.    user'.
  10000.  
  10001. na"ive user: n. A {luser}.  Tends to imply someone who is
  10002.    ignorant mainly owing to inexperience.  When this is applied to
  10003.    someone who *has* experience, there is a definite implication
  10004.    of stupidity.
  10005.  
  10006. NAK: /nak/ [from the ASCII mnemonic for 0010101] interj.
  10007.    1. On-line joke answer to {ACK}?: "I'm not here."
  10008.    2. On-line answer to a request for chat: "I'm not available."
  10009.    3. Used to politely interrupt someone to tell them you don't
  10010.    understand their point or that they have suddenly stopped making
  10011.    sense.  See {ACK}, sense 3.  "And then, after we recode the
  10012.    project in COBOL...."  "Nak, Nak, Nak!  I thought I heard you
  10013.    say COBOL!"
  10014.  
  10015. nano: /nan'oh/ [CMU: from `nanosecond'] n. A brief period of
  10016.    time.  "Be with you in a nano" means you really will be free
  10017.    shortly, i.e., implies what mainstream people mean by "in a
  10018.    jiffy" (whereas the hackish use of `jiffy' is quite different ---
  10019.    see {jiffy}).
  10020.  
  10021. nano-: [SI: the next quantifier below {micro-}; meaning *
  10022.    10^{-9}] pref. Smaller than {micro-}, and used in the same rather
  10023.    loose and connotative way.  Thus, one has {{nanotechnology}}
  10024.    (coined by hacker K. Eric Drexler) by analogy with
  10025.    `microtechnology'; and a few machine architectures have a
  10026.    `nanocode' level below `microcode'.  Tom Duff at Bell Labs has
  10027.    also pointed out that "Pi seconds is a nanocentury".
  10028.    See also {{quantifiers}}, {pico-}, {nanoacre}, {nanobot},
  10029.    {nanocomputer}, {nanofortnight}.
  10030.  
  10031. nanoacre: /nan'oh-ay`kr/ n. A unit (about 2 mm square) of real
  10032.    estate on a VLSI chip.  The term gets its giggle value from the
  10033.    fact that VLSI nanoacres have costs in the same range as real acres
  10034.    once one figures in design and fabrication-setup costs.
  10035.  
  10036. nanobot: /nan'oh-bot/ n. A robot of microscopic proportions,
  10037.    presumably built by means of {{nanotechnology}}.  As yet, only
  10038.    used informally (and speculatively!).  Also called a `nanoagent'.
  10039.  
  10040. nanocomputer: /nan'oh-k*m-pyoo'tr/ n. A computer whose switching
  10041.    elements are molecular in size.  Designs for mechanical
  10042.    nanocomputers which use single-molecule sliding rods for their
  10043.    logic have been proposed.  The controller for a {nanobot} would be
  10044.    a nanocomputer.
  10045.  
  10046. nanofortnight: [Adelaide University] n. 1 fortnight * 10^-9,
  10047.    or about 1.2 msec.  This unit was used largely by students doing
  10048.    undergraduate practicals.  See {microfortnight}, {attoparsec},
  10049.    and {micro-}.
  10050.  
  10051. nanotechnology:: /nan'-oh-tek-no`l*-jee/ n. A hypothetical
  10052.    fabrication technology in which objects are designed and built with
  10053.    the individual specification and placement of each separate atom.
  10054.    The first unequivocal nanofabrication experiments are taking place
  10055.    now (1990), for example with the deposition of individual xenon
  10056.    atoms on a nickel substrate to spell the logo of a certain very
  10057.    large computer company.  Nanotechnology has been a hot topic in the
  10058.    hacker subculture ever since the term was coined by K. Eric Drexler
  10059.    in his book `Engines of Creation', where he predicted that
  10060.    nanotechnology could give rise to replicating assemblers,
  10061.    permitting an exponential growth of productivity and personal
  10062.    wealth.  See also {blue goo}, {gray goo}, {nanobot}.
  10063.  
  10064. nastygram: /nas'tee-gram/ n. 1. A protocol packet or item of email
  10065.    (the latter is also called a {letterbomb}) that takes advantage
  10066.    of misfeatures or security holes on the target system to do
  10067.    untoward things.  2. Disapproving mail, esp. from a {net.god},
  10068.    pursuant to a violation of {netiquette} or a complaint about
  10069.    failure to correct some mail- or news-transmission problem.  Compare
  10070.    {shitogram}.  3. A status report from an unhappy, and probably
  10071.    picky, customer.  "What'd Corporate say in today's nastygram?"
  10072.    4. [deprecated] An error reply by mail from a {daemon}; in
  10073.    particular, a {bounce message}.
  10074.  
  10075. Nathan Hale: n. An asterisk (see also {splat}, {{ASCII}}).  Oh,
  10076.    you want an etymology?  Notionally, from "I regret that I have only
  10077.    one asterisk for my country!", a misquote of the famous remark
  10078.    uttered by Nathan Hale just before he was hanged.  Hale was a
  10079.    (failed) spy for the rebels in the American War of Independence.
  10080.  
  10081. nature: n. See {has the X nature}.
  10082.  
  10083. neat hack: n. 1. A clever technique.  2. A brilliant practical
  10084.    joke, where neatness is correlated with cleverness, harmlessness,
  10085.    and surprise value.  Example: the Caltech Rose Bowl card display
  10086.    switch (see appendix A).  See {hack}.
  10087.  
  10088. neep-neep: /neep neep/ [onomatopoeic, from New York SF fandom] n.
  10089.    One who is fascinated by computers.  More general than {hacker},
  10090.    as it need not imply more skill than is required to boot games on a
  10091.    PC.  The derived noun `neep-neeping' applies specifically to
  10092.    the long conversations about computers that tend to develop in the
  10093.    corners at most SF-convention parties.  Fandom has a related
  10094.    proverb to the effect that "Hacking is a conversational black
  10095.    hole!".
  10096.  
  10097. neophilia: /nee`oh-fil'-ee-*/ n. The trait of being excited and
  10098.    pleased by novelty.  Common trait of most hackers, SF fans, and
  10099.    members of several other connected leading-edge subcultures,
  10100.    including the pro-technology `Whole Earth' wing of the ecology
  10101.    movement, space activists, many members of Mensa, and the
  10102.    Discordian/neo-pagan underground.  All these groups overlap heavily
  10103.    and (where evidence is available) seem to share characteristic
  10104.    hacker tropisms for science fiction, {{Music}}, and {{oriental
  10105.    food}}.
  10106.  
  10107. net.-: /net dot/ pref. [USENET] Prefix used to describe people and
  10108.    events related to USENET.  From the time before the {Great
  10109.    Renaming}, when most non-local newsgroups had names beginning
  10110.    `net.'.  Includes {net.god}s, `net.goddesses' (various
  10111.    charismatic net.women with circles of on-line admirers),
  10112.    `net.lurkers' (see {lurker}), `net.person',
  10113.    `net.parties' (a synonym for {boink}, sense 2), and
  10114.    many similar constructs.  See also {net.police}.
  10115.  
  10116. net.god: /net god/ n. Used to refer to anyone who satisfies some
  10117.    combination of the following conditions: has been visible on USENET
  10118.    for more than 5 years, ran one of the original backbone sites,
  10119.    moderated an important newsgroup, wrote news software, or knows
  10120.    Gene, Mark, Rick, Mel, Henry, Chuq, and Greg personally.  See
  10121.    {demigod}.   Net.goddesses such as Rissa or the Slime Sisters have
  10122.    (so far) been distinguished more by personality than by authority.
  10123.  
  10124. net.personality: /net per`sn-al'-*-tee/ n. Someone who has made a name
  10125.    for him or herself on {USENET}, through either longevity or
  10126.    attention-getting posts, but doesn't meet the other requirements of
  10127.    {net.god}hood.
  10128.  
  10129. net.police: /net-p*-lees'/ n. (var. `net.cops') Those USENET
  10130.    readers who feel it is their responsibility to pounce on and
  10131.    {flame} any posting which they regard as offensive or in
  10132.    violation of their understanding of {netiquette}.  Generally
  10133.    used sarcastically or pejoratively.  Also spelled `net police'.
  10134.    See also {net.-}, {code police}.
  10135.  
  10136. nethack: /net'hak/ [UNIX] n. A dungeon game similar to
  10137.    {rogue} but more elaborate, distributed in C source over
  10138.    {USENET} and very popular at UNIX sites and on PC-class machines
  10139.    (nethack is probably the most widely distributed of the freeware
  10140.    dungeon games).  The earliest versions, written by Jay Fenlason and later
  10141.    considerably enhanced by Andries Brouwer, were simply called
  10142.    `hack'.  The name changed when maintenance was taken over by a
  10143.    group of hackers originally organized by Mike Stephenson; the
  10144.    current contact address (as of mid-1991) is
  10145.    nethack-bugs@linc.cis.upenn.edu.
  10146.  
  10147. netiquette: /net'ee-ket/ or /net'i-ket/ [portmanteau from "network
  10148.    etiquette"] n. Conventions of politeness recognized on {USENET},
  10149.    such as avoidance of cross-posting to inappropriate groups or
  10150.    refraining from commercial pluggery on the net.
  10151.  
  10152. netnews: /net'n[y]ooz/ n. 1. The software that makes {USENET}
  10153.    run.  2. The content of USENET.  "I read netnews right after my
  10154.    mail most mornings."
  10155.  
  10156. netrock: /net'rok/ [IBM] n. A {flame}; used esp. on VNET,
  10157.    IBM's internal corporate network.
  10158.  
  10159. network address: n. (also `net address') As used by hackers,
  10160.    means an address on `the' network (see {network, the}; this is
  10161.    almost always a {bang path} or {{Internet address}}).  Such an
  10162.    address is essential if one wants to be to be taken seriously by
  10163.    hackers; in particular, persons or organizations that claim to
  10164.    understand, work with, sell to, or recruit from among hackers but
  10165.    *don't* display net addresses are quietly presumed to be
  10166.    clueless poseurs and mentally flushed (see {flush}, sense 4).
  10167.    Hackers often put their net addresses on their business cards and
  10168.    wear them prominently in contexts where they expect to meet other
  10169.    hackers face-to-face (see also {{science-fiction fandom}}).  This
  10170.    is mostly functional, but is also a signal that one identifies with
  10171.    hackerdom (like lodge pins among Masons or tie-dyed T-shirts among
  10172.    Grateful Dead fans).  Net addresses are often used in email text as
  10173.    a more concise substitute for personal names; indeed, hackers may
  10174.    come to know each other quite well by network names without ever
  10175.    learning each others' `legal' monikers.  See also {sitename},
  10176.    {domainist}.
  10177.  
  10178. network meltdown: n. A state of complete network overload; the
  10179.    network equivalent of {thrash}ing.  This may be induced by a
  10180.    {Chernobyl packet}.  See also {broadcast storm}, {kamikaze
  10181.    packet}.
  10182.  
  10183. network, the: n. 1. The union of all the major noncommercial,
  10184.    academic, and hacker-oriented networks, such as Internet, the old
  10185.    ARPANET, NSFnet, {BITNET}, and the virtual UUCP and {USENET}
  10186.    `networks', plus the corporate in-house networks and commercial
  10187.    time-sharing services (such as CompuServe) that gateway to them.  A
  10188.    site is generally considered `on the network' if it can be reached
  10189.    through some combination of Internet-style (@-sign) and UUCP
  10190.    (bang-path) addresses.  See {bang path}, {{Internet address}},
  10191.    {network address}.  2. A fictional conspiracy of libertarian
  10192.    hacker-subversives and anti-authoritarian monkeywrenchers described
  10193.    in Robert Anton Wilson's novel `Schr"odinger's Cat', to which
  10194.    many hackers have subsequently decided they belong (this is an
  10195.    example of {ha ha only serious}).
  10196.  
  10197.    In sense 1, `network' is often abbreviated to `net'.  "Are
  10198.    you on the net?" is a frequent question when hackers first meet
  10199.    face to face, and "See you on the net!" is a frequent goodbye.
  10200.  
  10201. New Jersey: [primarily Stanford/Silicon Valley] adj. Brain-damaged
  10202.    or of poor design.  This refers to the allegedly wretched quality
  10203.    of such software as C, C++, and UNIX (which originated at Bell Labs
  10204.    in Murray Hill, New Jersey).  "This compiler bites the bag, but
  10205.    what can you expect from a compiler designed in New Jersey?"
  10206.    Compare {Berkeley Quality Software}.  See also {UNIX
  10207.    conspiracy}.
  10208.  
  10209. New Testament: n. [C programmers] The second edition of K&R's
  10210.    `The C Programming Language' (Prentice-Hall, 1988; ISBN
  10211.    0-13-110362-8), describing ANSI Standard C.  See {K&R}.
  10212.  
  10213. newbie: /n[y]oo'bee/ n. [orig. from British public-school and
  10214.    military slang variant of `new boy'] A USENET neophyte.
  10215.    This term surfaced in the {newsgroup} talk.bizarre but is
  10216.    now in wide use.  Criteria for being considered a newbie vary
  10217.    wildly; a person can be called a newbie in one newsgroup while
  10218.    remaining a respected regular in another.  The label `newbie'
  10219.    is sometimes applied as a serious insult to a person who has been
  10220.    around USENET for a long time but who carefully hides all evidence
  10221.    of having a clue.  See {BIFF}.
  10222.  
  10223. newgroup wars: /n[y]oo'groop wohrz/ [USENET] n. The salvos of dueling
  10224.    `newgroup' and `rmgroup' messages sometimes exchanged by
  10225.    persons on opposite sides of a dispute over whether a {newsgroup}
  10226.    should be created net-wide.  These usually settle out within a week
  10227.    or two as it becomes clear whether the group has a natural
  10228.    constituency (usually, it doesn't).  At times, especially in the
  10229.    completely anarchic alt hierarchy, the names of newsgroups
  10230.    themselves become a form of comment or humor; e.g., the spinoff of
  10231.    alt.swedish.chef.bork.bork.bork from alt.tv.muppets in
  10232.    early 1990, or any number of specialized abuse groups named after
  10233.    particularly notorious {flamer}s, e.g., alt.weemba.
  10234.  
  10235. newline: /n[y]oo'li:n/ n. 1. [techspeak, primarily UNIX] The
  10236.    ASCII LF character (0001010), used under {{UNIX}} as a text line
  10237.    terminator.  A Bell-Labs-ism rather than a Berkeleyism;
  10238.    interestingly (and unusually for UNIX jargon), it is said to have
  10239.    originally been an IBM usage.  (Though the term `newline' appears
  10240.    in ASCII standards, it never caught on in the general computing
  10241.    world before UNIX).  2. More generally, any magic character,
  10242.    character sequence, or operation (like Pascal's writeln procedure)
  10243.    required to terminate a text record or separate lines.  See
  10244.    {crlf}, {terpri}.
  10245.  
  10246. NeWS: /nee'wis/, /n[y]oo'is/ or /n[y]ooz/ [acronym; the
  10247.    `Network Window System'] n. The road not taken in window systems, an
  10248.    elegant PostScript-based environment that would almost certainly
  10249.    have won the standards war with {X} if it hadn't been
  10250.    {proprietary} to Sun Microsystems.  There is a lesson here that
  10251.    too many software vendors haven't yet heeded.  Many hackers insist
  10252.    on the two-syllable pronunciations above as a way of distinguishing
  10253.    NeWS from {news} (the {netnews} software).
  10254.  
  10255. news: n. See {netnews}.
  10256.  
  10257. newsfroup: // [USENET] n. Silly synonym for {newsgroup},
  10258.    originally a typo but now in regular use on USENET's talk.bizarre
  10259.    and other lunatic-fringe groups.
  10260.  
  10261. newsgroup: [USENET] n. One of {USENET}'s huge collection of
  10262.    topic groups or {fora}.  Usenet groups can be `unmoderated'
  10263.    (anyone can post) or `moderated' (submissions are automatically
  10264.    directed to a moderator, who edits or filters and then posts the
  10265.    results).  Some newsgroups have parallel {mailing list}s for
  10266.    Internet people with no netnews access, with postings to the group
  10267.    automatically propagated to the list and vice versa.  Some
  10268.    moderated groups (especially those which are actually gatewayed
  10269.    Internet mailing lists) are distributed as `digests', with groups
  10270.    of postings periodically collected into a single large posting with
  10271.    an index.
  10272.  
  10273.    Among the best-known are comp.lang.c (the C-language forum),
  10274.    comp.arch (on computer architectures), comp.unix.wizards
  10275.    (for UNIX wizards), rec.arts.sf-lovers (for science-fiction
  10276.    fans), and talk.politics.misc (miscellaneous political
  10277.    discussions and {flamage}).
  10278.  
  10279. nickle: /ni'kl/ [from `nickel', common name for the U.S.
  10280.    5-cent coin] n. A {nybble} + 1; 5 bits.  Reported among
  10281.    developers for Mattel's GI 1600 (the Intellivision games
  10282.    processor), a chip with 16-bit-wide RAM but 10-bit-wide ROM.  See
  10283.    also {deckle}.
  10284.  
  10285. night mode: n. See {phase} (of people).
  10286.  
  10287. Nightmare File System: n. Pejorative hackerism for Sun's Network
  10288.    File System (NFS).  In any nontrivial network of Suns where there
  10289.    is a lot of NFS cross-mounting, when one Sun goes down, the others
  10290.    often freeze up.  Some machine tries to access the down one, and
  10291.    (getting no response) repeats indefinitely.  This causes it to
  10292.    appear dead to some messages (what is actually happening is that
  10293.    it is locked up in what should have been a brief excursion to a
  10294.    higher {spl} level).  Then another machine tries to reach either
  10295.    the down machine or the pseudo-down machine, and itself becomes
  10296.    pseudo-down.  The first machine to discover the down one is now
  10297.    trying both to access the down one and to respond to the pseudo-down
  10298.    one, so it is even harder to reach.  This snowballs very fast, and
  10299.    soon the entire network of machines is frozen --- the user can't
  10300.    even abort the file access that started the problem!  (ITS
  10301.    partisans are apt to cite this as proof of UNIX's alleged bogosity;
  10302.    ITS had a working NFS-like shared file system with none of these
  10303.    problems in the early 1970s.)  See also {broadcast storm}.
  10304.  
  10305. NIL: /nil/ [from LISP terminology for `false'] No.  Used
  10306.    in reply to a question, particularly one asked using the
  10307.    `-P' convention.  See {T}.
  10308.  
  10309. NMI: /N-M-I/ n. Non-Maskable Interrupt.  An IRQ 7 on the PDP-11
  10310.    or 680[01234]0; the NMI line on an 80{88,[1234]}86.  In contrast
  10311.    with a {priority interrupt} (which might be ignored, although
  10312.    that is unlikely), an NMI is *never* ignored.
  10313.  
  10314. no-op: /noh'op/ alt. NOP /nop/ [no operation] n. 1. (also v.)
  10315.    A machine instruction that does nothing (sometimes used in
  10316.    assembler-level programming as filler for data or patch areas, or
  10317.    to overwrite code to be removed in binaries).  See also {JFCL}.
  10318.    2. A person who contributes nothing to a project, or has nothing
  10319.    going on upstairs, or both.  As in "He's a no-op." 3. Any
  10320.    operation or sequence of operations with no effect, such as
  10321.    circling the block without finding a parking space, or putting
  10322.    money into a vending machine and having it fall immediately into
  10323.    the coin-return box, or asking someone for help and being told to
  10324.    go away.  "Oh, well, that was a no-op."  Hot-and-sour soup (see
  10325.    {great-wall}) that is insufficiently either is `no-op soup';
  10326.    so is wonton soup if everybody else is having hot-and-sour.
  10327.    
  10328.  
  10329. noddy: /nod'ee/ [UK: from the children's books] adj.
  10330.    1. Small and un-useful, but demonstrating a point.  Noddy programs
  10331.    are often written by people learning a new language or system.  The
  10332.    archetypal noddy program is {hello, world}.  Noddy code may be
  10333.    used to demonstrate a feature or bug of a compiler.  May be used of
  10334.    real hardware or software to imply that it isn't worth using.
  10335.    "This editor's a bit noddy."  2. A program that is more or less
  10336.    instant to produce.  In this use, the term does not necessarily
  10337.    connote uselessness, but describes a {hack} sufficiently trivial
  10338.    that it can be written and debugged while carrying on (and during
  10339.    the space of) a normal conversation.  "I'll just throw together a
  10340.    noddy {awk} script to dump all the first fields."  In North
  10341.    America this might be called a {mickey mouse program}.  See
  10342.    {toy program}.
  10343.  
  10344. NOMEX underwear: /noh'meks uhn'-der-weir/ [USENET] n. Syn.
  10345.    {asbestos longjohns}, used mostly in auto-related mailing lists
  10346.    and newsgroups.  NOMEX underwear is an actual product available on
  10347.    the racing equipment market, used as a fire resistance measure and
  10348.    required in some racing series.
  10349.  
  10350. non-optimal solution: n. (also `sub-optimal solution') An
  10351.    astoundingly stupid way to do something.  This term is generally
  10352.    used in deadpan sarcasm, as its impact is greatest when the person
  10353.    speaking looks completely serious.  Compare {stunning}.  See also
  10354.    {Bad Thing}.
  10355.  
  10356. nonlinear: adj. [scientific computation] 1. Behaving in an erratic and
  10357.    unpredictable fashion.  When used to describe the behavior of a
  10358.    machine or program, it suggests that said machine or program is
  10359.    being forced to run far outside of design specifications.  This
  10360.    behavior may be induced by unreasonable inputs, or may be triggered
  10361.    when a more mundane bug sends the computation far off from its
  10362.    expected course.  2. When describing the behavior of a person,
  10363.    suggests a tantrum or a {flame}.  "When you talk to Bob, don't
  10364.    mention the drug problem or he'll go nonlinear for hours."  In
  10365.    this context, `go nonlinear' connotes `blow up out of proportion'
  10366.    (proportion connotes linearity).
  10367.  
  10368. nontrivial: adj. Requiring real thought or significant computing
  10369.    power.  Often used as an understated way of saying that a problem
  10370.    is quite difficult or impractical, or even entirely unsolvable
  10371.    ("Proving P=NP is nontrivial").  The preferred emphatic form is
  10372.    `decidedly nontrivial'.  See {trivial}, {uninteresting},
  10373.    {interesting}.
  10374.  
  10375. notwork: /not'werk/ n. A network, when it is acting {flaky} or is
  10376.    {down}.  Compare {nyetwork}.  Said at IBM to have orig.
  10377.    referred to a particular period of flakiness on IBM's VNET
  10378.    corporate network, ca. 1988; but there are independent reports of
  10379.    the term from elsewhere.
  10380.  
  10381. NP-: /N-P/ pref. Extremely.  Used to modify adjectives
  10382.    describing a level or quality of difficulty; the connotation is
  10383.    often `more so than it should be' (NP-complete problems all seem to
  10384.    be very hard, but so far no one has found a good a priori reason
  10385.    that they should be.)  "Getting this algorithm to perform
  10386.    correctly in every case is NP-annoying."  This is generalized from
  10387.    the computer-science terms `NP-hard' and `NP-complete'.  NP is
  10388.    the set of Nondeterministic-Polynomial algorithms, those that can
  10389.    be completed by a nondeterministic Turing machine in an amount of
  10390.    time that is a polynomial function of the size of the input; a
  10391.    solution for one NP-complete problem would solve all the others.
  10392.  
  10393. NSA line eater: n. The National Security Agency trawling
  10394.    program sometimes assumed to be reading {USENET} for the
  10395.    U.S. Government's spooks.  Most hackers describe it as a mythical
  10396.    beast, but some believe it actually exists, more aren't sure, and
  10397.    many believe in acting as though it exists just in case.  Some
  10398.    netters put loaded phrases like `KGB', `Uzi', `nuclear materials',
  10399.    `Palestine', `cocaine', and `assassination' in their {sig block}s
  10400.    in a (probably futile) attempt to confuse and overload the
  10401.    creature.  The {GNU} version of {EMACS} actually has a command
  10402.    that randomly inserts a bunch of insidious anarcho-verbiage into
  10403.    your edited text.
  10404.  
  10405.    There is a mainstream variant of this myth involving a `Trunk Line
  10406.    Monitor', which supposedly used speech recognition to extract words
  10407.    from telephone trunks.  This one was making the rounds in the
  10408.    late 1970s, spread by people who had no idea of then-current
  10409.    technology or the storage, signal-processing, or speech recognition
  10410.    needs of such a project.  On the basis of mass-storage costs alone
  10411.    it would have been cheaper to hire 50 high-school students and just
  10412.    let them listen in.  Speech-recognition technology can't do this
  10413.    job even now (1991), and almost certainly won't in this millennium,
  10414.    either.  The peak of silliness came with a letter to an alternative
  10415.    paper in New Haven, Connecticut, laying out the factoids of this
  10416.    Big Brotherly affair.  The letter writer then revealed his actual
  10417.    agenda by offering --- at an amazing low price, just this once, we
  10418.    take VISA and MasterCard --- a scrambler guaranteed to daunt the
  10419.    Trunk Trawler and presumably allowing the would-be Baader-Meinhof
  10420.    gangs of the world to get on with their business.
  10421.  
  10422. nuke: vt. 1. To intentionally delete the entire contents of a
  10423.    given directory or storage volume.  "On UNIX, `rm -r /usr'
  10424.    will nuke everything in the usr filesystem."  Never used for
  10425.    accidental deletion.  Oppose {blow away}.  2. Syn. for
  10426.    {dike}, applied to smaller things such as files, features, or
  10427.    code sections.  Often used to express a final verdict.  "What do
  10428.    you want me to do with that 80-meg {wallpaper} file?"  "Nuke
  10429.    it."  3. Used of processes as well as files; nuke is a frequent
  10430.    verbal alias for `kill -9' on UNIX.  4. On IBM PCs, a bug
  10431.    that results in {fandango on core} can trash the operating
  10432.    system, including the FAT (the in-core copy of the disk block
  10433.    chaining information).  This can utterly scramble attached disks,
  10434.    which are then said to have been `nuked'.  This term is also
  10435.    used of analogous lossages on Macintoshes and other micros without
  10436.    memory protection.
  10437.  
  10438. number-crunching: n. Computations of a numerical nature, esp.
  10439.    those that make extensive use of floating-point numbers.  The only
  10440.    thing {Fortrash} is good for.  This term is in widespread
  10441.    informal use outside hackerdom and even in mainstream slang, but
  10442.    has additional hackish connotations: namely, that the computations
  10443.    are mindless and involve massive use of {brute force}.  This is
  10444.    not always {evil}, esp. if it involves ray tracing or fractals
  10445.    or some other use that makes {pretty pictures}, esp. if such
  10446.    pictures can be used as {wallpaper}.  See also {crunch}.
  10447.  
  10448. numbers: [scientific computation] n. Output of a computation that
  10449.    may not be significant results but at least indicate that the
  10450.    program is running.  May be used to placate management, grant
  10451.    sponsors, etc.  `Making numbers' means running a program
  10452.    because output --- any output, not necessarily meaningful output
  10453.    --- is needed as a demonstration of progress.  See {pretty
  10454.    pictures}, {math-out}, {social science number}.
  10455.  
  10456. NUXI problem: /nuk'see pro'bl*m/ n. This refers to the problem of
  10457.    transferring data between machines with differing byte-order.  The
  10458.    string `UNIX' might look like `NUXI' on a machine with a
  10459.    different `byte sex' (e.g., when transferring data from a
  10460.    {little-endian} to a {big-endian}, or vice-versa).  See also
  10461.    {middle-endian}, {swab}, and {bytesexual}.
  10462.  
  10463. nybble: /nib'l/ (alt. `nibble') [from v. `nibble' by analogy
  10464.    with `bite' => `byte'] n. Four bits; one {hex} digit;
  10465.    a half-byte.  Though `byte' is now techspeak, this useful relative
  10466.    is still jargon.  Compare {{byte}}, {crumb}, {tayste},
  10467.    {dynner}; see also {bit}, {nickle}, {deckle}.  Apparently
  10468.    this spelling is uncommon in Commonwealth Hackish, as British
  10469.    orthography suggests the pronunciation /ni:'bl/.
  10470.  
  10471. nyetwork: /nyet'werk/ [from Russian `nyet' = no] n. A network,
  10472.    when it is acting {flaky} or is {down}.  Compare {notwork}.
  10473.  
  10474. = O =
  10475.  
  10476. Ob-: /ob/ pref. Obligatory.  A piece of {netiquette}
  10477.    acknowledging that the author has been straying from the newsgroup's
  10478.    charter topic.  For example, if a posting in alt.sex is a response
  10479.    to a part of someone else's posting that has nothing particularly
  10480.    to do with sex, the author may append `ObSex' (or `Obsex') and toss
  10481.    off a question or vignette about some unusual erotic act.  It is
  10482.    considered a sign of great {winnitude} when your Obs are more
  10483.    interesting than other people's whole postings.
  10484.  
  10485. Obfuscated C Contest: n. An annual contest run since 1984 over
  10486.    USENET by Landon Curt Noll and friends.  The overall winner is
  10487.    whoever produces the most unreadable, creative, and bizarre (but
  10488.    working) C program; various other prizes are awarded at the judges'
  10489.    whim.  C's terse syntax and macro-preprocessor facilities give
  10490.    contestants a lot of maneuvering room.  The winning programs often
  10491.    manage to be simultaneously (a) funny, (b) breathtaking works of
  10492.    art, and (c) horrible examples of how *not* to code in C.
  10493.  
  10494.    This relatively short and sweet entry might help convey the flavor
  10495.    of obfuscated C:
  10496.  
  10497.      /*
  10498.       * HELLO WORLD program
  10499.       * by Jack Applin and Robert Heckendorn, 1985
  10500.       */
  10501.      main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
  10502.      (!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
  10503.      **c=!c)write(!!*c,*c,!!**c);}
  10504.  
  10505.    Here's another good one:
  10506.  
  10507.      /*
  10508.       * Program to compute an approximation of pi
  10509.       *  by Brian Westley, 1988
  10510.       */
  10511.  
  10512.      #define _ -F<00||--F-OO--;
  10513.      int F=00,OO=00;
  10514.      main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
  10515.      {
  10516.                  _-_-_-_
  10517.             _-_-_-_-_-_-_-_-_
  10518.          _-_-_-_-_-_-_-_-_-_-_-_
  10519.        _-_-_-_-_-_-_-_-_-_-_-_-_-_
  10520.       _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10521.       _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10522.      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10523.      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10524.      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10525.      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10526.       _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10527.       _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  10528.        _-_-_-_-_-_-_-_-_-_-_-_-_-_
  10529.          _-_-_-_-_-_-_-_-_-_-_-_
  10530.              _-_-_-_-_-_-_-_
  10531.                  _-_-_-_
  10532.      }
  10533.  
  10534.    See also {hello, world}.
  10535.  
  10536. obi-wan error: /oh'bee-won` er'*r/ [RPI, from `off-by-one' and
  10537.    the Obi-Wan Kenobi character in "Star Wars"] n.  A loop of
  10538.    some sort in which the index is off by 1.  Common when the index
  10539.    should have started from 0 but instead started from 1.  A kind of
  10540.    {off-by-one error}.  See also {zeroth}.
  10541.  
  10542. Objectionable-C: n. Hackish take on "Objective-C", the name of an
  10543.    object-oriented dialect of C in competition with the 
  10544.    better-known C++ (it is used to write native applications on the NeXT
  10545.    machine).  Objectionable-C uses a Smalltalk-like syntax, but lacks
  10546.    the flexibility of Smalltalk method calls, and (like many such
  10547.    efforts) comes frustratingly close to attaining the {Right Thing}
  10548.    without actually doing so.
  10549.  
  10550. obscure: adj. Used in an exaggeration of its normal meaning, to
  10551.    imply total incomprehensibility.  "The reason for that last crash
  10552.    is obscure."  "The `find(1)' command's syntax is obscure!"
  10553.    The phrase `moderately obscure' implies that it could be
  10554.    figured out but probably isn't worth the trouble.  The construction
  10555.    `obscure in the extreme' is the preferred emphatic form.
  10556.  
  10557. octal forty: /ok'tl for'tee/ n. Hackish way of saying "I'm
  10558.    drawing a blank."  Octal 40 is the {{ASCII}} space character,
  10559.    0100000; by an odd coincidence, {hex} 40 (01000000) is the
  10560.    {{EBCDIC}} space character.  See {wall}.
  10561.  
  10562. off the trolley: adj. Describes the behavior of a program that
  10563.    malfunctions and goes catatonic, but doesn't actually {crash} or
  10564.    abort.  See {glitch}, {bug}, {deep space}.
  10565.  
  10566. off-by-one error: n. Exceedingly common error induced in many
  10567.    ways, such as by starting at 0 when you should have started at 1 or
  10568.    vice versa, or by writing `< N' instead of `<= N' or
  10569.    vice-versa.  Also applied to giving something to the person next to
  10570.    the one who should have gotten it.  Often confounded with
  10571.    {fencepost error}, which is properly a particular subtype of it.
  10572.  
  10573. offline: adv. Not now or not here.  "Let's take this
  10574.    discussion offline."  Specifically used on {USENET} to suggest
  10575.    that a discussion be taken off a public newsgroup to email.
  10576.  
  10577. old fart: n. Tribal elder.  A title self-assumed with remarkable
  10578.    frequency by (esp.) USENETters who have been programming for more
  10579.    than about 25 years; often appears in {sig block}s attached to
  10580.    Jargon File contributions of great archeological significance.
  10581.    This is a term of insult in the second or third person but one of
  10582.    pride in first person.
  10583.  
  10584. Old Testament: n. [C programmers] The first edition of {K&R}, the
  10585.    sacred text describing {Classic C}.
  10586.  
  10587. one-line fix: n. Used (often sarcastically) of a change to a
  10588.    program that is thought to be trivial or insignificant right up to
  10589.    the moment it crashes the system.  Usually `cured' by another
  10590.    one-line fix.  See also {I didn't change anything!}
  10591.  
  10592. one-liner wars: n. A game popular among hackers who code in the
  10593.    language APL (see {write-only language}).  The objective is to
  10594.    see who can code the most interesting and/or useful routine in one
  10595.    line of operators chosen from APL's exceedingly {hairy} primitive
  10596.    set.  A similar amusement was practiced among {TECO} hackers.
  10597.    
  10598.    Ken Iverson, the inventor of APL, has been credited with a
  10599.    one-liner that, given a number N, produces a list of the
  10600.    prime numbers from 1 to N inclusive.  It looks like this:
  10601.  
  10602.     (2 = 0 +.= T o.| T) / T <- iN
  10603.  
  10604.    where `o' is the APL null character, the assignment arrow is a
  10605.    single character, and `i' represents the APL iota.
  10606.  
  10607. ooblick: /oo'blik/ [from Dr. Seuss's `Bartholomew and the
  10608.    Oobleck'] n. A bizarre semi-liquid sludge made from cornstarch and
  10609.    water.  Enjoyed among hackers who make batches during playtime at
  10610.    parties for its amusing and extremely non-Newtonian behavior; it
  10611.    pours and splatters, but resists rapid motion like a solid and will
  10612.    even crack when hit by a hammer.  Often found near lasers.
  10613.  
  10614.    Here is a field-tested ooblick recipe contributed by GLS:
  10615.  
  10616.      1 cup cornstarch
  10617.  
  10618.      1 cup baking soda
  10619.  
  10620.      3/4 cup water
  10621.  
  10622.      N drops of food coloring
  10623.  
  10624.    This recipe isn't quite as non-Newtonian as a pure cornstarch
  10625.    ooblick, but has an appropriately slimy feel.
  10626.  
  10627.    Some, however, insist that the notion of an ooblick *recipe*
  10628.    is far too mechanical, and that it is best to add the water in
  10629.    small increments so that the various mixed states the cornstarch
  10630.    goes through as it *becomes* ooblick can be grokked in
  10631.    fullness by many hands.  For optional ingredients of this
  10632.    experience, see the "Ceremonial Chemicals" section of
  10633.    appendix B.
  10634.  
  10635. open: n. Abbreviation for `open (or left) parenthesis' --- used when
  10636.    necessary to eliminate oral ambiguity.  To read aloud the LISP form
  10637.    (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open
  10638.    eks close, open, plus eks one, close close."
  10639.  
  10640. open switch: [IBM: prob. from railroading] n. An unresolved
  10641.    question, issue, or problem.
  10642.  
  10643. operating system:: [techspeak] n. (Often abbreviated `OS') The
  10644.    foundation software of a machine, of course; that which schedules
  10645.    tasks, allocates storage, and presents a default interface to the
  10646.    user between applications.  The facilities an operating system
  10647.    provides and its general design philosophy exert an extremely
  10648.    strong influence on programming style and on the technical cultures
  10649.    that grow up around its host machines.  Hacker folklore has been
  10650.    shaped primarily by the {{UNIX}}, {{ITS}}, {{TOPS-10}},
  10651.    {{TOPS-20}}/{{TWENEX}}, {{WAITS}}, {{CP/M}}, {{MS-DOS}}, and
  10652.    {{Multics}} operating systems (most importantly by ITS and
  10653.    UNIX).
  10654.  
  10655. Orange Book: n. The U.S. Government's standards document
  10656.    `Trusted Computer System Evaluation Criteria, DOD standard
  10657.    5200.28-STD, December, 1985' which characterize secure computing
  10658.    architectures and defines levels A1 (most secure) through D (least).
  10659.    Stock UNIXes are roughly C2, and can be upgraded to about C1
  10660.    without excessive pain.  See also {{book titles}}.
  10661.  
  10662. oriental food:: n. Hackers display an intense tropism towards
  10663.    oriental cuisine, especially Chinese, and especially of the spicier
  10664.    varieties such as Szechuan and Hunan.  This phenomenon (which has
  10665.    also been observed in subcultures that overlap heavily with
  10666.    hackerdom, most notably science-fiction fandom) has never been
  10667.    satisfactorily explained, but is sufficiently intense that one can
  10668.    assume the target of a hackish dinner expedition to be the best
  10669.    local Chinese place and be right at least three times out of four.
  10670.    See also {ravs}, {great-wall}, {stir-fried random},
  10671.    {laser chicken}, {Yu-Shiang Whole Fish}.  Thai, Indian,
  10672.    Korean, and Vietnamese cuisines are also quite popular.
  10673.  
  10674. orphan: [UNIX] n. A process whose parent has died; one inherited by
  10675.    `init(1)'.  Compare {zombie}.
  10676.  
  10677. orphaned i-node: /or'f*nd i:'nohd/ [UNIX] n. 1. [techspeak] A
  10678.    file that retains storage but no longer appears in the directories
  10679.    of a filesystem.  2. By extension, a pejorative for any person
  10680.    serving no useful function within some organization, esp.
  10681.    {lion food} without subordinates.
  10682.  
  10683. orthogonal: [from mathematics] adj. Mutually independent; well
  10684.    separated; sometimes, irrelevant to.  Used in a generalization of
  10685.    its mathematical meaning to describe sets of primitives or
  10686.    capabilities that, like a vector basis in geometry, span the
  10687.    entire `capability space' of the system and are in some sense
  10688.    non-overlapping or mutually independent.  For example, in
  10689.    architectures such as the PDP-11 or VAX where all or nearly all
  10690.    registers can be used interchangeably in any role with respect to
  10691.    any instruction, the register set is said to be orthogonal.  Or, in
  10692.    logic, the set of operators `not' and `or' is orthogonal,
  10693.    but the set `nand', `or', and `not' is not (because any
  10694.    one of these can be expressed in terms of the others).  Also used
  10695.    in comments on human discourse: "This may be orthogonal to the
  10696.    discussion, but...."
  10697.  
  10698. OS: /O-S/ 1. [Operating System] n. An acronym heavily used in email,
  10699.    occasionally in speech. 2. n.,obs. On ITS, an output spy.  See
  10700.    appendix A.
  10701.  
  10702. OS/2: /O S too/ n. The anointed successor to MS-DOS for Intel
  10703.    286- and 386-based micros; proof that IBM/Microsoft couldn't get it
  10704.    right the second time, either.  Mentioning it is usually good for a
  10705.    cheap laugh among hackers --- the design was so {baroque}, and
  10706.    the implementation of 1.x so bad, that 3 years after introduction
  10707.    you could still count the major {app}s shipping for it on the
  10708.    fingers of two hands --- in unary.  Often called `Half-an-OS'.  On
  10709.    January 28, 1991, Microsoft announced that it was dropping its OS/2
  10710.    development to concentrate on Windows, leaving the OS entirely in
  10711.    the hands of IBM; on January 29 they claimed the media had got the
  10712.    story wrong, but were vague about how.  It looks as though OS/2 is
  10713.    moribund.  See {vaporware}, {monstrosity}, {cretinous},
  10714.    {second-system effect}.
  10715.  
  10716. out-of-band: [from telecommunications and network theory] adj.
  10717.    1. In software, describes values of a function which are not in its
  10718.    `natural' range of return values, but are rather signals that
  10719.    some kind of exception has occurred.  Many C functions, for
  10720.    example, return either a nonnegative integral value, or indicate
  10721.    failure with an out-of-band return value of -1.  Compare
  10722.    {hidden flag}, {green bytes}.  2. Also sometimes used to
  10723.    describe what communications people call `shift characters',
  10724.    like the ESC that leads control sequences for many terminals, or
  10725.    the level shift indicators in the old 5-bit Baudot codes.  3. In
  10726.    personal communication, using methods other than email, such as
  10727.    telephones or {snail-mail}.
  10728.  
  10729. overflow bit: n. 1. [techspeak] On some processors, an attempt to
  10730.    calculate a result too large for a register to hold causes a
  10731.    particular {flag} called an {overflow bit} to be set.
  10732.    2. Hackers use the term of human thought too.  "Well, the {{Ada}}
  10733.    description was {baroque} all right, but I could hack it OK until
  10734.    they got to the exception handling ... that set my overflow bit."
  10735.    3. The hypothetical bit that will be set if a hacker doesn't get to
  10736.    make a trip to the Room of Porcelain Fixtures: "I'd better process
  10737.    an internal interrupt before the overflow bit gets set".
  10738.  
  10739. overrun: n. 1. [techspeak] Term for a frequent consequence of data
  10740.    arriving faster than it can be consumed, esp. in serial line
  10741.    communications.  For example, at 9600 baud there is almost exactly
  10742.    one character per millisecond, so if your {silo} can hold only
  10743.    two characters and the machine takes longer than 2 msec to get to
  10744.    service the interrupt, at least one character will be lost.  2. Also
  10745.    applied to non-serial-I/O communications. "I forgot to pay my
  10746.    electric bill due to mail overrun." "Sorry, I got four phone
  10747.    calls in 3 minutes last night and lost your message to
  10748.    overrun."  When {thrash}ing at tasks, the next person to make a
  10749.    request might be told "Overrun!"  3. More loosely, may refer to a
  10750.    {buffer overflow} not necessarily related to processing time (as
  10751.    in {overrun screw}).
  10752.  
  10753. overrun screw: [C programming] n. A variety of {fandango on core}
  10754.    produced by scribbling past the end of an array (C has no checks
  10755.    for this).  This is relatively benign and easy to spot if the array
  10756.    is static; if it is auto, the result may be to {smash the stack}
  10757.    --- often resulting in {heisenbug}s of the most diabolical
  10758.    subtlety.  The term `overrun screw' is used esp. of scribbles
  10759.    beyond the end of arrays allocated with `malloc(3)'; this
  10760.    typically trashes the allocation header for the next block in the
  10761.    {arena}, producing massive lossage within malloc and often
  10762.    a core dump on the next operation to use `stdio(3)' or
  10763.    `malloc(3)' itself.  See {spam}, {overrun}; see also
  10764.    {memory leak}, {aliasing bug}, {precedence lossage},
  10765.    {fandango on core}, {secondary damage}.
  10766.  
  10767. = P =
  10768.  
  10769. P.O.D.: /P-O-D/ Acronym for `Piece Of Data' (as opposed to a
  10770.    code section). Usage: pedantic and rare.  See also {pod}.
  10771.  
  10772. padded cell: n. Where you put {luser}s so they can't hurt
  10773.    anything.  A program that limits a luser to a carefully restricted
  10774.    subset of the capabilities of the host system (for example, the
  10775.    `rsh(1)' utility on USG UNIX).  Note that this is different
  10776.    from an {iron box} because it is overt and not aimed at
  10777.    enforcing security so much as protecting others (and the luser)
  10778.    from the consequences of the luser's boundless na"ivet'e (see
  10779.    {na"ive}).  Also `padded cell environment'.
  10780.  
  10781. page in: [MIT] vi. 1. To become aware of one's surroundings again after
  10782.    having paged out (see {page out}).  Usually confined to the sarcastic
  10783.    comment: "Eric pages in.  Film at 11."  See {film at 11}.
  10784.    2. Syn. `swap in'; see {swap}.
  10785.  
  10786. page out: [MIT] vi. 1. To become unaware of one's surroundings
  10787.    temporarily, due to daydreaming or preoccupation.  "Can you repeat
  10788.    that?  I paged out for a minute."  See {page in}.  Compare
  10789.    {glitch}, {thinko}.  2. Syn. `swap out'; see {swap}.
  10790.  
  10791. pain in the net: n. A {flamer}.
  10792.  
  10793. paper-net: n. Hackish way of referring to the postal service,
  10794.    analogizing it to a very slow, low-reliability network.  USENET
  10795.    {sig block}s not uncommonly include a "Paper-Net:" header just
  10796.    before the sender's postal address; common variants of this are
  10797.    "Papernet" and "P-Net".  Compare {voice-net}, {snail-mail}.
  10798.  
  10799. param: /p*-ram'/ n. Shorthand for `parameter'.  See also
  10800.    {parm}; Compare {arg}, {var}.
  10801.  
  10802. parent message: n. See {followup}.
  10803.  
  10804. parity errors: pl.n. Little lapses of attention or (in more severe
  10805.    cases) consciousness, usually brought on by having spent all night
  10806.    and most of the next day hacking.  "I need to go home and crash;
  10807.    I'm starting to get a lot of parity errors."  Derives from a
  10808.    relatively common but nearly always correctable transient error in
  10809.    RAM hardware.
  10810.  
  10811. Parkinson's Law of Data: prov. "Data expands to fill the space
  10812.    available for storage"; buying more memory encourages the use of
  10813.    more memory-intensive techniques.  It has been observed over the
  10814.    last 10 years that the memory usage of evolving systems tends to
  10815.    double roughly once every 18 months.  Fortunately, memory density
  10816.    available for constant dollars tends to double about once every
  10817.    12 months (see {Moore's Law}); unfortunately, the laws of
  10818.    physics guarantee that the latter cannot continue indefinitely.
  10819.  
  10820. parm: /parm/ n. Further-compressed form of {param}.  This term
  10821.    is an IBMism, and written use is almost unknown outside IBM
  10822.    shops; spoken /parm/ is more widely distributed, but the synonym
  10823.    {arg} is favored among hackers.  Compare {arg}, {var}.
  10824.  
  10825. parse: [from linguistic terminology] vt. 1. To determine the
  10826.    syntactic structure of a sentence or other utterance (close to the
  10827.    standard English meaning).  "That was the one I saw you."  "I
  10828.    can't parse that."  2. More generally, to understand or
  10829.    comprehend.  "It's very simple; you just kretch the glims and then
  10830.    aos the zotz."  "I can't parse that."  3. Of fish, to have to
  10831.    remove the bones yourself.  "I object to parsing fish", means "I
  10832.    don't want to get a whole fish, but a sliced one is okay".  A
  10833.    `parsed fish' has been deboned.  There is some controversy over
  10834.    whether `unparsed' should mean `bony', or also mean
  10835.    `deboned'.
  10836.  
  10837. Pascal:: n. An Algol-descended language designed by Niklaus Wirth
  10838.    on the CDC 6600 around 1967--68 as an instructional tool for
  10839.    elementary programming.  This language, designed primarily to keep
  10840.    students from shooting themselves in the foot and thus extremely
  10841.    restrictive from a general-purpose-programming point of view, was
  10842.    later promoted as a general-purpose tool and, in fact, became the
  10843.    ancestor of a large family of languages including Modula-2 and
  10844.    {{Ada}} (see also {bondage-and-discipline language}).  The
  10845.    hackish point of view on Pascal was probably best summed up by a
  10846.    devastating (and, in its deadpan way, screamingly funny) 1981 paper
  10847.    by Brian Kernighan (of {K&R} fame) entitled "Why Pascal is
  10848.    Not My Favorite Programming Language", which was never formally
  10849.    published but has circulated widely via photocopies.  Part of his
  10850.    discussion is worth repeating here, because its criticisms are
  10851.    still apposite to Pascal itself after ten years of improvement and
  10852.    could also stand as an indictment of many other
  10853.    bondage-and-discipline languages.  At the end of a summary of the
  10854.    case against Pascal, Kernighan wrote:
  10855.  
  10856.      9. There is no escape
  10857.  
  10858.      This last point is perhaps the most important.  The language is
  10859.      inadequate but circumscribed, because there is no way to escape its
  10860.      limitations.  There are no casts to disable the type-checking when
  10861.      necessary.  There is no way to replace the defective run-time
  10862.      environment with a sensible one, unless one controls the compiler that
  10863.      defines the "standard procedures".  The language is closed. 
  10864.  
  10865.      People who use Pascal for serious programming fall into a fatal trap.
  10866.      Because the language is impotent, it must be extended.  But each group
  10867.      extends Pascal in its own direction, to make it look like whatever
  10868.      language they really want.  Extensions for separate compilation,
  10869.      FORTRAN-like COMMON, string data types, internal static variables,
  10870.      initialization, octal numbers, bit operators, etc., all add to the
  10871.      utility of the language for one group but destroy its portability to
  10872.      others.
  10873.  
  10874.      I feel that it is a mistake to use Pascal for anything much beyond its
  10875.      original target.  In its pure form, Pascal is a toy language, suitable
  10876.      for teaching but not for real programming.
  10877.  
  10878.    Pascal has since been almost entirely displaced (by {C}) from the
  10879.    niches it had acquired in serious applications and systems
  10880.    programming, but retains some popularity as a hobbyist language in
  10881.    the MS-DOS and Macintosh worlds.
  10882.  
  10883. patch: 1. n. A temporary addition to a piece of code, usually as a
  10884.    {quick-and-dirty} remedy to an existing bug or misfeature.  A
  10885.    patch may or may not work, and may or may not eventually be
  10886.    incorporated permanently into the program.  Distinguished from a
  10887.    {diff} or {mod} by the fact that a patch is generated by more
  10888.    primitive means than the rest of the program; the classical
  10889.    examples are instructions modified by using the front panel
  10890.    switches, and changes made directly to the binary executable of a
  10891.    program originally written in an {HLL}.  Compare {one-line
  10892.    fix}.  2. vt. To insert a patch into a piece of code.  3. [in the
  10893.    UNIX world] n. A {diff} (sense 2).  4. A set of modifications to
  10894.    binaries to be applied by a patching program.  IBM operating
  10895.    systems often receive updates to the operating system in the form
  10896.    of absolute hexadecimal patches.  If you have modified your OS, you
  10897.    have to disassemble these back to the source.  The patches might
  10898.    later be corrected by other patches on top of them (patches were
  10899.    said to "grow scar tissue").  The result was often a convoluted
  10900.    {patch space} and headaches galore.
  10901.  
  10902.    There is a classic story of a {tiger team} penetrating a secure
  10903.    military computer that illustrates the danger inherent in binary
  10904.    patches (or, indeed, any that you can't --- or don't --- inspect
  10905.    and examine before installing).  They couldn't find any {trap
  10906.    door}s or any way to penetrate security of IBM's OS, so they made a
  10907.    site visit to an IBM office (remember, these were official military
  10908.    types who were purportedly on official business), swiped some IBM
  10909.    stationery, and created a fake patch.  The patch was actually the
  10910.    trapdoor they needed.  The patch was distributed at about the right
  10911.    time for an IBM patch, had official stationery and all accompanying
  10912.    documentation, and was dutifully installed.  The installation
  10913.    manager very shortly thereafter learned something about proper
  10914.    procedures.
  10915.  
  10916. patch space: n. An unused block of bits left in a binary so that
  10917.    it can later be modified by insertion of machine-language
  10918.    instructions there (typically, the patch space is modified to
  10919.    contain new code, and the superseded code is patched to contain a
  10920.    jump or call to the patch space).  The widening use of HLLs has
  10921.    made this term rare; it is now primarily historical outside IBM
  10922.    shops.  See {patch} (sense 4), {zap} (sense 4), {hook}.
  10923.  
  10924. path: n. 1. A {bang path} or explicitly routed {{Internet
  10925.    address}}; a node-by-node specification of a link between two
  10926.    machines.  2. [UNIX] A filename, fully specified relative to the
  10927.    root directory (as opposed to relative to the current directory;
  10928.    the latter is sometimes called a `relative path'). This is also
  10929.    called a `pathname'.  3. [UNIX and MS-DOS] The `search
  10930.    path', an environment variable specifying the directories in which
  10931.    the {shell} (COMMAND.COM, under MS-DOS) should look for commands.
  10932.    Other, similar constructs abound under UNIX (for example, the
  10933.    C preprocessor has a `search path' it uses in looking for
  10934.    `#include' files).
  10935.  
  10936. pathological: adj. 1. [scientific computation] Used of a data set
  10937.    that is grossly atypical of normal expected input, esp. one that
  10938.    exposes a weakness or bug in whatever algorithm one is using.  An
  10939.    algorithm that can be broken by pathological inputs may still be
  10940.    useful if such inputs are very unlikely to occur in practice.
  10941.    2. When used of test input, implies that it was purposefully
  10942.    engineered as a worst case.  The implication in both senses is that
  10943.    the data is spectacularly ill-conditioned or that someone had to
  10944.    explicitly set out to break the algorithm in order to come up with
  10945.    such a crazy example.  3. Also said of an unlikely collection of
  10946.    circumstances.  "If the network is down and comes up halfway
  10947.    through the execution of that command by root, the system may
  10948.    just crash."  "Yes, but that's a pathological case."  Often used
  10949.    to dismiss the case from discussion, with the implication that the
  10950.    consequences are acceptable since that they will happen so
  10951.    infrequently (if at all) that there is no justification for
  10952.    going to extra trouble to handle that case (see sense 1).
  10953.  
  10954. payware: /pay'weir/ n. Commercial software.  Oppose {shareware}
  10955.    or {freeware}.
  10956.  
  10957. PBD: /P-B-D/ [abbrev. of `Programmer Brain Damage'] n.  Applied
  10958.    to bug reports revealing places where the program was obviously
  10959.    broken by an incompetent or short-sighted programmer.  Compare
  10960.    {UBD}; see also {brain-damaged}.
  10961.  
  10962. PC-ism: /P-C-izm/ n. A piece of code or coding technique that
  10963.    takes advantage of the unprotected single-tasking environment in
  10964.    IBM PCs and the like, e.g., by busy-waiting on a hardware register,
  10965.    direct diddling of screen memory, or using hard timing loops.
  10966.    Compare {ill-behaved}, {vaxism}, {unixism}.  Also,
  10967.    `PC-ware' n., a program full of PC-isms on a machine with a more
  10968.    capable operating system.  Pejorative.
  10969.  
  10970. PD: /P-D/ adj. Common abbreviation for `public domain', applied
  10971.    to software distributed over {USENET} and from Internet archive
  10972.    sites.  Much of this software is not in fact public domain in
  10973.    the legal sense but travels under various copyrights granting
  10974.    reproduction and use rights to anyone who can {snarf} a copy.  See
  10975.    {copyleft}.
  10976.  
  10977. pdl: /pid'l/ or /puhd'l/ [acronym for `Push Down List'] 1. In
  10978.    ITS days, the preferred MITism for {stack}.  2. Dave Lebling, one
  10979.    of the co-authors of {Zork}; (his {network address} on the ITS
  10980.    machines was at one time pdl@dms).  3. `Program Design Language'.
  10981.    Any of a large class of formal and profoundly useless
  10982.    pseudo-languages in which {management} forces one to design
  10983.    programs.  {Management} often expects it to be maintained in
  10984.    parallel with the code.  See also {{flowchart}}.  4. To design
  10985.    using a program design language.  "I've been pdling so long my
  10986.    eyes won't focus beyond 2 feet."
  10987.  
  10988. PDP-10: [Programmed Data Processor model 10] n. The machine that
  10989.    made timesharing real.  It looms large in hacker folklore because
  10990.    of its adoption in the mid-1970s by many university computing
  10991.    facilities and research labs, including the MIT AI Lab, Stanford,
  10992.    and CMU.  Some aspects of the instruction set (most notably the
  10993.    bit-field instructions) are still considered unsurpassed.  The 10
  10994.    was eventually eclipsed by the VAX machines (descendants of the
  10995.    PDP-11) when DEC recognized that the 10 and VAX product lines were
  10996.    competing with each other and decided to concentrate its software
  10997.    development effort on the more profitable VAX.  The machine was
  10998.    finally dropped from DEC's line in 1983, following the failure of
  10999.    the Jupiter Project at DEC to build a viable new model. (Some
  11000.    attempts by other companies to market clones came to nothing; see
  11001.    {Foonly}) This event spelled the doom of {{ITS}} and the
  11002.    technical cultures that had spawned the original Jargon File, but
  11003.    by mid-1991 it had become something of a badge of honorable
  11004.    old-timerhood among hackers to have cut one's teeth on a PDP-10.
  11005.    See {{TOPS-10}}, {{ITS}}, {AOS}, {BLT}, {DDT}, {DPB},
  11006.    {EXCH}, {HAKMEM}, {JFCL}, {LDB}, {pop}, {push},
  11007.    appendix A.
  11008.  
  11009. PDP-20: n. The most famous computer that never was.  {PDP-10}
  11010.    computers running the {{TOPS-10}} operating system were labeled
  11011.    `DECsystem-10' as a way of differentiating them from the PDP-11.
  11012.    Later on, those systems running {TOPS-20} were labeled
  11013.    `DECSYSTEM-20' (the block capitals being the result of a lawsuit
  11014.    brought against DEC by Singer, which once made a computer called
  11015.    `system-10'), but contrary to popular lore there was never a
  11016.    `PDP-20'; the only difference between a 10 and a 20 was the
  11017.    operating system and the color of the paint.  Most (but not all)
  11018.    machines sold to run TOPS-10 were painted `Basil Blue', whereas
  11019.    most TOPS-20 machines were painted `Chinese Red' (often mistakenly
  11020.    called orange).
  11021.  
  11022. peek: n.,vt. (and {poke}) The commands in most microcomputer
  11023.    BASICs for directly accessing memory contents at an absolute
  11024.    address; often extended to mean the corresponding constructs in any
  11025.    {HLL} (peek reads memory, poke modifies it).  Much hacking on
  11026.    small, non-MMU micros consists of {peek}ing around memory, more
  11027.    or less at random, to find the location where the system keeps
  11028.    interesting stuff.  Long (and variably accurate) lists of such
  11029.    addresses for various computers circulate (see {{interrupt list,
  11030.    the}}).  The results of {poke}s at these addresses may be highly
  11031.    useful, mildly amusing, useless but neat, or (most likely) total
  11032.    {lossage} (see {killer poke}).
  11033.  
  11034. pencil and paper: n. An archaic information storage and
  11035.    transmission device that works by depositing smears of graphite on
  11036.    bleached wood pulp.  More recent developments in paper-based
  11037.    technology include improved `write-once' update devices which use
  11038.    tiny rolling heads similar to mouse balls to deposit colored
  11039.    pigment.  All these devices require an operator skilled at
  11040.    so-called `handwriting' technique.  These technologies are
  11041.    ubiquitous outside hackerdom, but nearly forgotten inside it.  Most
  11042.    hackers had terrible handwriting to begin with, and years of
  11043.    keyboarding tend to have encouraged it to degrade further.  Perhaps
  11044.    for this reason, hackers deprecate pencil-and-paper technology and
  11045.    often resist using it in any but the most trivial contexts.  See
  11046.    also appendix B.
  11047.  
  11048. peon: n. A person with no special ({root} or {wheel})
  11049.    privileges on a computer system.  "I can't create an account on
  11050.    *foovax* for you; I'm only a peon there."
  11051.  
  11052. percent-S: /per-sent' es'/ [From the code in C's `printf(3)'
  11053.    library function used to insert an arbitrary string argument] n. An
  11054.    unspecified person or object.  "I was just talking to some
  11055.    percent-s in administration."  Compare {random}.
  11056.  
  11057. perf: /perf/ n. See {chad} (sense 1).  The term `perfory'
  11058.    /per'f*-ree/ is also heard.
  11059.  
  11060. perfect programmer syndrome: n. Arrogance; the egotistical
  11061.    conviction that one is above normal human error.  Most frequently
  11062.    found among programmers of some native ability but relatively
  11063.    little experience (especially new graduates; their perceptions may
  11064.    be distorted by a history of excellent performance at solving {toy
  11065.    problem}s).  "Of course my program is correct, there is no need to
  11066.    test it."  "Yes, I can see there may be a problem here, but
  11067.    *I'll* never type `rm -r /' while in {root}."
  11068.  
  11069. Perl: /perl/ [Practical Extraction and Report Language, a.k.a
  11070.    Pathologically Eclectic Rubbish Lister] n. An interpreted language
  11071.    developed by Larry Wall (lwall@jpl.nasa.gov, author of
  11072.    `patch(1)' and `rn(1)') and distributed over USENET.
  11073.    Superficially resembles `awk(1)', but is much hairier (see
  11074.    {awk}).  UNIX sysadmins, who are almost always incorrigible
  11075.    hackers, increasingly consider it one of the {languages of
  11076.    choice}.  Perl has been described, in a parody of a famous remark
  11077.    about `lex(1)', as the "Swiss-Army chainsaw" of UNIX
  11078.    programming.
  11079.  
  11080. pessimal: /pes'im-l/ [Latin-based antonym for `optimal'] adj.
  11081.    Maximally bad.  "This is a pessimal situation."  Also `pessimize'
  11082.    vt. To make as bad as possible.  These words are the obvious
  11083.    Latin-based antonyms for `optimal' and `optimize', but for some
  11084.    reason they do not appear in most English dictionaries, although
  11085.    `pessimize' is listed in the OED.
  11086.  
  11087. pessimizing compiler: /pes'*-mi:z`ing k*m-pi:l'r/ [antonym of
  11088.    `optimizing compiler'] n. A compiler that produces object code that
  11089.    is worse than the straightforward or obvious hand translation.  The
  11090.    implication is that the compiler is actually trying to optimize the
  11091.    program, but through excessive cleverness is doing the opposite.  A
  11092.    few pessimizing compilers have been written on purpose, however, as
  11093.    pranks or burlesques.
  11094.  
  11095. peta-: /pe't*/ [SI] pref. See {{quantifiers}}.
  11096.  
  11097. PETSCII: /pet'skee/ [abbreviation of PET ASCII] n. The variation
  11098.    (many would say perversion) of the {{ASCII}} character set used by
  11099.    the Commodore Business Machines PET series of personal computers
  11100.    and the later Commodore C64, C16, and C128 machines.  The PETSCII
  11101.    set used left-arrow and up-arrow (as in old-style ASCII) instead of
  11102.    underscore and caret, placed the unshifted alphabet at positions
  11103.    65--90, put the shifted alphabet at positions 193--218, and added
  11104.    graphics characters.
  11105.  
  11106. phase: 1. n. The phase of one's waking-sleeping schedule with
  11107.    respect to the standard 24-hour cycle.  This is a useful concept
  11108.    among people who often work at night and/or according to no fixed
  11109.    schedule.  It is not uncommon to change one's phase by as much as 6
  11110.    hours per day on a regular basis.  "What's your phase?"  "I've
  11111.    been getting in about 8 P.M. lately, but I'm going to {wrap
  11112.    around} to the day schedule by Friday."  A person who is roughly
  11113.    12 hours out of phase is sometimes said to be in `night mode'.
  11114.    (The term `day mode' is also (but less frequently) used, meaning
  11115.    you're working 9 to 5 (or, more likely, 10 to 6).)  The act of
  11116.    altering one's cycle is called `changing phase'; `phase
  11117.    shifting' has also been recently reported from Caltech.
  11118.    2. `change phase the hard way': To stay awake for a very long
  11119.    time in order to get into a different phase.  3. `change phase
  11120.    the easy way': To stay asleep, etc.  However, some claim that
  11121.    either staying awake longer or sleeping longer is easy, and that it
  11122.    is *shortening* your day or night that's hard (see {wrap
  11123.    around}).  The `jet lag' that afflicts travelers who cross many
  11124.    time-zone boundaries may be attributed to two distinct causes: the
  11125.    strain of travel per se, and the strain of changing phase.  Hackers
  11126.    who suddenly find that they must change phase drastically in a
  11127.    short period of time, particularly the hard way, experience
  11128.    something very like jet lag without traveling.
  11129.  
  11130. phase of the moon: n. Used humorously as a random parameter on which
  11131.    something is said to depend.  Sometimes implies unreliability of
  11132.    whatever is dependent, or that reliability seems to be dependent on
  11133.    conditions nobody has been able to determine.  "This feature
  11134.    depends on having the channel open in mumble mode, having the foo
  11135.    switch set, and on the phase of the moon."
  11136.  
  11137.    True story: Once upon a time there was a bug that really did depend
  11138.    on the phase of the moon.  There is a little subroutine that had
  11139.    traditionally been used in various programs at MIT to calculate an
  11140.    approximation to the moon's true phase.  GLS incorporated this
  11141.    routine into a LISP program that, when it wrote out a file, would
  11142.    print a timestamp line almost 80 characters long.  Very
  11143.    occasionally the first line of the message would be too long and
  11144.    would overflow onto the next line, and when the file was later read
  11145.    back in the program would {barf}.  The length of the first line
  11146.    depended on both the precise date and time and the length of the
  11147.    phase specification when the timestamp was printed, and so the bug
  11148.    literally depended on the phase of the moon!
  11149.  
  11150.    The first paper edition of the Jargon File (Steele-1983) included
  11151.    an example of one of the timestamp lines that exhibited this bug, but
  11152.    the typesetter `corrected' it.  This has since been described as
  11153.    the phase-of-the-moon-bug bug.
  11154.  
  11155. phreaking: [from `phone phreak'] n. 1. The art and science of
  11156.    cracking the phone network (so as, for example, to make free
  11157.    long-distance calls).  2. By extension, security-cracking in any
  11158.    other context (especially, but not exclusively, on communications
  11159.    networks).
  11160.  
  11161.    At one time phreaking was a semi-respectable activity among
  11162.    hackers; there was a gentleman's agreement that phreaking as an
  11163.    intellectual game and a form of exploration was OK, but serious
  11164.    theft of services was taboo.  There was significant crossover
  11165.    between the hacker community and the hard-core phone phreaks who
  11166.    ran semi-underground networks of their own through such media as
  11167.    the legendary `TAP Newsletter'.  This ethos began to break
  11168.    down in the mid-1980s as wider dissemination of the techniques put
  11169.    them in the hands of less responsible phreaks.  Around the same
  11170.    time, changes in the phone network made old-style technical
  11171.    ingenuity less effective as a way of hacking it, so phreaking came
  11172.    to depend more on overtly criminal acts such as stealing phone-card
  11173.    numbers.  The crimes and punishments of gangs like the `414 group'
  11174.    turned that game very ugly.  A few old-time hackers still phreak
  11175.    casually just to keep their hand in, but most these days have
  11176.    hardly even heard of `blue boxes' or any of the other
  11177.    paraphernalia of the great phreaks of yore.
  11178.  
  11179. pico-: [SI: a quantifier
  11180.    meaning * 10^-12]
  11181.    pref. Smaller than {nano-}; used in the same rather loose
  11182.    connotative way as {nano-} and {micro-}.  This usage is not yet
  11183.    common in the way {nano-} and {micro-} are, but should be
  11184.    instantly recognizable to any hacker.  See also {{quantifiers}},
  11185.    {micro-}.
  11186.  
  11187. pig, run like a: v. To run very slowly on given hardware, said of
  11188.    software.  Distinct from {hog}.
  11189.  
  11190. pilot error: [Sun: from aviation] n. A user's misconfiguration or
  11191.    misuse of a piece of software, producing apparently buglike results
  11192.    (compare {UBD}).  "Joe Luser reported a bug in sendmail that
  11193.    causes it to generate bogus headers."  "That's not a bug, that's
  11194.    pilot error.  His `sendmail.cf' is hosed."
  11195.  
  11196. ping: [from the TCP/IP acronym `Packet INternet Groper', prob.
  11197.    originally contrived to match the submariners' term for a sonar
  11198.    pulse] 1. n.  Slang term for a small network message (ICMP ECHO)
  11199.    sent by a computer to check for the presence and aliveness of
  11200.    another.  Occasionally used as a phone greeting.  See {ACK},
  11201.    also {ENQ}.  2. vt. To verify the presence of.  3. vt. To get
  11202.    the attention of.  From the UNIX command `ping(1)' that sends
  11203.    an ICMP ECHO packet to another host.  4. vt. To send a message to
  11204.    all members of a {mailing list} requesting an {ACK} (in order
  11205.    to verify that everybody's addresses are reachable).  "We haven't
  11206.    heard much of anything from Geoff, but he did respond with an ACK
  11207.    both times I pinged jargon-friends."
  11208.  
  11209.    The funniest use of `ping' to date was described in January 1991 by
  11210.    Steve Hayman on the USENET group comp.sys.next.  He was trying
  11211.    to isolate a faulty cable segment on a TCP/IP Ethernet hooked up to
  11212.    a NeXT machine, and got tired of having to run back to his console
  11213.    after each cabling tweak to see if the ping packets were getting
  11214.    through.  So he used the sound-recording feature on the NeXT, then
  11215.    wrote a script that repeatedly invoked `ping(8)', listened for
  11216.    an echo, and played back the recording on each returned packet.
  11217.    Result?  A program that caused the machine to repeat, over and
  11218.    over, "Ping ... ping ... ping ..." as long as the
  11219.    network was up.  He turned the volume to maximum, ferreted through
  11220.    the building with one ear cocked, and found a faulty tee connector
  11221.    in no time.
  11222.  
  11223. Pink-Shirt Book: `The Peter Norton Programmer's Guide to the IBM
  11224.    PC'.  The original cover featured a picture of Peter Norton with a
  11225.    silly smirk on his face, wearing a pink shirt.  Perhaps in
  11226.    recognition of this usage, the current edition has a different
  11227.    picture of Norton wearing a pink shirt.  See also {{book titles}}.
  11228.  
  11229. PIP: /pip/ [Peripheral Interchange Program] vt.,obs. To copy; from
  11230.    the program PIP on CP/M, RSX-11, RSTS/E, and OS/8 (derived from a
  11231.    utility on the PDP-6) that was used for file copying (and in OS/8
  11232.    and RT-11 for just about every other file operation you might want
  11233.    to do).  It is said that when the program was originated, during the
  11234.    development of the PDP-6 in 1963, it was called ATLATL (`Anything,
  11235.    Lord, to Anything, Lord').
  11236.  
  11237. pistol: [IBM] n. A tool that makes it all too easy for you to
  11238.    shoot yourself in the foot.  "UNIX `rm *' makes such a nice
  11239.    pistol!"
  11240.  
  11241. pizza box: [Sun] n. The largish thin box housing the electronics
  11242.    in (especially Sun) desktop workstations, so named because of its
  11243.    size and shape and the dimpled pattern that looks like air holes.
  11244.  
  11245.    Two meg single-platter removable disk packs used to be called pizzas,
  11246.    and the huge drive they were stuck into was referred to as a pizza
  11247.    oven.  It's an index of progress that in the old days just the disk
  11248.    was pizza-sized, while now the entire computer is.
  11249.  
  11250. pizza, ANSI standard: /an'see stan'd*rd peet'z*/ [CMU] Pepperoni
  11251.    and mushroom pizza.  Coined allegedly because most pizzas ordered
  11252.    by CMU hackers during some period leading up to mid-1990 were of
  11253.    that flavor.  See also {rotary debugger}; compare {tea, ISO
  11254.    standard cup of}.
  11255.  
  11256. plain-ASCII: /playn-as'kee/ Syn. {flat-ASCII}.
  11257.  
  11258. plan file: [UNIX] n. On systems that support {finger}, the
  11259.    `.plan' file in a user's home directory is displayed when the user
  11260.    is fingered.  This feature was originally intended to be used to
  11261.    keep potential fingerers apprised of one's location and near-future
  11262.    plans, but has been turned almost universally to humorous and
  11263.    self-expressive purposes (like a {sig block}).  See {Hacking X
  11264.    for Y}.
  11265.  
  11266. platinum-iridium: adj. Standard, against which all others of the
  11267.    same category are measured.  Usage: silly.  The notion is that one
  11268.    of whatever it is has actually been cast in platinum-iridium alloy
  11269.    and placed in the vault beside the Standard Kilogram at the
  11270.    International Bureau of Weights and Measures near Paris.  (From
  11271.    1889 to 1960, the meter was defined to be the distance between two
  11272.    scratches in a platinum-iridium bar kept in that vault --- this
  11273.    replaced an earlier definition as 10^7 times the distance
  11274.    between the North Pole and the Equator along a meridian through
  11275.    Paris; unfortunately, this had been based on an inexact value of
  11276.    the circumference of the Earth.  From 1960 to 1984 it was defined
  11277.    to be 1650763.73 wavelengths of the orange-red line of krypton-86
  11278.    propagating in a vacuum.  It is now defined as the length of the
  11279.    path traveled by light in a vacuum in the time interval of
  11280.    1/299,792,458 of a second.  The kilogram is now the only unit of
  11281.    measure officially defined in terms of a unique artifact.)  "This
  11282.    garbage-collection algorithm has been tested against the
  11283.    platinum-iridium cons cell in Paris."  Compare {golden}.
  11284.  
  11285. playpen: [IBM] n. A room where programmers work.  Compare {salt
  11286.    mines}.
  11287.  
  11288. playte: /playt/ 16 bits, by analogy with {nybble} and {{byte}}.  Usage:
  11289.    rare and extremely silly.  See also {dynner} and {crumb}.
  11290.  
  11291. plingnet: /pling'net/ n. Syn. {UUCPNET}.  Also see
  11292.    {{Commonwealth Hackish}}, which uses `pling' for {bang} (as in
  11293.    {bang path}).
  11294.  
  11295. plokta: /plok't*/ [Acronym for `Press Lots Of Keys To Abort']
  11296.    v.  To press random keys in an attempt to get some response from
  11297.    the system.  One might plokta when the abort procedure for a
  11298.    program is not known, or when trying to figure out if the system is
  11299.    just sluggish or really hung.  Plokta can also be used while trying
  11300.    to figure out any unknown key sequence for a particular operation.
  11301.    Someone going into `plokta mode' usually places both hands flat
  11302.    on the keyboard and presses down, hoping for some useful
  11303.    response.
  11304.  
  11305. plonk: [USENET: possibly influenced by British slang `plonk' for
  11306.    cheap booze] The sound a {newbie} makes as he falls to the bottom
  11307.    of a {kill file}.  Used almost exclusively in the {newsgroup}
  11308.    talk.bizarre, this term (usually written "*plonk*") is a
  11309.    form of public ridicule.
  11310.  
  11311. plugh: /ploogh/ [from the {ADVENT} game] v. See {xyzzy}.
  11312.  
  11313. plumbing: [UNIX] n. Term used for {shell} code, so called because
  11314.    of the prevalence of `pipelines' that feed the output of one
  11315.    program to the input of another.  Under UNIX, user utilities can
  11316.    often be implemented or at least prototyped by a suitable
  11317.    collection of pipelines and temp-file grinding encapsulated in a
  11318.    shell script; this is much less effort than writing C every time,
  11319.    and the capability is considered one of UNIX's major winning
  11320.    features.  Esp. used in the construction `hairy plumbing' (see
  11321.    {hairy}).  "You can kluge together a basic spell-checker out of
  11322.    `sort(1)', `comm(1)', and `tr(1)' with a little
  11323.    plumbing." See also {tee}.
  11324.  
  11325. PM: /P-M/ 1. v. (from `preventive maintenance') To bring
  11326.    down a machine for inspection or test purposes; see {scratch
  11327.    monkey}.  2. n. Abbrev. for `Presentation Manager', an
  11328.    {elephantine} OS/2 graphical user interface.  See also
  11329.    {provocative maintenance}.
  11330.  
  11331. pnambic: /p*-nam'bik/ [Acronym from the scene in the film
  11332.    version of `The Wizard of Oz' in which true nature of the
  11333.    wizard is first discovered: "Pay no attention to the man behind
  11334.    the curtain."]  1. A stage of development of a process or function
  11335.    that, owing to incomplete implementation or to the complexity of
  11336.    the system, requires human interaction to simulate or replace some
  11337.    or all of the actions, inputs, or outputs of the process or
  11338.    function.  2. Of or pertaining to a process or function whose
  11339.    apparent operations are wholly or partially falsified.  3. Requiring
  11340.    {prestidigitization}.
  11341.  
  11342.    The ultimate pnambic product was "Dan Bricklin's Demo", a program
  11343.    which supported flashy user-interface design prototyping.  There is
  11344.    a related maxim among hackers: "Any sufficiently advanced
  11345.    technology is indistinguishable from a rigged demo."  See
  11346.    {magic}, sense 1, for illumination of this point.
  11347.  
  11348. pod: [allegedly from acronym POD for `Prince Of Darkness'] n. A
  11349.    Diablo 630 (or, latterly, any letter-quality impact printer).  From
  11350.    the DEC-10 PODTYPE program used to feed formatted text to it.
  11351.    See also {P.O.D.}
  11352.  
  11353. poke: n.,vt. See {peek}.
  11354.  
  11355. poll: v.,n. 1. [techspeak] The action of checking the status of an
  11356.    input line, sensor, or memory location to see if a particular
  11357.    external event has been registered.  2. To repeatedly call or check
  11358.    with someone: "I keep polling him, but he's not answering his
  11359.    phone; he must be swapped out."  3. To ask.  "Lunch?  I poll for
  11360.    a takeout order daily."
  11361.  
  11362. polygon pusher: n. A chip designer who spends most of his or her time at
  11363.    the physical layout level (which requires drawing *lots* of
  11364.    multi-colored polygons).  Also `rectangle slinger'.
  11365.  
  11366. POM: /P-O-M/ n. Common acronym for {phase of the moon}.  Usage:
  11367.    usually in the phrase `POM-dependent', which means {flaky}.
  11368.  
  11369. pop: [from the operation that removes the top of a stack, and the
  11370.    fact that procedure return addresses are saved on the stack] (also
  11371.    capitalized `POP' /pop/) 1. vt. To remove something from a
  11372.    {stack} or {pdl}.  If a person says he/she has popped
  11373.    something from his stack, that means he/she has finally finished
  11374.    working on it and can now remove it from the list of things hanging
  11375.    overhead.  2. When a discussion gets to too deep a level of detail
  11376.    so that the main point of the discussion is being lost, someone
  11377.    will shout "Pop!", meaning "Get back up to a higher level!"
  11378.    The shout is frequently accompanied by an upthrust arm with a
  11379.    finger pointing to the ceiling.
  11380.  
  11381. POPJ: /pop'J/ [from a {PDP-10} return-from-subroutine
  11382.    instruction] n.,v. To return from a digression.  By verb doubling,
  11383.    "Popj, popj" means roughly "Now let's see, where were we?"
  11384.    See {RTI}.
  11385.  
  11386. posing: n. On a {MUD}, the use of `:' or an equivalent
  11387.    command to announce to other players that one is taking a certain
  11388.    physical action that has no effect on the game (it may, however,
  11389.    serve as a social signal or propaganda device that induces other
  11390.    people to take game actions).  For example, if one's character name
  11391.    is Firechild, one might type `: looks delighted at the idea and
  11392.    begins hacking on the nearest terminal' to broadcast a message that
  11393.    says "Firechild looks delighted at the idea and begins hacking on
  11394.    the nearest terminal".  See {RL}.
  11395.  
  11396. post: v. To send a message to a {mailing list} or {newsgroup}.
  11397.    Distinguished in context from `mail'; one might ask, for
  11398.    example: "Are you going to post the patch or mail it to known
  11399.    users?"
  11400.  
  11401. posting: n. Noun corresp. to v. {post} (but note that
  11402.    {post} can be nouned).  Distinguished from a `letter' or ordinary
  11403.    {email} message by the fact that it is broadcast rather than
  11404.    point-to-point.  It is not clear whether messages sent to a small
  11405.    mailing list are postings or email; perhaps the best dividing line
  11406.    is that if you don't know the names of all the potential
  11407.    recipients, it is a posting.
  11408.  
  11409. postmaster: n. The email contact and maintenance person at a site
  11410.    connected to the Internet or UUCPNET.  Often, but not always, the
  11411.    same as the {admin}.  It is conventional for each machine to have
  11412.    a `postmaster' address that is aliased to this person.
  11413.  
  11414. pound on: vt.  Syn. {bang on}.
  11415.  
  11416. power cycle: vt. (also, `cycle power' or just `cycle') To
  11417.    power off a machine and then power it on immediately, with the
  11418.    intention of clearing some kind of {hung} or {gronk}ed state.
  11419.    Syn. {120 reset}; see also {Big Red Switch}.  Compare
  11420.    {Vulcan nerve pinch}, {bounce}, and {boot}, and see the
  11421.    AI Koan in appendix A about Tom Knight and the novice.
  11422.  
  11423. PPN: /P-P-N/, /pip'n/ [from `Project-Programmer Number'] n. A
  11424.    user-ID under {{TOPS-10}} and its various mutant progeny at SAIL,
  11425.    BBN, CompuServe, and elsewhere.  Old-time hackers from the PDP-10
  11426.    era sometimes use this to refer to user IDs on other systems as
  11427.    well.
  11428.  
  11429. precedence lossage: /pre's*-dens los'*j/ [C programmers] n. Coding
  11430.    error in an expression due to unexpected grouping of arithmetic or
  11431.    logical operators by the compiler.  Used esp. of certain common
  11432.    coding errors in C due to the nonintuitively low precedence levels
  11433.    of `&', `|', `^', `<<', and `>>' (for this
  11434.    reason, experienced C programmers deliberately forget the
  11435.    language's {baroque} precedence hierarchy and parenthesize
  11436.    defensively).  Can always be avoided by suitable use of
  11437.    parentheses.  {LISP} fans enjoy pointing out that this can't
  11438.    happen in *their* favorite language, which eschews precedence
  11439.    entirely, requiring one to use explicit parentheses everywhere.
  11440.    See {aliasing bug}, {memory leak}, {smash the stack},
  11441.    {fandango on core}, {overrun screw}.
  11442.  
  11443. prepend: /pree`pend'/ [by analogy with `append'] vt. To
  11444.    prefix.  As with `append' (but not `prefix' or `suffix' as a
  11445.    verb), the direct object is always the thing being added and not
  11446.    the original word (or character string, or whatever).  "If you
  11447.    prepend a semicolon to the line, the translation routine will pass
  11448.    it through unaltered."
  11449.  
  11450. prestidigitization: /pres`t*-di`j*-ti:-zay'sh*n/ n. 1. The act
  11451.    of putting something into digital notation via sleight of hand.
  11452.    2. Data entry through legerdemain.
  11453.  
  11454. pretty pictures: n. [scientific computation] The next step up from
  11455.    {numbers}.  Interesting graphical output from a program that may
  11456.    not have any sensible relationship to the system the program is
  11457.    intended to model.  Good for showing to {management}.
  11458.  
  11459. prettyprint: /prit'ee-print/ (alt. `pretty-print') v. 1. To
  11460.    generate `pretty' human-readable output from a {hairy} internal
  11461.    representation; esp. used for the process of {grind}ing (sense 2)
  11462.    LISP code.  2. To format in some particularly slick and
  11463.    nontrivial way.
  11464.  
  11465. pretzel key: [Mac users] n. See {command key}.
  11466.  
  11467. prime time: [from TV programming] n. Normal high-usage hours on a
  11468.    timesharing system; the day shift.  Avoidance of prime time is a
  11469.    major reason for {night mode} hacking.
  11470.  
  11471. priority interrupt: [from the hardware term] n. Describes any
  11472.    stimulus compelling enough to yank one right out of {hack mode}.
  11473.    Classically used to describe being dragged away by an {SO} for
  11474.    immediate sex, but may also refer to more mundane interruptions
  11475.    such as a fire alarm going off in the near vicinity.  Also called
  11476.    an {NMI} (non-maskable interrupt), especially in PC-land.
  11477.  
  11478. profile: n. 1. A control file for a program, esp. a text file
  11479.    automatically read from each user's home directory and intended to
  11480.    be easily modified by the user in order to customize the program's
  11481.    behavior.  Used to avoid {hardcoded} choices.  2. [techspeak] A
  11482.    report on the amounts of time spent in each routine of a program,
  11483.    used to find and {tune} away the {hot spot}s in it.  This sense
  11484.    is often verbed.  Some profiling modes report units other than time
  11485.    (such as call counts) and/or report at granularities other than
  11486.    per-routine, but the idea is similar.
  11487.  
  11488. proglet: /prog'let/ [UK] n. A short extempore program written
  11489.    to meet an immediate, transient need.  Often written in BASIC,
  11490.    rarely more than a dozen lines long, and contains no subroutines.
  11491.    The largest amount of code that can be written off the top of one's
  11492.    head, that does not need any editing, and that runs correctly the
  11493.    first time (this amount varies significantly according to the
  11494.    language one is using).  Compare {toy program}, {noddy},
  11495.    {one-liner wars}.
  11496.  
  11497. program: n. 1. A magic spell cast over a computer allowing it to
  11498.    turn one's input into error messages.  2. An exercise in
  11499.    experimental epistemology.  3. A form of art, ostensibly intended
  11500.    for the instruction of computers, which is nevertheless almost
  11501.    inevitably a failure if other programmers can't understand it.
  11502.  
  11503. Programmer's Cheer: "Shift to the left!  Shift to the right!  Pop
  11504.    up, push down!  Byte!  Byte!  Byte!"  A joke so old it has hair on
  11505.    it.
  11506.  
  11507. programming: n. 1. The art of debugging a blank sheet of paper (or,
  11508.    in these days of on-line editing, the art of debugging an empty
  11509.    file).  2. n. A pastime similar to banging one's head against a
  11510.    wall, but with fewer opportunities for reward.  3. n. The most fun
  11511.    you can have with your clothes on (although clothes are not
  11512.    mandatory).
  11513.  
  11514. propeller head: n. Used by hackers, this is syn. with {computer
  11515.    geek}.  Non-hackers sometimes use it to describe all techies.
  11516.    Prob. derives from SF fandom's tradition (originally invented by
  11517.    old-time fan Ray Faraday Nelson) of propeller beanies as fannish
  11518.    insignia (though nobody actually wears them except as a joke).
  11519.  
  11520. propeller key: [Mac users] n. See {command key}.
  11521.  
  11522. proprietary: adj. 1. In {marketroid}-speak, superior; implies a
  11523.    product imbued with exclusive magic by the unmatched brilliance of
  11524.    the company's hardware or software designers.  2. In the language
  11525.    of hackers and users, inferior; implies a product not conforming to
  11526.    open-systems standards, and thus one that puts the customer at the
  11527.    mercy of a vendor able to gouge freely on service and upgrade
  11528.    charges after the initial sale has locked the customer in (that's
  11529.    assuming it wasn't too expensive in the first place).
  11530.  
  11531. protocol: n. As used by hackers, this never refers to niceties
  11532.    about the proper form for addressing letters to the Papal Nuncio or
  11533.    the order in which one should use the forks in a Russian-style
  11534.    place setting; hackers don't care about such things.  It is used
  11535.    instead to describe any set of rules that allow different machines
  11536.    or pieces of software to coordinate with each other without
  11537.    ambiguity.  So, for example, it does include niceties about the
  11538.    proper form for addressing packets on a network or the order in
  11539.    which one should use the forks in the Dining Philosophers Problem.
  11540.    It implies that there is some common message format and an accepted set
  11541.    of primitives or commands that all parties involved understand, and
  11542.    that transactions among them follow predictable logical sequences.
  11543.    See also {handshaking}, {do protocol}.
  11544.  
  11545. provocative maintenance: [common ironic mutation of `preventive
  11546.    maintenance'] n. Actions performed upon a machine at regularly
  11547.    scheduled intervals to ensure that the system remains in a usable
  11548.    state.  So called because it is all too often performed by a
  11549.    {field servoid} who doesn't know what he is doing; this results
  11550.    in the machine's remaining in an *un*usable state for an
  11551.    indeterminate amount of time.  See also {scratch monkey}.
  11552.  
  11553. prowler: [UNIX] n. A {daemon} that is run periodically (typically
  11554.    once a week) to seek out and erase {core} files, truncate
  11555.    administrative logfiles, nuke `lost+found' directories, and
  11556.    otherwise clean up the {cruft} that tends to pile up in the
  11557.    corners of a file system.  See also {GFR}, {reaper},
  11558.    {skulker}.
  11559.  
  11560. pseudo: /soo'doh/ [USENET: truncation of `pseudonym'] n. 1. An
  11561.    electronic-mail or {USENET} persona adopted by a human for
  11562.    amusement value or as a means of avoiding negative repercussions of
  11563.    one's net.behavior; a `nom de USENET', often associated with
  11564.    forged postings designed to conceal message origins.  Perhaps the
  11565.    best-known and funniest hoax of this type is {BIFF}.
  11566.    2. Notionally, a {flamage}-generating AI program simulating a
  11567.    USENET user.  Many flamers have been accused of actually being such
  11568.    entities, despite the fact that no AI program of the required
  11569.    sophistication yet exists.  However, in 1989 there was a famous
  11570.    series of forged postings that used a phrase-frequency-based
  11571.    travesty generator to simulate the styles of several well-known
  11572.    flamers; it was based on large samples of their back postings
  11573.    (compare {Dissociated Press}).  A significant number of people
  11574.    were fooled by the forgeries, and the debate over their
  11575.    authenticity was settled only when the perpetrator came forward to
  11576.    publicly admit the hoax.
  11577.  
  11578. pseudoprime: n. A backgammon prime (six consecutive occupied
  11579.    points) with one point missing.  This term is an esoteric pun
  11580.    derived from a mathematical method that, rather than determining
  11581.    precisely whether a number is prime (has no divisors), uses a
  11582.    statistical technique to decide whether the number is `probably'
  11583.    prime.  A number that passes this test is called a pseudoprime.
  11584.    The hacker backgammon usage stems from the idea that a pseudoprime
  11585.    is almost as good as a prime: it does the job of a prime until
  11586.    proven otherwise, and that probably won't happen.
  11587.  
  11588. pseudosuit: /soo'doh-s[y]oot`/ n. A {suit} wannabee; a hacker
  11589.    who has decided that he wants to be in management or administration
  11590.    and begins wearing ties, sport coats, and (shudder!) suits
  11591.    voluntarily.  It's his funeral.  See also {lobotomy}.
  11592.  
  11593. psychedelicware: /si:`k*-del'-ik-weir/ [UK] n. Syn.
  11594.    {display hack}.  See also {smoking clover}.
  11595.  
  11596. psyton: /si:'ton/ [TMRC] n. The elementary particle carrying the
  11597.    sinister force.  The probability of a process losing is
  11598.    proportional to the number of psytons falling on it.  Psytons are
  11599.    generated by observers, which is why demos are more likely to fail
  11600.    when lots of people are watching.  [This term appears to have been
  11601.    largely superseded by {bogon}; see also {quantum bogodynamics}.
  11602.    --- ESR]
  11603.  
  11604. pubic directory: [NYU] (also `pube directory' /pyoob'
  11605.    d*-rek't*-ree/) n. The `pub' (public) directory on a machine that
  11606.    allows {FTP} access.  So called because it is the default
  11607.    location for {SEX} (sense 1).  "I'll have the source in the
  11608.    pube directory by Friday."
  11609.  
  11610. puff: vt. To decompress data that has been crunched by Huffman
  11611.    coding.  At least one widely distributed Huffman decoder program
  11612.    was actually *named* `PUFF', but these days it is usually
  11613.    packaged with the encoder.  Oppose {huff}.
  11614.  
  11615. punched card:: alt. `punch card' [techspeak] n.obs. The signature
  11616.    medium of computing's {Stone Age}, now obsolescent outside of
  11617.    some IBM shops.  The punched card actually predated computers
  11618.    considerably, originating in 1801 as a control device for
  11619.    mechanical looms.  The version patented by Hollerith and used with
  11620.    mechanical tabulating machines in the 1890 U.S. Census was a piece
  11621.    of cardboard about 90 mm by 215 mm, designed to fit exactly in the
  11622.    currency trays used for that era's larger dollar bills.
  11623.  
  11624.    IBM (which originated as a tabulating-machine manufacturer) married
  11625.    the punched card to computers, encoding binary information as
  11626.    patterns of small rectangular holes; one character per column,
  11627.    80 columns per card.  Other coding schemes, sizes of card, and
  11628.    hole shapes were tried at various times.
  11629.  
  11630.    The 80-column width of most character terminals is a legacy of the
  11631.    IBM punched card; so is the size of the quick-reference cards
  11632.    distributed with many varieties of computers even today.  See
  11633.    {chad}, {chad box}, {eighty-column mind}, {green card},
  11634.    {dusty deck}, {lace card}, {card walloper}.
  11635.  
  11636. punt: [from the punch line of an old joke referring to American
  11637.    football: "Drop back 15 yards and punt!"] v. 1. To give up,
  11638.    typically without any intention of retrying.  "Let's punt the
  11639.    movie tonight."  "I was going to hack all night to get this
  11640.    feature in, but I decided to punt" may mean that you've decided
  11641.    not to stay up all night, and may also mean you're not ever even
  11642.    going to put in the feature.  2. More specifically, to give up on
  11643.    figuring out what the {Right Thing} is and resort to an
  11644.    inefficient hack.  3. A design decision to defer solving a
  11645.    problem, typically because one cannot define what is desirable
  11646.    sufficiently well to frame an algorithmic solution.  "No way to
  11647.    know what the right form to dump the graph in is --- we'll punt
  11648.    that for now."  4. To hand a tricky implementation problem off
  11649.    to some other section of the design.  "It's too hard to get the
  11650.    compiler to do that; let's punt to the runtime system."
  11651.  
  11652. Purple Book: n. The `System V Interface Definition'.  The covers
  11653.    of the first editions were an amazingly nauseating shade of
  11654.    off-lavender.  See also {{book titles}}.
  11655.  
  11656. push: [from the operation that puts the current information on a
  11657.    stack, and the fact that procedure return addresses are saved on
  11658.    a stack] Also PUSH /push/ or PUSHJ /push'J/ (the latter based
  11659.    on the PDP-10 procedure call instruction).  1. To put something
  11660.    onto a {stack} or {pdl}.  If one says that something has been
  11661.    pushed onto one's stack, it means that the Damoclean list of things
  11662.    hanging over ones's head has grown longer and heavier yet.  This may
  11663.    also imply that one will deal with it *before* other pending
  11664.    items; otherwise one might say that the thing was `added to my queue'.
  11665.    2. vi. To enter upon a digression, to save the current discussion
  11666.    for later.  Antonym of {pop}; see also {stack}, {pdl}.
  11667.  
  11668. = Q =
  11669.  
  11670. quad: n. 1. Two bits; syn. for {quarter}, {crumb},
  11671.    {tayste}.  2. A four-pack of anything (compare {hex}, sense 2).
  11672.    3. The rectangle or box glyph used in the APL language for various
  11673.    arcane purposes mostly related to I/O.  Former Ivy-Leaguers and
  11674.    Oxbridge types are said to associate it with nostalgic memories of
  11675.    dear old University.
  11676.  
  11677. quadruple bucky: n., obs. 1. On an MIT {space-cadet keyboard},
  11678.    use of all four of the shifting keys (control, meta, hyper, and
  11679.    super) while typing a character key.  2. On a Stanford or MIT
  11680.    keyboard in {raw mode}, use of four shift keys while typing a
  11681.    fifth character, where the four shift keys are the control and meta
  11682.    keys on *both* sides of the keyboard.  This was very difficult
  11683.    to do!  One accepted technique was to press the left-control and
  11684.    left-meta keys with your left hand, the right-control and
  11685.    right-meta keys with your right hand, and the fifth key with your
  11686.    nose.
  11687.  
  11688.    Quadruple-bucky combinations were very seldom used in practice,
  11689.    because when one invented a new command one usually assigned it to
  11690.    some character that was easier to type.  If you want to imply that
  11691.    a program has ridiculously many commands or features, you can say
  11692.    something like: "Oh, the command that makes it spin the tapes while
  11693.    whistling Beethoven's Fifth Symphony is quadruple-bucky-cokebottle."
  11694.    See {double bucky}, {bucky bits}, {cokebottle}.
  11695.  
  11696. quantifiers:: In techspeak and jargon, the standard metric
  11697.    prefixes used in the SI (Syst`eme International) conventions for
  11698.    scientific measurement have dual uses.  With units of time or
  11699.    things that come in powers of 10, such as money, they retain their
  11700.    usual meanings of multiplication by powers of 1000 = 10^3.
  11701.    But when used with bytes or other things that naturally come in
  11702.    powers of 2, they usually denote multiplication by powers of
  11703.    1024 = 2^{10}.  Here are the magnifying prefixes in jargon
  11704.    use:
  11705.  
  11706.      prefix  decimal  binary
  11707.      kilo-   1000^1   1024^1 = 2^10 = 1,024
  11708.      mega-   1000^2   1024^2 = 2^20 = 1,048,576
  11709.      giga-   1000^3   1024^3 = 2^30 = 1,073,741,824
  11710.      tera-   1000^4   1024^4 = 2^40 = 1,099,511,627,776
  11711.      peta-   1000^5   1024^5 = 2^50 = 1,125,899,906,842,624
  11712.      exa-    1000^6   1024^6 = 2^60 = 1,152,921,504,606,846,976
  11713.  
  11714.    Here are the fractional prefixes:
  11715.  
  11716.      *prefix  decimal     jargon usage*
  11717.      milli-  1000^-1     (seldom used in jargon)
  11718.      micro-  1000^-2     small or human-scale (see {micro-})
  11719.      nano-   1000^-3     even smaller (see {nano-})
  11720.      pico-   1000^-4     even smaller yet (see {pico-})
  11721.      femto-  1000^-5     (not used in jargon---yet)
  11722.      atto-   1000^-6     (not used in jargon---yet)
  11723.  
  11724.    The binary peta- and exa- loadings are not in common use---yet,
  11725.    and the prefix milli-, denoting multiplication by 1000^{-1},
  11726.    has always been rare (there is, however, a standard joke about the
  11727.    `millihelen' --- notionally, the amount of beauty required to
  11728.    launch one ship).  See the entries on {micro-}, {pico-}, and
  11729.    {nano-} for more information on connotative jargon use of these
  11730.    terms.  `Femto' and `atto' (which, interestingly, derive not
  11731.    from Greek but from Danish) have not yet acquired jargon loadings,
  11732.    though it is easy to predict what those will be once computing
  11733.    technology enters the required realms of magnitude (however, see
  11734.    {attoparsec}).
  11735.  
  11736.    There are, of course, some standard unit prefixes for powers of
  11737.    10.  In the following table, the `prefix' column is the
  11738.    international standard suffix for the appropriate power of ten; the
  11739.    `binary' column lists jargon abbreviations and words for the
  11740.    corresponding power of 2.  The B-suffixed forms are commonly used
  11741.    for byte quantities; the words `meg' and `gig' are nouns which may
  11742.    (but do not always) pluralize with `s'.
  11743.  
  11744.      prefix   decimal   binary       pronunciation
  11745.      kilo-       k      K, KB,       /kay/
  11746.      mega-       M      M, MB, meg   /meg/
  11747.      giga-       G      G, GB, gig   /gig/,/jig/
  11748.  
  11749.    Confusingly, hackers often use K as though it were a suffix or
  11750.    numeric multiplier rather than a prefix; thus "2K dollars".  This
  11751.    is also true (though less commonly) of G and M.
  11752.  
  11753.    Note that the formal SI metric prefix for 1000 is `k'; some use
  11754.    this strictly, reserving `K' for multiplication by 1024 (KB is
  11755.    `kilobytes').
  11756.  
  11757.    K, M, and G used alone refer to quantities of bytes; thus, 64G is
  11758.    64 gigabytes and `a K' is a kilobyte (compare mainstream use of `a G'
  11759.    as short for `a grand', that is, $1000).  Whether one pronounces
  11760.    `gig' with hard or soft `g' depends on what one thinks the proper
  11761.    pronunciation of `giga-' is.
  11762.  
  11763.    Confusing 1000 and 1024 (or other powers of 2 and 10 close in
  11764.    magnitude) --- for example, describing a memory in units of
  11765.    500K or 524K instead of 512K --- is a sure sign of the
  11766.    {marketroid}.
  11767.  
  11768. quantum bogodynamics: /kwon'tm boh`goh-di:-nam'iks/ n. A theory
  11769.    that characterizes the universe in terms of bogon sources (such as
  11770.    politicians, used-car salesmen, TV evangelists, and {suit}s in
  11771.    general), bogon sinks (such as taxpayers and computers), and
  11772.    bogosity potential fields.  Bogon absorption, of course, causes
  11773.    human beings to behave mindlessly and machines to fail (and may
  11774.    also cause both to emit secondary bogons); however, the precise
  11775.    mechanics of the bogon-computron interaction are not yet understood
  11776.    and remain to be elucidated.  Quantum bogodynamics is most often
  11777.    invoked to explain the sharp increase in hardware and software
  11778.    failures in the presence of suits; the latter emit bogons, which
  11779.    the former absorb.  See {bogon}, {computron}, {suit},
  11780.    {psyton}.
  11781.  
  11782. quarter: n. Two bits.  This in turn comes from the `pieces of
  11783.    eight' famed in pirate movies --- Spanish gold pieces that could be
  11784.    broken into eight pie-slice-shaped `bits' to make change.  Early
  11785.    in American history the Spanish coin was considered equal to a
  11786.    dollar, so each of these `bits' was considered worth 12.5 cents.
  11787.    Syn.  {tayste}, {crumb}, {quad}.  Usage: rare.  See also
  11788.    {nickle}, {nybble}, {{byte}}, {dynner}.
  11789.  
  11790. ques: /kwes/ 1. n. The question mark character (`?', ASCII
  11791.    0111111).  2. interj.  What?  Also frequently verb-doubled as
  11792.    "Ques ques?"  See {wall}.
  11793.  
  11794. quick-and-dirty: adj. Describes a {crock} put together under time
  11795.    or user pressure.  Used esp. when you want to convey that you think
  11796.    the fast way might lead to trouble further down the road.  "I can
  11797.    have a quick-and-dirty fix in place tonight, but I'll have to
  11798.    rewrite the whole module to solve the underlying design problem."
  11799.    See also {kluge}.
  11800.  
  11801. quote chapter and verse: [by analogy with the mainstream phrase] v.
  11802.    To reproduce a relevant excerpt from an appropriate {bible}.
  11803.    "I don't care if `rn' gets it wrong; `Followup-To: poster' is 
  11804.    explicitly permitted by RFC-1036.  I'll quote chapter and
  11805.    verse if you don't believe me."
  11806.  
  11807. quotient: n. See {coefficient}.
  11808.  
  11809. quux: /kwuhks/ Mythically, from the Latin semi-deponent verb
  11810.    quuxo, quuxare, quuxandum iri; noun form variously `quux' (plural
  11811.    `quuces', anglicized to `quuxes') and `quuxu' (genitive
  11812.    plural is `quuxuum', for four u-letters out of seven in all,
  11813.    using up all the `u' letters in Scrabble).]  1. Originally, a
  11814.    metasyntactic variable like {foo} and {foobar}.  Invented by
  11815.    Guy Steele for precisely this purpose when he was young and na"ive
  11816.    and not yet interacting with the real computing community.  Many
  11817.    people invent such words; this one seems simply to have been lucky
  11818.    enough to have spread a little.  In an eloquent display of poetic
  11819.    justice, it has returned to the originator in the form of a
  11820.    nickname.  2. interj. See {foo}; however, denotes very little
  11821.    disgust, and is uttered mostly for the sake of the sound of it.
  11822.    3. Guy Steele in his persona as `The Great Quux', which is somewhat
  11823.    infamous for light verse and for the `Crunchly' cartoons.  4. In
  11824.    some circles, quux is used as a punning opposite of `crux'.
  11825.    "Ah, that's the quux of the matter!"  implies that the point is
  11826.    *not* crucial (compare {tip of the ice-cube}).  5. quuxy:
  11827.    adj. Of or pertaining to a quux.
  11828.  
  11829. qux: /kwuhks/ The fourth of the standard metasyntactic
  11830.    variables, after {baz} and before the quu(u...)x series.
  11831.    See {foo}, {bar}, {baz}, {quux}.  This appears to be a
  11832.    recent mutation from {quux}, and  many versions of the
  11833.    standard series just run {foo}, {bar}, {baz}, {quux},
  11834.    ....
  11835.  
  11836. QWERTY: /kwer'tee/ [from the keycaps at the upper left] adj.
  11837.    Pertaining to a standard English-language typewriter keyboard
  11838.    (sometimes called the Sholes keyboard after its inventor), as
  11839.    opposed to Dvorak or foreign-language layouts or a {space-cadet
  11840.    keyboard} or APL keyboard.
  11841.  
  11842.    Historical note: The QWERTY layout is a fine example of a {fossil}.
  11843.    It is sometimes said that it was designed to slow down the typist,
  11844.    but this is wrong; it was designed to allow *faster* typing
  11845.    --- under a constraint now long obsolete.  In early typewriters,
  11846.    fast typing using nearby type-bars jammed the mechanism.  So Sholes
  11847.    fiddled the layout to separate the letters of many common digraphs
  11848.    (he did a far from perfect job, though; `th', `tr', `ed', and `er',
  11849.    for example, each use two nearby keys).  Also, putting the letters
  11850.    of `typewriter' on one line allowed it to be typed with particular
  11851.    speed and accuracy for {demo}s.  The jamming problem was
  11852.    essentially solved soon afterward by a suitable use of springs, but
  11853.    the keyboard layout lives on.
  11854.  
  11855. = R =
  11856.  
  11857. rain dance: n. 1. Any ceremonial action taken to correct a hardware
  11858.    problem, with the expectation that nothing will be accomplished.
  11859.    This especially applies to reseating printed circuit boards,
  11860.    reconnecting cables, etc.  "I can't boot up the machine.  We'll
  11861.    have to wait for Greg to do his rain dance."  2. Any arcane
  11862.    sequence of actions performed with computers or software in order
  11863.    to achieve some goal; the term is usually restricted to rituals
  11864.    that include both an {incantation} or two and physical activity
  11865.    or motion.  Compare {magic}, {voodoo programming}, {black
  11866.    art}.
  11867.  
  11868. random: adj. 1. Unpredictable (closest to mathematical
  11869.    definition); weird.  "The system's been behaving pretty
  11870.    randomly."  2. Assorted; undistinguished.  "Who was at the
  11871.    conference?"  "Just a bunch of random business types."
  11872.    3. (pejorative) Frivolous; unproductive; undirected.  "He's just a
  11873.    random loser."  4. Incoherent or inelegant; poorly chosen; not
  11874.    well organized.  "The program has a random set of misfeatures."
  11875.    "That's a random name for that function."  "Well, all the names
  11876.    were chosen pretty randomly."  5. In no particular order, though
  11877.    deterministic.  "The I/O channels are in a pool, and when a file
  11878.    is opened one is chosen randomly."  6. Arbitrary.  "It generates
  11879.    a random name for the scratch file."  7. Gratuitously wrong, i.e.,
  11880.    poorly done and for no good apparent reason.  For example, a
  11881.    program that handles file name defaulting in a particularly useless
  11882.    way, or an assembler routine that could easily have been coded
  11883.    using only three registers, but redundantly uses seven for values with
  11884.    non-overlapping lifetimes, so that no one else can invoke it
  11885.    without first saving four extra registers.  What {randomness}!
  11886.    8. n. A random hacker; used particularly of high-school students
  11887.    who soak up computer time and generally get in the way.  9. n.
  11888.    Anyone who is not a hacker (or, sometimes, anyone not known to the
  11889.    hacker speaking); the noun form of sense 2.  "I went to the talk,
  11890.    but the audience was full of randoms asking bogus questions".
  11891.    10. n. (occasional MIT usage) One who lives at Random Hall.  See
  11892.    also {J. Random}, {some random X}.
  11893.  
  11894. random numbers:: n. When one wishes to specify a large but random
  11895.    number of things, and the context is inappropriate for {N}, certain
  11896.    numbers are preferred by hacker tradition (that is, easily
  11897.    recognized as placeholders).  These include the following:
  11898.  
  11899.      17
  11900.           Long described at MIT as `the least random number'; see 23.
  11901.      23
  11902.           Sacred number of Eris, Goddess of Discord (along with 17 and 5).
  11903.      42
  11904.           The Answer to the Ultimate Question of Life, the Universe, and
  11905.           Everything. (Note that this answer is completely fortuitous. `:-)')
  11906.      69
  11907.           From the sexual act.  This one was favored in MIT's ITS culture.
  11908.      105
  11909.           69 hex = 105 decimal, and 69 decimal = 105 octal.
  11910.      666
  11911.           The Number of the Beast.
  11912.  
  11913.    For further enlightenment, consult the `Principia Discordia',
  11914.    `The Hitchhiker's Guide to the Galaxy', `The Joy of Sex',
  11915.    and the Christian Bible (Revelation 13:8).  See also
  11916.    {Discordianism} or consult your pineal gland.
  11917.  
  11918.    One common rhetorical maneuver uses any of the canonical random
  11919.    numbers as placeholders for variables.  "The max function takes
  11920.    42 arguments, for arbitrary values of 42." "There are 69 ways
  11921.    to leave your lover, for 69 = 50."  This is especially likely when
  11922.    the speaker has uttered a random number and realizes that it was
  11923.    not recognized as such, but even `non-random' numbers are
  11924.    occasionally used in this fashion.  A related joke is that pi
  11925.    equals 3 --- for small values of pi and large values of 3.
  11926.  
  11927. randomness: n. An inexplicable misfeature; gratuitous inelegance.
  11928.    Also, a {hack} or {crock} that depends on a complex
  11929.    combination of coincidences (or, possibly, the combination upon
  11930.    which the crock depends for its accidental failure to malfunction).
  11931.    "This hack can output characters 40--57 by putting the character
  11932.    in the four-bit accumulator field of an XCT and then extracting six bits
  11933.    --- the low 2 bits of the XCT opcode are the right thing." "What
  11934.    randomness!"
  11935.  
  11936. rape: vt. 1. To {screw} someone or something, violently; in
  11937.    particular, to destroy a program or information irrecoverably.
  11938.    Often used in describing file-system damage.  "So-and-so was
  11939.    running a program that did absolute disk I/O and ended up raping
  11940.    the master directory."  2. To strip a piece of hardware for parts.
  11941.  
  11942. rare mode: [UNIX] adj. CBREAK mode (character-by-character with
  11943.    interrupts enabled).  Distinguished from {raw mode} and `cooked
  11944.    mode'; the phrase "a sort of half-cooked (rare?) mode" is used
  11945.    in the V7/BSD manuals to describe the mode.  Usage: rare.
  11946.  
  11947. raster blaster: n. [Cambridge] Specialized hardware for
  11948.    {bitblt} operations (a {blitter}).  Allegedly inspired by
  11949.    `Rasta Blasta', British slang for the sort of portable stereo
  11950.    Americans call a `boom box' or `ghetto blaster'.
  11951.  
  11952. raster burn: n. Eyestrain brought on by too many hours of looking at
  11953.    low-res, poorly tuned, or glare-ridden monitors, esp. graphics
  11954.    monitors.  See {terminal illness}.
  11955.  
  11956. rat belt: n. A cable tie, esp. the sawtoothed, self-locking plastic
  11957.    kind that you can remove only by cutting (as opposed to a random
  11958.    twist of wire or a twist tie or one of those humongous metal clip
  11959.    frobs).  Small cable ties are `mouse belts'.
  11960.  
  11961. rave: [WPI] vi. 1. To persist in discussing a specific subject.
  11962.    2. To speak authoritatively on a subject about which one knows
  11963.    very little.  3. To complain to a person who is not in a position
  11964.    to correct the difficulty.  4. To purposely annoy another person
  11965.    verbally.  5. To evangelize.  See {flame}.  6. Also used to
  11966.    describe a less negative form of blather, such as friendly
  11967.    bullshitting.  `Rave' differs slightly from {flame} in that
  11968.    `rave' implies that it is the persistence or obliviousness of the
  11969.    person speaking that is annoying, while {flame} implies somewhat
  11970.    more strongly that the tone is offensive as well.
  11971.  
  11972. rave on!: imp. Sarcastic invitation to continue a {rave}, often by
  11973.    someone who wishes the raver would get a clue but realizes this is
  11974.    unlikely.
  11975.  
  11976. ravs: /ravz/, also `Chinese ravs' n. Jiao-zi (steamed or
  11977.    boiled) or Guo-tie (pan-fried).  A Chinese appetizer, known
  11978.    variously in the plural as dumplings, pot stickers (the literal
  11979.    translation of guo-tie), and (around Boston) `Peking Ravioli'.  The
  11980.    term `rav' is short for `ravioli', which among hackers always
  11981.    means the Chinese kind rather than the Italian kind.  Both consist
  11982.    of a filling in a pasta shell, but the Chinese kind includes no
  11983.    cheese, uses a thinner pasta, has a pork-vegetable filling (good
  11984.    ones include Chinese chives), and is cooked differently, either by
  11985.    steaming or frying.  A rav or dumpling can be cooked any way, but a
  11986.    potsticker is always the fried kind (so called because it sticks to
  11987.    the frying pot and has to be scraped off).  "Let's get
  11988.    hot-and-sour soup and three orders of ravs."  See also
  11989.    {{oriental food}}.
  11990.  
  11991. raw mode: n. A mode that allows a program to transfer bits directly
  11992.    to or from an I/O device without any processing, abstraction, or
  11993.    interpretation by the operating system.  Compare {rare}.  This is
  11994.    techspeak under UNIX, jargon elsewhere.
  11995.  
  11996. rc file: /R-C fi:l/ [UNIX: from the startup script
  11997.    `/etc/rc', but this is commonly believed to have been named
  11998.    after older scripts to `run commands'] n. Script file containing
  11999.    startup instructions for an application program (or an entire
  12000.    operating system), usually a text file containing commands of the
  12001.    sort that might have been invoked manually once the system was
  12002.    running but are to be executed automatically each time the system
  12003.    starts up.  See also {dot file}.
  12004.  
  12005. RE: /R-E/ n. Common spoken and written shorthand for {regexp}.
  12006.  
  12007. read-only user: n. Describes a {luser} who uses computers almost
  12008.    exclusively for reading USENET, bulletin boards, and/or email,
  12009.    rather than writing code or purveying useful information.  See
  12010.    {twink}, {terminal junkie}, {lurker}.
  12011.  
  12012. README file: n. By convention, the top-level directory of a UNIX
  12013.    source distribution always contains a file named `README' (or
  12014.    READ.ME, or rarely ReadMe or some other variant), which is a
  12015.    hacker's-eye introduction containing a pointer to more detailed
  12016.    documentation, credits, miscellaneous revision history notes, etc.
  12017.    When asked, hackers invariably relate this to the famous scene in
  12018.    Lewis Carroll's `Alice's Adventures In Wonderland' in which
  12019.    Alice confronts magic munchies labeled "Eat Me" and "Drink
  12020.    Me".
  12021.  
  12022. real estate: n. May be used for any critical resource measured in
  12023.    units of area.  Most frequently used of `chip real estate', the
  12024.    area available for logic on the surface of an integrated circuit
  12025.    (see also {nanoacre}).  May also be used of floor space in a
  12026.    {dinosaur pen}, or even space on a crowded desktop (whether
  12027.    physical or electronic).
  12028.  
  12029. real hack: n. A {crock}.  This is sometimes used affectionately;
  12030.    see {hack}.
  12031.  
  12032. real operating system: n. The sort the speaker is used to.  People
  12033.    from the academic community are likely to issue comments like
  12034.    "System V?  Why don't you use a *real* operating system?",
  12035.    people from the commercial/industrial UNIX sector are known to
  12036.    complain "BSD?  Why don't you use a *real* operating
  12037.    system?", and people from IBM object "UNIX?  Why don't
  12038.    you use a *real* operating system?"  See {holy wars},
  12039.    {religious issues}, {proprietary}, {Get a real computer!}
  12040.  
  12041. real programmer: [indirectly, from the book `Real Men Don't
  12042.    Eat Quiche'] n. A particular sub-variety of hacker: one possessed
  12043.    of a flippant attitude toward complexity that is arrogant even
  12044.    when justified by experience.  The archetypal `real programmer'
  12045.    likes to program on the {bare metal} and is very good at same,
  12046.    remembers the binary opcodes for every machine he has ever
  12047.    programmed, thinks that HLLs are sissy, and uses a debugger to edit
  12048.    his code because full-screen editors are for wimps.  Real
  12049.    Programmers aren't satisfied with code that hasn't been {bum}med
  12050.    into a state of {tense}ness just short of rupture.  Real
  12051.    Programmers never use comments or write documentation: "If it was
  12052.    hard to write", says the Real Programmer, "it should be hard to
  12053.    understand."  Real Programmers can make machines do things that
  12054.    were never in their spec sheets; in fact, they are seldom really
  12055.    happy unless doing so.  A Real Programmer's code can awe with its
  12056.    fiendish brilliance, even as its crockishness appalls.  Real
  12057.    Programmers live on junk food and coffee, hang line-printer art on
  12058.    their walls, and terrify the crap out of other programmers ---
  12059.    because someday, somebody else might have to try to understand
  12060.    their code in order to change it.  Their successors generally
  12061.    consider it a {Good Thing} that there aren't many Real
  12062.    Programmers around any more.  For a famous (and somewhat more
  12063.    positive) portrait of a Real Programmer, see "The Story of
  12064.    Mel" in appendix A.
  12065.  
  12066. Real Soon Now: [orig. from SF's fanzine community, popularized by
  12067.    Jerry Pournelle's column in `BYTE'] adv. 1. Supposed to be available
  12068.    (or fixed, or cheap, or whatever) real soon now according to
  12069.    somebody, but the speaker is quite skeptical.  2. When one's
  12070.    gods, fates, or other time commitments permit one to get to it (in other
  12071.    words, don't hold your breath).  Often abbreviated RSN.
  12072.  
  12073. real time: 1. [techspeak] adj. Describes an application which requires a
  12074.    program to respond to stimuli within some small upper limit of
  12075.    response time (typically milli- or microseconds).  Process control
  12076.    at a chemical plant is the classic example.  Such applications
  12077.    often require special operating systems (because everything else
  12078.    must take a back seat to response time) and speed-tuned hardware.
  12079.    2. adv. In jargon, refers to doing something while people are watching
  12080.    or waiting.  "I asked her how to find the calling procedure's
  12081.    program counter on the stack and she came up with an algorithm in
  12082.    real time."
  12083.  
  12084. real user: n. 1. A commercial user.  One who is paying *real*
  12085.    money for his computer usage.  2. A non-hacker.  Someone using the
  12086.    system for an explicit purpose (a research project, a course, etc.)
  12087.    other than pure exploration.  See {user}.  Hackers who are also
  12088.    students may also be real users.  "I need this fixed so I can do a
  12089.    problem set.  I'm not complaining out of randomness, but as a real
  12090.    user."  See also {luser}.
  12091.  
  12092. Real World: n. 1. Those institutions at which `programming' may
  12093.    be used in the same sentence as `FORTRAN', `{COBOL}',
  12094.    `RPG', `{IBM}', `DBASE', etc.  Places where programs do such
  12095.    commercially necessary but intellectually uninspiring things as
  12096.    generating payroll checks and invoices.  2. The location of
  12097.    non-programmers and activities not related to programming.  3. A
  12098.    bizarre dimension in which the standard dress is shirt and tie and
  12099.    in which a person's working hours are defined as 9 to 5 (see
  12100.    {code grinder}).  4. Anywhere outside a university.  "Poor
  12101.    fellow, he's left MIT and gone into the Real World."  Used
  12102.    pejoratively by those not in residence there.  In conversation,
  12103.    talking of someone who has entered the Real World is not unlike
  12104.    speaking of a deceased person.  See also {fear and loathing},
  12105.    {mundane}, and {uninteresting}.
  12106.  
  12107. reality check: n. 1. The simplest kind of test of software or
  12108.    hardware; doing the equivalent of asking it what 2 + 2 is
  12109.    and seeing if you get 4.  The software equivalent of a
  12110.    {smoke test}.  2. The act of letting a {real user} try out
  12111.    prototype software.  Compare {sanity check}.
  12112.  
  12113. reaper: n. A {prowler} that {GFR}s files.  A file removed in
  12114.    this way is said to have been `reaped'.
  12115.  
  12116. rectangle slinger: n. See {polygon pusher}.
  12117.  
  12118. recursion: n. See {recursion}.  See also {tail recursion}.
  12119.  
  12120. recursive acronym:: pl.n. A hackish (and especially MIT) tradition
  12121.    is to choose acronyms that refer humorously to themselves or to
  12122.    other acronyms.  The classic examples were two MIT editors called
  12123.    EINE ("EINE Is Not EMACS") and ZWEI ("ZWEI Was EINE
  12124.    Initially").  More recently, there is a Scheme compiler called
  12125.    LIAR (Liar Imitates Apply Recursively), and {GNU} (q.v.,
  12126.    sense 1) stands for "GNU's Not UNIX!" --- and a company with
  12127.    the name CYGNUS, which expands to "Cygnus, Your GNU Support".
  12128.    See also {mung}, {EMACS}.
  12129.  
  12130. Red Book: n. 1. Informal name for one of the three standard
  12131.    references on PostScript (`PostScript Language Reference
  12132.    Manual', Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN
  12133.    0-201-10174-2); the others are known as the {Green Book} and
  12134.    the {Blue Book}.  2. Informal name for one of the 3 standard
  12135.    references on Smalltalk (`Smalltalk-80: The Interactive
  12136.    Programming Environment' by Adele Goldberg (Addison-Wesley, 1984;
  12137.    QA76.8.S635G638; ISBN 0-201-11372-4); this too is associated with
  12138.    blue and green books).  3. Any of the 1984 standards issued by the
  12139.    CCITT eighth plenary assembly.  Until now, these have changed color
  12140.    each review cycle (1988 was {Blue Book}, 1992 will be {Green
  12141.    Book}); however, it is rumored that this convention is going to be
  12142.    dropped before 1992.  These include, among other things, the
  12143.    X.400 email spec and the Group 1 through 4 fax standards.  4. The
  12144.    new version of the {Green Book} (sense 4) --- IEEE 1003.1-1990, a.k.a
  12145.    ISO 9945-1 --- is (because of the color and the fact that it is
  12146.    printed on A4 paper) known in the U.S.A. as "the Ugly Red Book
  12147.    That Won't Fit On The Shelf" and in Europe as "the Ugly Red Book
  12148.    That's A Sensible Size".  5. The NSA `Trusted Network
  12149.    Interpretation' companion to the {Orange Book}.  See also
  12150.    {{book titles}}.
  12151.  
  12152. regexp: /reg'eksp/ [UNIX] n. (alt. `regex' or `reg-ex')
  12153.    1. Common written and spoken abbreviation for `regular
  12154.    expression', one of the wildcard patterns used, e.g., by UNIX
  12155.    utilities such as `grep(1)', `sed(1)', and `awk(1)'.
  12156.    These use conventions similar to but more elaborate than those
  12157.    described under {glob}.  For purposes of this lexicon, it is
  12158.    sufficient to note that regexps also allow complemented character
  12159.    sets using `^'; thus, one can specify `any non-alphabetic
  12160.    character' with `[^A-Za-z]'.  2. Name of a well-known PD
  12161.    regexp-handling package in portable C, written by revered USENETter
  12162.    Henry Spencer (henry@zoo.toronto.edu).
  12163.  
  12164. reincarnation, cycle of: n. See {cycle of reincarnation}.
  12165.  
  12166. reinvent the wheel: v. To design or implement a tool equivalent to
  12167.    an existing one or part of one, with the implication that doing so
  12168.    is silly or a waste of time.  This is often a valid criticism.
  12169.    On the other hand, automobiles don't use wooden rollers, and some
  12170.    kinds of wheel have to be reinvented many times before you get them
  12171.    right.  On the third hand, people reinventing the wheel do tend to
  12172.    come up with the moral equivalent of a trapezoid with an offset
  12173.    axle.
  12174.  
  12175. religious issues: n. Questions which seemingly cannot be raised
  12176.    without touching off {holy wars}, such as "What is the best
  12177.    operating system (or editor, language, architecture, shell, mail
  12178.    reader, news reader)?", "What about that Heinlein guy, eh?",
  12179.    "What should we add to the new Jargon File?"  See {holy wars};
  12180.    see also {theology}, {bigot}.
  12181.  
  12182.    This term is an example of {ha ha only serious}.  People
  12183.    actually develop the most amazing and religiously intense
  12184.    attachments to their tools, even when the tools are intangible.
  12185.    The most constructive thing one can do when one stumbles into the
  12186.    crossfire is mumble {Get a life!} and leave --- unless, of course,
  12187.    one's *own* unassailably rational and obviously correct
  12188.    choices are being slammed.
  12189.  
  12190. replicator: n. Any construct that acts to produce copies of itself;
  12191.    this could be a living organism, an idea (see {meme}), a program
  12192.    (see {worm}, {wabbit}, and {virus}), a pattern in a cellular
  12193.    automaton (see {life}, sense 1), or (speculatively) a robot or
  12194.    {nanobot}.  It is even claimed by some that {{UNIX}} and {C}
  12195.    are the symbiotic halves of an extremely successful replicator; see
  12196.    {UNIX conspiracy}.
  12197.  
  12198. reply: n. See {followup}.
  12199.  
  12200. reset: [the MUD community] v. In AberMUD, to bring all dead mobiles
  12201.    to life and move items back to their initial starting places. New
  12202.    players who can't find anything shout "Reset! Reset!" quite a bit.
  12203.    Higher-level players shout back "No way!" since they know where
  12204.    points are to be found.  Used in {RL}, it means to put things back
  12205.    to the way they were when you found them.
  12206.  
  12207. restriction: n. A {bug} or design error that limits a program's
  12208.    capabilities, and which is sufficiently egregious that nobody can
  12209.    quite work up enough nerve to describe it as a {feature}.  Often
  12210.    used (esp. by {marketroid} types) to make it sound as though
  12211.    some crippling bogosity had been intended by the designers all
  12212.    along, or was forced upon them by arcane technical constraints of a
  12213.    nature no mere user could possibly comprehend (these claims are
  12214.    almost invariably false).
  12215.  
  12216.    Old-time hacker Joseph M. Newcomer advises that whenever choosing a
  12217.    quantifiable but arbitrary restriction, you should make it either a
  12218.    power of 2 or a power of 2 minus 1.  If you impose a limit of
  12219.    17 items in a list, everyone will know it is a random number --- on
  12220.    the other hand, a limit of 15 or 16 suggests some deep reason
  12221.    (involving 0- or 1-based indexing in binary) and you will get less
  12222.    {flamage} for it.  Limits which are round numbers in base 10 are
  12223.    always especially suspect.
  12224.  
  12225. retcon: /ret'kon/ [`retroactive continuity', from the USENET
  12226.    newsgroup rec.arts.comics] 1. n. The common situation in pulp
  12227.    fiction (esp. comics or soap operas) where a new story `reveals'
  12228.    things about events in previous stories, usually leaving the
  12229.    `facts' the same (thus preserving continuity) while completely
  12230.    changing their interpretation.  E.g., revealing that a whole season
  12231.    of "Dallas" was a dream was a retcon.  2. vt. To write such a
  12232.    story about a character or fictitious object.  "Byrne has
  12233.    retconned Superman's cape so that it is no longer unbreakable."
  12234.    "Marvelman's old adventures were retconned into synthetic
  12235.    dreams."  "Swamp Thing was retconned from a transformed person
  12236.    into a sentient vegetable."
  12237.  
  12238.    [This is included because it is a good example of hackish linguistic
  12239.    innovation in a field completely unrelated to computers.  The word
  12240.    `retcon' will probably spread through comics fandom and lose its
  12241.    association with hackerdom within a couple of years; for the
  12242.    record, it started here. --- ESR]
  12243.  
  12244. RETI: v. Syn. {RTI}
  12245.  
  12246. retrocomputing: /ret'-roh-k*m-pyoo'ting/ n. Refers to emulations
  12247.    of way-behind-the-state-of-the-art hardware or software, or
  12248.    implementations of never-was-state-of-the-art; esp. if such
  12249.    implementations are elaborate practical jokes and/or parodies of
  12250.    more `serious' designs.  Perhaps the most widely distributed
  12251.    retrocomputing utility was the `pnch(6)' or `bcd(6)'
  12252.    program on V7 and other early UNIX versions, which would accept up
  12253.    to 80 characters of text argument and display the corresponding
  12254.    pattern in {{punched card}} code.  Other well-known retrocomputing
  12255.    hacks have included the programming language {INTERCAL}, a
  12256.    {JCL}-emulating shell for UNIX, the card-punch-emulating editor
  12257.    named 029, and various elaborate PDP-11 hardware emulators and RT-11
  12258.    OS emulators written just to keep an old, sourceless {Zork} binary
  12259.    running.
  12260.  
  12261. RFC: /R-F-C/ [Request For Comment] n. One of a long-established
  12262.    series of numbered Internet standards widely followed by commercial
  12263.    and PD software in the Internet and UNIX communities.  Perhaps the
  12264.    single most influential one has been RFC-822 (the Internet
  12265.    mail-format standard).  The RFCs are unusual in that they are
  12266.    floated by technical experts acting on their own initiative and
  12267.    reviewed by the Internet at large, rather than formally promulgated
  12268.    through an institution such as ANSI.  For this reason, they remain
  12269.    known as RFCs even once adopted.
  12270.  
  12271. RFE: /R-F-E/ n. 1. [techspeak] Request For Enhancement.  2. [from
  12272.    `Radio Free Europe', Bellcore and Sun] Radio Free Ethernet, a system
  12273.    (originated by Peter Langston) for broadcasting audio among Sun
  12274.    SPARCstations over the ethernet.
  12275.  
  12276. rib site: [by analogy with {backbone site}] n. A machine that
  12277.    has an on-demand high-speed link to a {backbone site} and serves
  12278.    as a regional distribution point for lots of third-party traffic in
  12279.    email and USENET news.  Compare {leaf site}, {backbone site}.
  12280.  
  12281. rice box: [from ham radio slang] n. Any Asian-made commodity
  12282.    computer, esp. an 80x86-based machine built to IBM PC-compatible
  12283.    ISA or EISA-bus standards.
  12284.  
  12285. Right Thing: n. That which is {compellingly} the correct or
  12286.    appropriate thing to use, do, say, etc.  Often capitalized, always
  12287.    emphasized in speech as though capitalized.  Use of this term often
  12288.    implies that in fact reasonable people may disagree.  "What's the
  12289.    right thing for LISP to do when it sees `(mod a 0)'?  Should
  12290.    it return `a', or give a divide-by-0 error?"  Oppose
  12291.    {Wrong Thing}.
  12292.  
  12293. RL: // [MUD community] n. Real Life.  "Firiss laughs in RL"
  12294.    means that Firiss's player is laughing.  Oppose {VR}.
  12295.  
  12296. roach: [Bell Labs] vt. To destroy, esp. of a data structure.  Hardware
  12297.    gets {toast}ed or {fried}, software gets roached.
  12298.  
  12299. robust: adj. Said of a system that has demonstrated an ability to
  12300.    recover gracefully from the whole range of exceptional inputs and
  12301.    situations in a given environment.  One step below {bulletproof}.
  12302.    Carries the additional connotation of elegance in addition to just
  12303.    careful attention to detail.  Compare {smart}, oppose
  12304.    {brittle}.
  12305.  
  12306. rococo: adj. {Baroque} in the extreme.  Used to imply that a
  12307.    program has become so encrusted with the software equivalent of
  12308.    gold leaf and curlicues that they have completely swamped the
  12309.    underlying design.  Called after the later and more extreme forms
  12310.    of Baroque architecture and decoration prevalent during the
  12311.    mid-1700s in Europe.  Fred Brooks (the man who coined
  12312.    {second-system effect}) said: "Every program eventually becomes
  12313.    rococo, and then rubble."
  12314.  
  12315. rogue: [UNIX] n. A Dungeons-and-Dragons-like game using character
  12316.    graphics, written under BSD UNIX and subsequently ported to other
  12317.    UNIX systems.  The original BSD `curses(3)' screen-handling
  12318.    package was hacked together by Ken Arnold to support
  12319.    `rogue(6)' and has since become one of UNIX's most important
  12320.    and heavily used application libraries.  Nethack, Omega, Larn, and
  12321.    an entire subgenre of computer dungeon games all took off from the
  12322.    inspiration provided by `rogue(6)'.  See {nethack}.
  12323.  
  12324. room-temperature IQ: [IBM] quant. 80 or below.  Used in describing the
  12325.    expected intelligence range of the {luser}.  "Well, but
  12326.    how's this interface going to play with the room-temperature IQ
  12327.    crowd?"  See {drool-proof paper}.  This is a much more insulting
  12328.    phrase in countries that use Celsius thermometers.
  12329.  
  12330. root: [UNIX] n. 1. The {superuser} account that ignores
  12331.    permission bits, user number 0 on a UNIX system.  This account
  12332.    has the user name `root'.  The term {avatar} is also used.
  12333.    2. The top node of the system directory structure (home directory
  12334.    of the root user).  3. By extension, the privileged
  12335.    system-maintenance login on any OS.  See {root mode}, {go root}.
  12336.  
  12337. root mode: n. Syn. with {wizard mode} or `wheel mode'.  Like
  12338.    these, it is often generalized to describe privileged states in
  12339.    systems other than OSes.
  12340.  
  12341. rot13: /rot ther'teen/ [USENET: from `rotate alphabet
  12342.    13 places'] n., v. The simple Caesar-cypher encryption that replaces
  12343.    each English letter with the one 13 places forward or back along
  12344.    the alphabet, so that "The butler did it!" becomes "Gur ohgyre
  12345.    qvq vg!"  Most USENET news reading and posting programs include a
  12346.    rot13 feature.  It is used to enclose the text in a sealed wrapper
  12347.    that the reader must choose to open --- e.g., for posting things
  12348.    that might offend some readers, or answers to puzzles.  A major
  12349.    advantage of rot13 over rot(N) for other N is that it
  12350.    is self-inverse, so the same code can be used for encoding and
  12351.    decoding.
  12352.  
  12353. rotary debugger: [Commodore] n. Essential equipment for those
  12354.    late-night or early-morning debugging sessions.  Mainly used as
  12355.    sustenance for the hacker.  Comes in many decorator colors, such as
  12356.    Sausage, Pepperoni, and Garbage.  See {pizza, ANSI standard}.
  12357.  
  12358. RSN: // adj. See {Real Soon Now}.
  12359.  
  12360. RTFAQ: /R-T-F-A-Q/ [USENET: primarily written, by analogy with
  12361.    {RTFM}] imp. Abbrev. for `Read the FAQ!', an exhortation that
  12362.    the person addressed ought to read the newsgroup's {FAQ list}
  12363.    before posting questions.
  12364.  
  12365. RTFM: /R-T-F-M/ [UNIX] imp. Acronym for `Read The Fucking
  12366.    Manual'.  1. Used by {guru}s to brush off questions they
  12367.    consider trivial or annoying.  Compare {Don't do that, then!}
  12368.    2. Used when reporting a problem to indicate that you aren't just
  12369.    asking out of {randomness}.  "No, I can't figure out how to
  12370.    interface UNIX to my toaster, and yes, I have RTFM."  Unlike
  12371.    sense 1, this use is considered polite.  See also
  12372.    {RTFAQ}, {RTM}.  The variant RTFS, where S = `Standard',
  12373.    has also been reported.  Compare {UTSL}.
  12374.  
  12375. RTI: /R-T-I/ interj. The mnemonic for the `return from
  12376.    interrupt' instruction on many computers including the 6502 and
  12377.    6800.  The variant `RETI' is found among former Z80 hackers (almost
  12378.    nobody programs these things in assembler anymore).  Equivalent to
  12379.    "Now, where was I?" or used to end a conversational digression.
  12380.    See {pop}; see also {POPJ}.
  12381.  
  12382. RTM: /R-T-M/ [USENET: acronym for `Read The Manual']
  12383.    1. Politer variant of {RTFM}.  2. Robert T. Morris, perpetrator
  12384.    of the great Internet worm of 1988; villain to many, na"ive hacker
  12385.    gone wrong to a few.  Morris claimed that the worm that brought
  12386.    the Internet to its knees was a benign experiment that got out of
  12387.    control as the result of a coding error.  After the storm of negative
  12388.    publicity that followed this blunder, Morris's name on ITS was
  12389.    hacked from RTM to {RTFM}.
  12390.  
  12391. rude: [WPI] adj. 1. (of a program) Badly written.  2. Functionally
  12392.    poor, e.g., a program that is very difficult to use because of
  12393.    gratuitously poor (random?) design decisions.  See {cuspy}.
  12394.  
  12395. runes: pl.n. 1. Anything that requires {heavy wizardry} or
  12396.    {black art} to {parse}: core dumps, JCL commands, APL, or code
  12397.    in a language you haven't a clue how to read.  Compare {casting
  12398.    the runes}, {Great Runes}.  2. Special display characters (for
  12399.    example, the high-half graphics on an IBM PC).
  12400.  
  12401. runic: adj. Syn. {obscure}.  VMS fans sometimes refer to UNIX as
  12402.    `Runix'; UNIX fans return the compliment by expanding VMS to `Very
  12403.    Messy Syntax' or `Vachement Mauvais Syst`eme' (French; lit.
  12404.    "Cowlike Bad System", idiomatically "Bitchy Bad System").
  12405.  
  12406. rusty iron: n. Syn. {tired iron}.  It has been claimed that this
  12407.    is the inevitable fate of {water MIPS}.
  12408.  
  12409. rusty memory: n. Mass-storage that uses iron-oxide-based magnetic
  12410.    media (esp. tape and the pre-Winchester removable disk packs used
  12411.    in {washing machine}s).  Compare {donuts}.
  12412.  
  12413. = S =
  12414.  
  12415. S/N ratio: // n. (also `s/n ratio', `s:n ratio').  Syn.
  12416.    {signal-to-noise ratio}.  Often abbreviated `SNR'.
  12417.  
  12418. sacred: adj. Reserved for the exclusive use of something (an
  12419.    extension of the standard meaning).  Often means that anyone may
  12420.    look at the sacred object, but clobbering it will screw whatever it
  12421.    is sacred to.  The comment "Register 7 is sacred to the interrupt
  12422.    handler" appearing in a program would be interpreted by a hacker
  12423.    to mean that if any *other* part of the program changes the
  12424.    contents of register 7, dire consequences are likely to ensue.
  12425.  
  12426. saga: [WPI] n. A cuspy but bogus raving story about N random
  12427.    broken people.
  12428.  
  12429.    Here is a classic example of the saga form, as told by Guy L. Steele:
  12430.  
  12431.         Jon L. White (login name JONL) and I (GLS) were office mates at MIT
  12432.         for many years.  One April, we both flew from Boston to California
  12433.         for a week on research business, to consult face-to-face with some
  12434.         people at Stanford, particularly our mutual friend Richard P.
  12435.         Gabriel (RPG; see {Gabriel}).
  12436.  
  12437.         RPG picked us up at the San Francisco airport and drove us back to
  12438.         Palo Alto (going {logical} south on route 101, parallel to
  12439.         {El Camino Bignum}).  Palo Alto is adjacent to Stanford University and
  12440.         about 40 miles south of San Francisco.  We ate at The Good
  12441.         Earth, a `health food' restaurant, very popular, the sort whose
  12442.         milkshakes all contain honey and protein powder.  JONL ordered such
  12443.         a shake --- the waitress claimed the flavor of the day was
  12444.         "lalaberry".  I still have no idea what that might be, but it
  12445.         became a running joke.  It was the color of raspberry, and JONL
  12446.         said it tasted rather bitter.  I ate a better tostada there than I
  12447.         have ever had in a Mexican restaurant.
  12448.  
  12449.         After this we went to the local Uncle Gaylord's Old Fashioned Ice
  12450.         Cream Parlor.  They make ice cream fresh daily, in a variety of
  12451.         intriguing flavors.  It's a chain, and they have a slogan: "If you
  12452.         don't live near an Uncle Gaylord's --- MOVE!"  Also, Uncle
  12453.         Gaylord (a real person) wages a constant battle to force big-name
  12454.         ice cream makers to print their ingredients on the package (like
  12455.         air and plastic and other non-natural garbage).  JONL and I had
  12456.         first discovered Uncle Gaylord's the previous August, when we had
  12457.         flown to a computer-science conference in Berkeley, California, the
  12458.         first time either of us had been on the West Coast.  When not in
  12459.         the conference sessions, we had spent our time wandering the length
  12460.         of Telegraph Street, which (like Harvard Square in Cambridge) was
  12461.         lined with picturesque street vendors and interesting little shops.
  12462.         On that street we discovered Uncle Gaylord's Berkeley store.  The
  12463.         ice cream there was very good.  During that August visit JONL went
  12464.         absolutely bananas (so to speak) over one particular flavor, ginger
  12465.         honey.
  12466.  
  12467.         Therefore, after eating at The Good Earth --- indeed, after every
  12468.         lunch and dinner and before bed during our April visit --- a trip
  12469.         to Uncle Gaylord's (the one in Palo Alto) was mandatory.  We had
  12470.         arrived on a Wednesday, and by Thursday evening we had been there
  12471.         at least four times.  Each time, JONL would get ginger honey ice
  12472.         cream, and proclaim to all bystanders that "Ginger was the spice
  12473.         that drove the Europeans mad!  That's why they sought a route to
  12474.         the East!  They used it to preserve their otherwise off-taste
  12475.         meat."  After the third or fourth repetition RPG and I were
  12476.         getting a little tired of this spiel, and began to paraphrase him:
  12477.         "Wow!  Ginger!  The spice that makes rotten meat taste good!"
  12478.         "Say!  Why don't we find some dog that's been run over and sat in
  12479.         the sun for a week and put some *ginger* on it for dinner?!"
  12480.         "Right!  With a lalaberry shake!"  And so on.  This failed to
  12481.         faze JONL; he took it in good humor, as long as we kept returning
  12482.         to Uncle Gaylord's.  He loves ginger honey ice cream.
  12483.  
  12484.         Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
  12485.         (putting up with us?) in their home for our visit, so to thank them
  12486.         JONL and I took them out to a nice French restaurant of their
  12487.         choosing.  I unadventurously chose the filet mignon, and KBT had
  12488.         je ne sais quoi du jour, but RPG and JONL had lapin
  12489.         (rabbit).  (Waitress: "Oui, we have fresh rabbit, fresh
  12490.         today."  RPG: "Well, JONL, I guess we won't need any
  12491.         *ginger*!")
  12492.  
  12493.         We finished the meal late, about 11 P.M., which is 2 A.M
  12494.         Boston time, so JONL and I were rather droopy.  But it wasn't yet
  12495.         midnight.  Off to Uncle Gaylord's!
  12496.  
  12497.         Now the French restaurant was in Redwood City, north of Palo Alto.
  12498.         In leaving Redwood City, we somehow got onto route 101 going north
  12499.         instead of south.  JONL and I wouldn't have known the difference
  12500.         had RPG not mentioned it.  We still knew very little of the local
  12501.         geography.  I did figure out, however, that we were headed in the
  12502.         direction of Berkeley, and half-jokingly suggested that we continue
  12503.         north and go to Uncle Gaylord's in Berkeley.
  12504.  
  12505.         RPG said "Fine!" and we drove on for a while and talked.  I was
  12506.         drowsy, and JONL actually dropped off to sleep for 5 minutes.
  12507.         When he awoke, RPG said, "Gee, JONL, you must have slept all the
  12508.         way over the bridge!", referring to the one spanning San Francisco
  12509.         Bay.  Just then we came to a sign that said "University Avenue".
  12510.         I mumbled something about working our way over to Telegraph Street;
  12511.         RPG said "Right!" and maneuvered some more.  Eventually we pulled
  12512.         up in front of an Uncle Gaylord's.
  12513.  
  12514.         Now, I hadn't really been paying attention because I was so sleepy,
  12515.         and I didn't really understand what was happening until RPG let me
  12516.         in on it a few moments later, but I was just alert enough to notice
  12517.         that we had somehow come to the Palo Alto Uncle Gaylord's after
  12518.         all.
  12519.  
  12520.         JONL noticed the resemblance to the Palo Alto store, but hadn't
  12521.         caught on.  (The place is lit with red and yellow lights at night,
  12522.         and looks much different from the way it does in daylight.)  He
  12523.         said, "This isn't the Uncle Gaylord's I went to in Berkeley!  It
  12524.         looked like a barn!  But this place looks *just like* the one
  12525.         back in Palo Alto!"
  12526.  
  12527.         RPG deadpanned, "Well, this is the one *I* always come to
  12528.         when I'm in Berkeley.  They've got two in San Francisco, too.
  12529.         Remember, they're a chain."
  12530.  
  12531.         JONL accepted this bit of wisdom.  And he was not totally ignorant
  12532.         --- he knew perfectly well that University Avenue was in Berkeley,
  12533.         not far from Telegraph Street.  What he didn't know was that there
  12534.         is a completely different University Avenue in Palo Alto.
  12535.  
  12536.         JONL went up to the counter and asked for ginger honey.  The guy at
  12537.         the counter asked whether JONL would like to taste it first,
  12538.         evidently their standard procedure with that flavor, as not too
  12539.         many people like it.
  12540.  
  12541.         JONL said, "I'm sure I like it.  Just give me a cone."  The guy
  12542.         behind the counter insisted that JONL try just a taste first.
  12543.         "Some people think it tastes like soap."  JONL insisted, "Look,
  12544.         I *love* ginger.  I eat Chinese food.  I eat raw ginger roots.  I
  12545.         already went through this hassle with the guy back in Palo Alto.  I
  12546.         *know* I like that flavor!"
  12547.  
  12548.         At the words "back in Palo Alto" the guy behind the counter got a
  12549.         very strange look on his face, but said nothing.  KBT caught his
  12550.         eye and winked.  Through my stupor I still hadn't quite grasped
  12551.         what was going on, and thought RPG was rolling on the floor
  12552.         laughing and clutching his stomach just because JONL had launched
  12553.         into his spiel ("makes rotten meat a dish for princes") for the
  12554.         forty-third time.  At this point, RPG clued me in fully.
  12555.  
  12556.         RPG, KBT, and I retreated to a table, trying to stifle our
  12557.         chuckles.  JONL remained at the counter, talking about ice cream
  12558.         with the guy b.t.c., comparing Uncle Gaylord's to other ice cream
  12559.         shops and generally having a good old time.
  12560.  
  12561.         At length the g.b.t.c. said, "How's the ginger honey?"  JONL
  12562.         said, "Fine!  I wonder what exactly is in it?"  Now Uncle Gaylord
  12563.         publishes all his recipes and even teaches classes on how to make
  12564.         his ice cream at home.  So the g.b.t.c. got out the recipe, and he
  12565.         and JONL pored over it for a while.  But the g.b.t.c. could
  12566.         contain his curiosity no longer, and asked again, "You really like
  12567.         that stuff, huh?"  JONL said, "Yeah, I've been eating it
  12568.         constantly back in Palo Alto for the past two days.  In fact, I
  12569.         think this batch is about as good as the cones I got back in Palo
  12570.         Alto!"
  12571.  
  12572.         G.b.t.c. looked him straight in the eye and said, "You're
  12573.         *in* Palo Alto!"
  12574.  
  12575.         JONL turned slowly around, and saw the three of us collapse in a
  12576.         fit of giggles.  He clapped a hand to his forehead and exclaimed,
  12577.         "I've been hacked!"
  12578.  
  12579. sagan: /say'gn/ [from Carl Sagan's TV series "Cosmos"; think
  12580.    "billions and billions"] n. A large quantity of anything.
  12581.    "There's a sagan different ways to tweak EMACS."  "The
  12582.    U.S. Government spends sagans on bombs and welfare --- hard to say which
  12583.    is more destructive."
  12584.  
  12585. SAIL:: /sayl/, not /S-A-I-L/ n. 1. Stanford Artificial
  12586.    Intelligence Lab.  An important site in the early development of
  12587.    LISP; with the MIT AI Lab, BBN, CMU, and the UNIX community, one of
  12588.    the major wellsprings of technical innovation and hacker-culture
  12589.    traditions (see the {{WAITS}} entry for details).  The SAIL
  12590.    machines were officially shut down in late May 1990, scant weeks
  12591.    after the MIT AI Lab's ITS cluster was officially decommissioned.
  12592.    2. The Stanford Artificial Intelligence Language used at SAIL
  12593.    (sense 1).  It was an Algol-60 derivative with a coroutining
  12594.    facility and some new data types intended for building search trees
  12595.    and association lists.
  12596.  
  12597. salescritter: /sayls'kri`tr/ n. Pejorative hackerism for a computer
  12598.    salesperson.  Hackers tell the following joke:
  12599.  
  12600.      Q. What's the difference between a used-car dealer and a
  12601.         computer salesman?
  12602.      A. The used-car dealer knows he's lying.
  12603.  
  12604.    This reflects the widespread hacker belief that salescritters are
  12605.    self-selected for stupidity (after all, if they had brains and the
  12606.    inclination to use them, they'd be in programming).  The terms
  12607.    `salesthing' and `salesdroid' are also common.  Compare
  12608.    {marketroid}, {suit}, {droid}.
  12609.  
  12610. salsman: /salz'm*n/ v. To flood a mailing list or newsgroup with
  12611.    huge amounts of useless, trivial or redundant information.  From
  12612.    the name of a hacker who has frequently done this on some widely
  12613.    distributed mailing lists.
  12614.  
  12615. salt mines: n. Dense quarters housing large numbers of programmers
  12616.    working long hours on grungy projects, with some hope of seeing the
  12617.    end of the tunnel in N years.  Noted for their absence of sunshine.
  12618.    Compare {playpen}, {sandbox}.
  12619.  
  12620. salt substrate: [MIT] n. Collective noun used to refer to potato
  12621.    chips, pretzels, saltines, or any other form of snack food
  12622.    designed primarily as a carrier for sodium chloride.  From the
  12623.    technical term `chip substrate', used to refer to the silicon on the
  12624.    top of which the active parts of integrated circuits are deposited.
  12625.  
  12626. same-day service: n. Ironic term used to describe long response
  12627.    time, particularly with respect to {{MS-DOS}} system calls (which
  12628.    ought to require only a tiny fraction of a second to execute).
  12629.    Such response time is a major incentive for programmers to write
  12630.    programs that are not {well-behaved}.  See also {PC-ism}.
  12631.  
  12632. sandbender: [IBM] n. A person involved with silicon lithography and
  12633.    the physical design of chips.  Compare {ironmonger}, {polygon
  12634.    pusher}.
  12635.  
  12636. sandbox: n. (or `sandbox, the') Common term for the
  12637.    R&D department at many software and computer companies (where hackers
  12638.    in commercial environments are likely to be found).  Half-derisive,
  12639.    but reflects the truth that research is a form of creative play.
  12640.    Compare {playpen}.
  12641.  
  12642. sanity check: n. 1. The act of checking a piece of code (or
  12643.    anything else, e.g., a USENET posting) for completely stupid mistakes.
  12644.    Implies that the check is to make sure the author was sane when it
  12645.    was written; e.g., if a piece of scientific software relied on a
  12646.    particular formula and was giving unexpected results, one might
  12647.    first look at the nesting of parentheses or the coding of the
  12648.    formula, as a {sanity check}, before looking at the more complex
  12649.    I/O or data structure manipulation routines, much less the
  12650.    algorithm itself.  Compare {reality check}.  2. A run-time test,
  12651.    either validating input or ensuring that the program hasn't screwed
  12652.    up internally (producing an inconsistent value or state).
  12653.  
  12654. Saturday night special: [from police slang for a cheap handgun] n.
  12655.    A program or feature kluged together during off hours, under a
  12656.    deadline, and in response to pressure from a {salescritter}.
  12657.    Such hacks are dangerously unreliable, but all too often sneak into
  12658.    a production release after insufficient review.
  12659.  
  12660. say: vt. 1. To type to a terminal.  "To list a directory
  12661.    verbosely, you have to say `ls -l'."  Tends to imply a
  12662.    {newline}-terminated command (a `sentence').  2. A computer
  12663.    may also be said to `say' things to you, even if it doesn't have
  12664.    a speech synthesizer, by displaying them on a terminal in response
  12665.    to your commands.  Hackers find it odd that this usage confuses
  12666.    {mundane}s.
  12667.  
  12668. science-fiction fandom:: n. Another voluntary subculture having a
  12669.    very heavy overlap with hackerdom; most hackers read SF and/or
  12670.    fantasy fiction avidly, and many go to `cons' (SF conventions) or
  12671.    are involved in fandom-connected activities such as the Society for
  12672.    Creative Anachronism.  Some hacker jargon originated in SF fandom;
  12673.    see {defenestration}, {great-wall}, {cyberpunk}, {h}, {ha ha
  12674.    only serious}, {IMHO}, {mundane}, {neep-neep}, {Real
  12675.    Soon Now}.  Additionally, the jargon terms {cowboy},
  12676.    {cyberspace}, {de-rezz}, {go flatline}, {ice}, {virus},
  12677.    {wetware}, {wirehead}, and {worm} originated in SF
  12678.    stories.
  12679.  
  12680. scram switch: [from the nuclear power industry] n. An
  12681.    emergency-power-off switch (see {Big Red Switch}), esp. one
  12682.    positioned to be easily hit by evacuating personnel.  In general,
  12683.    this is *not* something you {frob} lightly; these often
  12684.    initiate expensive events (such as Halon dumps) and are installed
  12685.    in a {dinosaur pen} for use in case of electrical fire or in
  12686.    case some luckless {field servoid} should put 120 volts across
  12687.    himself while {Easter egging}.
  12688.  
  12689. scratch: 1. [from `scratchpad'] adj. Describes a data
  12690.    structure or recording medium attached to a machine for testing or
  12691.    temporary-use purposes; one that can be {scribble}d on without
  12692.    loss.  Usually in the combining forms `scratch memory',
  12693.    `scratch register', `scratch disk', `scratch tape',
  12694.    `scratch volume'.  See {scratch monkey}.  2. [primarily
  12695.    IBM] vt. To delete (as in a file).
  12696.  
  12697. scratch monkey: n. As in "Before testing or reconfiguring, always
  12698.    mount a {scratch monkey}", a proverb used to advise caution when
  12699.    dealing with irreplaceable data or devices.  Used to refer to any
  12700.    scratch volume hooked to a computer during any risky operation as a
  12701.    replacement for some precious resource or data that might otherwise get
  12702.    trashed.
  12703.  
  12704.    This term preserves the memory of Mabel, the Swimming Wonder
  12705.    Monkey, star of a biological research program at the University of
  12706.    Toronto ca. 1986.  Mabel was not (so the legend goes) your ordinary
  12707.    monkey; the university had spent years teaching her how to swim,
  12708.    breathing through a regulator, in order to study the effects of
  12709.    different gas mixtures on her physiology.  Mabel suffered an
  12710.    untimely demise one day when DEC {PM}ed the PDP-11 controlling
  12711.    her regulator (see also {provocative maintainance}).
  12712.  
  12713.    It is recorded that, after calming down an understandably irate
  12714.    customer sufficiently to ascertain the facts of the matter, a DEC
  12715.    troubleshooter called up the {field circus} manager responsible
  12716.    and asked him sweetly, "Can you swim?"
  12717.  
  12718.    Not all the consequences to humans were so amusing; the sysop of
  12719.    the machine in question was nearly thrown in jail at the behest of
  12720.    certain clueless droids at the local `humane' society.  The moral
  12721.    is clear: When in doubt, always mount a scratch monkey.
  12722.  
  12723. screw: [MIT] n. A {lose}, usually in software.  Especially used for
  12724.    user-visible misbehavior caused by a bug or misfeature.  This use
  12725.    has become quite widespread outside MIT.
  12726.  
  12727. screwage: /skroo'*j/ n. Like {lossage} but connotes that the
  12728.    failure is due to a designed-in misfeature rather than a simple
  12729.    inadequacy or a mere bug.
  12730.  
  12731. scribble: n. To modify a data structure in a random and
  12732.    unintentionally destructive way.  "Bletch! Somebody's
  12733.    disk-compactor program went berserk and scribbled on the i-node
  12734.    table."  "It was working fine until one of the allocation routines
  12735.    scribbled on low core."  Synonymous with {trash}; compare {mung},
  12736.    which conveys a bit more intention, and {mangle}, which is more
  12737.    violent and final.
  12738.  
  12739. scrog: /skrog/ [Bell Labs] vt. To damage, trash, or corrupt a
  12740.    data structure.  "The list header got scrogged."  Also reported
  12741.    as `skrog', and ascribed to the comic strip "The Wizard of
  12742.    Id".  Equivalent to {scribble} or {mangle}.
  12743.  
  12744. scrool: /skrool/ [from the pioneering Roundtable chat system in
  12745.    Houston ca. 1984; prob. originated as a typo for `scroll'] n. The
  12746.    log of old messages, available for later perusal or to help one get
  12747.    back in synch with the conversation. It was originally called the
  12748.    `scrool monster', because an early version of the roundtable
  12749.    software had a bug where it would dump all 8K of scrool on a user's
  12750.    terminal.
  12751.  
  12752. scrozzle: /skroz'l/ vt. Used when a self-modifying code segment runs
  12753.    incorrectly and corrupts the running program or vital data.  "The
  12754.    damn compiler scrozzled itself again!"
  12755.  
  12756. SCSI: [Small Computer System Interface] n. A bus-independent
  12757.    standard for system-level interfacing between a computer and
  12758.    intelligent devices.  Typically annotated in literature with `sexy'
  12759.    (/sek'see/), `sissy' (/sis'ee/), and `scuzzy' (/skuh'zee/) as
  12760.    pronunciation guides --- the last being the overwhelmingly
  12761.    predominant form, much to the dismay of the designers and their
  12762.    marketing people.  One can usually assume that a person who
  12763.    pronounces it /S-C-S-I/ is clueless.
  12764.  
  12765. search-and-destroy mode: n. Hackerism for the search-and-replace
  12766.    facility in an editor, so called because an incautiously chosen
  12767.    match pattern can cause {infinite} damage.
  12768.  
  12769. second-system effect: n. (sometimes, more euphoniously,
  12770.    `second-system syndrome') When one is designing the successor to
  12771.    a relatively small, elegant, and successful system, there is a
  12772.    tendency to become grandiose in one's success and design an
  12773.    {elephantine} feature-laden monstrosity.  The term was first
  12774.    used by Fred Brooks in his classic `The Mythical Man-Month:
  12775.    Essays on Software Engineering' (Addison-Wesley, 1975; ISBN
  12776.    0-201-00650-2).  It described the jump from a set of nice, simple
  12777.    operating systems on the IBM 70xx series to OS/360 on the
  12778.    360 series.  A similar effect can also happen in an evolving
  12779.    system; see {Brooks's Law}, {creeping elegance}, {creeping
  12780.    featurism}.  See also {{Multics}}, {OS/2}, {X}, {software
  12781.    bloat}.
  12782.  
  12783.    This version of the jargon lexicon has been described (with
  12784.    altogether too much truth for comfort) as an example of
  12785.    second-system effect run amok on jargon-1....
  12786.  
  12787. secondary damage: n. When a fatal error occurs (esp. a
  12788.    {segfault}) the immediate cause may be that a pointer has been
  12789.    trashed due to a previous {fandango on core}.  However, this
  12790.    fandango may have been due to an *earlier* fandango, so no
  12791.    amount of analysis will reveal (directly) how the damage occurred.
  12792.    "The data structure was clobbered, but it was secondary damage."
  12793.  
  12794.    By extension, the corruption resulting from N cascaded
  12795.    fandangoes on core is `Nth-level damage'.  There is at least
  12796.    one case on record in which 17 hours of {grovel}ling with
  12797.    `adb' actually dug up the underlying bug behind an instance of
  12798.    seventh-level damage!  The hacker who accomplished this
  12799.    near-superhuman feat was presented with an award by his fellows.
  12800.  
  12801. security through obscurity: n. A name applied by hackers to most OS
  12802.    vendors' favorite way of coping with security holes --- namely,
  12803.    ignoring them and not documenting them and trusting that nobody
  12804.    will find out about them and that people who do find out about them
  12805.    won't exploit them.  This never works for long and occasionally
  12806.    sets the world up for debacles like the {RTM} worm of 1988, but once
  12807.    the brief moments of panic created by such events subside most
  12808.    vendors are all too willing to turn over and go back to sleep.
  12809.    After all, actually fixing the bugs would siphon off the resources
  12810.    needed to implement the next user-interface frill on marketing's
  12811.    wish list --- and besides, if they started fixing security bugs
  12812.    customers might begin to *expect* it and imagine that their
  12813.    warranties of merchantability gave them some sort of *right*
  12814.    to a system with fewer holes in it than a shotgunned Swiss cheese,
  12815.    and then where would we be?
  12816.  
  12817.    Historical note: It is claimed (with dissent from {{ITS}} fans who
  12818.    say they used to use `security through obscurity' in a positive
  12819.    sense) that this term was first used in the USENET newsgroup in
  12820.    comp.sys.apollo during a campaign to get HP/Apollo to fix
  12821.    security problems in its UNIX-{clone} Aegis/DomainOS.  They
  12822.    didn't change a thing.
  12823.  
  12824. SED: [TMRC, from `Light-Emitting Diode'] /S-E-D/ n.
  12825.    Smoke-emitting diode.  A {friode} that lost the war. See
  12826.    {LER}.
  12827.  
  12828. segfault: n.,vi. Syn. {segment}, {seggie}.
  12829.  
  12830. seggie: /seg'ee/ [UNIX] n. Shorthand for {segmentation fault}
  12831.    reported from Britain.
  12832.  
  12833. segment: /seg'ment/ vi. To experience a {segmentation fault}.
  12834.    Confusingly, this is often pronounced more like the noun `segment'
  12835.    than like mainstream v. segment; this is because it is actually a
  12836.    noun shorthand that has been verbed.
  12837.  
  12838. segmentation fault: n. [UNIX] 1. An error in which a running program
  12839.    attempts to access memory not allocated to it and {core dump}s
  12840.    with a segmentation violation error.  2. To lose a train of
  12841.    thought or a line of reasoning.  Also uttered as an exclamation at
  12842.    the point of befuddlement.
  12843.  
  12844. segv: /seg'vee/ n.,vi. Yet another synonym for {segmentation
  12845.    fault} (actually, in this case, `segmentation violation').
  12846.  
  12847. self-reference: n. See {self-reference}.
  12848.  
  12849. selvage: /sel'v*j/ [from sewing] n. See {chad} (sense 1).
  12850.  
  12851. semi: /se'mee/ or /se'mi:/ 1. n. Abbreviation for
  12852.    `semicolon', when speaking.  "Commands to {grind} are
  12853.    prefixed by semi-semi-star" means that the prefix is `;;*',
  12854.    not 1/4 of a star.  2. A prefix used with words such as
  12855.    `immediately' as a qualifier.  "When is the system coming up?"
  12856.    "Semi-immediately." (That is, maybe not for an hour.)  "We did
  12857.    consider that possibility semi-seriously."  See also
  12858.    {infinite}.
  12859.  
  12860. semi-infinite: n. See {infinite}.
  12861.  
  12862. senior bit: [IBM] n. Syn. {meta bit}.
  12863.  
  12864. server: n. A kind of {daemon} that performs a service for the
  12865.    requester and which often runs on a computer other than the one on
  12866.    which the server runs.  A particularly common term on the Internet,
  12867.    which is rife with `name servers', `domain servers', `news
  12868.    servers', `finger servers', and the like.
  12869.  
  12870. SEX: /seks/ [Sun Users' Group & elsewhere] n. 1. Software
  12871.    EXchange.  A technique invented by the blue-green algae hundreds of
  12872.    millions of years ago to speed up their evolution, which had been
  12873.    terribly slow up until then.  Today, SEX parties are popular among
  12874.    hackers and others (of course, these are no longer limited to
  12875.    exchanges of genetic software).  In general, SEX parties are a
  12876.    {Good Thing}, but unprotected SEX can propagate a {virus}.
  12877.    See also {pubic directory}.  2. The rather Freudian mnemonic
  12878.    often used for Sign EXtend, a machine instruction found in the
  12879.    PDP-11 and many other architectures.
  12880.  
  12881.    DEC's engineers nearly got a PDP-11 assembler that used the
  12882.    `SEX' mnemonic out the door at one time, but (for once)
  12883.    marketing wasn't asleep and forced a change.  That wasn't the last
  12884.    time this happened, either.  The author of `The Intel 8086
  12885.    Primer', who was one of the original designers of the 8086, noted
  12886.    that there was originally a `SEX' instruction on that
  12887.    processor, too.  He says that Intel management got cold feet and
  12888.    decreed that it be changed, and thus the instruction was renamed
  12889.    `CBW' and `CWD' (depending on what was being extended).
  12890.    Amusingly, the Intel 8048 (the microcontroller used in IBM PC
  12891.    keyboards) is also missing straight `SEX' but has logical-or
  12892.    and logical-and instructions `ORL' and `ANL'.
  12893.  
  12894.    The Motorola 6809, used in the U.K.'s `Dragon 32' personal
  12895.    computer, actually had an official `SEX' instruction; the 6502
  12896.    in the Apple II it competed with did not.  British hackers thought
  12897.    this made perfect mythic sense; after all, it was commonly
  12898.    observed, you could have sex with a dragon, but you can't have sex
  12899.    with an apple.
  12900.  
  12901. sex changer: n. Syn. {gender mender}.
  12902.  
  12903. shareware: /sheir'weir/ n. {Freeware} (sense 1) for which the
  12904.    author requests some payment, usually in the accompanying
  12905.    documentation files or in an announcement made by the software
  12906.    itself.  Such payment may or may not buy additional support or
  12907.    functionality.  See {guiltware}, {crippleware}.
  12908.  
  12909. shelfware: /shelfweir/ n. Software purchased on a whim (by an
  12910.    individual user) or in accordance with policy (by a corporation or
  12911.    government agency), but not actually required for any particular use.
  12912.    Therefore, it often ends up on some shelf.
  12913.  
  12914. shell: [orig. {{Multics}} techspeak, widely propagated via UNIX] n.
  12915.    1. [techspeak] The command interpreter used to pass commands to an
  12916.    operating system; so called because it is the part of the operating
  12917.    system that interfaces with the outside world.  2. More generally,
  12918.    any interface program that mediates access to a special resource
  12919.    or {server} for convenience, efficiency, or security reasons; for
  12920.    this meaning, the usage is usually `a shell around' whatever.
  12921.    This sort of program is also called a `wrapper'.
  12922.  
  12923. shell out: [UNIX] n. To spawn an interactive {subshell} from
  12924.    within a program (e.g., a mailer or editor).  "Bang foo runs foo in
  12925.    a subshell, while bang alone shells out."
  12926.  
  12927. shift left (or right) logical: [from any of various machines'
  12928.    instruction sets] 1. vi. To move oneself to the left (right).  To
  12929.    move out of the way.  2. imper. "Get out of that (my) seat!  You
  12930.    can shift to that empty one to the left (right)."  Often
  12931.    used without the `logical', or as `left shift' instead of
  12932.    `shift left'.  Sometimes heard as LSH /lish/, from the {PDP-10}
  12933.    instruction set.  See {Programmer's Cheer}.
  12934.  
  12935. shitogram: /shit'oh-gram/ n. A *really* nasty piece of email.
  12936.    Compare {nastygram}, {flame}.
  12937.  
  12938. short card: n. A half-length IBM PC expansion card or adapter that
  12939.    will fit in one of the two short slots located towards the right
  12940.    rear of a standard chassis (tucked behind the floppy disk drives).
  12941.    See also {tall card}.
  12942.  
  12943. shotgun debugging: n. The software equivalent of {Easter egging};
  12944.    the making of relatively undirected changes to software in the hope
  12945.    that a bug will be perturbed out of existence.  This almost never
  12946.    works, and usually introduces more bugs.
  12947.  
  12948. showstopper: n. A hardware or (especially) software bug that makes
  12949.    an implementation effectively unusable; one that absolutely has to
  12950.    be fixed before development can go on.  Opposite in connotation
  12951.    from its original theatrical use, which refers to something
  12952.    stunningly *good*.
  12953.  
  12954. shriek: n. See {excl}.  Occasional CMU usage, also in common use
  12955.    among APL fans and mathematicians, especially category theorists.
  12956.  
  12957. Shub-Internet: /shuhb in't*r-net/ [MUD: from H. P. Lovecraft's
  12958.    evil fictional deity `Shub-Niggurath', the Black Goat with a
  12959.    Thousand Young] n.  The harsh personification of the Internet,
  12960.    Beast of a Thousand Processes, Eater of Characters, Avatar of Line
  12961.    Noise, and Imp of Call Waiting; the hideous multi-tendriled entity
  12962.    formed of all the manifold connections of the net.  A sect of
  12963.    MUDders worships Shub-Internet, sacrificing objects and praying for
  12964.    good connections.  To no avail --- its purpose is malign and evil,
  12965.    and is the cause of all network slowdown.  Often heard as in
  12966.    "Freela casts a tac nuke at Shub-Internet for slowing her down."
  12967.    (A forged response often follows along the lines of: "Shub-Internet
  12968.    gulps down the tac nuke and burps happily.")  Also cursed by users
  12969.    of {FTP} and {telnet} when the system slows down.  The dread
  12970.    name of Shub-Internet is seldom spoken aloud, as it is said that
  12971.    repeating it three times will cause the being to wake, deep within its
  12972.    lair beneath the Pentagon.
  12973.  
  12974. sidecar: n. 1. Syn. {slap on the side}.  Esp. used of add-ons
  12975.    for the late and unlamented IBM PCjr.  2. The IBM PC compatibility
  12976.    box that could be bolted onto the side of an Amiga.  Designed and
  12977.    produced by Commodore, it broke all of the company's own rules.
  12978.    If it worked with any other peripherals, it was by {magic}.
  12979.  
  12980. sig block: /sig blok/ [UNIX: often written `.sig' there] n.
  12981.    Short for `signature', used specifically to refer to the
  12982.    electronic signature block that most UNIX mail- and news-posting
  12983.    software will {automagically} append to outgoing mail and news.
  12984.    The composition of one's sig can be quite an art form, including an
  12985.    ASCII logo or one's choice of witty sayings (see {sig quote},
  12986.    {fool file}); but many consider large sigs a waste of
  12987.    {bandwidth}, and it has been observed that the size of one's sig
  12988.    block is usually inversely proportional to one's longevity and
  12989.    level of prestige on the net.
  12990.  
  12991. sig quote: /sig kwoht/ [USENET] n. A maxim, quote, proverb, joke,
  12992.    or slogan embedded in one's {sig block} and intended to convey
  12993.    something of one's philosophical stance, pet peeves, or sense of
  12994.    humor. "Calm down, it's only ones and zeroes."
  12995.  
  12996. signal-to-noise ratio: [from analog electronics] n. Used by hackers
  12997.    in a generalization of its technical meaning.  `Signal' refers to
  12998.    useful information conveyed by some communications medium, and
  12999.    `noise' to anything else on that medium.  Hence a low ratio implies
  13000.    that it is not worth paying attention to the medium in question.
  13001.    Figures for such metaphorical ratios are never given.  The term is
  13002.    most often applied to {USENET} newsgroups during {flame war}s.
  13003.    Compare {bandwidth}.  See also {coefficient of X}, {lost in
  13004.    the noise}.
  13005.  
  13006. silicon: n. Hardware, esp. ICs or microprocessor-based computer
  13007.    systems (compare {iron}).  Contrasted with software.  See also
  13008.    {sandbender}.
  13009.  
  13010. silicon foundry: n. A company that {fab}s chips to the designs of
  13011.    others.  As of the late 1980s, the combination of silicon foundries
  13012.    and good computer-aided design software made it much easier for
  13013.    hardware-designing startup companies to come into being.  The
  13014.    downside of using a silicon foundry is that the distance from the
  13015.    actual chip-fabrication processes reduces designers' control of detail.
  13016.    This is somewhat analogous to the use of {HLL}s versus coding in
  13017.    assembler.
  13018.  
  13019. silly walk: [from Monty Python's Flying Circus] vi. 1. A ridiculous
  13020.    procedure required to accomplish a task.  Like {grovel}, but more
  13021.    {random} and humorous.  "I had to silly-walk through half the
  13022.    /usr directories to find the maps file."  2. Syn. {fandango on
  13023.    core}.
  13024.  
  13025. silo: n. The FIFO input-character buffer in an RS-232 line card.  So
  13026.    called from DEC terminology used on DH and DZ line cards for the
  13027.    VAX and PDP-11, presumably because it was a storage space for
  13028.    fungible stuff that you put in the top and took out the bottom.
  13029.  
  13030. Silver Book: n. Jensen and Wirth's infamous `Pascal User Manual
  13031.    and Report', so called because of the silver cover of the
  13032.    widely distributed Springer-Verlag second edition of 1978 (ISBN
  13033.    0-387-90144-2).  See {{book titles}}, {Pascal}.
  13034.  
  13035. since time T equals minus infinity: adj. A long time ago; for as
  13036.    long as anyone can remember; at the time that some particular frob
  13037.    was first designed.  Usually the word `time' is omitted.  See also
  13038.    {time T}.
  13039.  
  13040. sitename: /si:t'naym/ [UNIX/Internet] n. The unique electronic
  13041.    name of a computer system, used to identify it in UUCP mail,
  13042.    USENET, or other forms of electronic information interchange.  The
  13043.    folklore interest of sitenames stems from the creativity and humor
  13044.    they often display.  Interpreting a sitename is not unlike
  13045.    interpreting a vanity license plate; one has to mentally unpack it,
  13046.    allowing for mono-case and length restrictions and the lack of
  13047.    whitespace.  Hacker tradition deprecates dull,
  13048.    institutional-sounding names in favor of punchy, humorous, and
  13049.    clever coinages (except that it is considered appropriate for the
  13050.    official public gateway machine of an organization to bear the
  13051.    organization's name or acronym).  Mythological references, cartoon
  13052.    characters, animal names, and allusions to SF or fantasy literature
  13053.    are probably the most popular sources for sitenames (in roughly
  13054.    descending order).  The obligatory comment when discussing these is
  13055.    Harris's Lament: "All the good ones are taken!"  See also
  13056.    {network address}.
  13057.  
  13058. skrog: v. Syn. {scrog}.
  13059.  
  13060. skulker: n. Syn. {prowler}.
  13061.  
  13062. slap on the side: n. (also called a {sidecar}, or abbreviated
  13063.    `SOTS'.)  A type of external expansion hardware marketed by
  13064.    computer manufacturers (e.g., Commodore for the Amiga 500/1000
  13065.    series and IBM for the hideous failure called `PCjr').  Various
  13066.    SOTS boxes provided necessities such as memory, hard drive
  13067.    controllers, and conventional expansion slots.
  13068.  
  13069. slash: n. Common name for the slant (`/', ASCII 0101111)
  13070.    character.  See {ASCII} for other synonyms.
  13071.  
  13072. sleep: vi. 1. [techspeak] On a timesharing system, a process that
  13073.    relinquishes its claim on the scheduler until some given event
  13074.    occurs or a specified time delay elapses is said to `go to
  13075.    sleep'.  2. In jargon, used very similarly to v. {block}; also
  13076.    in `sleep on', syn. with `block on'.  Often used to
  13077.    indicate that the speaker has relinquished a demand for resources
  13078.    until some (possibly unspecified) external event: "They can't get
  13079.    the fix I've been asking for into the next release, so I'm going to
  13080.    sleep on it until the release, then start hassling them again."
  13081.  
  13082. slim: n. A small, derivative change (e.g., to code).
  13083.  
  13084. slop: n. 1. A one-sided {fudge factor}, that is, an allowance for
  13085.    error but in only one of two directions.  For example, if you need
  13086.    a piece of wire 10 feet long and have to guess when you cut it,
  13087.    you make very sure to cut it too long, by a large amount if
  13088.    necessary, rather than too short by even a little bit, because you
  13089.    can always cut off the slop but you can't paste it back on again.
  13090.    When discrete quantities are involved, slop is often introduced to
  13091.    avoid the possibility of being on the losing side of a {fencepost
  13092.    error}.  2. The percentage of `extra' code generated by a compiler
  13093.    over the size of equivalent assembler code produced by
  13094.    {hand-hacking}; i.e., the space (or maybe time) you lose because
  13095.    you didn't do it yourself.  This number is often used as a measure
  13096.    of the goodness of a compiler; slop below 5% is very good, and
  13097.    10% is usually acceptable.  With modern compiler technology, esp.
  13098.    on RISC machines, the compiler's slop may actually be
  13099.    *negative*; that is, humans may be unable to generate code as
  13100.    good.  This is one of the reasons assembler programming is no
  13101.    longer common.
  13102.  
  13103. slopsucker: /slop'suhk-r/ n. A lowest-priority task that must
  13104.    wait around until everything else has `had its fill' of machine
  13105.    resources.  Only when the machine would otherwise be idle is the
  13106.    task allowed to `suck up the slop'.  Also called a {hungry
  13107.    puppy}.  One common variety of slopsucker hunts for large prime
  13108.    numbers.  Compare {background}.
  13109.  
  13110. slurp: vt. To read a large data file entirely into {core} before
  13111.    working on it.  This may be contrasted with the strategy of reading
  13112.    a small piece at a time, processing it, and then reading the next
  13113.    piece.  "This program slurps in a 1K-by-1K matrix and does
  13114.    an FFT."  See also {sponge}.
  13115.  
  13116. smart: adj. Said of a program that does the {Right Thing} in a
  13117.    wide variety of complicated circumstances.  There is a difference
  13118.    between calling a program smart and calling it intelligent; in
  13119.    particular, there do not exist any intelligent programs (yet ---
  13120.    see {AI-complete}).  Compare {robust} (smart programs can be
  13121.    {brittle}).
  13122.  
  13123. smart terminal: n. A terminal that has enough computing capability
  13124.    to render graphics or to offload some kind of front-end processing
  13125.    from the computer it talks to.  The development of workstations and
  13126.    personal computers has made this term and the product it describes
  13127.    semi-obsolescent, but one may still hear variants of the phrase
  13128.    `act like a smart terminal' used to describe the behavior of
  13129.    workstations or PCs with respect to programs that execute almost
  13130.    entirely out of a remote {server}'s storage, using said devices
  13131.    as displays.  Compare {glass tty}.
  13132.  
  13133.    There is a classic quote from Rob Pike (inventor of the {blit}
  13134.    terminal): "A smart terminal is not a smart*ass* terminal,
  13135.    but rather a terminal you can educate."  This illustrates a common
  13136.    design problem: The attempt to make peripherals (or anything else)
  13137.    intelligent sometimes results in finicky, rigid `special
  13138.    features' that become just so much dead weight if you try to use
  13139.    the device in any way the designer didn't anticipate.  Flexibility
  13140.    and programmability, on the other hand, are *really* smart.
  13141.    Compare {hook}.
  13142.  
  13143. smash case: vi. To lose or obliterate the uppercase/lowercase
  13144.    distinction in text input.  "MS-DOS will automatically smash case
  13145.    in the names of all the files you create."  Compare {fold case}.
  13146.  
  13147. smash the stack: [C programming] n. On many C implementations it is
  13148.    possible to corrupt the execution stack by writing past the end of
  13149.    an array declared `auto' in a routine.  Code that does this is
  13150.    said to `smash the stack', and can cause return from the routine
  13151.    to jump to a random address.  This can produce some of the most
  13152.    insidious data-dependent bugs known to mankind.  Variants include
  13153.    `trash' the stack, {scribble} the stack, {mangle} the stack;
  13154.    the term *{mung} the stack is not used, as this is never done
  13155.    intentionally.  See {spam}; see also {aliasing bug},
  13156.    {fandango on core}, {memory leak}, {precedence lossage},
  13157.    {overrun screw}.
  13158.  
  13159. smiley: n. See {emoticon}.
  13160.  
  13161. smoke test: n. 1. A rudimentary form of testing applied to
  13162.    electronic equipment following repair or reconfiguration, in which
  13163.    power is applied and the tester checks for sparks, smoke, or other
  13164.    dramatic signs of fundamental failure.  See {magic smoke}.  2. By
  13165.    extension, the first run of a piece of software after construction
  13166.    or a critical change.  See and compare {reality check}.
  13167.  
  13168.    There is an interesting semi-parallel to this term among
  13169.    typographers and printers: When new typefaces are being punch-cut by
  13170.    hand, a `smoke test' (hold the letter in candle smoke, then press
  13171.    it onto paper) is used to check out new dies.
  13172.  
  13173. smoking clover: [ITS] n. A {display hack} originally due to
  13174.    Bill Gosper.  Many convergent lines are drawn on a color monitor in
  13175.    {AOS} mode (so that every pixel struck has its color
  13176.    incremented).  The lines all have one endpoint in the middle of the
  13177.    screen; the other endpoints are spaced one pixel apart around the
  13178.    perimeter of a large square.  The color map is then repeatedly
  13179.    rotated.  This results in a striking, rainbow-hued, shimmering
  13180.    four-leaf clover.  Gosper joked about keeping it hidden from the
  13181.    FDA (the U.S.'s Food and Drug Administration) lest its
  13182.    hallucinogenic properties cause it to be banned.
  13183.  
  13184. SMOP: /S-M-O-P/ [Simple (or Small) Matter of Programming] n.
  13185.    1. A piece of code, not yet written, whose anticipated length is
  13186.    significantly greater than its complexity.  Used to refer to a
  13187.    program that could obviously be written, but is not worth the
  13188.    trouble.  Also used ironically to imply that a difficult problem
  13189.    can be easily solved because a program can be written to do it; the
  13190.    irony is that it is very clear that writing such a program will be
  13191.    a great deal of work.  "It's easy to enhance a FORTRAN compiler to
  13192.    compile COBOL as well; it's just a SMOP."  2. Often used
  13193.    ironically by the intended victim when a suggestion for a program
  13194.    is made which seems easy to the suggester, but is obviously (to the
  13195.    victim) a lot of work.
  13196.  
  13197. SNAFU principle: /sna'foo prin'si-pl/ [from WWII Army acronym
  13198.    for `Situation Normal, All Fucked Up'] n. "True communication is
  13199.    possible only between equals, because inferiors are more
  13200.    consistently rewarded for telling their superiors pleasant lies
  13201.    than for telling the truth." --- a central tenet of
  13202.    {Discordianism}, often invoked by hackers to explain why
  13203.    authoritarian hierarchies screw up so reliably and systematically.
  13204.    The effect of the SNAFU principle is a progressive disconnection of
  13205.    decision-makers from reality.  This lightly adapted version of a
  13206.    fable dating back to the early 1960s illustrates the phenomenon
  13207.    perfectly:
  13208.  
  13209.      In the beginning was the plan,
  13210.             and then the specification;
  13211.      And the plan was without form,
  13212.             and the specification was void.
  13213.  
  13214.      And darkness
  13215.             was on the faces of the implementors thereof;
  13216.      And they spake unto their leader,
  13217.             saying:
  13218.      "It is a crock of shit,
  13219.             and smells as of a sewer."
  13220.  
  13221.      And the leader took pity on them,
  13222.             and spoke to the project leader:
  13223.      "It is a crock of excrement,
  13224.             and none may abide the odor thereof."
  13225.  
  13226.      And the project leader
  13227.             spake unto his section head, saying:
  13228.      "It is a container of excrement,
  13229.             and it is very strong, such that none may abide it."
  13230.  
  13231.      The section head then hurried to his department manager,
  13232.             and informed him thus:
  13233.      "It is a vessel of fertilizer,
  13234.             and none may abide its strength."
  13235.  
  13236.      The department manager carried these words
  13237.            to his general manager,
  13238.      and spoke unto him
  13239.            saying:
  13240.      "It containeth that which aideth the growth of plants,
  13241.            and it is very strong."
  13242.  
  13243.      And so it was that the general manager rejoiced
  13244.            and delivered the good news unto the Vice President.
  13245.      "It promoteth growth,
  13246.            and it is very powerful."
  13247.  
  13248.      The Vice President rushed to the President's side,
  13249.            and joyously exclaimed:
  13250.      "This powerful new software product
  13251.            will promote the growth of the company!"
  13252.  
  13253.      And the President looked upon the product,
  13254.            and saw that it was very good.
  13255.  
  13256.    After the subsequent disaster, the {suit}s protect themselves by
  13257.    saying "I was misinformed!", and the implementors are demoted or
  13258.    fired.
  13259.  
  13260. snail: vt. To {snail-mail} something. "Snail me a copy of those
  13261.    graphics, will you?"
  13262.  
  13263. snail-mail: n. Paper mail, as opposed to electronic.  Sometimes
  13264.    written as the single word `SnailMail'.  One's postal address is,
  13265.    correspondingly, a `snail address'.  Derives from earlier coinage
  13266.    `USnail' (from `U.S. Mail'), for which there have been
  13267.    parody posters and stamps made.  Oppose {email}.
  13268.  
  13269. snap: v. To replace a pointer to a pointer with a direct pointer;
  13270.    to replace an old address with the forwarding address found there.
  13271.    If you telephone the main number for an institution and ask for a
  13272.    particular person by name, the operator may tell you that person's
  13273.    extension before connecting you, in the hopes that you will `snap
  13274.    your pointer' and dial direct next time.  The underlying metaphor
  13275.    may be that of a rubber band stretched through a number of
  13276.    intermediate points; if you remove all the thumbtacks in the
  13277.    middle, it snaps into a straight line from first to last.  See
  13278.    {chase pointers}.
  13279.  
  13280.    Often, the behavior of a {trampoline} is to perform an error
  13281.    check once and then snap the pointer that invoked it so as henceforth
  13282.    to bypass the trampoline (and its one-shot error check).  In this
  13283.    context one also speaks of `snapping links'.  For example, in a
  13284.    Lisp implementation, a function interface trampoline might check to
  13285.    make sure that the caller is passing the correct number of arguments;
  13286.    if it is, and if the caller and the callee are both compiled, then
  13287.    snapping the link allows that particular path to use a direct
  13288.    procedure-call instruction with no further overhead.
  13289.  
  13290. snarf: /snarf/ vt. 1. To grab, esp. to grab a large document
  13291.    or file for the purpose of using it with or without the author's
  13292.    permission.  See also {BLT}.  2. [in the UNIX community] To
  13293.    fetch a file or set of files across a network.  See also
  13294.    {blast}.  This term was mainstream in the late 1960s, meaning
  13295.    `to eat piggishly'.  It may still have this connotation in context.
  13296.    "He's in the snarfing phase of hacking --- {FTP}ing megs of
  13297.    stuff a day."  3. To acquire, with little concern for legal forms
  13298.    or politesse (but not quite by stealing).  "They were giving
  13299.    away samples, so I snarfed a bunch of them."  4. Syn. for
  13300.    {slurp}.  "This program starts by snarfing the entire database
  13301.    into core, then...."
  13302.  
  13303. snarf & barf: /snarf'n-barf`/ n. Under a {WIMP environment},
  13304.    the act of grabbing a region of text and then stuffing the contents
  13305.    of that region into another region (or the same one) to avoid
  13306.    retyping a command line.  In the late 1960s, this was a mainstream
  13307.    expression for an `eat now, regret it later' cheap-restaurant
  13308.    expedition.
  13309.  
  13310. snarf down: v. To {snarf}, with the connotation of absorbing,
  13311.    processing, or understanding.  "I'll  snarf down the latest
  13312.    version of the {nethack} user's guide --- It's been a while
  13313.    since I played last and I don't know what's changed recently."
  13314.  
  13315. snark: [Lewis Carroll, via the Michigan Terminal System] n. 1. A
  13316.    system failure.  When a user's process bombed, the operator would
  13317.    get the message "Help, Help, Snark in MTS!"  2. More generally,
  13318.    any kind of unexplained or threatening event on a computer
  13319.    (especially if it might be a boojum).  Often used to refer to an
  13320.    event or a log file entry that might indicate an attempted security
  13321.    violation.  See {snivitz}.  3. UUCP name of
  13322.    snark.thyrsus.com, home site of the Jargon File 2.*.* versions
  13323.    (i.e., this lexicon).
  13324.  
  13325. sneakernet: /snee'ker-net/ n. Term used (generally with ironic
  13326.    intent) for transfer of electronic information by physically
  13327.    carrying tape, disks, or some other media from one machine to
  13328.    another.  "Never underestimate the bandwidth of a station wagon
  13329.    filled with magtape, or a 747 filled with CD-ROMs."  Also called
  13330.    `Tennis-Net', `Armpit-Net', `Floppy-Net'.
  13331.  
  13332. sniff: v.,n. Synonym for {poll}.
  13333.  
  13334. snivitz: /sniv'itz/ n. A hiccup in hardware or software; a small,
  13335.    transient problem of unknown origin (less serious than a
  13336.    {snark}).  Compare {glitch}.
  13337.  
  13338. SO: /S-O/ n. 1. (also `S.O.') Abbrev. for Significant
  13339.    Other, almost invariably written abbreviated and pronounced
  13340.    /S-O/ by hackers.  Used to refer to one's primary
  13341.    relationship, esp. a live-in to whom one is not married.  See
  13342.    {MOTAS}, {MOTOS}, {MOTSS}.  2. The Shift Out control
  13343.    character in ASCII (Control-N, 0001110).
  13344.  
  13345. social science number: [IBM] n. A statistic that is
  13346.    {content-free}, or nearly so.  A measure derived via methods of
  13347.    questionable validity from data of a dubious and vague nature.
  13348.    Predictively, having a social science number in hand is seldom much
  13349.    better than nothing, and can be considerably worse.  {Management}
  13350.    loves them.  See also {numbers}, {math-out}, {pretty
  13351.    pictures}.
  13352.  
  13353. soft boot: n. See {boot}.
  13354.  
  13355. softcopy: /soft'ko-pee/ n. [by analogy with `hardcopy'] A
  13356.    machine-readable form of corresponding hardcopy.  See {bits},
  13357.    {machinable}.
  13358.  
  13359. software bloat: n. The results of {second-system effect} or
  13360.    {creeping featuritis}.  Commonly cited examples include
  13361.    `ls(1)', {X}, {BSD}, {Missed'em-five}, and {OS/2}.
  13362.  
  13363. software rot: n. Term used to describe the tendency of software
  13364.    that has not been used in a while to {lose}; such failure may be
  13365.    semi-humorously ascribed to {bit rot}.  More commonly,
  13366.    `software rot' strikes when a program's assumptions become out
  13367.    of date.  If the design was insufficiently {robust}, this may
  13368.    cause it to fail in mysterious ways.
  13369.  
  13370.    For example, owing to endemic shortsightedness in the design of
  13371.    COBOL programs, most will succumb to software rot when their
  13372.    2-digit year counters {wrap around} at the beginning of the
  13373.    year 2000.  Actually, related lossages often afflict centenarians
  13374.    who have to deal with computer software designed by unimaginative
  13375.    clods.  One such incident became the focus of a minor public flap
  13376.    in 1990, when a gentleman born in 1889 applied for a driver's
  13377.    license renewal in Raleigh, North Carolina.  The new system
  13378.    refused to issue the card, probably because with 2-digit years the
  13379.    ages 101 and 1 cannot be distinguished.
  13380.  
  13381.    Historical note: Software rot in an even funnier sense than the
  13382.    mythical one was a real problem on early research computers (e.g.,
  13383.    the R1; see {grind crank}).  If a program that depended on a
  13384.    peculiar instruction hadn't been run in quite a while, the user
  13385.    might discover that the opcodes no longer did the same things they
  13386.    once did.  ("Hey, so-and-so needs an instruction to do
  13387.    such-and-such.  We can {snarf} this opcode, right?  No one uses
  13388.    it.")
  13389.  
  13390.    Another classic example of this sprang from the time an MIT hacker
  13391.    found a simple way to double the speed of the unconditional jump
  13392.    instruction on a PDP-6, so he patched the hardware.  Unfortunately,
  13393.    this broke some fragile timing software in a music-playing program,
  13394.    throwing its output out of tune.  This was fixed by adding a
  13395.    defensive initialization routine to compare the speed of a timing
  13396.    loop with the real-time clock; in other words, it figured out how
  13397.    fast the PDP-6 was that day, and corrected appropriately.
  13398.  
  13399.    Compare {bit rot}.
  13400.  
  13401. softwarily: /soft-weir'i-lee/ adv. In a way pertaining to software.
  13402.    "The system is softwarily unreliable."  The adjective
  13403.    `softwary' is *not* used.  See {hardwarily}.
  13404.  
  13405. softy: [IBM] n. Hardware hackers' term for a software expert who
  13406.    is largely ignorant of the mysteries of hardware.
  13407.  
  13408. some random X: adj. Used to indicate a member of class X, with the
  13409.    implication that Xs are interchangeable.  "I think some random
  13410.    cracker tripped over the guest timeout last night."  See also
  13411.    {J. Random}.
  13412.  
  13413. sorcerer's apprentice mode: [from the film "Fantasia"] n. A bug in a
  13414.    protocol where, under some circumstances, the receipt of a message
  13415.    causes multiple messages to be sent, each of which, when
  13416.    received, triggers the same bug.  Used esp. of such behavior
  13417.    caused by {bounce message} loops in {email} software.  Compare
  13418.    {broadcast storm}, {network meltdown}.
  13419.  
  13420. SOS: n.,obs. /S-O-S/ 1. An infamously {losing} text editor.
  13421.    Once, back in the 1960s, when a text editor was needed for the
  13422.    PDP-6, a hacker crufted together a {quick-and-dirty} `stopgap
  13423.    editor' to be used until a better one was written.  Unfortunately,
  13424.    the old one was never really discarded when new ones (in
  13425.    particular, {TECO}) came along.  SOS is a descendant (`Son of
  13426.    Stopgap') of that editor, and many PDP-10 users gained the dubious
  13427.    pleasure of its acquaintance.  Since then other programs similar in
  13428.    style to SOS have been written, notably the early font editor BILOS
  13429.    /bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion
  13430.    `Bastard Issue, Loins of Stopgap' has been proposed).  2. /sos/
  13431.    n. To decrease; inverse of {AOS}, from the PDP-10 instruction
  13432.    set.
  13433.  
  13434. source of all good bits: n. A person from whom (or a place from
  13435.    which) useful information may be obtained.  If you need to know
  13436.    about a program, a {guru} might be the source of all good bits.
  13437.    The title is often applied to a particularly competent secretary.
  13438.  
  13439. space-cadet keyboard: n. The Knight keyboard, a now-legendary device
  13440.    used on MIT LISP machines, which inspired several still-current
  13441.    jargon terms and influenced the design of {EMACS}.  It was inspired
  13442.    by the Stanford keyboard and equipped with no fewer than
  13443.    *seven* shift keys: four keys for {bucky bits} (`control',
  13444.    `meta', `hyper', and `super') and three like regular shift keys,
  13445.    called `shift', `top', and `front'.  Many keys had three symbols
  13446.    on them: a letter and a symbol on the top, and a Greek letter on
  13447.    the front.  For example, the `L' key had an `L' and a two-way
  13448.    arrow on the top, and the Greek letter lambda on the front.  If you
  13449.    press this key with the right hand while playing an appropriate
  13450.    `chord' with the left hand on the shift keys, you can get the
  13451.    following results:
  13452.  
  13453.      L
  13454.               
  13455.           lowercase l
  13456.  
  13457.      shift-L
  13458.         
  13459.           uppercase L
  13460.  
  13461.      front-L
  13462.         
  13463.           lowercase lambda
  13464.  
  13465.      front-shift-L
  13466.   
  13467.           uppercase lambda
  13468.  
  13469.      top-L
  13470.           
  13471.           two-way arrow
  13472.           (front and shift are ignored)
  13473.  
  13474.    And of course each of these might also be typed with any
  13475.    combination of the control, meta, hyper, and super keys.  On this
  13476.    keyboard, you could type over 8000 different characters!  This
  13477.    allowed the user to type very complicated mathematical text, and
  13478.    also to have thousands of single-character commands at his
  13479.    disposal.  Many hackers were actually willing to memorize the
  13480.    command meanings of that many characters if it reduced typing time
  13481.    (this attitude obviously shaped the interface of EMACS).  Other
  13482.    hackers, however, thought having that many bucky bits was overkill,
  13483.    and objected that such a keyboard can require three or four hands
  13484.    to operate.  See {bucky bits}, {cokebottle}, {double bucky},
  13485.    {meta bit}, {quadruple bucky}.
  13486.  
  13487. SPACEWAR: n. A space-combat simulation game, inspired by
  13488.    E. E. "Doc" Smith's "Lensman" books, in which two spaceships
  13489.    duel around a central sun, shooting torpedoes at each other and
  13490.    jumping through hyperspace.  This game was first implemented on the
  13491.    PDP-1 at MIT in 1960--61.  SPACEWAR aficionados formed the core of
  13492.    the early hacker culture at MIT.  Nine years later, a descendant
  13493.    of the game motivated Ken Thompson to build, in his spare time on a
  13494.    scavenged PDP-7, the operating system that became {{UNIX}}.  Less
  13495.    than 9 years after that, SPACEWAR was commercialized as one of
  13496.    the first video games; descendants are still {feep}ing in video
  13497.    arcades everywhere.
  13498.  
  13499. spaghetti code: n. Code with a complex and tangled control
  13500.    structure, esp. one using many GOTOs, exceptions, or other
  13501.    `unstructured' branching constructs.  Pejorative.  The synonym
  13502.    `kangaroo code' has been reported, doubtless because such code
  13503.    has many jumps in it.
  13504.  
  13505. spaghetti inheritance: n. [encountered among users of object-oriented
  13506.    languages that use inheritance, such as Smalltalk] A convoluted
  13507.    class-subclass graph, often resulting from carelessly deriving
  13508.    subclasses from other classes just for the sake of reusing their
  13509.    code.  Coined in a (successful) attempt to discourage such
  13510.    practice, through guilt-by-association with {spaghetti code}.
  13511.  
  13512. spam: [from the {MUD} community] vt. To crash a program by overrunning
  13513.    a fixed-size buffer with excessively large input data.  See also
  13514.    {buffer overflow}, {overrun screw}, {smash the stack}.
  13515.  
  13516. special-case: vt. To write unique code to handle input to or
  13517.    situations arising in program that are somehow distinguished from
  13518.    normal processing.  This would be used for processing of mode
  13519.    switches or interrupt characters in an interactive interface (as
  13520.    opposed, say, to text entry or normal commands), or for processing
  13521.    of {hidden flag}s in the input of a batch program or {filter}.
  13522.  
  13523. speedometer: n. A pattern of lights displayed on a linear set of
  13524.    LEDs (today) or nixie tubes (yesterday, on ancient mainframes).  The
  13525.    pattern is shifted left every N times the software goes
  13526.    through its main loop.  A swiftly moving pattern indicates that the
  13527.    system is mostly idle; the speedometer slows down as the system
  13528.    becomes overloaded.  The speedometer on Sun Microsystems hardware
  13529.    bounces back and forth like the eyes on one of the Cylons from the
  13530.    wretched "Battlestar Galactica" TV series.
  13531.  
  13532.    Historical note: One computer, the Honeywell 6000 (later GE 600)
  13533.    actually had an *analog* speedometer on the front panel,
  13534.    calibrated in instructions executed per second.
  13535.  
  13536. spell: n. Syn. {incantation}.
  13537.  
  13538. spiffy: /spi'fee/ adj. 1. Said of programs having a pretty,
  13539.    clever, or exceptionally well-designed interface. "Have you seen
  13540.    the spiffy {X} version of {empire} yet?"  2. Said
  13541.    sarcastically of a program that is perceived to have little more
  13542.    than a flashy interface going for it.  Which meaning should be
  13543.    drawn depends delicately on tone of voice and context.  This word
  13544.    was common mainstream slang during the 1940s, in a sense close to #1.
  13545.  
  13546. spin: vi. Equivalent to {buzz}.  More common among C and UNIX
  13547.    programmers.
  13548.  
  13549. spl: /S-P-L/ [abbrev, from Set Priority Level] The way
  13550.    traditional UNIX kernels implement mutual exclusion by running code
  13551.    at high interrupt levels.  Used in jargon to describe the act of
  13552.    tuning in or tuning out ordinary communication.  Classically, spl
  13553.    levels run from 1 to 7; "Fred's at spl 6 today." would mean
  13554.    that he is very hard to interrupt.  "Wait till I finish this; I'll
  13555.    spl down then."  See also {interrupts locked out}.
  13556.  
  13557. splat: n. 1. Name used in many places (DEC, IBM, and others) for
  13558.    the asterisk (`*') character (ASCII 0101010).  This may derive
  13559.    from the `squashed-bug' appearance of the asterisk on many early
  13560.    line printers.  2. [MIT] Name used by some people for the
  13561.    `#' character (ASCII 0100011).  3. [Rochester Institute of
  13562.    Technology] The {command key} on a Mac (same as {ALT},
  13563.    sense 2).  4. [Stanford] Name used by some people for the
  13564.    Stanford/ITS extended ASCII
  13565.    circle-x
  13566.    character.  This character is also called `blobby' and `frob',
  13567.    among other names; it is sometimes used by mathematicians as a
  13568.    notation for `tensor product'.  5. [Stanford] Name for the
  13569.    semi-mythical extended ASCII
  13570.    circle-plus
  13571.  
  13572.    character.  6. Canonical name for an output routine that outputs
  13573.    whatever the local interpretation of `splat' is.
  13574.  
  13575.    With ITS and WAITS gone, senses 4--6 are now nearly obsolete.  See
  13576.    also {{ASCII}}.
  13577.  
  13578. sponge: [UNIX] n. A special case of a {filter} that reads its
  13579.    entire input before writing any output; the canonical example is a
  13580.    sort utility.  Unlike most filters, a sponge can conveniently
  13581.    overwrite the input file with the output data stream.  If your file
  13582.    system has versioning (as ITS did and VMS does now) the
  13583.    sponge/filter distinction loses its usefulness, because directing
  13584.    filter output would just write a new version.  See also {slurp}.
  13585.  
  13586. spooge: /spooj/ 1. n. Inexplicable or arcane code, or random
  13587.    and probably incorrect output from a computer program.  2. vi. To
  13588.    generate spooge (sense 1).
  13589.  
  13590. spool: [from early IBM `Simultaneous Peripheral Operation Off-Line',
  13591.    but this acronym is widely thought to have been contrived for
  13592.    effect] vt. To send files to some device or program (a `spooler')
  13593.    that queues them up and does something useful with them later.  The
  13594.    spooler usually understood is the `print spooler' controlling
  13595.    output of jobs to a printer, but the term has been used in
  13596.    connection with other peripherals (especially plotters and graphics
  13597.    devices).  See also {demon}.
  13598.  
  13599. stack: n. A person's stack is the set of things he or she has to do
  13600.    in the future.  One speaks of the next project to be attacked as
  13601.    having risen to the top of the stack.  "I'm afraid I've got real
  13602.    work to do, so this'll have to be pushed way down on my stack."
  13603.    "I haven't done it yet because every time I pop my stack something
  13604.    new gets pushed."  If you are interrupted several times in the
  13605.    middle of a conversation, "My stack overflowed" means "I
  13606.    forget what we were talking about."  The implication is that more
  13607.    items were pushed onto the stack than could be remembered, so the
  13608.    least recent items were lost.  The usual physical example of a
  13609.    stack is to be found in a cafeteria: a pile of plates or trays
  13610.    sitting on a spring in a well, so that when you put one on the top
  13611.    they all sink down, and when you take one off the top the rest
  13612.    spring up a bit.  See also {push} and {pop}.
  13613.  
  13614.    At MIT, {pdl} used to be a more common synonym for {stack} in
  13615.    all these contexts, and this may still be true.  Everywhere else
  13616.    {stack} seems to be the preferred term.  {Knuth}
  13617.    (`The Art of Computer Programming', second edition, vol. 1,
  13618.    p. 236) says:
  13619.  
  13620.         Many people who realized the importance of stacks and queues
  13621.         independently have given other names to these structures:
  13622.         stacks have been called push-down lists, reversion storages,
  13623.         cellars, nesting stores, piles, last-in-first-out ("LIFO")
  13624.         lists, and even yo-yo lists!
  13625.  
  13626. stack puke: n. Some processor architectures are said to `puke their
  13627.    guts onto the stack' to save their internal state during exception
  13628.    processing.  The Motorola 68020, for example, regurgitates up to
  13629.    92 bytes on a bus fault.  On a pipelined machine, this can take a
  13630.    while.
  13631.  
  13632. stale pointer bug: n. Synonym for {aliasing bug} used esp. among
  13633.    microcomputer hackers.
  13634.  
  13635. state: n. 1. Condition, situation.  "What's the state of your
  13636.    latest hack?"  "It's winning away."  "The system tried to read
  13637.    and write the disk simultaneously and got into a totally wedged
  13638.    state."  The standard question "What's your state?"  means
  13639.    "What are you doing?" or "What are you about to do?"  Typical
  13640.    answers are "about to gronk out", or "hungry".  Another
  13641.    standard question is "What's the state of the world?", meaning
  13642.    "What's new?" or "What's going on?".  The more terse and
  13643.    humorous way of asking these questions would be "State-p?".
  13644.    Another way of phrasing the first question under sense 1 would be
  13645.    "state-p latest hack?".  2. Information being maintained in
  13646.    non-permanent memory (electronic or human).
  13647.  
  13648. steam-powered: adj. Old-fashioned or underpowered; archaic.  This
  13649.    term does not have a strong negative loading and may even be used
  13650.    semi-affectionately for something that clanks and wheezes a lot
  13651.    but hangs in there doing the job.
  13652.  
  13653. stiffy: [University of Lowell,  Massachusetts.] n. 3.5-inch
  13654.    {microfloppies}, so called because their jackets are more firm
  13655.    than those of the 5.25-inch and the 8-inch floppy.  Elsewhere this might be
  13656.    called a `firmy'.
  13657.  
  13658. stir-fried random: alt. `stir-fried mumble' n. Term used for the 
  13659.    best dish of many of those hackers who can cook.  Consists of
  13660.    random fresh veggies and meat wokked with random spices.  Tasty and
  13661.    economical.  See {random}, {great-wall}, {ravs}, {{laser
  13662.    chicken}}, {{oriental food}}; see also {mumble}.
  13663.  
  13664. stomp on: vt. To inadvertently overwrite something important, usually
  13665.    automatically.  "All the work I did this weekend got
  13666.    stomped on last night by the nightly server script."  Compare
  13667.    {scribble}, {mangle}, {trash}, {scrog}, {roach}.
  13668.  
  13669. Stone Age: n., adj. 1. In computer folklore, an ill-defined period
  13670.    from ENIAC (ca. 1943) to the mid-1950s; the great age of
  13671.    electromechanical {dinosaur}s.  Sometimes used for the entire
  13672.    period up to 1960--61 (see {Iron Age}); however, it is funnier
  13673.    and more descriptive to characterize the latter period in terms of
  13674.    a `Bronze Age' era of transistor-logic, pre-ferrite-{core}
  13675.    machines with drum or CRT mass storage (as opposed to just mercury
  13676.    delay lines and/or relays).  See also {Iron Age}.  2. More
  13677.    generally, a pejorative for any crufty, ancient piece of hardware
  13678.    or software technology.  Note that this is used even by people who
  13679.    were there for the {Stone Age} (sense 1).
  13680.  
  13681. stoppage: /sto'p*j/ n. Extreme {lossage} that renders
  13682.    something (usually something vital) completely unusable.  "The
  13683.    recent system stoppage was caused by a {fried} transformer."
  13684.  
  13685. store: [prob. from techspeak `main store'] n. Preferred Commonwealth
  13686.    synonym for {core}.  Thus, `bringing a program into store' means
  13687.    not that one is returning shrink-wrapped software but that a
  13688.    program is being {swap}ped in.
  13689.  
  13690. stroke: n. Common name for the slant (`/', ASCII 0101111)
  13691.    character.  See {ASCII} for other synonyms.
  13692.  
  13693. strudel: n. Common (spoken) name for the circumflex (`', ASCII
  13694.    1000000) character.  See {ASCII} for other synonyms.
  13695.  
  13696. stubroutine: /stuhb'roo-teen/ [contraction of `stub routine']
  13697.    n.  Tiny, often vacuous placeholder for a subroutine that is to be
  13698.    written or fleshed out later.
  13699.  
  13700. studlycaps: /stuhd'lee-kaps/ n. A hackish form of silliness
  13701.    similar to {BiCapitalization} for trademarks, but applied
  13702.    randomly and to arbitrary text rather than to trademarks.  ThE
  13703.    oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.
  13704.  
  13705. stunning: adj. Mind-bogglingly stupid.  Usually used in sarcasm.
  13706.    "You want to code *what* in ADA?  That's ... a stunning
  13707.    idea!"
  13708.  
  13709. stupid-sort: n. Syn. {bogo-sort}.
  13710.  
  13711. subshell: /suhb'shel/ [UNIX, MS-DOS] n. An OS command interpreter
  13712.    (see {shell}) spawned from within a program, such that exit from
  13713.    the command interpreter returns one to the parent program in a
  13714.    state that allows it to continue execution.  Compare {shell out};
  13715.    oppose {chain}.
  13716.  
  13717. sucking mud: [Applied Data Research] adj. (also `pumping
  13718.    mud') Crashed or wedged.  Usually said of a machine that provides
  13719.    some service to a network, such as a file server.  This Dallas
  13720.    regionalism derives from the East Texas oilfield lament, "Shut
  13721.    'er down, Ma, she's a-suckin' mud".  Often used as a query.  "We
  13722.    are going to reconfigure the network, are you ready to suck mud?"
  13723.  
  13724. sufficiently small: adj. Syn. {suitably small}.
  13725.  
  13726. suit: n. 1. Ugly and uncomfortable `business clothing' often worn
  13727.    by non-hackers.  Invariably worn with a `tie', a strangulation
  13728.    device that partially cuts off the blood supply to the brain.  It
  13729.    is thought that this explains much about the behavior of
  13730.    suit-wearers.  Compare {droid}.  2. A person who habitually wears
  13731.    suits, as distinct from a techie or hacker.  See {loser},
  13732.    {burble}, {management}, and {brain-damaged}.  English, by the
  13733.    way, is relatively kind; our Soviet correspondent informs us that
  13734.    the corresponding idiom in Russian hacker jargon is `sovok', lit.
  13735.    a tool for grabbing garbage.
  13736.  
  13737. suitable win: n. See {win}.
  13738.  
  13739. suitably small: [perverted from mathematical jargon] adj. An
  13740.    expression used ironically to characterize unquantifiable
  13741.    behavior that differs from expected or required behavior.  For
  13742.    example, suppose a newly created program came up with a correct
  13743.    full-screen display, and one publicly exclaimed: "It works!"
  13744.    Then, if the program dumps core on the first mouse click, one might
  13745.    add: "Well, for suitably small values of `works'."  Compare
  13746.    the characterization of pi under {{random numbers}}.
  13747.  
  13748. sun-stools: n. Unflattering hackerism for SunTools, a pre-X
  13749.    windowing environment notorious in its day for size, slowness, and
  13750.    misfeatures.  {X}, however, is larger and slower; see
  13751.    {second-system effect}.
  13752.  
  13753. sunspots: n. 1. Notional cause of an odd error.  "Why did the
  13754.    program suddenly turn the screen blue?"  "Sunspots, I guess."
  13755.    2. Also the cause of {bit rot} --- from the myth that sunspots
  13756.    will increase {cosmic rays}, which can flip single bits in memory.
  13757.    See {cosmic rays}, {phase of the moon}.
  13758.  
  13759. superprogrammer: n. A prolific programmer; one who can code
  13760.    exceedingly well and quickly.  Not all hackers are
  13761.    superprogrammers, but many are.  (Productivity can vary from one
  13762.    programmer to another by three orders of magnitude.  For example,
  13763.    one programmer might be able to write an average of 3 lines of
  13764.    working code in one day, while another, with the proper tools,
  13765.    might be able to write 3,000.  This range is astonishing; it is
  13766.    matched in very few other areas of human endeavor.)  The term
  13767.    `superprogrammer' is more commonly used within such places as IBM
  13768.    than in the hacker community.  It tends to stress na"ive measures
  13769.    of productivity and to underweight creativity, ingenuity, and
  13770.    getting the job *done* --- and to sidestep the question of
  13771.    whether the 3,000 lines of code do more or less useful work than
  13772.    three lines that do the {Right Thing}.  Hackers tend to prefer
  13773.    the terms {hacker} and {wizard}.
  13774.  
  13775. superuser: [UNIX] n. Syn. {root}, {avatar}.  This usage has
  13776.    spread to non-UNIX environments; the superuser is any account with
  13777.    all {wheel} bits on.  A more specific term than {wheel}.
  13778.  
  13779. support: n. After-sale handholding; something many software
  13780.    vendors promise but few deliver.  To hackers, most support people
  13781.    are useless --- because by the time a hacker calls support he or
  13782.    she will usually know the relevant manuals better than the support
  13783.    people (sadly, this is *not* a joke or exaggeration).  A
  13784.    hacker's idea of `support' is a t^ete-`a-t^ete with the
  13785.    software's designer.
  13786.  
  13787. Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank Zappa's
  13788.    `Suzy Creamcheese'] n. A coder straight out of training school who
  13789.    knows everything except the value of comments in plain English.
  13790.    Also (fashionable among personkind wishing to avoid accusations of
  13791.    sexism) `Sammy Cobol' or (in some non-IBM circles) `Cobol Charlie'.
  13792.    2. [proposed] Meta-name for any {code grinder}, analogous to
  13793.    {J. Random Hacker}.
  13794.  
  13795. swab: /swob/ [From the mnemonic for the PDP-11 `SWAp Byte'
  13796.    instruction, as immortalized in the `dd(1)' option `conv=swab'
  13797.    (see {dd})] 1. vt. To solve the {NUXI problem} by swapping
  13798.    bytes in a file.  2. n. The program in V7 UNIX used to perform this
  13799.    action, or anything functionally equivalent to it.  See also
  13800.    {big-endian}, {little-endian}, {middle-endian},
  13801.    {bytesexual}.
  13802.  
  13803. swap: vt. 1. [techspeak] To move information from a fast-access
  13804.    memory to a slow-access memory (`swap out'), or vice versa
  13805.    (`swap in').  Often refers specifically to the use of disks as
  13806.    `virtual memory'.  As pieces of data or program are needed, they
  13807.    are swapped into {core} for processing; when they are no longer
  13808.    needed they may be swapped out again.  2. The jargon use of these
  13809.    terms analogizes people's short-term memories with core.  Cramming
  13810.    for an exam might be spoken of as swapping in.  If you temporarily
  13811.    forget someone's name, but then remember it, your excuse is that it
  13812.    was swapped out.  To `keep something swapped in' means to keep it
  13813.    fresh in your memory: "I reread the TECO manual every few months
  13814.    to keep it swapped in."  If someone interrupts you just as you got
  13815.    a good idea, you might say "Wait a moment while I swap this
  13816.    out", implying that the piece of paper is your extra-somatic
  13817.    memory and if you don't swap the info out by writing it down it
  13818.    will get overwritten and lost as you talk.  Compare {page in},
  13819.    {page out}.
  13820.  
  13821. swap space: n. Storage space, especially temporary storage space
  13822.    used during a move or reconfiguration.  "I'm just using that corner
  13823.    of the machine room for swap space."
  13824.  
  13825. swapped in: n. See {swap}.  See also {page in}.
  13826.  
  13827. swapped out: n. See {swap}.  See also {page out}.
  13828.  
  13829. swizzle: v. To convert external names, array indices, or references
  13830.    within a data structure into address pointers when the data
  13831.    structure is brought into main memory from external storage (also
  13832.    called `pointer swizzling'); this may be done for speed in
  13833.    chasing references or to simplify code (e.g., by turning lots of
  13834.    name lookups into pointer dereferences).  The converse operation is
  13835.    sometimes termed `unswizzling'.  See also {snap}.
  13836.  
  13837. sync: /sink/ (var. `synch') n., vi. 1. To synchronize, to
  13838.    bring into synchronization.  2. [techspeak] To force all pending
  13839.    I/O to the disk; see {flush}, sense 2.  3. More generally, to
  13840.    force a number of competing processes or agents to a state that
  13841.    would be `safe' if the system were to crash; thus, to checkpoint
  13842.    (in the database-theory sense).
  13843.  
  13844. syntactic sugar: [coined by Peter Landin] n. Features added to a
  13845.    language or other formalism to make it `sweeter' for humans,
  13846.    that do not affect the expressiveness of the formalism (compare
  13847.    {chrome}).  Used esp. when there is an obvious and trivial
  13848.    translation of the `sugar' feature into other constructs already
  13849.    present in the notation.  C's `a[i]' notation is syntactic
  13850.    sugar for `*(a + i)'.  "Syntactic sugar causes cancer of the
  13851.    semicolon."  --- Alan Perlis
  13852.  
  13853.    The variant `syntactic saccharine' is also recorded.  This
  13854.    denotes something even more gratuitous, in that syntactic sugar
  13855.    serves a purpose (making something more acceptable to humans) but
  13856.    syntactic saccharine serves no purpose at all.
  13857.  
  13858. sys-frog: /sis'frog/ [the PLATO system] n. Playful variant of
  13859.    `sysprog', which is in turn short for `systems programmer'.
  13860.  
  13861. sysadmin: /sis'ad-min/ n. Common contraction of `system
  13862.    admin'; see {admin}.
  13863.  
  13864. sysop: /sis'op/ n. [esp. in the BBS world] The operator (and
  13865.    usually the owner) of a bulletin-board system.  A common neophyte
  13866.    mistake on {FidoNet} is to address a message to `sysop' in an
  13867.    international {echo}, thus sending it to hundreds of sysops
  13868.    around the world.
  13869.  
  13870. system: n. 1. The supervisor program or OS on a computer.  2. The
  13871.    entire computer system, including input/output devices, the
  13872.    supervisor program or OS, and possibly other software.  3. Any
  13873.    large-scale program.  4. Any method or algorithm.  5. `System
  13874.    hacker': one who hacks the system (in senses 1 and 2 only; for
  13875.    sense 3 one mentions the particular program: e.g., `LISP
  13876.    hacker')
  13877.  
  13878. systems jock: n. See {jock}, (sense 2).
  13879.  
  13880. SysVile: /sis-vi:l'/ n. See {Missed'em-five}.
  13881.  
  13882. system mangler: n. Humorous synonym for `system manager', poss.
  13883.    from the fact that one major IBM OS had a {root} account called
  13884.    SYSMANGR.  Refers specifically to a systems programmer in charge of
  13885.    administration, software maintenance, and updates at some site.
  13886.    Unlike {admin}, this term emphasizes the technical end of the
  13887.    skills involved.
  13888.  
  13889. = T =
  13890.  
  13891. T: /T/ 1. [from LISP terminology for `true'] Yes.  Used in
  13892.    reply to a question (particularly one asked using the `-P'
  13893.    convention).  In LISP, the constant T means `true', among other
  13894.    things.  Some hackers use `T' and `NIL' instead of `Yes' and `No'
  13895.    almost reflexively.  This sometimes causes misunderstandings.  When
  13896.    a waiter or flight attendant asks whether a hacker wants coffee, he
  13897.    may well respond `T', meaning that he wants coffee; but of course
  13898.    he will be brought a cup of tea instead.  As it happens, most
  13899.    hackers (particularly those who frequent Chinese restaurants) like
  13900.    tea at least as well as coffee --- so it is not that big a problem.
  13901.    2. See {time T} (also {since time T equals minus infinity}).
  13902.    3. [techspeak] In transaction-processing circles, an abbreviation
  13903.    for the noun `transaction'.  4. [Purdue] Alternate spelling of
  13904.    {tee}.
  13905.  
  13906. tail recursion: n. If you aren't sick of it already, see {tail
  13907.    recursion}.
  13908.  
  13909. talk mode: n. A feature supported by UNIX, ITS, and some other
  13910.    OSes that allows two or more logged-in users to set up a real-time
  13911.    on-line conversation.  It combines the immediacy of talking with
  13912.    all the precision (and verbosity) that written language entails.
  13913.    It is difficult to communicate inflection, though conventions have
  13914.    arisen for some of these (see the section on writing style in the
  13915.    Prependices for details).
  13916.  
  13917.    Talk mode has a special set of jargon words, used to save typing,
  13918.    which are not used orally.  Some of these are identical to (and
  13919.    probably derived from) Morse-code jargon used by ham-radio amateurs
  13920.    since the 1920s.
  13921.  
  13922.      `BCNU'
  13923.    
  13924.           be seeing you
  13925.      `BTW'
  13926.           by the way
  13927.      `BYE?'
  13928.           are you ready to unlink?  (this is the standard way to end a talk-mode
  13929.           conversation; the other person types `BYE' to confirm, or else continues
  13930.           the conversation)
  13931.      `CUL'
  13932.     
  13933.           see you later
  13934.      `ENQ?'
  13935.           are you busy?  (expects `ACK' or `NAK' in return)
  13936.      `FOO?'
  13937.           are you there? (often used on unexpected links,
  13938.           meaning also "Sorry if I butted in ..." (linker) or "What's
  13939.           up?" (linkee))
  13940.      `FYI'
  13941.     
  13942.           for your information
  13943.      `FYA'
  13944.     
  13945.           for your amusement
  13946.      `GA'
  13947.           go ahead  (used when two people have tried to type simultaneously; this
  13948.           cedes the right to type to the other)
  13949.      `GRMBL'
  13950.   
  13951.           grumble (expresses disquiet or disagreement)
  13952.      `HELLOP'
  13953.           hello? (an instance of the `-P' convention)
  13954.      `JAM'
  13955.           just a minute (equivalent to `SEC....')
  13956.      `MIN'
  13957.     
  13958.           same as `JAM'
  13959.      `NIL'
  13960.     
  13961.           no (see {NIL})
  13962.      `O'
  13963.           over to you
  13964.      `OO'
  13965.      
  13966.           over and out
  13967.      `/'
  13968.           another form of "over to you" (from x/y as "x over y")
  13969.      `\'
  13970.           lambda (used in discussing LISPy things)
  13971.      `OBTW'
  13972.  
  13973.           oh, by the way
  13974.      `R U THERE?'
  13975.           are you there?
  13976.      `SEC'
  13977.     
  13978.           wait a second (sometimes written `SEC...')
  13979.      `T'
  13980.           yes (see the main entry for {T})
  13981.      `TNX'
  13982.     
  13983.           thanks
  13984.      `TNX 1.0E6'
  13985.           thanks a million (humorous)
  13986.      `TNXE6'
  13987.           another for of "thanks a million"
  13988.      `WRT'
  13989.     
  13990.           with regard to, or with respect to.
  13991.      `WTF'
  13992.           the universal interrogative particle; WTF knows what it means?
  13993.      `WTH'
  13994.     
  13995.           what the hell?
  13996.      `<double newline>'
  13997.           When the typing party has finished, he/she types two newlines to
  13998.           signal that he/she is done; this leaves a blank line between
  13999.           `speeches' in the conversation, making it easier to reread the
  14000.           preceding text.
  14001.      `<name>:'
  14002.           When three or more terminals are linked, it is conventional for each
  14003.           typist to {prepend} his/her login name or handle and a colon
  14004.           (or a hyphen) to each line to indicate who is typing (some
  14005.           conferencing facilities do this automatically).  The login name
  14006.           is often shortened to a unique prefix (possibly a single letter)
  14007.           during a very long conversation.
  14008.      `/\/\/\'
  14009.           A giggle or chuckle.  On a MUD, this usually means `earthquake fault'.
  14010.  
  14011.    Most of the above sub-jargon is used at both Stanford and MIT.
  14012.    Several of these expressions are also common in {email}, esp.
  14013.    FYI, FYA, BTW, BCNU, WTF, and CUL.  A few other abbreviations have
  14014.    been reported from commercial networks, such as GEnie and CompuServe,
  14015.    where on-line `live' chat including more than two people is
  14016.    common and usually involves a more `social' context, notably the
  14017.    following:
  14018.  
  14019.      `<g>'
  14020.           grin
  14021.      `<gr&d>'
  14022.           grinning, running, and ducking
  14023.      `BBL'
  14024.           be back later
  14025.      `BRB'
  14026.           be right back
  14027.      `HHOJ'
  14028.           ha ha only joking
  14029.      `HHOK'
  14030.           ha ha only kidding
  14031.      `HHOS'
  14032.           {ha ha only serious}
  14033.      `IMHO'
  14034.           in my humble opinion (see {IMHO})
  14035.      `LOL'
  14036.           laughing out loud
  14037.      `ROTF'
  14038.           rolling on the floor
  14039.      `ROTFL'
  14040.           rolling on the floor laughing
  14041.      `AFK'
  14042.           away from keyboard
  14043.      `b4'
  14044.           before
  14045.      `CU l8tr'
  14046.           see you later
  14047.      `MORF'
  14048.           male or female?
  14049.      `TTFN'
  14050.           ta-ta for now
  14051.      `OIC'
  14052.           oh, I see
  14053.      `rehi'
  14054.           hello again
  14055.  
  14056.    Most of these are not used at universities or in the UNIX world,
  14057.    though ROTF and TTFN have gained some currency there and IMHO is
  14058.    common; conversely, most of the people who know these are
  14059.    unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.
  14060.  
  14061.    The {MUD} community uses a mixture of USENET/Internet emoticons, a
  14062.    few of the more natural of the old-style talk-mode abbrevs, and
  14063.    some of the `social' list above; specifically, MUD respondents
  14064.    report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH.  The use of
  14065.    `rehi' is also common; in fact, mudders are fond of re- compounds and
  14066.    will frequently `rehug' or `rebonk' (see {bonk/oif}) people.  The
  14067.    word `re' by itself is taken as `regreet'.  In general, though,
  14068.    MUDders express a preference for typing things out in full rather
  14069.    than using abbreviations; this may be due to the relative youth of
  14070.    the MUD cultures, which tend to include many touch typists and
  14071.    to assume high-speed links.  The following uses specific to MUDs are
  14072.    reported:
  14073.  
  14074.      `UOK?'
  14075.           are you OK?
  14076.      `THX'
  14077.           thanks (mutant of `TNX'; clearly this comes in batches of 1138 (the
  14078.           Lucasian K)).
  14079.      `CU l8er'
  14080.           see you later (mutant of `CU l8tr')
  14081.      `OTT'
  14082.           over the top (excessive, uncalled for)
  14083.  
  14084.    Some {BIFF}isms (notably the variant spelling `d00d')
  14085.    appear to be passing into wider use among some subgroups of
  14086.    MUDders.
  14087.  
  14088.    One final note on talk mode style: neophytes, when in talk mode,
  14089.    often seem to think they must produce letter-perfect prose because
  14090.    they are typing rather than speaking.  This is not the best
  14091.    approach.  It can be very frustrating to wait while your partner
  14092.    pauses to think of a word, or repeatedly makes the same spelling
  14093.    error and backs up to fix it.  It is usually best just to leave
  14094.    typographical errors behind and plunge forward, unless severe
  14095.    confusion may result; in that case it is often fastest just to type
  14096.    "xxx" and start over from before the mistake.
  14097.  
  14098.    See also {hakspek}, {emoticon}, {bonk/oif}.
  14099.  
  14100. talker system: n. British hackerism for software that enables
  14101.    real-time chat or {talk mode}.
  14102.  
  14103. tall card: n. A PC/AT-size expansion card (these can be larger
  14104.    than IBM PC or XT cards because the AT case is bigger).  See also
  14105.    {short card}.  When IBM introduced the PS/2 model 30 (its last
  14106.    gasp at supporting the ISA) they made the case lower and many
  14107.    industry-standard tall cards wouldn't fit; this was felt to be a
  14108.    reincarnation of the {connector conspiracy}, done with less
  14109.    style.
  14110.  
  14111. tanked: adj. Same as {down}, used primarily by UNIX hackers.  See
  14112.    also {hosed}.  Popularized as a synonym for `drunk' by Steve
  14113.    Dallas in the late lamented "Bloom County" comic strip.
  14114.  
  14115. tar and feather: [from UNIX `tar(1)'] vt. To create a
  14116.    transportable archive from a group of files by first sticking them
  14117.    together with `tar(1)' (the Tape ARchiver) and then
  14118.    compressing the result (see {compress}).  The latter action is
  14119.    dubbed `feathering' by analogy to what you do with an airplane
  14120.    propeller to decrease wind resistance, or with an oar to reduce
  14121.    water resistance; smaller files, after all, slip through comm links
  14122.    more easily.
  14123.  
  14124. taste: [primarily MIT] n. 1. The quality in a program that tends
  14125.    to be inversely proportional to the number of features, hacks, and
  14126.    kluges programmed into it.  Also `tasty', `tasteful',
  14127.    `tastefulness'.  "This feature comes in N tasty flavors."
  14128.    Although `tasteful' and `flavorful' are essentially
  14129.    synonyms, `taste' and {flavor} are not.  Taste refers to
  14130.    sound judgment on the part of the creator; a program or feature
  14131.    can *exhibit* taste but cannot {have} taste.  On the other
  14132.    hand, a feature can have {flavor}.  Also, {flavor} has the
  14133.    additional meaning of `kind' or `variety' not shared by
  14134.    `taste'.  {Flavor} is a more popular word than `taste',
  14135.    though both are used.  See also {elegant}.  2. Alt. sp. of
  14136.    {tayste}.
  14137.  
  14138. tayste: /tayst/ n. Two bits; also as {taste}.  Syn. {crumb},
  14139.    {quarter}.  Compare {{byte}}, {dynner}, {playte},
  14140.    {nybble}, {quad}.
  14141.  
  14142. TCB: /T-C-B/ [IBM] n. 1. Trouble Came Back.  An intermittent or
  14143.    difficult-to-reproduce problem that has failed to respond to
  14144.    neglect.  Compare {heisenbug}.  Not to be confused with:
  14145.    2. Trusted Computing Base, an `official' jargon term from the
  14146.    {Orange Book}.
  14147.  
  14148. tea, ISO standard cup of: [South Africa] n. A cup of tea with milk
  14149.    and one teaspoon of sugar, where the milk is poured into the cup
  14150.    before the tea.  Variations are ISO 0, with no sugar; ISO 2, with
  14151.    two spoons of sugar; and so on.
  14152.  
  14153.    Like many ISO standards, this one has a faintly alien ring in North
  14154.    America, where hackers generally shun the decadent British practice
  14155.    of adulterating perfectly good tea with dairy products and
  14156.    prefer instead to add a wedge of lemon, if anything.  If one were
  14157.    feeling extremely silly, one might hypothesize an analogous `ANSI
  14158.    standard cup of tea' and wind up with a political situation
  14159.    distressingly similar to several that arise in much more serious
  14160.    technical contexts.  Milk and lemon don't mix very well.
  14161.  
  14162. TechRef: /tek'ref/ [MS-DOS] n. The original `IBM PC
  14163.    Technical Reference Manual', including the BIOS listing and
  14164.    complete schematics for the PC.  The only PC documentation in the
  14165.    issue package that's considered serious by real hackers.
  14166.  
  14167. TECO: /tee'koh/ obs. 1. vt. Originally, to edit using the TECO
  14168.    editor in one of its infinite variations (see below).  2. vt.,obs.
  14169.    To edit even when TECO is *not* the editor being used!  This
  14170.    usage is rare and now primarily historical.  2. [originally an
  14171.    acronym for `[paper] Tape Editor and COrrector'; later, `Text
  14172.    Editor and COrrector'] n. A text editor developed at MIT and
  14173.    modified by just about everybody.  With all the dialects included,
  14174.    TECO might have been the most prolific editor in use before
  14175.    {EMACS}, to which it was directly ancestral.  Noted for its
  14176.    powerful programming-language-like features and its unspeakably
  14177.    hairy syntax.  It is literally the case that every string of
  14178.    characters is a valid TECO program (though probably not a useful
  14179.    one); one common hacker game used to be mentally working out what
  14180.    the TECO commands corresponding to human names did.  As an example
  14181.    of TECO's obscurity, here is a TECO program that takes a list of
  14182.    names such as:
  14183.  
  14184.      Loser, J. Random
  14185.      Quux, The Great
  14186.      Dick, Moby
  14187.  
  14188.    sorts them alphabetically according to surname, and then puts the
  14189.    surname last, removing the comma, to produce the following:
  14190.  
  14191.      Moby Dick
  14192.      J. Random Loser
  14193.      The Great Quux
  14194.  
  14195.    The program is
  14196.  
  14197.      [1 J^P$L$$
  14198.      J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$
  14199.  
  14200.    (where ^B means `Control-B' (ASCII 0000010) and $ is actually
  14201.    an {ALT} or escape (ASCII 0011011) character).
  14202.  
  14203.    In fact, this very program was used to produce the second, sorted
  14204.    list from the first list.  The first hack at it had a {bug}: GLS
  14205.    (the author) had accidentally omitted the `@' in front
  14206.    of `F^B', which as anyone can see is clearly the {Wrong Thing}.  It
  14207.    worked fine the second time.  There is no space to describe all the
  14208.    features of TECO, but it may be of interest that `^P' means
  14209.    `sort' and `J<.-Z; ... L>' is an idiomatic series of commands
  14210.    for `do once for every line'.
  14211.  
  14212.    In mid-1991, TECO is pretty much one with the dust of history,
  14213.    having been replaced in the affections of hackerdom by {EMACS}.
  14214.    Descendants of an early (and somewhat lobotomized) version adopted
  14215.    by DEC can still be found lurking on VMS and a couple of crufty
  14216.    PDP-11 operating systems, however, and ports of the more advanced
  14217.    MIT versions remain the focus of some antiquarian interest.  See
  14218.    also {retrocomputing}, {write-only language}.
  14219.  
  14220. tee: n.,vt. [Purdue] A carbon copy of an electronic transmission.
  14221.    "Oh, you're sending him the {bits} to that?  Slap on a tee for
  14222.    me."  From the UNIX command `tee(1)', itself named after a
  14223.    pipe fitting (see {plumbing}).  Can also mean `save one for me',
  14224.    as in "Tee a slice for me!"  Also spelled `T'.
  14225.  
  14226. Telerat: /tel'*-rat/ n. Unflattering hackerism for `Teleray', a
  14227.    line of extremely losing terminals.  See also {terminak},
  14228.    {sun-stools}, {HP-SUX}.
  14229.  
  14230. TELNET: /tel'net/ vt. To communicate with another Internet host
  14231.    using the {TELNET} program.  TOPS-10 people used the word
  14232.    IMPCOM, since that was the program name for them.  Sometimes
  14233.    abbreviated to TN /T-N/.  "I usually TN over to SAIL just to
  14234.    read the AP News."
  14235.  
  14236. ten-finger interface: n. The interface between two networks that
  14237.    cannot be directly connected for security reasons; refers to the
  14238.    practice of placing two terminals side by side and having an
  14239.    operator read from one and type into the other.
  14240.  
  14241. tense: adj. Of programs, very clever and efficient.  A tense piece
  14242.    of code often got that way because it was highly {bum}med, but
  14243.    sometimes it was just based on a great idea.  A comment in a clever
  14244.    routine by Mike Kazar, once a grad-student hacker at CMU: "This
  14245.    routine is so tense it will bring tears to your eyes."  A tense
  14246.    programmer is one who produces tense code.
  14247.  
  14248. tenured graduate student: n. One who has been in graduate school
  14249.    for 10 years (the usual maximum is 5 or 6): a `ten-yeared'
  14250.    student (get it?).  Actually, this term may be used of any grad
  14251.    student beginning in his seventh year.  Students don't really get
  14252.    tenure, of course, the way professors do, but a tenth-year graduate
  14253.    student has probably been around the university longer than any
  14254.    untenured professor.
  14255.  
  14256. tera-: /te'r*/ [SI] pref. See {{quantifiers}}.
  14257.  
  14258. teraflop club: /te'r*-flop kluhb/ [FLOP = Floating Point
  14259.    Operation] n. A mythical association of people who consume outrageous
  14260.    amounts of computer time in order to produce a few simple pictures
  14261.    of glass balls with intricate ray-tracing techniques.  Caltech
  14262.    professor James Kajiya is said to have been the founder.
  14263.  
  14264. terminak: /ter'mi-nak`/ [Caltech, ca. 1979] n. Any malfunctioning
  14265.    computer terminal.  A common failure mode of Lear-Siegler ADM 3a
  14266.    terminals caused the `L' key to produce the `K' code instead;
  14267.    complaints about this tended to look like "Terminak #3 has a bad
  14268.    keyboard.  Pkease fix."  See {sun-stools}, {Telerat},
  14269.    {HP-SUX}.
  14270.  
  14271. terminal brain death: n. The extreme form of {terminal illness}
  14272.    (sense 1).  What someone who has obviously been hacking
  14273.    continuously for far too long is said to be suffering from.
  14274.  
  14275. terminal illness: n. 1. Syn. {raster burn}.  2. The `burn-in'
  14276.    condition your CRT tends to get if you don't have a screen saver.
  14277.  
  14278. terminal junkie: [UK] n. A {wannabee} or early
  14279.    {larval stage} hacker who spends most of his or her time wandering
  14280.    the directory tree and writing {noddy} programs just to get
  14281.    a fix of computer time.  Variants include `terminal
  14282.    jockey', `console junkie', and {console jockey}.  The term
  14283.    `console jockey' seems to imply more expertise than the other
  14284.    three (possibly because of the exalted status of the {{console}}
  14285.    relative to an ordinary terminal).  See also {twink},
  14286.    {read-only user}.
  14287.  
  14288. terpri: /ter'pree/ [from LISP 1.5 (and later, MacLISP)] vi. To
  14289.    output a {newline}.  Now rare as jargon, though still used as
  14290.    techspeak in Common LISP.  It is a contraction of `TERminate PRInt
  14291.    line', named for the fact that, on early OSes, no characters would be
  14292.    printed until a complete line was formed, so this operation
  14293.    terminated the line and emitted the output.
  14294.  
  14295. test: n. 1. Real users bashing on a prototype long enough to get
  14296.    thoroughly acquainted with it, with careful monitoring and followup
  14297.    of the results.  2. Some bored random user trying a couple of the
  14298.    simpler features with a developer looking over his or her shoulder,
  14299.    ready to pounce on mistakes.  Judging by the quality of most
  14300.    software, the second definition is far more prevalent.  See also
  14301.    {demo}.
  14302.  
  14303. TeX: /tekh/ n. An extremely powerful {macro}-based
  14304.    text formatter written by Donald E. Knuth, very popular in the
  14305.    computer-science community (it is good enough to have displaced
  14306.    UNIX `troff(1)', the other favored formatter, even at many
  14307.    UNIX installations).  TeX fans insist on the correct (guttural)
  14308.    pronunciation, and the correct spelling (all caps, squished
  14309.    together, with the E depressed below the baseline; the
  14310.    mixed-case `TeX' is considered an acceptable kluge on ASCII-only
  14311.    devices).  Fans like to proliferate names from the word `TeX'
  14312.    --- such as TeXnician (TeX user), TeXhacker (TeX
  14313.    programmer), TeXmaster (competent TeX programmer), TeXhax,
  14314.    and TeXnique.
  14315.  
  14316.    Knuth began TeX because he had become annoyed at the declining
  14317.    quality of the typesetting in volumes I--III of his monumental
  14318.    `Art of Computer Programming' (see {bible}).  In a
  14319.    manifestation of the typical hackish urge to solve the problem at
  14320.    hand once and for all, he began to design his own typesetting
  14321.    language.  He thought he would finish it on his sabbatical in 1978;
  14322.    he was wrong by only about 8 years.  The language was finally
  14323.    frozen around 1985, but volume IV of `The Art of Computer
  14324.    Programming' has yet to appear as of mid-1991.  The impact and
  14325.    influence of TeX's design has been such that nobody minds this
  14326.    very much.  Many grand hackish projects have started as a bit of
  14327.    tool-building on the way to something else; Knuth's diversion was
  14328.    simply on a grander scale than most.
  14329.  
  14330. text: n. 1. [techspeak] Executable code, esp. a `pure code'
  14331.    portion shared between multiple instances of a program running in a
  14332.    multitasking OS (compare {English}).  2. Textual material in the
  14333.    mainstream sense; data in ordinary {{ASCII}} or {{EBCDIC}}
  14334.    representation (see {flat-ASCII}).  "Those are text files;
  14335.    you can review them using the editor."  These two contradictory
  14336.    senses confuse hackers, too.
  14337.  
  14338. thanks in advance: [USENET] Conventional net.politeness ending a
  14339.    posted request for information or assistance.  Sometimes written
  14340.    `advTHANKSance' or `aTdHvAaNnKcSe' or abbreviated `TIA'.  See
  14341.    {net.-}, {netiquette}.
  14342.  
  14343. the X that can be Y is not the true X: Yet another instance of
  14344.    hackerdom's peculiar attraction to mystical references --- a common
  14345.    humorous way of making exclusive statements about a class of
  14346.    things.  The template is from the `Tao te Ching': "The
  14347.    Tao which can be spoken of is not the true Tao."  The implication
  14348.    is often that the X is a mystery accessible only to the
  14349.    enlightened.  See the {trampoline} entry for an example, and
  14350.    compare {has the X nature}.
  14351.  
  14352. theology: n. 1. Ironically or humorously used to refer to
  14353.    {religious issues}.  2. Technical fine points of an abstruse
  14354.    nature, esp. those where the resolution is of theoretical
  14355.    interest but is relatively {marginal} with respect to actual use of
  14356.    a design or system.  Used esp. around software issues with a
  14357.    heavy AI or language-design component, such as the smart-data vs.
  14358.    smart-programs dispute in AI.
  14359.  
  14360. theory: n. The consensus, idea, plan, story, or set of rules that
  14361.    is currently being used to inform a behavior.  This is a
  14362.    generalization and abuse of the technical meaning.  "What's the
  14363.    theory on fixing this TECO loss?"  "What's the theory on dinner
  14364.    tonight?"  ("Chinatown, I guess.")  "What's the current theory
  14365.    on letting lusers on during the day?"  "The theory behind this
  14366.    change is to fix the following well-known screw...."
  14367.  
  14368. thinko: /thing'koh/ [by analogy with `typo'] n. A momentary,
  14369.    correctable glitch in mental processing, especially one involving
  14370.    recall of information learned by rote; a bubble in the stream of
  14371.    consciousness.  Syn. {braino}.  Compare {mouso}.
  14372.  
  14373. This time, for sure!: excl. Ritual affirmation frequently uttered
  14374.    during protracted debugging sessions involving numerous small
  14375.    obstacles (e.g., attempts to bring up a UUCP connection).  For the
  14376.    proper effect, this must be uttered in a fruity imitation of
  14377.    Bullwinkle J. Moose.  Also heard: "Hey, Rocky!  Watch me pull a
  14378.    rabbit out of my hat!"  The {canonical} response is, of course,
  14379.    "But that trick *never* works!"  See {{Humor, Hacker}}.
  14380.  
  14381. thrash: vi. To move wildly or violently, without accomplishing
  14382.    anything useful.  Paging or swapping systems that are overloaded
  14383.    waste most of their time moving data into and out of core (rather
  14384.    than performing useful computation) and are therefore said to
  14385.    thrash.  Someone who keeps changing his mind (esp. about what to
  14386.    work on next) is said to be thrashing.  A person frantically trying
  14387.    to execute too many tasks at once (and not spending enough time on
  14388.    any single task) may also be described as thrashing.  Compare
  14389.    {multitask}.
  14390.  
  14391. thread: n. [USENET, GEnie, CompuServe] Common abbreviation of
  14392.    `topic thread', a more or less continuous chain of postings on a
  14393.    single topic.
  14394.  
  14395. three-finger salute: n. Syn. {Vulcan nerve pinch}.
  14396.  
  14397. thud: n. 1. Yet another meta-syntactic variable (see {foo}).
  14398.    It is reported that at CMU from the mid-1970s the canonical series of
  14399.    these was `foo', `bar', `thud', `blat'.  2. Rare term
  14400.    for the hash character, `#' (ASCII 0100011).  See {ASCII} for
  14401.    other synonyms.
  14402.  
  14403. thunk: /thuhnk/ n. 1. "A piece of coding which provides an
  14404.    address", according to P. Z. Ingerman, who invented thunks
  14405.    in 1961 as a way of binding actual parameters to their formal
  14406.    definitions in Algol-60 procedure calls.  If a procedure is called
  14407.    with an expression in the place of a formal parameter, the compiler
  14408.    generates a {thunk} to compute the expression and leave the
  14409.    address of the result in some standard location.  2. Later
  14410.    generalized into: an expression, frozen together with its
  14411.    environment, for later evaluation if and when needed (similar to
  14412.    what in techspeak is called a `closure').  The process of
  14413.    unfreezing these thunks is called `forcing'.  3. A
  14414.    {stubroutine}, in an overlay programming environment, that loads
  14415.    and jumps to the correct overlay.  Compare {trampoline}.
  14416.    4. People and activities scheduled in a thunklike manner.  "It
  14417.    occurred to me the other day that I am rather accurately modeled by
  14418.    a thunk --- I frequently need to be forced to completion." ---
  14419.    paraphrased from a {plan file}.
  14420.  
  14421.    Historical note: There are a couple of onomatopoeic myths
  14422.    circulating about the origin of this term.  The most common is that
  14423.    it is the sound made by data hitting the stack; another holds that
  14424.    the sound is that of the data hitting an accumulator.  Yet another
  14425.    holds that it is the sound of the expression being unfrozen at
  14426.    argument-evaluation time.  In fact, according to the inventors, it
  14427.    was coined after they realized (in the wee hours after hours of
  14428.    discussion) that the type of an argument in Algol-60 could be
  14429.    figured out in advance with a little compile-time thought,
  14430.    simplifying the evaluation machinery.  In other words, it had
  14431.    `already been thought of'; thus it was christened a `thunk',
  14432.    which is "the past tense of `think' at two in the morning".
  14433.  
  14434. tick: n. 1. A {jiffy} (sense 1).  2. In simulations, the
  14435.    discrete unit of time that passes between iterations of the
  14436.    simulation mechanism.  In AI applications, this amount of time is
  14437.    often left unspecified, since the only constraint of interest is
  14438.    the ordering of events.  This sort of AI simulation is often
  14439.    pejoratively referred to as `tick-tick-tick' simulation,
  14440.    especially when the issue of simultaneity of events with long,
  14441.    independent chains of causes is {handwave}d. 3. In the FORTH
  14442.    language, a single quote character.
  14443.  
  14444. tick-list features: [Acorn Computers] n. Features in software or
  14445.    hardware that customers insist on but never use (calculators in
  14446.    desktop TSRs and that sort of thing).  The American equivalent
  14447.    would be `checklist features', but this jargon sense of the
  14448.    phrase has not been reported.
  14449.  
  14450. tickle a bug: vt. To cause a normally hidden bug to manifest
  14451.    through some known series of inputs or operations.  "You can
  14452.    tickle the bug in the Paradise VGA card's highlight handling by
  14453.    trying to set bright yellow reverse video."
  14454.  
  14455. tiger team: [U.S. military jargon] n. A team whose purpose is to
  14456.    penetrate security, and thus test security measures.  These people
  14457.    are paid professionals who do hacker-type tricks, e.g., leave
  14458.    cardboard signs saying "bomb" in critical defense installations,
  14459.    hand-lettered notes saying "Your codebooks have been stolen"
  14460.    (they usually haven't been) inside safes, etc.  After a successful
  14461.    penetration, some high-ranking security type shows up the next
  14462.    morning for a `security review' and finds the sign, note, etc.,
  14463.    and all hell breaks loose.  Serious successes of tiger teams
  14464.    sometimes lead to early retirement for base commanders and security
  14465.    officers (see the {patch} entry for an example).
  14466.  
  14467.    A subset of tiger teams are professional {cracker}s, testing the
  14468.    security of military computer installations by attempting remote
  14469.    attacks via networks or supposedly `secure' comm channels.  Some of
  14470.    their escapades, if declassified, would probably rank among the
  14471.    greatest hacks of all times.  The term has been adopted in
  14472.    commercial computer-security circles in this more specific sense.
  14473.  
  14474. time sink: [poss. by analogy with `heat sink' or `current sink'] n.
  14475.    A project that consumes unbounded amounts of time.
  14476.  
  14477. time T: /ti:m T/ n. 1. An unspecified but usually well-understood
  14478.    time, often used in conjunction with a later time T+1.
  14479.    "We'll meet on campus at time T or at Louie's at
  14480.    time T+1" means, in the context of going out for dinner:
  14481.    "We can meet on campus and go to Louie's, or we can meet at Louie's
  14482.    itself a bit later."  (Louie's is a Chinese restaurant in Palo Alto
  14483.    that is a favorite with hackers.)  Had the number 30 been used instead
  14484.    of the number 1, it would have implied that the travel time from
  14485.    campus to Louie's is 30 minutes; whatever time T is (and
  14486.    that hasn't been decided on yet), you can meet half an hour later at
  14487.    Louie's than you could on campus and end up eating at the same time.
  14488.    See also {since time T equals minus infinity}.
  14489.  
  14490. times-or-divided-by: [by analogy with `plus-or-minus'] quant. Term
  14491.    occasionally used when describing the uncertainty associated with a
  14492.    scheduling estimate, for either humorous or brutally honest effect.
  14493.    For a software project, the factor is usually at least 2.
  14494.  
  14495. tinycrud: /ti:'nee-kruhd/ n. A pejorative used by habitues of older
  14496.    game-oriented {MUD} versions for TinyMUDs and other
  14497.    user-extensible {MUD} variants; esp. common among users of the
  14498.    rather violent and competitive AberMUD and MIST systems.  These
  14499.    people justify the slur on the basis of how (allegedly)
  14500.    inconsistent and lacking in genuine atmosphere the scenarios
  14501.    generated in user extensible MUDs can be.  Other common knocks on
  14502.    them are that they feature little overall plot, bad game topology,
  14503.    little competitive interaction, etc. --- not to mention the alleged
  14504.    horrors of the TinyMUD code itself.  This dispute is one of the MUD
  14505.    world's hardiest perennial {holy wars}.
  14506.  
  14507. tip of the ice-cube: [IBM] n. The visible part of something small and
  14508.    insignificant.  Used as an ironic comment in situations where `tip
  14509.    of the iceberg' might be appropriate if the subject were actually
  14510.    nontrivial.
  14511.  
  14512. tired iron: [IBM] n. Hardware that is perfectly functional but
  14513.    far enough behind the state of the art to have been superseded by new
  14514.    products, presumably with sufficient improvement in bang-per-buck that
  14515.    the old stuff is starting to look a bit like a {dinosaur}.
  14516.  
  14517. tits on a keyboard: n. Small bumps on certain keycaps to keep
  14518.    touch-typists registered (usually on the `5' of a numeric keypad,
  14519.    and on the `F' and `J' of a QWERTY keyboard).
  14520.  
  14521. TLA: /T-L-A/ [Three-Letter Acronym] n. 1. Self-describing
  14522.    acronym for a species with which computing terminology is infested.
  14523.    2. Any confusing acronym.  Examples include MCA, FTP, SNA, CPU,
  14524.    MMU, SCCS, DMU, FPU, NNTP, TLA.  People who like this looser usage
  14525.    argue that not all TLAs have three letters, just as not all four-letter
  14526.    words have four letters.  One also hears of `ETLA' (Extended
  14527.    Three-Letter Acronym, pronounced /ee tee el ay/) being used to
  14528.    describe four-letter acronyms.  The term `SFLA' (Stupid Four-Letter
  14529.    Acronym) has also been reported.  See also {YABA}.
  14530.  
  14531.    The self-effacing phrase "TDM TLA" (Too Damn Many...) is
  14532.    often used to bemoan the plethora of TLAs in use.  In 1989, a
  14533.    random of the journalistic persuasion asked hacker Paul Boutin
  14534.    "What do you think will be the biggest problem in computing in
  14535.    the 90s?"  Paul's straight-faced response: "There are only
  14536.    17,000 three-letter acronyms." (To be exact, there are 26^3
  14537.    = 17,576.)
  14538.  
  14539. TMRC: /tmerk'/ n. The Tech Model Railroad Club at MIT, one of
  14540.    the wellsprings of hacker culture.  The 1959 `Dictionary of
  14541.    the TMRC Language' compiled by Peter Samson included several terms
  14542.    which became basics of the hackish vocabulary (see esp. {foo}
  14543.    and {frob}).
  14544.  
  14545.    By 1962, TMRC's legendary layout was already a marvel of
  14546.    complexity.  The control system alone featured about 1200 relays.
  14547.    There were {scram switch}es located at numerous places around
  14548.    the room that could be pressed if something undesirable was about
  14549.    to occur, such as a train going full-bore at an obstruction.
  14550.    Another feature of the system was a digital clock on the dispatch
  14551.    board.  Normally it ran at some multiple of real time, but if
  14552.    someone hit a scram switch the clock stopped and the display was
  14553.    replaced with the word `FOO'.
  14554.  
  14555.    Steven Levy, in his book `Hackers' (see the Bibliography), gives a
  14556.    stimulating account of those early years.  TMRC's Power and Signals
  14557.    group included most of the early PDP-1 hackers and the people who
  14558.    later bacame the core of the MIT AI Lab staff.  Thirty years later
  14559.    that connection is still very much alive, and this lexicon
  14560.    accordingly includes a number of entries from a recent revision of
  14561.    the TMRC Dictionary.
  14562.  
  14563. to a first approximation: 1. [techspeak] When one is doing certain
  14564.    numerical computations, an approximate solution may be computed by
  14565.    any of several heuristic methods, then refined to a final value.
  14566.    By using the starting point of a first approximation of the answer,
  14567.    one can write an algorithm that converges more quickly to the
  14568.    correct result.  2. In jargon, a preface to any comment that
  14569.    indicates that the comment is only approximately true.  The remark
  14570.    "To a first approximation, I feel good" might indicate that
  14571.    deeper questioning would reveal that not all is perfect (e.g., a
  14572.    nagging cough still remains after an illness).
  14573.  
  14574. to a zeroth approximation: [from `to a first approximation'] A
  14575.    *really* sloppy approximation; a wild guess.  Compare
  14576.    {social science number}.
  14577.  
  14578. toast: 1. n. Any completely inoperable system or component, esp.
  14579.    one that has just crashed and burned: "Uh, oh ... I think the
  14580.    serial board is toast."  2. vt. To cause a system to crash
  14581.    accidentally, especially in a manner that requires manual
  14582.    rebooting.  "Rick just toasted the {firewall machine} again."
  14583.  
  14584. toaster: n. 1. The archetypal really stupid application for an
  14585.    embedded microprocessor controller; often used in comments that
  14586.    imply that a scheme is inappropriate technology (but see
  14587.    {elevator controller}).  "{DWIM} for an assembler?  That'd be
  14588.    as silly as running UNIX on your toaster!"  2. A very, very dumb
  14589.    computer. "You could run this program on any dumb toaster."  See
  14590.    {bitty box}, {Get a real computer!}, {toy}, {beige toaster}.
  14591.    3. A Macintosh, esp. the Classic Mac.  Some hold that this is
  14592.    implied by sense 2.  4. A peripheral device.  "I bought my box
  14593.    without toasters, but since then I've added two boards and a second
  14594.    disk drive."
  14595.  
  14596. toeprint: n. A {footprint} of especially small size.
  14597.  
  14598. toggle: vt. To change a {bit} from whatever state it is in to the
  14599.    other state; to change from 1 to 0 or from 0 to 1.  This comes from
  14600.    `toggle switches', such as standard light switches, though the
  14601.    word `toggle' actually refers to the mechanism that keeps the
  14602.    switch in the position to which it is flipped rather than to the
  14603.    fact that the switch has two positions.  There are four things you
  14604.    can do to a bit: set it (force it to be 1), clear (or zero) it,
  14605.    leave it alone, or toggle it.  (Mathematically, one would say that
  14606.    there are four distinct boolean-valued functions of one boolean
  14607.    argument, but saying that is much less fun than talking about
  14608.    toggling bits.)
  14609.  
  14610. tool: 1. n. A program used primarily to create, manipulate, modify,
  14611.    or analyze other programs, such as a compiler or an editor or a
  14612.    cross-referencing program.  Oppose {app}, {operating system}.
  14613.    2. [UNIX] An application program with a simple, `transparent'
  14614.    (typically text-stream) interface designed specifically to be used
  14615.    in programmed combination with other tools (see {filter}).
  14616.    3. [MIT: general to students there] vi. To work; to study (connotes
  14617.    tedium).  The TMRC Dictionary defined this as "to set one's brain
  14618.    to the grindstone".  See {hack}.  4. [MIT] n. A student who
  14619.    studies too much and hacks too little.  (MIT's student humor
  14620.    magazine rejoices in the name `Tool and Die'.)
  14621.  
  14622. toolsmith: n. The software equivalent of a tool-and-die specialist;
  14623.    one who specializes in making the {tool}s with which other
  14624.    programmers create applications.  See also {uninteresting}.
  14625.  
  14626. topic drift: n. Term used on GEnie, USENET and other electronic
  14627.    fora to describe the tendency of a {thread} to drift away from
  14628.    the original subject of discussion (and thus, from the Subject
  14629.    header of the originating message), or the results of that
  14630.    tendency.  Often used in gentle reminders that the discussion has
  14631.    strayed off any useful track.  "I think we started with a question
  14632.    about Niven's last book, but we've ended up discussing the sexual
  14633.    habits of the common marmoset.  Now *that's* topic drift!"
  14634.  
  14635. topic group: n. Syn. {forum}.
  14636.  
  14637. TOPS-10:: /tops-ten/ n. DEC's proprietary OS for the fabled {PDP-10}
  14638.    machines, long a favorite of hackers but now effectively extinct.
  14639.    A fountain of hacker folklore; see appendix A.  See also {{ITS}},
  14640.    {{TOPS-20}}, {{TWENEX}}, {VMS}, {operating system}.  TOPS-10 was
  14641.    sometimes called BOTS-10 (from `bottoms-ten') as a comment on the
  14642.    inappropriateness of describing it as the top of anything.
  14643.  
  14644. TOPS-20:: /tops-twen'tee/ n. See {{TWENEX}}.
  14645.  
  14646. toto: /toh'toh/ n. This is reported to be the default scratch
  14647.    file name among French-speaking programmers --- in other words, a
  14648.    francophone {foo}.
  14649.  
  14650. tourist: [ITS] n. A guest on the system, especially one who
  14651.    generally logs in over a network from a remote location for {comm
  14652.    mode}, email, games, and other trivial purposes.  One step below
  14653.    {luser}.  Hackers often spell this {turist}, perhaps by
  14654.    some sort of tenuous analogy with {luser} (this also expresses the
  14655.    ITS culture's penchant for six-letterisms).  Compare {twink},
  14656.    {read-only user}.
  14657.  
  14658. tourist information: n. Information in an on-line display that is
  14659.    not immediately useful, but contributes to a viewer's gestalt of
  14660.    what's going on with the software or hardware behind it.  Whether a
  14661.    given piece of info falls in this category depends partly on what
  14662.    the user is looking for at any given time.  The `bytes free'
  14663.    information at the bottom of an MS-DOS `dir' display is
  14664.    tourist information; so (most of the time) is the TIME information
  14665.    in a UNIX `ps(1)' display.
  14666.  
  14667. touristic: adj. Having the quality of a {tourist}.  Often used
  14668.    as a pejorative, as in `losing touristic scum'.  Often spelled
  14669.    `turistic' or `turistik', so that phrase might be more properly
  14670.    rendered `lusing turistic scum'.
  14671.  
  14672. toy: n. A computer system; always used with qualifiers.
  14673.    1. `nice toy': One that supports the speaker's hacking style
  14674.    adequately.  2. `just a toy': A machine that yields
  14675.    insufficient {computron}s for the speaker's preferred uses.  This
  14676.    is not condemnatory, as is {bitty box}; toys can at least be fun.
  14677.    It is also strongly conditioned by one's expectations; Cray XMP
  14678.    users sometimes consider the Cray-1 a `toy', and certainly all RISC
  14679.    boxes and mainframes are toys by their standards.  See also {Get
  14680.    a real computer!}.
  14681.  
  14682. toy language: n. A language useful for instructional purposes or
  14683.    as a proof-of-concept for some aspect of computer-science theory,
  14684.    but inadequate for general-purpose programming.  {Bad Thing}s
  14685.    can result when a toy language is promoted as a general purpose
  14686.    solution for programming (see {bondage-and-discipline
  14687.    language}); the classic example is {{Pascal}}.  Several moderately
  14688.    well-known formalisms for conceptual tasks such as programming Turing
  14689.    machines also qualify as toy languages in a less negative sense.
  14690.    See also {MFTL}.
  14691.  
  14692. toy problem: [AI] n. A deliberately oversimplified case of a
  14693.    challenging problem used to investigate, prototype, or test
  14694.    algorithms for a real problem.  Sometimes used pejoratively.  See
  14695.    also {gedanken}, {toy program}.
  14696.  
  14697. toy program: n. 1. One that can be readily comprehended; hence, a
  14698.    trivial program (compare {noddy}).  2. One for which the effort
  14699.    of initial coding dominates the costs through its life cycle.
  14700.    See also {noddy}.
  14701.  
  14702. trampoline: n. An incredibly {hairy} technique, found in some
  14703.    {HLL} and program-overlay implementations (e.g., on the
  14704.    Macintosh), that involves on-the-fly generation of small executable
  14705.    (and, likely as not, self-modifying) code objects to do indirection
  14706.    between code sections.  These pieces of {live data} are called
  14707.    `trampolines'.  Trampolines are notoriously difficult to understand
  14708.    in action; in fact, it is said by those who use this term that the
  14709.    trampoline that doesn't bend your brain is not the true
  14710.    trampoline.  See also {snap}.
  14711.  
  14712. trap: 1. n. A program interrupt, usually an interrupt caused by
  14713.    some exceptional situation in the user program.  In most cases, the
  14714.    OS performs some action, then returns control to the program.
  14715.    2. vi. To cause a trap.  "These instructions trap to the
  14716.    monitor."  Also used transitively to indicate the cause of the
  14717.    trap.  "The monitor traps all input/output instructions."
  14718.  
  14719.    This term is associated with assembler programming (`interrupt'
  14720.    or `exception' is more common among {HLL} programmers) and
  14721.    appears to be fading into history among programmers as the role of
  14722.    assembler continues to shrink.  However, it is still important to
  14723.    computer architects and systems hackers (see {system},
  14724.    sense 1), who use it to distinguish deterministically repeatable
  14725.    exceptions from timing-dependent ones (such as I/O interrupts).
  14726.  
  14727. trap door: alt. `trapdoor' n. 1. Syn. {back door}.
  14728.    2. [techspeak] A `trap-door function' is one which is easy to
  14729.    compute but very difficult to compute the inverse of.  Such
  14730.    functions have important applications in cryptography, specifically
  14731.    in the construction of public-key cryptosystems.
  14732.  
  14733. trash: vt. To destroy the contents of (said of a data structure).
  14734.    The most common of the family of near-synonyms including {mung},
  14735.    {mangle}, and {scribble}.
  14736.  
  14737. tree-killer: [Sun] n. 1. A printer.  2. A person who wastes paper.
  14738.    This should be interpreted in a broad sense; `wasting paper'
  14739.    includes the production of {spiffy} but {content-free} documents.
  14740.    Thus, most {suit}s are tree-killers.
  14741.  
  14742. trit: /trit/ [by analogy with `bit'] n. One base-3 digit; the
  14743.    amount of information conveyed by a selection among one of three
  14744.    equally likely outcomes (see also {bit}).  These arise, for
  14745.    example, in the context of a {flag} that should actually be able
  14746.    to assume *three* values --- such as yes, no, or unknown.  Trits are
  14747.    sometimes jokingly called `3-state bits'.  A trit may be
  14748.    semi-seriously referred to as `a bit and a half', although it is
  14749.    linearly equivalent to 1.5849625 bits (that is,
  14750.    log2(3)
  14751.    bits).
  14752.  
  14753. trivial: adj. 1. Too simple to bother detailing.  2. Not worth the
  14754.    speaker's time.  3. Complex, but solvable by methods so well known
  14755.    that anyone not utterly {cretinous} would have thought of them
  14756.    already.  4. Any problem one has already solved (some claim that
  14757.    hackish `trivial' usually evaluates to `I've seen it before').
  14758.    Hackers' notions of triviality may be quite at variance with those
  14759.    of non-hackers.  See {nontrivial}, {uninteresting}.
  14760.  
  14761. troglodyte: [Commodore] n. 1. A hacker who never leaves his
  14762.    cubicle.  The term `Gnoll' (from Dungeons & Dragons) is also
  14763.    reported.  2. A curmudgeon attached to an obsolescent computing
  14764.    environment.  The combination `ITS troglodyte' was flung around
  14765.    some during the USENET and email wringle-wrangle attending the
  14766.    2.x.x revision of the Jargon File; at least one of the people it
  14767.    was intended to describe adopted it with pride.
  14768.  
  14769. troglodyte mode: [Rice University] n. Programming with the lights
  14770.    turned off, sunglasses on, and the terminal inverted (black on
  14771.    white) because you've been up for so many days straight that your
  14772.    eyes hurt (see {raster burn}).  Loud music blaring from a stereo
  14773.    stacked in the corner is optional but recommended.  See {larval
  14774.    stage}, {hack mode}.
  14775.  
  14776. Trojan horse: [coined by MIT-hacker-turned-NSA-spook Dan Edwards]
  14777.    n. A program designed to break security or damage a system that is
  14778.    disguised as something else benign, such as a directory lister,
  14779.    archiver, a game, or (in one notorious 1990 case on the Mac) a
  14780.    program to find and destroy viruses!  See {back door}, {virus},
  14781.    {worm}.
  14782.  
  14783. true-hacker: [analogy with `trufan' from SF fandom] n. One who
  14784.    exemplifies the primary values of hacker culture, esp. competence
  14785.    and helpfulness to other hackers.  A high compliment.  "He spent
  14786.    6 hours helping me bring up UUCP and netnews on my FOOBAR 4000
  14787.    last week --- manifestly the act of a true-hacker."  Compare
  14788.    {demigod}, oppose {munchkin}.
  14789.  
  14790. tty: /T-T-Y/ [UNIX], /tit'ee/ [ITS, but some UNIX people say it
  14791.    this way as well; this pronunciation is not considered to have
  14792.    sexual undertones] n. 1. A terminal of the teletype variety,
  14793.    characterized by a noisy mechanical printer, a very limited
  14794.    character set, and poor print quality.  Usage: antiquated (like the
  14795.    TTYs themselves).  See also {bit-paired keyboard}.
  14796.    2. [especially UNIX] Any terminal at all; sometimes used to refer
  14797.    to the particular terminal controlling a given job.
  14798.  
  14799. tube: 1. n. A CRT terminal.  Never used in the mainstream sense of
  14800.    TV; real hackers don't watch TV, except for Loony Toons, Rocky &
  14801.    Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy
  14802.    old swashbuckler movie (see appendix B).  2. [IBM] To send a copy
  14803.    of something to someone else's terminal.  "Tube me that
  14804.    note?"
  14805.  
  14806. tube time: n. Time spent at a terminal or console.  More inclusive
  14807.    than hacking time; commonly used in discussions of what parts of
  14808.    one's environment one uses most heavily.  "I find I'm spending too
  14809.    much of my tube time reading mail since I started this revision."
  14810.  
  14811. tunafish: n. In hackish lore, refers to the mutated punchline of
  14812.    an age-old joke to be found at the bottom of the manual pages of
  14813.    `tunefs(8)' in the original {BSD} 4.2 distribution.  The
  14814.    joke was removed in later releases once commercial sites started
  14815.    developing in 4.2.  Tunefs relates to the `tuning' of
  14816.    file-system parameters for optimum performance, and at the bottom
  14817.    of a few pages of wizardly inscriptions was a `BUGS' section
  14818.    consisting of the line "You can tune a file system, but you can't
  14819.    tunafish".  Variants of this can be seen in other BSD versions,
  14820.    though it has been excised from some versions by humorless
  14821.    management {droid}s.  The [nt]roff source for SunOS 4.1.1
  14822.    contains a comment apparently designed to prevent this: "Take this
  14823.    out and a Unix Demon will dog your steps from now until the
  14824.    `time_t''s wrap around."
  14825.  
  14826. tune: [from automotive or musical usage] vt. To optimize a program
  14827.    or system for a particular environment, esp. by adjusting numerical
  14828.    parameters designed as {hook}s for tuning, e.g., by changing
  14829.    `#define' lines in C.  One may `tune for time' (fastest
  14830.    execution), `tune for space' (least memory use), or
  14831.    `tune for configuration' (most efficient use of hardware).  See
  14832.    {bum}, {hot spot}, {hand-hacking}.
  14833.  
  14834. turbo nerd: n. See {computer geek}.
  14835.  
  14836. turist: /too'rist/ n. Var. sp. of {tourist}, q.v.  Also in
  14837.    adjectival form, `turistic'.  Poss. influenced by {luser} and
  14838.    `Turing'.
  14839.  
  14840. tweak: vt. 1. To change slightly, usually in reference to a value.
  14841.    Also used synonymously with {twiddle}.  If a program is almost
  14842.    correct, rather than figure out the precise problem you might
  14843.    just keep tweaking it until it works.  See {frobnicate} and
  14844.    {fudge factor}; also see {shotgun debugging}.  2. To {tune}
  14845.    or {bum} a program; preferred usage in the U.K.
  14846.  
  14847. TWENEX:: /twe'neks/ n. The TOPS-20 operating system by DEC ---
  14848.    the second proprietary OS for the PDP-10 --- preferred by most
  14849.    PDP-10 hackers over TOPS-10 (that is, by those who were not
  14850.    {{ITS}} or {{WAITS}} partisans).  TOPS-20 began in 1969 as Bolt,
  14851.    Beranek & Newman's TENEX operating system using special paging
  14852.    hardware.  By the early 1970s, almost all of the systems on the
  14853.    ARPANET ran TENEX.  DEC purchased the rights to TENEX from BBN and
  14854.    began work to make it their own.  The first in-house code name for
  14855.    the operating system was VIROS (VIRtual memory Operating System);
  14856.    when customers started asking questions, the name was changed to
  14857.    SNARK so DEC could truthfully deny that there was any project
  14858.    called VIROS.  When the name SNARK became known, the name was
  14859.    briefly reversed to become KRANS; this was quickly abandoned when
  14860.    it was discovered that `krans' meant `funeral shroud' in
  14861.    Swedish.  Ultimately DEC picked TOPS-20 as the name of the
  14862.    operating system, and it was as TOPS-20 that it was marketed.  The
  14863.    hacker community, mindful of its origins, quickly dubbed it
  14864.    {{TWENEX}} (a contraction of `twenty TENEX'), even though by this
  14865.    point very little of the original TENEX code remained (analogously
  14866.    to the differences between AT&T V6 UNIX and BSD).  DEC people
  14867.    cringed when they heard "TWENEX", but the term caught on
  14868.    nevertheless (the written abbreviation `20x' was also used).
  14869.    TWENEX was successful and very popular; in fact, there was a period
  14870.    in the early 1980s when it commanded as fervent a culture of
  14871.    partisans as UNIX or ITS --- but DEC's decision to scrap all the
  14872.    internal rivals to the VAX architecture and its relatively stodgy
  14873.    VMS OS killed the DEC-20 and put a sad end to TWENEX's brief day in
  14874.    the sun.  DEC attempted to convince TOPS-20 hackers to convert to
  14875.    {VMS}, but instead, by the late 1980s, most of the TOPS-20
  14876.    hackers had migrated to UNIX.
  14877.  
  14878. twiddle: n. 1. Tilde (ASCII 1111110, `~').  Also
  14879.    called `squiggle', `sqiggle' (sic --- pronounced /skig'l/),
  14880.    and `twaddle', but twiddle is the most common term.  2. A small
  14881.    and insignificant change to a program.  Usually fixes one bug and
  14882.    generates several new ones.  3. vt. To change something in a small
  14883.    way.  Bits, for example, are often twiddled.  Twiddling a switch or
  14884.    knob implies much less sense of purpose than toggling or tweaking
  14885.    it; see {frobnicate}.  To speak of twiddling a bit connotes
  14886.    aimlessness, and at best doesn't specify what you're doing to the
  14887.    bit; `toggling a bit' has a more specific meaning (see {bit
  14888.    twiddling}, {toggle}).
  14889.  
  14890. twink: /twink/ [UCSC] n. Equivalent to {read-only user}.  Also
  14891.    reported on the USENET group soc.motss; may derive from gay
  14892.    slang for a cute young thing with nothing upstairs.
  14893.  
  14894. two pi: quant. The number of years it takes to finish one's
  14895.    thesis.  Occurs in stories in the following form: "He started on
  14896.    his thesis; 2 pi years later..."
  14897.  
  14898. two-to-the-N: quant. An amount much larger than {N} but smaller
  14899.    than {infinity}.  "I have 2-to-the-N things to do before I can
  14900.    go out for lunch" means you probably won't show up.
  14901.  
  14902. twonkie: /twon'kee/ n. The software equivalent of a Twinkie (a
  14903.    variety of sugar-loaded junk food, or (in gay slang) the male
  14904.    equivalent of `chick'); a useless `feature' added to look sexy
  14905.    and placate a {marketroid} (compare {Saturday-night
  14906.    special}).  This may also be related to "The Twonky", title menace
  14907.    of a classic SF short story by Lewis Padgett (Henry Kuttner and
  14908.    C. L. Moore), first published in the September 1942
  14909.    `Astounding Science Fiction' and subsequently much
  14910.    anthologized.
  14911.  
  14912. = U =
  14913.  
  14914. UBD: /U-B-D/ [abbreviation for `User Brain Damage'] An
  14915.    abbreviation used to close out trouble reports obviously due to
  14916.    utter cluelessness on the user's part.  Compare {pilot error};
  14917.    oppose {PBD}; see also {brain-damaged}.
  14918.  
  14919. UN*X: n. Used to refer to the UNIX operating system (a trademark of
  14920.    AT&T) in writing, but avoiding the need for the ugly
  14921.    {(TM)} typography.
  14922.    Also used to refer to any or all varieties of Unixoid operating
  14923.    systems.  Ironically, lawyers now say (1990) that the requirement
  14924.    for the TM-postfix has no legal force, but the asterisk usage
  14925.    is entrenched anyhow.  It has been suggested that there may be a
  14926.    psychological connection to practice in certain religions
  14927.    (especially Judaism) in which the name of the deity is never
  14928.    written out in full, e.g., `YHWH' or `G--d' is used.  See also
  14929.    {glob}.
  14930.  
  14931. undefined external reference: excl. [UNIX] A message from UNIX's
  14932.    linker.  Used in speech to flag loose ends or dangling references
  14933.    in an argument or discussion.
  14934.  
  14935. under the hood: prep. [hot-rodder talk] 1. Used to introduce the
  14936.    underlying implementation of a product (hardware, software, or
  14937.    idea).  Implies that the implementation is not intuitively obvious
  14938.    from the appearance, but the speaker is about to enable the
  14939.    listener to {grok} it.  "Let's now look under the hood to see
  14940.    how ...." 2. Can also imply that the implementation is much
  14941.    simpler than the appearance would indicate: "Under the hood, we
  14942.    are just fork/execing the shell."  3. Inside a chassis, as in
  14943.    "Under the hood, this baby has a 40MHz 68030!"
  14944.  
  14945. undocumented feature: n. See {feature}.
  14946.  
  14947. uninteresting: adj. 1. Said of a problem that, although
  14948.    {nontrivial}, can be solved simply by throwing sufficient
  14949.    resources at it.  2. Also said of problems for which a solution
  14950.    would neither advance the state of the art nor be fun to design and
  14951.    code.
  14952.  
  14953.    Hackers regard uninteresting problems as intolerable wastes of
  14954.    time, to be solved (if at all) by lesser mortals.  *Real*
  14955.    hackers (see {toolsmith}) generalize uninteresting problems
  14956.    enough to make them interesting and solve them --- thus solving the
  14957.    original problem as a special case.  See {WOMBAT}, {SMOP};
  14958.    compare {toy problem}, oppose {interesting}.
  14959.  
  14960. UNIX:: /yoo'niks/ [In the authors' words, "A weak pun on
  14961.    Multics"] n. (also `Unix') An interactive time-sharing system
  14962.    originally invented in 1969 by Ken Thompson after Bell Labs left
  14963.    the Multics project, originally so he could play games on his
  14964.    scavenged PDP-7.  Dennis Ritchie, the inventor of C, is considered
  14965.    a co-author of the system.  The turning point in UNIX's history
  14966.    came when it was reimplemented almost entirely in C during
  14967.    1972--1974, making it the first source-portable OS.  UNIX
  14968.    subsequently underwent mutations and expansions at the hands of
  14969.    many different people, resulting in a uniquely flexible and
  14970.    developer-friendly environment.  In 1991, UNIX is the most widely
  14971.    used multiuser general-purpose operating system in the world.  Many
  14972.    people consider this the most important victory yet of hackerdom
  14973.    over industry opposition (but see {UNIX weenie} and {UNIX
  14974.    conspiracy} for an opposing point of view).  See {Version 7},
  14975.    {BSD}, {USG UNIX}.
  14976.  
  14977. UNIX brain damage: n. Something that has to be done to break a  
  14978.    network program (typically a mailer) on a non-UNIX system so that
  14979.    it will interoperate with UNIX systems. The hack may qualify as
  14980.    `UNIX brain damage' if the program conforms to published standards
  14981.    and the UNIX program in question does not.  UNIX brain damage
  14982.    happens because it is much easier for other (minority) systems to
  14983.    change their ways to match non-conforming behavior than it is to
  14984.    change all the hundreds of thousands of UNIX systems out there.
  14985.  
  14986.    An example of UNIX brain damage is a {kluge} in a mail server to 
  14987.    recognize bare line feed (the UNIX newline) as an equivalent form
  14988.    to the Internet standard newline, which is a carriage return
  14989.    followed by a line feed.  Such things can make even a hardened
  14990.    {jock} weep.
  14991.  
  14992. UNIX conspiracy: [ITS] n. According to a conspiracy theory long
  14993.    popular among {{ITS}} and {{TOPS-20}} fans, UNIX's growth is the
  14994.    result of a plot, hatched during the 1970s at Bell Labs, whose
  14995.    intent was to hobble AT&T's competitors by making them dependent
  14996.    upon a system whose future evolution was to be under AT&T's
  14997.    control.  This would be accomplished by disseminating an operating
  14998.    system that is apparently inexpensive and easily portable, but also
  14999.    relatively unreliable and insecure (so as to require continuing
  15000.    upgrades from AT&T).  This theory was lent a substantial impetus
  15001.    in 1984 by the paper referenced in the {back door} entry.
  15002.  
  15003.    In this view, UNIX was designed to be one of the first computer
  15004.    viruses (see {virus}) --- but a virus spread to computers indirectly
  15005.    by people and market forces, rather than directly through disks and
  15006.    networks.  Adherents of this `UNIX virus' theory like to cite the
  15007.    fact that the well-known quotation "UNIX is snake oil" was
  15008.    uttered by DEC president Kenneth Olsen shortly before DEC began
  15009.    actively promoting its own family of UNIX workstations.  (Olsen now
  15010.    claims to have been misquoted.)
  15011.  
  15012. UNIX weenie: [ITS] n. 1. A derogatory play on `UNIX wizard', common
  15013.    among hackers who use UNIX by necessity but would prefer
  15014.    alternatives.  The implication is that although the person in question
  15015.    may consider mastery of UNIX arcana to be a wizardly skill, the
  15016.    only real skill involved is the ability to tolerate (and the bad
  15017.    taste to wallow in) the incoherence and needless complexity that is
  15018.    alleged to infest many UNIX programs.  "This shell script tries to
  15019.    parse its arguments in 69 bletcherous ways.  It must have been
  15020.    written by a real UNIX weenie."  2. A derogatory term for anyone
  15021.    who engages in uncritical praise of UNIX.  Often appearing in the
  15022.    context "stupid UNIX weenie".  See {Weenix}, {UNIX
  15023.    conspiracy}.  See also {weenie}.
  15024.  
  15025. unixism: n. A piece of code or a coding technique that depends on the
  15026.    protected multi-tasking environment with relatively low
  15027.    process-spawn overhead that exists on virtual-memory UNIX systems.
  15028.    Common {unixism}s include: gratuitous use of `fork(2)'; the
  15029.    assumption that certain undocumented but well-known features of
  15030.    UNIX libraries such as `stdio(3)' are supported elsewhere;
  15031.    reliance on {obscure} side-effects of system calls (use of
  15032.    `sleep(2)' with a 0 argument to clue the scheduler that
  15033.    you're willing to give up your time-slice, for example); the
  15034.    assumption that freshly allocated memory is zeroed; and the assumption
  15035.    that fragmentation problems won't arise from never `free()'ing
  15036.    memory.  Compare {vaxocentrism}; see also {New Jersey}.
  15037.  
  15038. unswizzle: v. See {swizzle}.
  15039.  
  15040. unwind the stack: vi. 1. [techspeak] During the execution of a
  15041.    procedural language, one is said to `unwind the stack' from a
  15042.    called procedure up to a caller when one discards the stack frame
  15043.    and any number of frames above it, popping back up to the level of
  15044.    the given caller.  In C this is done with
  15045.    `longjmp'/`setjmp', in LISP with `throw/catch'.
  15046.    See also {smash the stack}.  2. People can unwind the stack as
  15047.    well, by quickly dealing with a bunch of problems: "Oh heck, let's
  15048.    do lunch.  Just a second while I unwind my stack."
  15049.  
  15050. unwind-protect: [MIT: from the name of a LISP operator] n. A task you
  15051.    must remember to perform before you leave a place or finish a
  15052.    project.  "I have an unwind-protect to call my advisor."
  15053.  
  15054. up: adj. 1. Working, in order.  "The down escalator is up."
  15055.    Oppose {down}.  2. `bring up': vt. To create a working
  15056.    version and start it.  "They brought up a down system." 
  15057.    3. `come up' vi. To become ready for production use.
  15058.  
  15059. upload: /uhp'lohd/ v. 1. [techspeak] To transfer programs or data
  15060.    over a digital communications link from a smaller or peripheral
  15061.    `client' system to a larger or central `host' one.  A transfer in
  15062.    the other direction is, of course, called a {download} (but see
  15063.    the note about ground-to-space comm under that entry).
  15064.    2. [speculatively] To move the essential patterns and algorithms
  15065.    that make up one's mind from one's brain into a computer.  Only
  15066.    those who are convinced that such patterns and algorithms capture
  15067.    the complete essence of the self view this prospect with
  15068.    gusto.
  15069.  
  15070. upthread: adv. Earlier in the discussion (see {thread}), i.e.,
  15071.    `above'. "As Joe pointed out upthread, ..."  See also
  15072.    {followup}.
  15073.  
  15074. urchin: n. See {munchkin}.
  15075.  
  15076. USENET: /yoos'net/ or /yooz'net/ [from `Users' Network'] n.
  15077.    A distributed {bboard} (bulletin board) system supported mainly
  15078.    by UNIX machines.  Originally implemented in 1979-1980 by Steve
  15079.    Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke
  15080.    University, it has swiftly grown to become international in scope
  15081.    and is now probably the largest decentralized information utility
  15082.    in existence.  As of early 1991, it hosts well over
  15083.    700 {newsgroup}s and an average of 16 megabytes (the equivalent
  15084.    of several thousand paper pages) of new technical articles, news,
  15085.    discussion, chatter, and {flamage} every day.
  15086.  
  15087. user: n. 1. Someone doing `real work' with the computer, using
  15088.    it as a means rather than an end.  Someone who pays to use a
  15089.    computer.  See {real user}.  2. A programmer who will believe
  15090.    anything you tell him.  One who asks silly questions.  [GLS
  15091.    observes: This is slightly unfair.  It is true that users ask
  15092.    questions (of necessity).  Sometimes they are thoughtful or deep.
  15093.    Very often they are annoying or downright stupid, apparently
  15094.    because the user failed to think for two seconds or look in the
  15095.    documentation before bothering the maintainer.]  See {luser}.
  15096.    3. Someone who uses a program from the outside, however skillfully,
  15097.    without getting into the internals of the program.  One who reports
  15098.    bugs instead of just going ahead and fixing them.
  15099.  
  15100.    The general theory behind this term is that there are two classes
  15101.    of people who work with a program: there are implementors (hackers)
  15102.    and {luser}s.  The users are looked down on by hackers to a mild
  15103.    degree because they don't understand the full ramifications of the
  15104.    system in all its glory.  (The few users who do are known as
  15105.    `real winners'.)  The term is a relative one: a skilled hacker
  15106.    may be a user with respect to some program he himself does not
  15107.    hack.  A LISP hacker might be one who maintains LISP or one who
  15108.    uses LISP (but with the skill of a hacker).  A LISP user is one who
  15109.    uses LISP, whether skillfully or not.  Thus there is some overlap
  15110.    between the two terms; the subtle distinctions must be resolved by
  15111.    context.
  15112.  
  15113. user-friendly: adj. Programmer-hostile.  Generally used by hackers in
  15114.    a critical tone, to describe systems that hold the user's hand so
  15115.    obsessively that they make it painful for the more experienced and
  15116.    knowledgeable to get any work done.  See {menuitis}, {drool-proof
  15117.    paper}, {Macintrash}, {user-obsequious}.
  15118.  
  15119. user-obsequious: adj. Emphatic form of {user-friendly}.  Connotes
  15120.    a system so verbose, inflexible, and determinedly simple-minded
  15121.    that it is nearly unusable.  "Design a system any fool can use and
  15122.    only a fool will want to use it."  See {WIMP environment},
  15123.    {Macintrash}.
  15124.  
  15125. USG UNIX: /U-S-G yoo'niks/ n. Refers to AT&T UNIX
  15126.    commercial versions after {Version 7}, especially System III and
  15127.    System V releases 1, 2, and 3.  So called because during most of
  15128.    the life-span of those versions AT&T's support crew was called the
  15129.    `UNIX Support Group'.  See {BSD}, {{UNIX}}.
  15130.  
  15131. UTSL: // [UNIX] n. On-line acronym for `Use the Source, Luke' (a
  15132.    pun on Obi-Wan Kenobi's "Use the Force, Luke!" in `Star
  15133.    Wars') --- analogous to {RTFM} but more polite.  This is a
  15134.    common way of suggesting that someone would be best off reading the
  15135.    source code that supports whatever feature is causing confusion,
  15136.    rather than making yet another futile pass through the manuals or
  15137.    broadcasting questions that haven't attracted {wizard}s to
  15138.    answer them.  In theory, this is appropriately directed only at
  15139.    associates of some outfit with a UNIX source license; in practice,
  15140.    bootlegs of UNIX source code (made precisely for reference
  15141.    purposes) are so ubiquitous that one may utter this at almost
  15142.    anyone on {the network} without concern.  In the near future
  15143.    (this written in 1991) source licenses may become even less
  15144.    important; after the recent release of the Mach 3.0 microkernal,
  15145.    given the continuing efforts of the {GNU} project, and with the
  15146.    4.4BSD release on the horizon, complete free source code for
  15147.    UNIX-clone toolsets and kernels should soon be widely available.
  15148.  
  15149. UUCPNET: n. The store-and-forward network consisting of all the
  15150.    world's connected UNIX machines (and others running some clone of
  15151.    the UUCP (UNIX-to-UNIX CoPy) software).  Any machine reachable only
  15152.    via a {bang path} is on UUCPNET.  See {network address}.
  15153.  
  15154. = V =
  15155.  
  15156. vadding: /vad'ing/ [from VAD, a permutation of ADV (i.e.,
  15157.    {ADVENT}), used to avoid a particular {admin}'s continual
  15158.    search-and-destroy sweeps for the game] n. A leisure-time activity
  15159.    of certain hackers involving the covert exploration of the `secret'
  15160.    parts of large buildings --- basements, roofs, freight elevators,
  15161.    maintenance crawlways, steam tunnels, and the like.  A few go so
  15162.    far as to learn locksmithing in order to synthesize vadding keys.
  15163.    The verb is `to vad' (compare {phreaking}).
  15164.  
  15165.    The most extreme and dangerous form of vadding is `elevator
  15166.    rodeo', a.k.a. `elevator surfing', a sport played by wrasslin'
  15167.    down a thousand-pound elevator car with a 3-foot piece of
  15168.    string, and then exploiting this mastery in various stimulating
  15169.    ways (such as elevator hopping, shaft exploration, rat-racing, and
  15170.    the ever-popular drop experiments).  Kids, don't try this at home! 
  15171.    See also {hobbit} (sense 2).
  15172.  
  15173. vanilla: [from the default flavor of ice cream in the U.S.] adj.
  15174.    Ordinary {flavor}, standard.  When used of food, very often does
  15175.    not mean that the food is flavored with vanilla extract!  For
  15176.    example, `vanilla wonton soup' means ordinary wonton soup, as
  15177.    opposed to hot-and-sour wonton soup.  Applied to hardware and
  15178.    software, as in "Vanilla Version 7 UNIX can't run on a
  15179.    vanilla 11/34."  Also used to orthogonalize chip nomenclature; for
  15180.    instance, a 74V00 means what TI calls a 7400, as distinct from
  15181.    a 74LS00, etc.  This word differs from {canonical} in that the
  15182.    latter means `default', whereas vanilla simply means `ordinary'.
  15183.    For example, when hackers go on a {great-wall}, hot-and-sour
  15184.    wonton soup is the {canonical} wonton soup to get (because that
  15185.    is what most of them usually order) even though it isn't the
  15186.    vanilla wonton soup.
  15187.  
  15188. vannevar: /van'*-var/ n. A bogus technological prediction or
  15189.    a foredoomed engineering concept, esp. one that fails by
  15190.    implicitly assuming that technologies develop linearly,
  15191.    incrementally, and in isolation from one another when in fact the
  15192.    learning curve tends to be highly nonlinear, revolutions are
  15193.    common, and competition is the rule.  The prototype was Vannevar
  15194.    Bush's prediction of `electronic brains' the size of the Empire
  15195.    State Building with a Niagara-Falls-equivalent cooling system for
  15196.    their tubes and relays, made at a time when the semiconductor effect had
  15197.    already been demonstrated.  Other famous vannevars have included
  15198.    magnetic-bubble memory, LISP machines, {videotex}, and a paper from
  15199.    the late 1970s that computed a purported ultimate limit on areal
  15200.    density for ICs that was in fact less than the routine densities
  15201.    of 5 years later.
  15202.  
  15203. vaporware: /vay'pr-weir/ n. Products announced far in advance of
  15204.    any release (which may or may not actually take place).
  15205.  
  15206. var: /veir/ or /var/ n. Short for `variable'.  Compare {arg},
  15207.    {param}.
  15208.  
  15209. VAX: /vaks/ n. 1. [from Virtual Address eXtension] The most
  15210.    successful minicomputer design in industry history, possibly
  15211.    excepting its immediate ancestor, the PDP-11.  Between its release
  15212.    in 1978 and its eclipse by {killer micro}s after about 1986, the VAX
  15213.    was probably the hacker's favorite machine of them all, esp.
  15214.    after the 1982 release of 4.2 BSD UNIX (see {BSD}).  Esp.
  15215.    noted for its large, assembler-programmer-friendly instruction set
  15216.    --- an asset that became a liability after the RISC revolution.
  15217.    2. A major brand of vacuum cleaner in Britain.  Cited here because
  15218.    its alleged sales pitch, "Nothing sucks like a VAX!" became a
  15219.    sort of battle-cry of RISC partisans.  Ironically, the slogan was
  15220.    *not* actually used by the Vax vacuum-cleaner people, but was
  15221.    actually that of a rival brand called Electrolux (as in "Nothing
  15222.    sucks like an...").  It is claimed, however, that DEC actually
  15223.    entered a cross-licensing deal with the vacuum-Vax people that
  15224.    allowed them to market VAX computers in the U.K. in return for not
  15225.    challenging the vacuum cleaner trademark in the U.S.
  15226.  
  15227. VAXectomy: /vak-sek't*-mee/ [by analogy with `vasectomy'] n. A
  15228.    VAX removal.  DEC's Microvaxen, especially, are much slower than
  15229.    newer RISC-based workstations such as the SPARC.  Thus, if one knows
  15230.    one has a replacement coming, VAX removal can be cause for
  15231.    celebration.
  15232.  
  15233. VAXen: /vak'sn/ [from `oxen', perhaps influenced by `vixen'] n.
  15234.    (alt. `vaxen') The plural canonically used among hackers for the
  15235.    DEC VAX computers.  "Our installation has four PDP-10s and twenty
  15236.    vaxen."  See {boxen}.
  15237.  
  15238. vaxherd: n. /vaks'herd/ [from `oxherd'] A VAX operator.
  15239.  
  15240. vaxism: /vak'sizm/ n. A piece of code that exhibits
  15241.    {vaxocentrism} in critical areas.  Compare {PC-ism},
  15242.    {unixism}.
  15243.  
  15244. vaxocentrism: /vak`soh-sen'trizm/ [analogy with
  15245.    `ethnocentrism'] n. A notional disease said to afflict
  15246.    C programmers who persist in coding according to certain assumptions that are 
  15247.    valid (esp. under UNIX) on {VAXen} but false elsewhere. Among
  15248.    these are:
  15249.  
  15250.   1.    The assumption that dereferencing a null pointer is safe because it
  15251.         is all bits 0, and location 0 is readable and 0.  Problem: this may
  15252.         instead cause an illegal-address trap on non-VAXen, and even on
  15253.         VAXen under OSes other than BSD UNIX.  Usually this is an implicit
  15254.         assumption of sloppy code (forgetting to check the pointer before
  15255.         using it), rather than deliberate exploitation of a
  15256.         misfeature.)
  15257.  
  15258.   2.    The assumption that characters are signed.
  15259.  
  15260.   3.    The assumption that a pointer to any one type can freely be cast
  15261.         into a pointer to any other type.  A stronger form of this is the
  15262.         assumption that all pointers are the same size and format, which
  15263.         means you don't have to worry about getting the types correct in
  15264.         calls.  Problem: this fails on word-oriented machines or others with
  15265.         multiple pointer formats.
  15266.  
  15267.   4.    The assumption that the parameters of a routine are stored in
  15268.         memory, contiguously, and in strictly ascending or descending order.
  15269.         Problem: this fails on many RISC architectures.
  15270.  
  15271.   5.    The assumption that pointer and integer types are the same size,
  15272.         and that pointers can be stuffed into integer variables (and
  15273.         vice-versa) and drawn back out without being truncated or mangled.
  15274.         Problem: this fails on segmented architectures or word-oriented
  15275.         machines with funny pointer formats.
  15276.  
  15277.   6.    The assumption that a data type of any size may begin at any byte
  15278.         address in memory (for example, that you can freely construct and
  15279.         dereference a pointer to a word- or greater-sized object at an odd
  15280.         char address).  Problem: this fails on many (esp. RISC)
  15281.         architectures better optimized for {HLL} execution speed, and
  15282.         can cause an illegal address fault or bus error.
  15283.  
  15284.   7.    The (related) assumption that there is no padding at the end of
  15285.         types and that in an array you can thus step right from the last
  15286.         byte of a previous component to the first byte of the next one.
  15287.         This is not only machine- but compiler-dependent.
  15288.  
  15289.   8.    The assumption that memory address space is globally flat and that
  15290.         the array reference `foo[-1]' is necessarily valid.  Problem:
  15291.         this fails at 0, or other places on segment-addressed machines like
  15292.         Intel chips (yes, segmentation is universally considered a
  15293.         {brain-damaged} way to design machines (see {moby}), but that
  15294.         is a separate issue).
  15295.  
  15296.   9.    The assumption that objects can be arbitrarily large with no
  15297.         special considerations.  Problem: this fails on segmented
  15298.         architectures and under non-virtual-addressing environments.
  15299.  
  15300.  10.    The assumption that the stack can be as large as memory.  Problem:
  15301.         this fails on segmented architectures or almost anything else without
  15302.         virtual addressing and a paged stack.
  15303.  
  15304.  11.    The assumption that bits and addressable units within an object
  15305.         are ordered in the same way and that this order is a constant of
  15306.         nature.  Problem: this fails on {big-endian} machines.
  15307.  
  15308.  12.    The assumption that it is meaningful to compare pointers to
  15309.         different objects not located within the same array, or to objects
  15310.         of different types.  Problem: the former fails on segmented
  15311.         architectures, the latter on word-oriented machines or others with
  15312.         multiple pointer formats.
  15313.  
  15314.  13.    The assumption that an `int' is 32 bits, or (nearly
  15315.         equivalently) the assumption that `sizeof(int) ==
  15316.         sizeof(long)'.  Problem: this fails on 286-based systems and even
  15317.         on 386 and 68000 systems under some compilers.
  15318.  
  15319.  14.    The assumption that `argv[]' is writable.  Problem: this fails in
  15320.         some embedded-systems C environments.
  15321.  
  15322.    Note that a programmer can validly be accused of vaxocentrism
  15323.    even if he or she has never seen a VAX.  Some of these assumptions
  15324.    (esp. 2--5) were valid on the PDP-11, the original C machine, and
  15325.    became endemic years before the VAX.  The terms `vaxocentricity'
  15326.    and `all-the-world's-a-VAX syndrome' have been used synonymously.
  15327.  
  15328. vdiff: /vee'dif/ v.,n. Visual diff.  The operation of finding
  15329.    differences between two files by {eyeball search}.  The term
  15330.    `optical diff' has also been reported.  See {diff}.
  15331.  
  15332. veeblefester: /vee'b*l-fes`tr/ [from the "Born Loser"
  15333.    comix via Commodore; prob. originally from `Mad' Magazine's
  15334.    `Veeblefeetzer' parodies ca. 1960] n. Any obnoxious person engaged
  15335.    in the (alleged) professions of marketing or management.  Antonym of
  15336.    {hacker}.  Compare {suit}, {marketroid}.
  15337.  
  15338. Venus flytrap: [after the insect-eating plant] n. See {firewall
  15339.    machine}.
  15340.  
  15341. verbage: /ver'b*j/ n. A deliberate misspelling and mispronunciation of
  15342.    {verbiage} that assimilates it to the word `garbage'.  Compare
  15343.    {content-free}.  More pejorative than `verbiage'.
  15344.  
  15345. verbiage: n. When the context involves a software or hardware
  15346.    system, this refers to {{documentation}}.  This term borrows the
  15347.    connotations of mainstream `verbiage' to suggest that the
  15348.    documentation is of marginal utility and that the motives behind
  15349.    its production have little to do with the ostensible subject.
  15350.  
  15351. Version 7: alt. V7 /vee' se'vn/ n. The 1978 unsupported release of
  15352.    {{UNIX}} ancestral to all current commercial versions.  Before
  15353.    the release of the POSIX/SVID standards, V7's features were often
  15354.    treated as a UNIX portability baseline.  See {BSD}, {USG UNIX},
  15355.    {{UNIX}}.  Some old-timers impatient with commercialization and
  15356.    kernel bloat still maintain that V7 was the Last True UNIX.
  15357.  
  15358. vgrep: /vee'grep/ v.,n. Visual grep.  The operation of finding
  15359.    patterns in a file optically rather than digitally.  See {grep};
  15360.    compare {vdiff}.
  15361.  
  15362. vi: /V-I/, *not* /vi:/ and *never* /siks/ [from
  15363.    `Visual Interface'] n. A screen editor crufted together by Bill Joy
  15364.    for an early {BSD} version.  Became the de facto standard UNIX
  15365.    editor and a nearly undisputed hacker favorite until the rise of
  15366.    {EMACS} after about 1984.  Tends to frustrate new users no end,
  15367.    as it will neither take commands while expecting input text nor
  15368.    vice versa, and the default setup provides no indication of which
  15369.    mode one is in (one correspondent accordingly reports that he has
  15370.    often heard the editor's name pronounced /vi:l/).  Nevertheless it
  15371.    is still widely used (about half the respondents in a 1991 USENET
  15372.    poll preferred it), and even EMACS fans often resort to it as a
  15373.    mail editor and for small editing jobs (mainly because it starts up
  15374.    faster than bulky EMACS).  See {holy wars}.
  15375.  
  15376. videotex: n. obs. An electronic service offering people the
  15377.    privilege of paying to read the weather on their television screens
  15378.    instead of having somebody read it to them for free while they
  15379.    brush their teeth.  The idea bombed everywhere it wasn't
  15380.    government-subsidized, because by the time videotex was practical
  15381.    the installed base of personal computers could hook up to
  15382.    timesharing services and do the things for which videotex might
  15383.    have been worthwhile better and cheaper.  Videotex planners badly
  15384.    overestimated both the appeal of getting information from a
  15385.    computer and the cost of local intelligence at the user's end.
  15386.    Like the {gorilla arm} effect, this has been a cautionary tale
  15387.    to hackers ever since.  See also {vannevar}.
  15388.  
  15389. virgin: adj. Unused; pristine; in a known initial state.  "Let's
  15390.    bring up a virgin system and see if it crashes again."  (Esp.
  15391.    useful after contracting a {virus} through {SEX}.)  Also, by
  15392.    extension, buffers and the like within a program that have not yet
  15393.    been used.
  15394.  
  15395. virtual: [via the technical term `virtual memory', prob. from the
  15396.    term `virtual image' in optics] adj. 1. Common alternative to
  15397.    {logical}.  2. Simulated; performing the functions of something
  15398.    that isn't really there.  An imaginative child's doll may be a
  15399.    virtual playmate.
  15400.  
  15401. virtual Friday: n. The last day before an extended weekend, if
  15402.    that day is not a `real' Friday.  For example, the U.S. holiday
  15403.    Thanksgiving is always on a Thursday.  The next day is often also
  15404.    a holiday or taken as an extra day off, in which case Wednesday of
  15405.    that week is a virtual Friday (and Thursday is a virtual Saturday,
  15406.    as is Friday).  There are also `virtual Mondays' that are
  15407.    actually Tuesdays, after the three-day weekends associated with many
  15408.    national holidays in the U.S.
  15409.  
  15410. virtual reality: n. 1. Computer simulations that use 3-D graphics
  15411.    and devices such as the Dataglove to allow the user to interact
  15412.    with the simulation.  See {cyberspace}.  2. A form of network
  15413.    interaction incorporating aspects of role-playing games,
  15414.    interactive theater, improvisational comedy, and `true confessions'
  15415.    magazines.  In a virtual reality forum (such as USENET's
  15416.    alt.callahans newsgroup or the {MUD} experiments on Internet),
  15417.    interaction between the participants is written like a shared novel
  15418.    complete with scenery, `foreground characters' that may be
  15419.    personae utterly unlike the people who write them, and common
  15420.    `background characters' manipulable by all parties.  The one
  15421.    iron law is that you may not write irreversible changes to a
  15422.    character without the consent of the person who `owns' it.
  15423.    Otherwise anything goes.  See {bamf}, {cyberspace}.
  15424.  
  15425. virus: [from the obvious analogy with biological viruses, via SF]
  15426.    n. A cracker program that searches out other programs and `infects'
  15427.    them by embedding a copy of itself in them, so that they become
  15428.    {Trojan Horse}s.  When these programs are executed, the embedded
  15429.    virus is executed too, thus propagating the `infection'.  This
  15430.    normally happens invisibly to the user.  Unlike a {worm}, a
  15431.    virus cannot infect other computers without assistance.  It is
  15432.    propagated by vectors such as humans trading programs with their
  15433.    friends (see {SEX}).  The virus may do nothing but propagate
  15434.    itself and then allow the program to run normally.  Usually,
  15435.    however, after propagating silently for a while, it starts doing
  15436.    things like writing cute messages on the terminal or playing
  15437.    strange tricks with your display (some viruses include nice
  15438.    {display hack}s).  Many nasty viruses, written by particularly
  15439.    perversely minded {cracker}s, do irreversible damage, like
  15440.    nuking all the user's files.
  15441.  
  15442.    In the 1990s, viruses have become a serious problem, especially
  15443.    among IBM PC and Macintosh users (the lack of security on these
  15444.    machines enables viruses to spread easily, even infecting the
  15445.    operating system).  The production of special anti-virus software
  15446.    has become an industry, and a number of exaggerated media reports
  15447.    have caused outbreaks of near hysteria among users; many
  15448.    {luser}s tend to blame *everything* that doesn't work as
  15449.    they had expected on virus attacks.  Accordingly, this sense of
  15450.    `virus' has passed not only into techspeak but into also popular
  15451.    usage (where it is often incorrectly used to denote a {worm} or
  15452.    even a {Trojan horse}).  Compare {back door}; see also
  15453.    {UNIX conspiracy}.
  15454.  
  15455. visionary: n. 1. One who hacks vision, in the sense of an
  15456.    Artificial Intelligence researcher working on the problem of
  15457.    getting computers to `see' things using TV cameras.  (There isn't
  15458.    any problem in sending information from a TV camera to a computer.
  15459.    The problem is, how can the computer be programmed to make use of
  15460.    the camera information?  See {SMOP}, {AI-complete}.)  2. [IBM]
  15461.    One who reads the outside literature.  At IBM, apparently, such a
  15462.    penchant is viewed with awe and wonder.
  15463.  
  15464. VMS: /V-M-S/ n. DEC's proprietary operating system for its VAX
  15465.    minicomputer; one of the seven or so environments that loom largest
  15466.    in hacker folklore.  Many UNIX fans generously concede that VMS
  15467.    would probably be the hacker's favorite commercial OS if UNIX
  15468.    didn't exist; though true, this makes VMS fans furious.  One major
  15469.    hacker gripe with VMS concerns its slowness --- thus the following
  15470.    limerick:
  15471.  
  15472.         There once was a system called VMS
  15473.         Of cycles by no means abstemious.
  15474.              It's chock-full of hacks
  15475.              And runs on a VAX
  15476.         And makes my poor stomach all squeamious.
  15477.                                          --- The Great Quux
  15478.  
  15479.    See also {VAX}, {{TOPS-10}}, {{TOPS-20}}, {{UNIX}}, {runic}.
  15480.  
  15481. voice: vt. To phone someone, as opposed to emailing them or
  15482.    connecting in talk mode.  "I'm busy now; I'll voice you later."
  15483.  
  15484. voice-net: n. Hackish way of referring to the telephone system,
  15485.    analogizing it to a digital network.  USENET {sig block}s not
  15486.    uncommonly include the sender's phone next to a "Voice:" or
  15487.    "Voice-Net:" header; common variants of this are "Voicenet" and
  15488.    "V-Net".  Compare {paper-net}, {snail-mail}.
  15489.  
  15490. voodoo programming: [from George Bush's "voodoo economics"] n.
  15491.    The use by guess or cookbook of an {obscure} or {hairy} system,
  15492.    feature, or algorithm that one does not truly understand.  The
  15493.    implication is that the technique may not work, and if it doesn't,
  15494.    one will never know why.  Almost synonymous with {black magic},
  15495.    except that black magic typically isn't documented and
  15496.    *nobody* understands it.  Compare {magic}, {deep magic},
  15497.    {heavy wizardry}, {rain dance}, {cargo cult programming},
  15498.    {wave a dead chicken}.
  15499.  
  15500. VR: // [MUD] n. On-line abbrev for {virtual reality}, as
  15501.    opposed to {RL}.
  15502.  
  15503. Vulcan nerve pinch: n. [from the old "Star Trek" TV series via
  15504.    Commodore Amiga hackers] The keyboard combination that forces a
  15505.    soft-boot or jump to ROM monitor (on machines that support such a
  15506.    feature).  On many micros this is Ctrl-Alt-Del; on Suns, L1-A; on
  15507.    some Macintoshes, it is <Cmd>-<Power switch>!  Also called
  15508.    {three-finger salute}.  Compare {quadruple bucky}.
  15509.  
  15510. vulture capitalist: n. Pejorative hackerism for `venture
  15511.    capitalist', deriving from the common practice of pushing contracts
  15512.    that deprive inventors of control over their own innovations and
  15513.    most of the money they ought to have made from them.
  15514.  
  15515. = W =
  15516.  
  15517. wabbit: /wab'it/ [almost certainly from Elmer Fudd's immortal
  15518.    line "You wascawwy wabbit!"] n. 1. A legendary early hack
  15519.    reported on a System/360 at RPI and elsewhere around 1978.  The
  15520.    program would make two copies of itself every time it was run,
  15521.    eventually crashing the system.  2. By extension, any hack that
  15522.    includes infinite self-replication but is not a {virus} or
  15523.    {worm}.  See also {cookie monster}.
  15524.  
  15525. WAITS:: /wayts/ n. The mutant cousin of {{TOPS-10}} used on a
  15526.    handful of systems at {{SAIL}} up to 1990.  There was never an
  15527.    `official' expansion of WAITS (the name itself having been arrived
  15528.    at by a rather sideways process), but it was frequently glossed as
  15529.    `West-coast Alternative to ITS'.  Though WAITS was less visible
  15530.    than ITS, there was frequent exchange of people and ideas between
  15531.    the two communities, and innovations pioneered at WAITS exerted
  15532.    enormous indirect influence.  The early screen modes of {EMACS},
  15533.    for example, were directly inspired by WAITS's `E' editor --- one
  15534.    of a family of editors that were the first to do `real-time
  15535.    editing', in which the editing commands were invisible and where
  15536.    one typed text at the point of insertion/overwriting.  The modern
  15537.    style of multi-region windowing is said to have originated there,
  15538.    and WAITS alumni at XEROX PARC and elsewhere played major roles in
  15539.    the developments that led to the XEROX Star, the Macintosh, and the
  15540.    Sun workstations.  {Bucky bits} were also invented there ---
  15541.    thus, the ALT key on every IBM PC is a WAITS legacy.  One notable
  15542.    WAITS feature seldom duplicated elsewhere was a news-wire interface
  15543.    that allowed WAITS hackers to read, store, and filter AP and UPI
  15544.    dispatches from their terminals; the system also featured a
  15545.    still-unusual level of support for what is now called `multimedia'
  15546.    computing, allowing analog audio and video signals to be switched
  15547.    to programming terminals.
  15548.  
  15549. waldo: /wol'doh/ [From Robert A. Heinlein's story "Waldo"]
  15550.    1. A mechanical agent, such as a gripper arm, controlled by a human
  15551.    limb.  When these were developed for the nuclear industry in the
  15552.    mid-1940s they were named after the invention described by Heinlein
  15553.    in the story, which he wrote in 1942.  Now known by the more
  15554.    generic term `telefactoring', this technology is of intense
  15555.    interest to NASA for tasks like space station maintenance.  2. At
  15556.    Harvard (particularly by Tom Cheatham and students), this is used
  15557.    instead of {foobar} as a meta-syntactic variable and general
  15558.    nonsense word.  See {foo}, {bar}, {foobar}, {quux}.
  15559.  
  15560. walk: n.,vt. Traversal of a data structure, especially an array or
  15561.    linked-list data structure in {core}.  See also {codewalker},
  15562.    {silly walk}, {clobber}.
  15563.  
  15564. walk off the end of: vt. To run past the end of an array, list, or      medium after stepping 
  15565. through it --- a good way to land in trouble.
  15566.    Often the result of an {off-by-one error}.  Compare
  15567.    {clobber}, {roach}, {smash the stack}.
  15568.  
  15569. walking drives: n. An occasional failure mode of magnetic-disk
  15570.    drives back in the days when they were huge, clunky {washing
  15571.    machine}s.  Those old {dinosaur} parts carried terrific angular
  15572.    momentum; the combination of a misaligned spindle or worn bearings
  15573.    and stick-slip interactions with the floor could cause them to
  15574.    `walk' across a room, lurching alternate corners forward a couple
  15575.    of millimeters at a time.  There is a legend about a drive that
  15576.    walked over to the only door to the computer room and jammed it
  15577.    shut; the staff had to cut a hole in the wall in order to get at
  15578.    it!  Walking could also be induced by certain patterns of drive
  15579.    access (a fast seek across the whole width of the disk, followed by
  15580.    a slow seek in the other direction).  Some bands of old-time
  15581.    hackers figured out how to induce disk-accessing patterns that
  15582.    would do this to particular drive models and held disk-drive races.
  15583.  
  15584. wall: [WPI] interj. 1. An indication of confusion, usually spoken
  15585.    with a quizzical tone:  "Wall??"  2. A request for further
  15586.    explication.  Compare {octal forty}.
  15587.  
  15588.    It is said that "Wall?" really came from `like talking to a
  15589.    blank wall'.  It was initially used in situations where, after you
  15590.    had carefully answered a question, the questioner stared at you
  15591.    blankly, clearly having understood nothing that was explained.  You
  15592.    would then throw out a "Hello, wall?" to elicit some sort of
  15593.    response from the questioner.  Later, confused questioners began
  15594.    voicing "Wall?" themselves.
  15595.  
  15596. wall follower: n. A person or algorithm that compensates for lack
  15597.    of sophistication or native stupidity by efficiently following some
  15598.    simple procedure shown to have been effective in the past.  Used of
  15599.    an algorithm, this is not necessarily pejorative; it recalls
  15600.    `Harvey Wallbanger', the winning robot in an early AI contest
  15601.    (named, of course, after the cocktail).  Harvey successfully solved
  15602.    mazes by keeping a `finger' on one wall and running till it came
  15603.    out the other end.  This was inelegant, but it was mathematically
  15604.    guaranteed to work on simply-connected mazes --- and, in fact,
  15605.    Harvey outperformed more sophisticated robots that tried to
  15606.    `learn' each maze by building an internal representation of it.
  15607.    Used of humans, the term *is* pejorative and implies an
  15608.    uncreative, bureaucratic, by-the-book mentality.  See also {code
  15609.    grinder}, {droid}.
  15610.  
  15611. wall time: n. (also `wall clock time') 1. `Real world' time (what
  15612.    the clock on the wall shows), as opposed to the system clock's idea
  15613.    of time.  2. The real running time of a program, as opposed to the
  15614.    number of {clocks} required to execute it (on a timesharing
  15615.    system these will differ, as no one program gets all the
  15616.    {clocks}, and on multiprocessor systems with good thread support
  15617.    one may get more processor clocks than real-time clocks).
  15618.  
  15619. wallpaper: n. 1. A file containing a listing (e.g., assembly
  15620.    listing) or a transcript, esp. a file containing a transcript of
  15621.    all or part of a login session.  (The idea was that the paper for
  15622.    such listings was essentially good only for wallpaper, as evidenced
  15623.    at Stanford, where it was used to cover windows.)  Now rare,
  15624.    esp. since other systems have developed other terms for it (e.g.,
  15625.    PHOTO on TWENEX).  However, the UNIX world doesn't have an
  15626.    equivalent term, so perhaps {wallpaper} will take hold there.
  15627.    The term probably originated on ITS, where the commands to begin
  15628.    and end transcript files were `:WALBEG' and `:WALEND',
  15629.    with default file `WALL PAPER' (the space was a path
  15630.    delimiter).  2. The background pattern used on graphical
  15631.    workstations (this is techspeak under the `Windows' graphical user
  15632.    interface to MS-DOS).  3. `wallpaper file' n. The file that
  15633.    contains the wallpaper information before it is actually printed on
  15634.    paper.  (Even if you don't intend ever to produce a real paper copy
  15635.    of the file, it is still called a wallpaper file.)
  15636.  
  15637. wango: /wang'goh/ n. Random bit-level {grovel}ling going on in
  15638.    a system during some unspecified operation.  Often used in
  15639.    combination with {mumble}.  For example: "You start with the `.o'
  15640.    file, run it through this postprocessor that does mumble-wango ---
  15641.    and it comes out a snazzy object-oriented executable."
  15642.  
  15643. wank: /wangk/ [Columbia University: prob. by mutation from
  15644.    Commonwealth slang v. `wank', to masturbate] n.,v. Used much as
  15645.    {hack} is elsewhere, as a noun denoting a clever technique or
  15646.    person or the result of such cleverness.  May describe (negatively)
  15647.    the act of hacking for hacking's sake ("Quit wanking, let's go get
  15648.    supper!")  or (more positively) a {wizard}.  Adj.  `wanky'
  15649.    describes something particularly clever (a person, program, or
  15650.    algorithm).  Conversations can also get wanky when there are too
  15651.    many wanks involved.  This excess wankiness is signalled by an
  15652.    overload of the `wankometer' (compare {bogometer}).  When the
  15653.    wankometer overloads, the conversation's subject must be changed,
  15654.    or all non-wanks will leave.  Compare `neep-neeping' (under
  15655.    {neep-neep}).  Usage: U.S. only.  In Britain and the Commonwealth
  15656.    this word is *extremely* rude and is best avoided unless one
  15657.    intends to give offense.
  15658.  
  15659. wannabee: /won'*-bee/ (also, more plausibly, spelled `wannabe')
  15660.    [from a term recently used to describe Madonna fans who dress,
  15661.    talk, and act like their idol; prob. originally from biker slang]
  15662.    n. A would-be {hacker}.  The connotations of this term differ
  15663.    sharply depending on the age and exposure of the subject.  Used of
  15664.    a person who is in or might be entering {larval stage}, it is
  15665.    semi-approving; such wannabees can be annoying but most hackers
  15666.    remember that they, too, were once such creatures.  When used of
  15667.    any professional programmer, CS academic, writer, or {suit}, it is
  15668.    derogatory, implying that said person is trying to cuddle up to the
  15669.    hacker mystique but doesn't, fundamentally, have a prayer of
  15670.    understanding what it is all about.  Overuse of terms from this lexicon
  15671.    is often an indication of the {wannabee} nature.  Compare
  15672.    {newbie}.
  15673.  
  15674.    Historical note: The wannabee phenomenon has a slightly different
  15675.    flavor now (1991) than it did ten or fifteen years ago.  When the
  15676.    people who are now hackerdom's tribal elders were in {larval
  15677.    stage}, the process of becoming a hacker was largely unconscious
  15678.    and unaffected by models known in popular culture --- communities
  15679.    formed spontaneously around people who, *as individuals*, felt
  15680.    irresistibly drawn to do hackerly things, and what wannabees
  15681.    experienced was a fairly pure, skill-focused desire to become
  15682.    similarly wizardly.  Those days of innocence are gone forever;
  15683.    society's adaptation to the advent of the microcomputer after 1980
  15684.    included the elevation of the hacker as a new kind of folk hero,
  15685.    and the result is that some people semi-consciously set out to
  15686.    *be hackers* and borrow hackish prestige by fitting the
  15687.    popular image of hackers.  Fortunately, to do this really well, one
  15688.    has to actually become a wizard.  Nevertheless, old-time hackers
  15689.    tend to share a poorly articulated disquiet about the change; among
  15690.    other things, it gives them mixed feelings about the effects of
  15691.    public compendia of lore like this one.
  15692.  
  15693. warm boot: n. See {boot}.
  15694.  
  15695. wart: n. A small, {crock}y {feature} that sticks out of an
  15696.    otherwise {clean} design.  Something conspicuous for localized
  15697.    ugliness, especially a special-case exception to a general rule.
  15698.    For example, in some versions of `csh(1)', single quotes
  15699.    literalize every character inside them except `!'.  In ANSI C,
  15700.    the `??' syntax used obtaining ASCII characters in a foreign
  15701.    environment is a wart.  See also {miswart}.
  15702.  
  15703. washing machine: n. Old-style 14-inch hard disks in floor-standing
  15704.    cabinets.  So called because of the size of the cabinet and the
  15705.    `top-loading' access to the media packs --- and, of course, they
  15706.    were always set on `spin cycle'.  The washing-machine idiom
  15707.    transcends language barriers; it is even used in Russian hacker
  15708.    jargon.  See also {walking drives}.  The thick channel cables
  15709.    connecting these were called `bit hoses' (see {hose}).
  15710.  
  15711. water MIPS: n. (see {MIPS}, sense 2) Large, water-cooled
  15712.    machines of either today's ECL-supercomputer flavor or yesterday's
  15713.    traditional {mainframe} type.
  15714.  
  15715.  
  15716. wave a dead chicken: v. To perform a ritual in the direction of
  15717.    crashed software or hardware that one believes to be futile but
  15718.    is nevertheless necessary so that others are satisfied that an
  15719.    appropriate degree of effort has been expended.  "I'll wave a dead
  15720.    chicken over the source code, but I really think we've run into an
  15721.    OS bug."  Compare {voodoo programming}, {rain dance}.
  15722.  
  15723. weasel: n. [Cambridge] A na"ive user, one who deliberately or
  15724.    accidentally does things that are stupid or ill-advised.  Roughly
  15725.    synonymous with {loser}.
  15726.  
  15727. wedged: [from a common description of recto-cranial inversion] adj.
  15728.    1. To be stuck, incapable of proceeding without help.  This is
  15729.    different from having crashed.  If the system has crashed, then it
  15730.    has become totally non-functioning.  If the system is wedged, it is
  15731.    trying to do something but cannot make progress; it may be capable
  15732.    of doing a few things, but not be fully operational.  For example,
  15733.    a process may become wedged if it {deadlock}s with another (but
  15734.    not all instances of wedging are deadlocks).  Being wedged is
  15735.    slightly milder than being {hung}.  See also {gronk}, {locked
  15736.    up}, {hosed}.  Describes a {deadlock}ed condition.  2. Often
  15737.    refers to humans suffering misconceptions.  "He's totally wedged
  15738.    --- he's convinced that he can levitate through meditation."
  15739.    3. [UNIX] Specifically used to describe the state of a TTY left in
  15740.    a losing state by abort of a screen-oriented program or one that
  15741.    has messed with the line discipline in some obscure way.
  15742.  
  15743. wedgie: [Fairchild] n. A bug.  Prob. related to {wedged}.
  15744.  
  15745. wedgitude: /wedj'i-t[y]ood/ n. The quality or state of being
  15746.    {wedged}.
  15747.  
  15748. weeble: /weeb'l/ [Cambridge] interj. Used to denote frustration,
  15749.    usually at amazing stupidity.  "I stuck the disk in upside down."
  15750.    "Weeble...." Compare {gurfle}.
  15751.  
  15752. weeds: n. 1. Refers to development projects or algorithms that have
  15753.    no possible relevance or practical application.  Comes from `off in
  15754.    the weeds'.  Used in phrases like "lexical analysis for microcode
  15755.    is serious weeds...."  2. At CDC/ETA before its demise, the
  15756.    phrase `go off in the weeds' was equivalent to IBM's {branch to
  15757.    Fishkill} and mainstream hackerdom's {jump off into never-never
  15758.    land}.
  15759.  
  15760. weenie: n. 1. When used with a qualifier (for example, as in
  15761.    {UNIX weenie}, VMS weenie, IBM weenie) this can be either an
  15762.    insult or a term of praise, depending on context, tone of voice,
  15763.    and whether or not it is applied by a person who considers
  15764.    him or herself to be the same sort of weenie.  Implies that the weenie
  15765.    has put a major investment of time, effort, and concentration into
  15766.    the area indicated; whether this is positive or negative depends on
  15767.    the hearer's judgment of how the speaker feels about that area.
  15768.    See also {bigot}.  2. The semicolon character, `;' (ASCII
  15769.    0111011).
  15770.  
  15771. Weenix: /wee'niks/ [ITS] n. A derogatory term for {{UNIX}},
  15772.    derived from {UNIX weenie}.  According to one noted ex-ITSer, it
  15773.    is "the operating system preferred by Unix Weenies: typified by
  15774.    poor modularity, poor reliability, hard file deletion, no file
  15775.    version numbers, case sensitivity everywhere, and users who believe
  15776.    that these are all advantages".  Some ITS fans behave as though
  15777.    they believe UNIX stole a future that rightfully belonged to them.
  15778.    See {{ITS}}, sense 2.
  15779.  
  15780. well-behaved: adj. 1. [primarily {{MS-DOS}}] Said of software
  15781.    conforming to system interface guidelines and standards.
  15782.    Well-behaved software uses the operating system to do chores such
  15783.    as keyboard input, allocating memory and drawing graphics.  Oppose
  15784.    {ill-behaved}.  2. Software that does its job quietly and
  15785.    without counterintuitive effects.  Esp. said of software having
  15786.    an interface spec sufficiently simple and well-defined that it can
  15787.    be used as a {tool} by other software. See {cat}.
  15788.  
  15789. well-connected: adj. Said of a computer installation, this means
  15790.    that it has reliable email links with {the network} and/or that
  15791.    it relays a large fraction of available {USENET} newsgroups.
  15792.    `Well-known' can be almost synonymous, but also implies that the
  15793.    site's name is familiar to many (due perhaps to an archive service
  15794.    or active USENET users).
  15795.  
  15796. wetware: /wet'weir/ [prob. from the novels of Rudy Rucker] n.
  15797.    1. The human nervous system, as opposed to computer hardware or
  15798.    software.  "Wetware has 7 plus or minus 2 temporary registers."
  15799.    2. Human beings (programmers, operators, administrators) attached
  15800.    to a computer system, as opposed to the system's hardware or
  15801.    software.  See {liveware}, {meatware}.
  15802.  
  15803. whacker: [University of Maryland: from {hacker}] n. 1. A person,
  15804.    similar to a {hacker}, who enjoys exploring the details of
  15805.    programmable systems and how to stretch their capabilities.
  15806.    Whereas a hacker tends to produce great hacks, a whacker only ends
  15807.    up whacking the system or program in question.  Whackers are often
  15808.    quite egotistical and eager to claim {wizard} status,
  15809.    regardless of the views of their peers.  2. A person who is good at
  15810.    programming quickly, though rather poorly and ineptly.
  15811.  
  15812. whales: n. See {like kicking dead whales down the beach}.
  15813.  
  15814. wheel: [from slang `big wheel' for a powerful person] n. A
  15815.    person who has an active a {wheel bit}.  "We need to find a
  15816.    wheel to un{wedge} the hung tape drives."
  15817.  
  15818. wheel bit: n. A privilege bit that allows the possessor to perform
  15819.    some restricted operation on a timesharing system, such as read or
  15820.    write any file on the system regardless of protections, change or
  15821.    look at any address in the running monitor, crash or reload the
  15822.    system, and kill or create jobs and user accounts.  The term was
  15823.    invented on the TENEX operating system, and carried over to
  15824.    TOPS-20, XEROX-IFS, and others.  The state of being in a privileged
  15825.    logon is sometimes called `wheel mode'.  This term entered the
  15826.    UNIX culture from TWENEX in the mid-1980s and has been gaining
  15827.    popularity there (esp. at university sites).  See also {root}.
  15828.  
  15829. wheel wars: [Stanford University] A period in {larval stage}
  15830.    during which student hackers hassle each other by attempting to log
  15831.    each other out of the system, delete each other's files, and
  15832.    otherwise wreak havoc, usually at the expense of the lesser users.
  15833.  
  15834. White Book: n. Syn. {K&R}.
  15835.  
  15836. whizzy: [Sun] adj. (alt. `wizzy') Describes a {cuspy} program;
  15837.    one that is feature-rich and well presented.
  15838.  
  15839. WIBNI: // [Bell Labs: Wouldn't It Be Nice If] n. What most
  15840.    requirements documents and specifications consist entirely of.
  15841.    Compare {IWBNI}.
  15842.  
  15843. widget: n. 1. A meta-thing.  Used to stand for a real object in
  15844.    didactic examples (especially database tutorials).  Legend has it
  15845.    that the original widgets were holders for buggy whips.  "But
  15846.    suppose the parts list for a widget has 52 entries...."
  15847.    2. [poss. evoking `window gadget'] A user interface object in
  15848.    {X} graphical user interfaces.
  15849.  
  15850. wiggles: n. [scientific computation] In solving partial differential
  15851.    equations by finite difference and similar methods, wiggles are
  15852.    sawtooth (up-down-up-down) oscillations at the shortest wavelength
  15853.    representable on the grid.  If an algorithm is unstable, this is
  15854.    often the most unstable waveform, so it grows to dominate the
  15855.    solution.  Alternatively, stable (though inaccurate) wiggles can be
  15856.    generated near a discontinuity by a Gibbs phenomenon.
  15857.  
  15858. WIMP environment: n. [acronymic from `Window, Icon, Menu, Pointing
  15859.    device (or Pull-down menu)'] A graphical-user-interface-based
  15860.    environment such as {X} or the Macintosh interface, as described
  15861.    by a hacker who prefers command-line interfaces for their superior
  15862.    flexibility and extensibility.  See {menuitis},
  15863.    {user-obsequious}.
  15864.  
  15865. win: [MIT] 1. vi. To succeed.  A program wins if no unexpected
  15866.    conditions arise, or (especially) if it sufficiently {robust} to
  15867.    take exceptions in stride.  2. n. Success, or a specific instance
  15868.    thereof.  A pleasing outcome.  A {feature}.  Emphatic forms:
  15869.    `moby win', `super win', `hyper-win' (often used
  15870.    interjectively as a reply).  For some reason `suitable win' is
  15871.    also common at MIT, usually in reference to a satisfactory solution
  15872.    to a problem.  Oppose {lose}; see also {big win}, which isn't
  15873.    quite just an intensification of `win'.
  15874.  
  15875. win big: vi. To experience serendipity.  "I went shopping and won
  15876.    big; there was a 2-for-1 sale." See {big win}.
  15877.  
  15878. win win: interj. Expresses pleasure at a {win}.
  15879.  
  15880. Winchester:: n. Informal generic term for `floating-head'
  15881.    magnetic-disk drives in which the read-write head planes over the
  15882.    disk surface on an air cushion.  The name arose because the
  15883.    original 1973 engineering prototype for what later became the
  15884.    IBM 3340 featured two 30-megabyte volumes; 30--30 became
  15885.    `Winchester' when somebody noticed the similarity to the common
  15886.    term for a famous Winchester rifle (in the latter, the first 30
  15887.    referred to caliber and the second to the grain weight of the
  15888.    charge).
  15889.  
  15890. winged comments: n. Comments set on the same line as code, as
  15891.    opposed to {boxed comments}.  In C, for example:
  15892.  
  15893.      d = sqrt(x*x + y*y);  /* distance from origin */
  15894.  
  15895.    Generally these refer only to the action(s) taken on that line.
  15896.  
  15897. winkey: n. (alt. `winkey face')  See {emoticon}.
  15898.  
  15899. winnage: /win'*j/ n. The situation when a lossage is corrected, or
  15900.    when something is winning.
  15901.  
  15902. winner: 1. n. An unexpectedly good situation, program, programmer,
  15903.    or person.  "So it turned out I could use a {lexer} generator
  15904.    instead of hand-coding my own pattern recognizer.  What a win!"
  15905.    2. `real winner': Often sarcastic, but also used as high praise
  15906.    (see also the note under {user}). "He's a real winner --- never
  15907.    reports a bug till he can duplicate it and send in an
  15908.    example."
  15909.  
  15910. winnitude: /win'*-t[y]ood/ n. The quality of winning (as opposed
  15911.    to {winnage}, which is the result of winning).  "Guess what?
  15912.    They tweaked the microcode and now the LISP interpreter runs twice
  15913.    as fast as it used to." "That's really great!  Boy, what
  15914.    winnitude!" "Yup. I'll probably get a half-hour's winnage on the
  15915.    next run of my program."  Perhaps curiously, the obvious antonym
  15916.    `lossitude' is rare.
  15917.  
  15918. wired: n. See {hardwired}.
  15919.  
  15920. wirehead: /wi:r'hed/ n. [prob. from SF slang for an
  15921.    electrical-brain-stimulation addict] 1. A hardware hacker,
  15922.    especially one who concentrates on communications hardware.  2. An
  15923.    expert in local-area networks.  A wirehead can be a network
  15924.    software wizard too, but will always have the ability to deal with
  15925.    network hardware, down to the smallest component.  Wireheads are
  15926.    known for their ability to lash up an Ethernet terminator from
  15927.    spare resistors, for example.
  15928.  
  15929. wish list: n. A list of desired features or bug fixes that probably
  15930.    won't get done for a long time, usually because the person
  15931.    responsible for the code is too busy or can't think of a clean way
  15932.    to do it.  "OK, I'll add automatic filename completion to the wish
  15933.    list for the new interface." Compare {tick-list features}.
  15934.  
  15935. within delta of: adj. See {delta}.
  15936.  
  15937. within epsilon of: adj. See {epsilon}.
  15938.  
  15939. wizard: n. 1. A person who knows how a complex piece of software
  15940.    or hardware works (that is, who {grok}s it); esp. someone who
  15941.    can find and fix bugs quickly in an emergency.  Someone is a
  15942.    {hacker} if he or she has general hacking ability, but is a wizard
  15943.    with respect to something only if he or she has specific detailed
  15944.    knowledge of that thing.  A good hacker could become a wizard for
  15945.    something given the time to study it.  2. A person who is permitted
  15946.    to do things forbidden to ordinary people; one who has {wheel}
  15947.    privileges on a system.  3. A UNIX expert, esp. a UNIX systems
  15948.    programmer.  This usage is well enough established that `UNIX
  15949.    Wizard' is a recognized job title at some corporations and to most
  15950.    headhunters.  See {guru}, {lord high fixer}.  See also
  15951.    {deep magic}, {heavy wizardry}, {incantation}, {magic},
  15952.    {mutter}, {rain dance}, {voodoo programming}, {wave a
  15953.    dead chicken}.
  15954.  
  15955. Wizard Book: n. Hal Abelson and Jerry Sussman's `Structure
  15956.    and Interpretation of Computer Programs' (MIT Press, 1984; ISBN
  15957.    0-262-01077-1, an excellent computer science text used in
  15958.    introductory courses at MIT.  So called because of the wizard on
  15959.    the jacket.  One of the {bible}s of the LISP/Scheme
  15960.    world.
  15961.  
  15962. wizard mode: [from {rogue}] n. A special access mode of a program or
  15963.    system, usually passworded, that permits some users godlike
  15964.    privileges.  Generally not used for operating systems themselves
  15965.    (`root mode' or `wheel mode' would be used instead).
  15966.  
  15967. wizardly: adj. Pertaining to wizards.  A wizardly {feature} is one
  15968.    that only a wizard could understand or use properly.
  15969.  
  15970. womb box: n. 1. [TMRC] Storage space for equipment.  2. [proposed]
  15971.    A variety of hard-shell equipment case with heavy interior padding
  15972.    and/or shaped carrier cutouts in a foam-rubber matrix; mundanely
  15973.    called a `flight case'.  Used for delicate test equipment,
  15974.    electronics, and musical instruments.
  15975.  
  15976. WOMBAT: [Waste Of Money, Brains, And Time] adj. Applied to problems
  15977.    which are both profoundly {uninteresting} in themselves and
  15978.    unlikely to benefit anyone interesting even if solved.  Often used
  15979.    in fanciful constructions such as `wrestling with a wombat'.  See
  15980.    also {crawling horror}, {SMOP}.  Also note the rather different
  15981.    usage as a meta-syntactic variable in {{Commonwealth Hackish}}.
  15982.  
  15983. wonky: /wong'kee/ [from Australian slang] adj. Yet another
  15984.    approximate synonym for {broken}.  Specifically connotes a
  15985.    malfunction that produces behavior seen as crazy, humorous, or
  15986.    amusingly perverse.  "That was the day the printer's font logic
  15987.    went wonky and everybody's listings came out in Tengwar."  Also in
  15988.    `wonked out'.  See {funky}, {demented}, {bozotic}.
  15989.  
  15990. workaround: n. A temporary {kluge} inserted in a system under
  15991.    development or test in order to avoid the effects of a {bug} or
  15992.    {misfeature} so that work can continue.  Theoretically,
  15993.    workarounds are always replaced by {fix}es; in practice,
  15994.    customers often find themselves living with workarounds in the
  15995.    first couple of releases.  "The code died on NUL characters in the
  15996.    input, so I fixed it to interpret them as spaces."  "That's not a
  15997.    fix, that's a workaround!"
  15998.  
  15999. working as designed: [IBM] adj. 1. In conformance to a wrong or
  16000.    inappropriate specification; useful, but misdesigned.
  16001.    2. Frequently used as a sardonic comment on a program's utility.
  16002.    3. Unfortunately also used as a bogus reason for not accepting a
  16003.    criticism or suggestion.  At {IBM}, this sense is used in
  16004.    official documents!  See {BAD}.
  16005.  
  16006. worm: [from `tapeworm' in John Brunner's novel `The
  16007.    Shockwave Rider', via XEROX PARC] n. A program that propagates
  16008.    itself over a network, reproducing itself as it goes.  Compare
  16009.    {virus}.  Nowadays the term has negative connotations, as it is
  16010.    assumed that only {cracker}s write worms.  Perhaps the
  16011.    best-known example was Robert T. Morris's `Internet Worm' of 1988,
  16012.    a `benign' one that got out of control and hogged hundreds of
  16013.    Suns and VAXen across the U.S.  See also {cracker}, {RTM},
  16014.    {Trojan horse}, {ice}.
  16015.  
  16016. wound around the axle: adj. In an infinite loop.  Often used by older
  16017.    computer types.
  16018.  
  16019. wrap around: vi. (also n. `wraparound' and v. shorthand `wrap')
  16020.    1. [techspeak] The action of a counter that starts over at zero or at
  16021.    `minus infinity' (see {infinity}) after its maximum value has
  16022.    been reached, and continues incrementing, either because it is
  16023.    programmed to do so or because of an overflow (as when a car's
  16024.    odometer starts over at 0).  2. To change {phase} gradually and
  16025.    continuously by maintaining a steady wake-sleep cycle somewhat
  16026.    longer than 24 hours, e.g., living six long (28-hour) days in a week
  16027.    (or, equivalently, sleeping at the rate of 10 microhertz).
  16028.  
  16029. write-only code: [a play on `read-only memory'] n. Code so
  16030.    arcane, complex, or ill-structured that it cannot be modified or
  16031.    even comprehended by anyone but its author, and possibly not even
  16032.    by him/her.  A {Bad Thing}.
  16033.  
  16034. write-only language: n. A language with syntax (or semantics)
  16035.    sufficiently dense and bizarre that any routine of significant size
  16036.    is {write-only code}.  A sobriquet applied occasionally to C and
  16037.    often to APL, though {INTERCAL} and {TECO} certainly deserve it
  16038.    more.
  16039.  
  16040. write-only memory: n. The obvious antonym to `read-only
  16041.    memory'.  Out of frustration with the long and seemingly useless
  16042.    chain of approvals required of component specifications, during
  16043.    which no actual checking seemed to occur, an engineer at Signetics
  16044.    once created a specification for a write-only memory and included
  16045.    it with a bunch of other specifications to be approved.  This
  16046.    inclusion came to the attention of Signetics {management} only
  16047.    when regular customers started calling and asking for pricing
  16048.    information.  Signetics published a corrected edition of the data
  16049.    book and requested the return of the `erroneous' ones.  Later,
  16050.    around 1974, Signetics bought a double-page spread in `Electronics'
  16051.    magazine's April issue and used the spec as an April Fools' Day
  16052.    joke.  Instead of the more conventional characteristic curves, the
  16053.    25120 "fully encoded, 9046 x N, Random Access, write-only-memory"
  16054.    data sheet included diagrams of "bit capacity vs. Temp.",
  16055.    "Iff vs. Vff", "Number of pins remaining vs. number of socket
  16056.    insertions", and "AQL vs. selling price".  The 25120 required a
  16057.    6.3 VAC VFF supply, a +10V VCC, and VDD of 0V,
  16058.    +/- 2%.
  16059.  
  16060. Wrong Thing: n. A design, action, or decision that is clearly
  16061.    incorrect or inappropriate.  Often capitalized; always emphasized
  16062.    in speech as if capitalized.  The opposite of the {Right Thing};
  16063.    more generally, anything that is not the Right Thing.  In cases
  16064.    where `the good is the enemy of the best', the merely good --- although
  16065.    good --- is nevertheless the Wrong Thing. "In C, the default is for
  16066.    module-level declarations to be visible everywhere, rather than
  16067.    just within the module.  This is clearly the Wrong Thing."
  16068.  
  16069. wugga wugga: /wuh'g* wuh'g*/ n. Imaginary sound that a computer
  16070.    program makes as it labors with a tedious or difficult task.
  16071.    Compare {cruncha cruncha cruncha}, {grind} (sense 4).
  16072.  
  16073. WYSIWYG: /wiz'ee-wig/ adj. Describes a user interface under which
  16074.    "What You See Is What You Get", as opposed to one that uses
  16075.    more-or-less obscure commands which do not result in immediate
  16076.    visual feedback.  The term can be mildly derogatory, as it is often
  16077.    used to refer to dumbed-down {user-friendly} interfaces targeted
  16078.    at non-programmers; a hacker has no fear of obscure commands.
  16079.    On the other hand, EMACS was one of the very first WYSIWYG editors,
  16080.    replacing (actually, at first overlaying) the extremely obscure,
  16081.    command-based {TECO}.  See also {WIMP environment}.  [Oddly
  16082.    enough, this term has already made it into the OED. --- ESR]
  16083.  
  16084. = X =
  16085.  
  16086. X: /X/ n. 1. Used in various speech and writing contexts (also
  16087.    in lowercase) in roughly its algebraic sense of `unknown within a
  16088.    set defined by context' (compare {N}).  Thus, the abbreviation
  16089.    680x0 stands for 68000, 68010, 68020, 68030, or 68040, and 80x86
  16090.    stands for 80186, 80286 80386 or 80486 (note that a UNIX hacker
  16091.    might write these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86
  16092.    respectively; see {glob}).  2. [after the name of an earlier
  16093.    window system called `W'] An over-sized, over-featured,
  16094.    over-engineered and incredibly over-complicated window system
  16095.    developed at MIT and widely used on UNIX systems.
  16096.  
  16097. XOFF: /X'of/ n. Syn. {control-s}.
  16098.  
  16099. xor: /X'or/, /kzor/ conj. Exclusive or.  `A xor B' means
  16100.    `A or B, but not both'.  "I want to get cherry pie xor a
  16101.    banana split."  This derives from the technical use of the term as
  16102.    a function on truth-values that is true if exactly one of its two
  16103.    arguments is true.
  16104.  
  16105. xref: /X'ref/ vt., n. Hackish standard abbreviation for
  16106.    `cross-reference'.
  16107.  
  16108. XXX: /X-X-X/ n. A marker that attention is needed.
  16109.    Commonly used in program comments to indicate areas that are kluged
  16110.    up or need to be.  Some hackers liken `XXX' to the notional
  16111.    heavy-porn movie rating.
  16112.  
  16113. xyzzy: /X-Y-Z-Z-Y/, /X-Y-ziz'ee/, /ziz'ee/, or /ik-ziz'ee/
  16114.    [from the ADVENT game] adj.  The {canonical} `magic word'.
  16115.    This comes from {ADVENT}, in which the idea is to explore an
  16116.    underground cave with many rooms and to collect the treasures you
  16117.    find there.  If you type `xyzzy' at the appropriate time, you can
  16118.    move instantly between two otherwise distant points.  If, therefore,
  16119.    you encounter some bit of {magic}, you might remark on this
  16120.    quite succinctly by saying simply "Xyzzy!"  "Ordinarily you
  16121.    can't look at someone else's screen if he has protected it, but if
  16122.    you type quadruple-bucky-clear the system will let you do it
  16123.    anyway."  "Xyzzy!"  Xyzzy has actually been implemented as an
  16124.    undocumented no-op command on several OSes; in Data General's
  16125.    AOS/VS, for example, it would typically respond "Nothing
  16126.    happens", just as {ADVENT} did if the magic was invoked at the
  16127.    wrong spot or before a player had performed the action that enabled
  16128.    the word.  See also {plugh}.
  16129.  
  16130. = Y =
  16131.  
  16132. YA-: [Yet Another] abbrev. In hackish acronyms this almost
  16133.    invariably expands to {Yet Another}, following the precedent set
  16134.    by UNIX `yacc(1)'.  See {YABA}.
  16135.  
  16136. YABA: /ya'b*/ [Cambridge] n. Yet Another Bloody Acronym.  Whenever
  16137.    some program is being named, someone invariably suggests that it be
  16138.    given a name that is acronymic.  The response from those with a
  16139.    trace of originality is to remark ironically that the proposed name
  16140.    would then be `YABA-compatible'.  Also used in response to questions
  16141.    like "What is WYSIWYG?"  See also {TLA}.
  16142.  
  16143. YAUN: /yawn/ [Acronym for `Yet Another UNIX Nerd'] n. Reported
  16144.    from the San Diego Computer Society (predominantly a microcomputer
  16145.    users' group) as a good-natured punning insult aimed at UNIX
  16146.    zealots.
  16147.  
  16148. Yellow Book: [proposed] n. The print version of this Jargon File;
  16149.    `The New Hacker's Dictionary', forthcoming from MIT Press,
  16150.    1991.  Includes all the material in the File, plus a Foreword by
  16151.    Guy L.  Steele and a Preface by Eric S. Raymond.  Most importantly,
  16152.    the book version is nicely typeset and includes almost all of the
  16153.    infamous Crunchly cartoons by the Great Quux, each attached to an
  16154.    appropriate entry.
  16155.  
  16156. Yet Another: adj. [From UNIX's `yacc(1)', `Yet Another Compiler-
  16157.    Compiler', a LALR parser generator]  1. Of your own work: A humorous
  16158.    allusion often used in titles to acknowledge that the topic is not
  16159.    original, though the content is.  As in `Yet Another AI Group'
  16160.    or `Yet Another Simulated Annealing Algorithm'.  2. Of others'
  16161.    work: Describes something of which there are far too many.  See
  16162.    also {YA-}, {YABA}, {YAUN}.
  16163.  
  16164. You are not expected to understand this: cav. [UNIX] The canonical
  16165.    comment describing something {magic} or too complicated to
  16166.    bother explaining properly.  From an infamous comment in the
  16167.    context-switching code of the V6 UNIX kernel.
  16168.  
  16169. You know you've been hacking too long when...: The set-up line
  16170.    for a genre of one-liners told by hackers about themselves.  These
  16171.    include the following:
  16172.  
  16173.    * not only do you check your email more often than your paper
  16174.      mail, but you remember your {network address} faster than your
  16175.      postal one.
  16176.    * your {SO} kisses you on the neck and the first thing you
  16177.      think is "Uh, oh, {priority interrupt}."
  16178.    * you go to balance your checkbook and discover that you're
  16179.      doing it in octal.
  16180.    * your computers have a higher street value than your car.
  16181.    * in your universe, `round numbers' are powers of 2, not 10.
  16182.    * more than once, you have woken up recalling a dream in
  16183.      some programming language.
  16184.    * you realize you have never seen half of your best friends.
  16185.  
  16186.    [An early version of this entry said "All but one of these
  16187.    have been reliably reported as hacker traits (some of them quite
  16188.    often).  Even hackers may have trouble spotting the ringer."  The
  16189.    ringer was balancing one's checkbook in octal, which I made up out
  16190.    of whole cloth.  Although more respondents picked that one
  16191.    out as fiction than any of the others, I also received multiple
  16192.    independent reports of its actually happening. --- ESR]
  16193.  
  16194. Your mileage may vary: cav. [from the standard disclaimer attached
  16195.    to EPA mileage ratings by American car manufacturers] 1. A ritual
  16196.    warning often found in UNIX freeware distributions.  Translates
  16197.    roughly as "Hey, I tried to write this portably, but who
  16198.    *knows* what'll happen on your system?"  2. A qualifier more
  16199.    generally attached to advice.  "I find that sending flowers works
  16200.    well, but your mileage may vary."
  16201.  
  16202. Yow!: /yow/ [from "Zippy the Pinhead" comix] interj. A favored hacker
  16203.    expression of humorous surprise or emphasis.  "Yow!  Check out what
  16204.    happens when you twiddle the foo option on this display hack!"
  16205.    Compare {gurfle}.
  16206.  
  16207. yoyo mode: n. The state in which the system is said to be when it
  16208.    rapidly alternates several times between being up and being down.
  16209.    Interestingly (and perhaps not by coincidence), many hardware
  16210.    vendors give out free yoyos at Usenix exhibits.
  16211.  
  16212.    Sun Microsystems gave out logoized yoyos at SIGPLAN '88.  Tourists
  16213.    staying at one of Atlanta's most respectable hotels were
  16214.    subsequently treated to the sight of 200 of the country's top
  16215.    computer scientists testing yo-yo algorithms in the lobby.
  16216.  
  16217. Yu-Shiang Whole Fish: /yoo-shyang hohl fish/ n. obs. The
  16218.    character gamma (extended SAIL ASCII 0001001), which with a loop in
  16219.    its tail looks like a little fish swimming down the page.  The term
  16220.    is actually the name of a Chinese dish in which a fish is cooked
  16221.    whole (not {parse}d) and covered with Yu-Shiang (or Yu-Hsiang)
  16222.    sauce.  Usage: primarily by people on the MIT LISP Machine, which
  16223.    could display this character on the screen.  Tends to elicit
  16224.    incredulity from people who hear about it second-hand.
  16225.  
  16226. = Z =
  16227.  
  16228. zap: 1. n. Spiciness.  2. vt. To make food spicy.  3. vt. To make
  16229.    someone `suffer' by making his food spicy.  (Most hackers love
  16230.    spicy food.  Hot-and-sour soup is considered wimpy unless it makes
  16231.    you wipe your nose for the rest of the meal.)  See {zapped}.
  16232.    4. vt. To modify, usually to correct; esp. used when the action
  16233.    is performed with a debugger or binary patching tool.  Also implies
  16234.    surgical precision.  "Zap the debug level to 6 and run it again."
  16235.    In the IBM mainframe world, binary patches are applied to programs
  16236.    or to the OS with a program called `superzap', whose file name is
  16237.    `IMASPZAP' (I M A SuPerZAP).  5. vt. To erase or reset.  6. To
  16238.    {fry} a chip with static electricity. "Uh oh --- I think that
  16239.    lightning strike may have zapped the disk controller."
  16240.  
  16241. zapped: adj. Spicy.  This term is used to distinguish between food
  16242.    that is hot (in temperature) and food that is *spicy*-hot.
  16243.    For example, the Chinese appetizer Bon Bon Chicken is a kind of
  16244.    chicken salad that is cold but zapped; by contrast, {vanilla}
  16245.    wonton soup is hot but not zapped.  See also {{oriental food}},
  16246.    {laser chicken}.  See {zap}, senses 1 and 2.
  16247.  
  16248. zen: vt. To figure out something by meditation or by a sudden flash
  16249.    of enlightenment.  Originally applied to bugs, but occasionally
  16250.    applied to problems of life in general.  "How'd you figure out the
  16251.    buffer allocation problem?"  "Oh, I zenned it."  Contrast {grok},
  16252.    which connotes a time-extended version of zenning a system.
  16253.    Compare {hack mode}.  See also {guru}.
  16254.  
  16255. zero: vt. 1. To set to 0.  Usually said of small pieces of data,
  16256.    such as bits or words (esp. in the construction `zero out').  2. To
  16257.    erase; to discard all data from.  Said of disks and directories,
  16258.    where `zeroing' need not involve actually writing zeroes throughout
  16259.    the area being zeroed.  One may speak of something being
  16260.    `logically zeroed' rather than being `physically zeroed'.  See
  16261.    {scribble}.
  16262.  
  16263. zero-content: adj. Syn. {content-free}.
  16264.  
  16265. zeroth: /zee'rohth/ adj. First.  Among software designers, comes
  16266.    from C's and LISP's 0-based indexing of arrays.  Hardware people
  16267.    also tend to start counting at 0 instead of 1; this is natural
  16268.    since, e.g., the 256 states of 8 bits correspond to the binary
  16269.    numbers 0, 1, ..., 255 and the digital devices known as `counters'
  16270.    count in this way.
  16271.  
  16272.    Hackers and computer scientists often like to call the first
  16273.    chapter of a publication `chapter 0', especially if it is of an
  16274.    introductory nature (one of the classic instances was in the First
  16275.    Edition of {K&R}).  In recent years this trait has also been
  16276.    observed among many pure mathematicians (who have an independent
  16277.    tradition of numbering from 0).  Zero-based numbering tends to
  16278.    reduce {fencepost error}s, though it cannot eliminate them
  16279.    entirely.
  16280.  
  16281. zigamorph: /zig'*-morf/ n. Hex FF (11111111) when used as a
  16282.    delimiter or {fence} character.  Usage: primarily at IBM
  16283.    shops.
  16284.  
  16285. zip: [primarily MS-DOS] vt. To create a compressed archive from a
  16286.    group of files using PKWare's PKZIP or a compatible archiver.  Its
  16287.    use is spreading now that portable implementations of the algorithm
  16288.    have been written.  Commonly used as follows: "I'll zip it up and
  16289.    send it to you."  See {arc}, {tar and feather}.
  16290.  
  16291. zipperhead: [IBM] n. A person with a closed mind.
  16292.  
  16293. zombie: [UNIX] n. A process that has died but has not yet
  16294.    relinquished its process table slot (because the parent process
  16295.    hasn't executed a `wait(2)' for it yet).  These can be seen in
  16296.    `ps(1)' listings occasionally.  Compare {orphan}.
  16297.  
  16298. zorch: /zorch/ 1. [TMRC] v. To attack with an inverse heat sink.
  16299.    2. [TMRC] v. To travel, with v approaching c [that
  16300.    is, with velocity approaching lightspeed --- ESR].  3. [MIT] v. To
  16301.    propel something very quickly.  "The new comm software is very
  16302.    fast; it really zorches files through the network."  4. [MIT] n.
  16303.    Influence.  Brownie points.  Good karma.  The intangible and fuzzy
  16304.    currency in which favors are measured.  "I'd rather not ask him
  16305.    for that just yet; I think I've used up my quota of zorch with him
  16306.    for the week."  5. [MIT] n. Energy, drive, or ability.  "I think
  16307.    I'll {punt} that change for now; I've been up for 30 hours
  16308.    and I've run out of zorch."
  16309.  
  16310. Zork: /zork/ n. The second of the great early experiments in computer
  16311.    fantasy gaming; see {ADVENT}.  Originally written on MIT-DM
  16312.    during the late 1970s, later distributed with BSD UNIX and
  16313.    commercialized as `The Zork Trilogy' by Infocom.
  16314.  
  16315. zorkmid: /zork'mid/ n. The canonical unit of currency in
  16316.    hacker-written games.  This originated in {zork} but has spread
  16317.    to {nethack} and is referred to in several other games.
  16318.  
  16319.  
  16320.  
  16321.  
  16322.  
  16323.  
  16324.  
  16325.  
  16326.  
  16327.  
  16328.  
  16329.  
  16330.  
  16331.  
  16332.  
  16333.  
  16334.  
  16335.  
  16336.  
  16337.  
  16338.  
  16339.  
  16340.  
  16341.  
  16342.  
  16343.  
  16344.  
  16345.  
  16346.  
  16347.  
  16348.  
  16349.  
  16350.  
  16351.  
  16352.  
  16353.  
  16354.  
  16355.  
  16356.  
  16357.  
  16358.  
  16359.  
  16360.  
  16361.  
  16362.  
  16363.  
  16364.  
  16365.  
  16366.  
  16367.  
  16368.  
  16369.  
  16370.  
  16371.  
  16372.  
  16373.  
  16374.  
  16375.  
  16376.  
  16377.