Hackers Dictionary

= A =

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

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

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

ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110]
   Acknowledge.  Used to register one’s presence (compare mainstream
   *Yo!*).  An appropriate response to {ping} or {ENQ}.
   2. [from the comic strip “Bloom County”] An exclamation of
   surprised disgust, esp. in “Ack pffft!”  Semi-humorous.
   Generally this sense is not spelled in caps (ACK) and is
   distinguished by a following exclamation point.  3. Used to
   politely interrupt someone to tell them you understand their point
   (see {NAK}).  Thus, for example, you might cut off an overly
   long explanation with “Ack.  Ack.  Ack.  I get it now”.

   There is also a usage “ACK?” (from sense 1) meaning “Are you
   there?”, often used in email when earlier mail has produced no
   reply, or during a lull in {talk mode} to see if the person has
   gone away (the standard humorous response is of course {NAK}
   (sense 2), i.e., “I’m not here”).

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

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

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

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

ADVENT: /ad’vent/ n. The prototypical computer adventure game, first
   implemented on the {PDP-10} by Will Crowther as an attempt at
   computer-refereed fantasy gaming, and expanded into a
   puzzle-oriented game by Don Woods.  Now better known as Adventure,
   but the {{TOPS-10}} operating system permitted only 6-letter
   filenames.  See also {vadding}.

   This game defined the terse, dryly humorous style now expected in
   text adventure games, and popularized several tag lines that have
   become fixtures of hacker-speak:  “A huge green fierce snake bars
   the way!”  “I see no X here” (for some noun X).  “You are in a
   maze of twisty little passages, all alike.”  “You are in a little
   maze of twisty passages, all different.”  The `magic words’
   {xyzzy} and {plugh} also derive from this game.

   Crowther, by the way, participated in the exploration of the
   Mammoth & Flint Ridge cave system; it actually *has* a
   `Colossal Cave’ and a `Bedquilt’ as in the game, and the `Y2′ that
   also turns up is cavers’ jargon for a map reference to a secondary

AI-complete: /A-I k*m-pleet’/ [MIT, Stanford: by analogy with
   `NP-complete’ (see {NP-})] adj. Used to describe problems or
   subproblems in AI, to indicate that the solution presupposes a
   solution to the `strong AI problem’ (that is, the synthesis of a
   human-level intelligence).  A problem that is AI-complete is, in
   other words, just too hard.

   Examples of AI-complete problems are `The Vision Problem’
   (building a system that can see as well as a human) and `The
   Natural Language Problem’ (building a system that can understand
   and speak a natural language as well as a human).  These may appear
   to be modular, but all attempts so far (1991) to solve them have
   foundered on the amount of context information and `intelligence’
   they seem to require. See also {gedanken}.

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

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

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

aliasing bug: n. A class of subtle programming errors that can
   arise in code that does dynamic allocation, esp. via
   `malloc(3)’ or equivalent.  If more than one pointer addresses
   (`aliases for’) a given hunk of storage, it may happen that the
   storage is freed through one alias and then referenced through
   another, which may lead to subtle (and possibly intermittent) lossage
   depending on the state and the allocation history of the malloc
   {arena}.  Avoidable by use of allocation strategies that never
   alias allocated core.  Also avoidable by use of higher-level
   languages, such as {LISP}, which employ a garbage collector
   (see {GC}).  Also called a {stale pointer bug}.  See also
   {precedence lossage}, {smash the stack}, {fandango on core},
   {memory leak}, {overrun screw}, {spam}.

   Historical note: Though this term is nowadays associated with
   C programming, it was already in use in a very similar sense in the
   Algol-60 and FORTRAN communities in the 1960s.

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

alpha particles: n. See {bit rot}.

ALT: /awlt/ 1. n. The ALT shift key on an IBM PC or {clone}.
   2. [possibly lowercased] n. The `clover’ or `Command’ key on a
   Macintosh; use of this term usually reveals that the speaker hacked
   PCs before coming to the Mac (see also {command key}).  Some Mac
   hackers, confusingly, reserve `ALT’ for the Option key.  3. n.obs.
   [PDP-10] Alternate name for the ASCII ESC character (ASCII
   0011011), after the keycap labeling on some older terminals.  Also
   `ALTMODE’ (/awlt’mohd/).  This character was almost never
   pronounced `escape’ on an ITS system, in {TECO}, or under
   TOPS-10 — always ALT, as in “Type ALT ALT to end a TECO
   command” or “ALT U onto the system” (for “log onto the [ITS]
   system”).  This was probably because ALT is more convenient to say
   than `escape’, especially when followed by another ALT or a
   character (or another ALT *and* a character, for that matter).

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

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

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

amp off: [Purdue] vt. To run in {background}.  From the UNIX shell `&’

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

angle brackets: n. Either of the characters `’ (ASCII 0111110) (ASCII less-than or
   greater-than signs).  The {Real World} angle brackets used by
   typographers are actually taller than a less-than or greater-than
   See {broket}, {{ASCII}}.

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

AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a
   PDP-10 increment instruction] vt.,obs. To increase the amount of
   something.  “AOS the campfire.”  Usage: considered silly, and now
   obsolete.  Now largely supplanted by {bump}.  See {SOS}.  2. A
   {{Multics}}-derived OS supported at one time by Data General.  This
   was pronounced /A-O-S/ or /A-os/.  A spoof of the standard
   AOS system administrator’s manual (`How to load and generate
   your AOS system’) was created, issued a part number, and circulated
   as photocopy folklore.  It was called `How to goad and
   levitate your chaos system’.  3. Algebraic Operating System, in
   reference to those calculators which use infix instead of postfix
   (reverse Polish) notation.

   Historical note: AOS in sense 1 was the name of a {PDP-10}
   instruction that took any memory location in the computer and added
   1 to it; AOS meant `Add One and do not Skip’.  Why, you may ask,
   does the `S’ stand for `do not Skip’ rather than for `Skip’?  Ah,
   here was a beloved piece of PDP-10 folklore.  There were eight such
   instructions: AOSE added 1 and then skipped the next instruction
   if the result was Equal to zero; AOSG added 1 and then skipped if
   the result was Greater than 0; AOSN added 1 and then skipped
   if the result was Not 0; AOSA added 1 and then skipped Always;
   and so on.  Just plain AOS didn’t say when to skip, so it never

   For similar reasons, AOJ meant `Add One and do not Jump’.  Even
   more bizarre, SKIP meant `do not SKIP’!  If you wanted to skip the
   next instruction, you had to say `SKIPA’.  Likewise, JUMP meant
   `do not JUMP’; the unconditional form was JUMPA.  However, hackers
   never did this.  By some quirk of the 10’s design, the {JRST}
   (Jump and ReSTore flag with no flag specified) was actually faster
   and so was invariably used.  Such were the perverse mysteries of
   assembler programming.

app: /ap/ n. Short for `application program’, as opposed to a
   systems program.  What systems vendors are forever chasing
   developers to create for their environments so they can sell more
   boxes.  Hackers tend not to think of the things they themselves run
   as apps; thus, in hacker parlance the term excludes compilers,
   program editors, games, and messaging systems, though a user would
   consider all those to be apps.  Oppose {tool}, {operating

arc: [primarily MSDOS] vt. To create a compressed {archive} from a
   group of files using SEA ARC, PKWare PKARC, or a compatible
   program.  Rapidly becoming obsolete as the ARC compression method
   is falling into disuse, having been replaced by newer compression
   techniques.  See {tar and feather}, {zip}.

arc wars: [primarily MSDOS] n. {holy wars} over which archiving
   program one should use.  The first arc war was sparked when System
   Enhancement Associates (SEA) sued PKWare for copyright and
   trademark infringement on its ARC program.  PKWare’s PKARC
   outperformed ARC on both compression and speed while largely
   retaining compatibility (it introduced a new compression type that
   could be disabled for backward-compatibility).  PKWare settled out
   of court to avoid enormous legal costs (both SEA and PKWare are
   small companies); as part of the settlement, the name of PKARC was
   changed to PKPAK.  The public backlash against SEA for bringing
   suit helped to hasten the demise of ARC as a standard when PKWare
   and others introduced new, incompatible archivers with better
   compression algorithms.

archive: n. 1. A collection of several files bundled into one file
   by a program such as `ar(1)’, `tar(1)’, `cpio(1)’,
   or {arc} for shipment or archiving (sense 2).  See also {tar
   and feather}.  2. A collection of files or archives (sense 1) made
   available from an `archive site’ via {FTP} or an email server.

arena: [UNIX] n. The area of memory attached to a process by
   `brk(2)’ and `sbrk(2)’ and used by `malloc(3)’ as
   dynamic storage.  So named from a semi-mythical `malloc:
   corrupt arena’ message supposedly emitted when some early versions
   became terminally confused.  See {overrun screw}, {aliasing
   bug}, {memory leak}, {smash the stack}.

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

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

asbestos: adj. Used as a modifier to anything intended to protect
   one from {flame}s.  Important cases of this include {asbestos
   longjohns} and {asbestos cork award}, but it is used more

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

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

ASCII:: [American Standard Code for Information Interchange]
   /as’kee/ n. The predominant character set encoding of present-day
   computers.  Uses 7 bits for each character, whereas most earlier
   codes (including an early version of ASCII) used fewer.  This
   change allowed the inclusion of lowercase letters — a major
   {win} — but it did not provide for accented letters or any
   other letterforms not used in English (such as the German sharp-S
   and the ae-ligature
   which is a letter in, for example, Norwegian).  It could be worse,
   though.  It could be much worse.  See {{EBCDIC}} to understand how.
   Computers are much pickier and less flexible about spelling than
   humans; thus, hackers need to be very precise when talking about
   characters, and have developed a considerable amount of verbal
   shorthand for them.  Every character has one or more names — some
   formal, some concise, some silly.  Common jargon names for ASCII
   characters are collected here.  See also individual entries for
   {bang}, {excl}, {open}, {ques}, {semi}, {shriek},
   {splat}, {twiddle}, and {Yu-Shiang Whole Fish}.

   This list derives from revision 2.3 of the USENET ASCII
   pronunciation guide.  Single characters are listed in ASCII order;
   character pairs are sorted in by first member.  For each character,
   common names are given in rough order of popularity, followed by
   names that are reported but rarely seen; official ANSI/CCITT names
   are surrounded by brokets: .  Square brackets mark the
   particularly silly names introduced by {INTERCAL}.  Ordinary
   parentheticals provide some usage information.

          Common: {bang}; pling; excl; shriek; .
          Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
          wham; [spark-spot]; soldier.

          Common: double quote; quote.  Rare: literal mark;
          double-glitch; ; ; dirk;
          [rabbit-ears]; double prime.

          Common: ; pound; pound sign; hash; sharp;
          {crunch}; hex; [mesh]; octothorpe.  Rare: flash; crosshatch;
          grid; pig-pen; tictactoe; scratchmark; thud; thump; {splat}.

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

          Common: percent; ; mod; grapes.  Rare:

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

          Common: single quote; quote; .  Rare: prime;
          glitch; tick; irk; pop; [spark]; ; .

          Common: left/right paren; left/right parenthesis; left/right; paren/thesis;
          open/close paren; open/close; open/close parenthesis; left/right banana.
          Rare: so/al-ready; lparen/rparen; ;
          open/close round bracket, parenthisey/unparenthisey; [wax/wane];
          left/right ear.

          Common: star; [{splat}]; .  Rare: wildcard; gear;
          dingle; mult; spider; aster; times; twinkle; glob (see
          {glob}); {Nathan Hale}.

          Common: ; add.  Rare: cross; [intersection].

          Common: .  Rare: ; [tail].

          Common: dash; ; .  Rare: [worm]; option; dak;

          Common: dot; point; ; .  Rare: radix
          point; full stop; [spot].

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

          Common: .  Rare: dots; [two-spot].

          Common: ; semi.  Rare: weenie; [hybrid],

          Common: ; left/right angle bracket;
          bra/ket; left/right broket.  Rare: from/{into, towards}; read
          from/write to; suck/blow; comes-from/gozinta; in/out;
          crunch/zap (all from UNIX); [angle/right angle].

          Common: ; gets; takes.  Rare: quadrathorpe;

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

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

          Rare: [book].

          Common: left/right square bracket; ;
          bracket/unbracket; left/right bracket.  Rare: square/unsquare;
          [U turn/U turn back].

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

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

          Common: ; underscore; underbar; under.  Rare:
          score; backarrow; [flatworm].

          Common: backquote; left quote; left single quote; open quote;
          ; grave.  Rare: backprime; [backspark];
          unapostrophe; birk; blugle; back tick; back glitch; push;
          ; quasiquote.

          Common: open/close brace; left/right brace; left/right
          squiggly; left/right squiggly bracket/brace; left/right curly
          bracket/brace; .  Rare: brace/unbrace;
          curly/uncurly; leftit/rytit; left/right squirrelly;

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

          Common: ; squiggle; {twiddle}; not.  Rare: approx;
          wiggle; swung dash; enyay; [sqiggle (sic)].

   The pronunciation of `#’ as `pound’ is common in the U.S. but
   a bad idea; {{Commonwealth Hackish}} has its own, rather more apposite
   use of `pound sign’ (confusingly, on British keyboards the pound
   happens to replace `#’; thus Britishers sometimes call `#’
   on a U.S.-ASCII keyboard `pound’, compounding the American error).
   The U.S. usage derives from an old-fashioned commercial practice of
   using a `#’ suffix to tag pound weights on bills of lading.
   The character is usually pronounced `hash’ outside the U.S.

   The `uparrow’ name for circumflex and `leftarrow’ name for
   underline are historical relics from archaic ASCII (the 1963
   version), which had these graphics in those character positions
   rather than the modern punctuation characters.

   The `swung dash’ or `approximation’ sign is not quite the same
   as tilde in typeset material
   but the ASCII tilde serves for both (compare {angle

   Some other common usages cause odd overlaps.  The `#’,
   `$’, `>’, and `&’ characters, for example, are all
   pronounced “hex” in different communities because various
   assemblers use them as a prefix tag for hexadecimal constants (in
   particular, `#’ in many assembler-programming cultures,
   `$’ in the 6502 world, `>’ at Texas Instruments, and
   `&’ on the BBC Micro, Sinclair, and some Z80 machines).  See
   also {splat}.

   The inability of ASCII text to correctly represent any of the
   world’s other major languages makes the designers’ choice of 7 bits
   look more and more like a serious {misfeature} as the use of
   international networks continues to increase (see {software
   rot}).  Hardware and software from the U.S. still tends to embody
   the assumption that ASCII is the universal character set; this is a
   a major irritant to people who want to use a character set suited
   to their own languages.  Perversely, though, efforts to solve this
   problem by proliferating `national’ character sets produce an
   evolutionary pressure to use a *smaller* subset common to all
   those in use.

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

         o—-)||(–+–||-+  |   +-\/\/-+–o –   T
         C N  )||(        |  |   |      |        P
           E  )||(  +–>|-+–)—+–)|–+-o      U
              )||(  |        |          | GND    T

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

                               Figure 1.

   And here are some very silly examples:

       |\/\/\/|     ____/|              ___    |\_/|    ___
       |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
       |      |      =(_)=  THPHTH!   /      \/     \/      \
       | (o)(o)        U             /                       \
       C      _)  (__)                \/\/\/\  _____  /\/\/\/
       | ,___|    (oo)                       \/     \/
       |   /       \/——-\         U                  (__)
      /____\        ||     | \    /—V  `v'-            oo )
     /      \       ||—W||  *  * |–|   || |`.         |_/\

                               Figure 2.

   There is an important subgenre of humorous ASCII art that takes
   advantage of the names of the various characters to tell a
   pun-based joke.

     |      ^^^^^^^^^^^^                                      |
     | ^^^^^^^^^^^            ^^^^^^^^^                       |
     |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
     |        ^^^^^^^         B       ^^^^^^^^^               |
     |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
                  " A Bee in the Carrot Patch "

                               Figure 3.

   Within humorous ASCII art, there is for some reason an entire
   flourishing subgenre of pictures of silly cows.  Four of these are
   reproduced in Figure 2; here are three more:

              (__)              (__)              (__)
              (\/)              ($$)              (**)
       /——-\/        /——-\/        /——-\/
      / | 666 ||        / |=====||        / |     ||
     *  ||—-||       *  ||—-||       *  ||—-||
        ~~    ~~          ~~    ~~          ~~    ~~
     Satanic cow    This cow is a Yuppie   Cow in love

                               Figure 4.

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

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

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

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

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

= B =

back door: n. A hole in the security of a system deliberately left
   in place by designers or maintainers.  The motivation for this is
   not always sinister; some operating systems, for example, come out
   of the box with privileged accounts intended for use by field
   service technicians or the vendor's maintenance programmers.

   Historically, back doors have often lurked in systems longer than
   anyone expected or planned, and a few have become widely known.
   The infamous {RTM} worm of late 1988, for example, used a back door
   in the {BSD} UNIX `sendmail(8)' utility.

   Ken Thompson's 1983 Turing Award lecture to the ACM revealed the
   existence of a back door in early UNIX versions that may have
   qualified as the most fiendishly clever security hack of all time.
   The C compiler contained code that would recognize when the
   `login' command was being recompiled and insert some code
   recognizing a password chosen by Thompson, giving him entry to the
   system whether or not an account had been created for him.

   Normally such a back door could be removed by removing it from the
   source code for the compiler and recompiling the compiler.  But to
   recompile the compiler, you have to *use* the compiler — so
   Thompson also arranged that the compiler would *recognize when
   it was compiling a version of itself*, and insert into the
   recompiled compiler the code to insert into the recompiled `login'
   the code to allow Thompson entry — and, of course, the code to
   recognize itself and do the whole thing again the next time around!
   And having done this once, he was then able to recompile the
   compiler from the original sources, leaving his back door in place
   and active but with no trace in the sources.

   The talk that revealed this truly moby hack was published as
   "Reflections on Trusting Trust", `Communications of the
   ACM 27', 8 (August 1984), pp. 761–763.

   Syn. {trap door}; may also be called a `wormhole'.  See also
   {iron box}, {cracker}, {worm}, {logic bomb}.

backbone cabal: n. A group of large-site administrators who pushed
   through the {Great Renaming} and reined in the chaos of {USENET}
   during most of the 1980s.  The cabal {mailing list} disbanded in
   late 1988 after a bitter internal catfight, but the net hardly

backbone site: n. A key USENET and email site; one that processes
   a large amount of third-party traffic, especially if it is the home
   site of any of the regional coordinators for the USENET maps.
   Notable backbone sites as of early 1991 include uunet and the
   mail machines at Rutgers University, UC Berkeley, DEC's Western
   Research Laboratories, Ohio State University, and the University of
   Texas.  Compare {rib site}, {leaf site}.

backgammon:: See {bignum}, {moby}, and {pseudoprime}.

background: n.,adj.,vt.  To do a task `in background' is to do
   it whenever {foreground} matters are not claiming your undivided
   attention, and `to background' something means to relegate it to
   a lower priority.  "For now, we'll just print a list of nodes and
   links; I'm working on the graph-printing problem in background."
   Note that this implies ongoing activity but at a reduced level or
   in spare time, in contrast to mainstream `back burner' (which
   connotes benign neglect until some future resumption of activity).
   Some people prefer to use the term for processing that they have
   queued up for their unconscious minds (a tack that one can often
   fruitfully take upon encountering an obstacle in creative work).
   Compare {amp off}, {slopsucker}.

   Technically, a task running in background is detached from the
   terminal where it was started (and often running at a lower
   priority); oppose {foreground}.  Nowadays this term is primarily
   associated with {{UNIX}}, but it appears to have been first used
   in this sense on OS/360.

backspace and overstrike: interj. Whoa!  Back up.  Used to suggest
   that someone just said or did something wrong.  Common among
   APL programmers.

backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ [from
   `backward compatibility'] n. A property of hardware or software
   revisions in which previous protocols, formats, and layouts are
   discarded in favor of `new and improved' protocols, formats, and
   layouts.  Occurs usually when making the transition between major
   releases.  When the change is so drastic that the old formats are
   not retained in the new version, it is said to be `backward
   combatable'.  See {flag day}.

BAD: /B-A-D/ [IBM: acronym, `Broken As Designed'] adj.  Said
   of a program that is {bogus} because of bad design and misfeatures
   rather than because of bugginess.  See {working as designed}.

Bad Thing: [from the 1930 Sellar & Yeatman parody `1066 And
   All That'] n. Something that can't possibly result in improvement
   of the subject.  This term is always capitalized, as in "Replacing
   all of the 9600-baud modems with bicycle couriers would be a Bad
   Thing".  Oppose {Good Thing}.  British correspondents confirm
   that {Bad Thing} and {Good Thing} (and prob. therefore {Right
   Thing} and {Wrong Thing}) come from the book referenced in the
   etymology, which discusses rulers who were Good Kings but Bad
   Things.  This has apparently created a mainstream idiom on the
   British side of the pond.

bag on the side: n. An extension to an established hack that is
   supposed to add some functionality to the original.  Usually
   derogatory, implying that the original was being overextended and
   should have been thrown away, and the new product is ugly,
   inelegant, or bloated.  Also v. phrase, `to hang a bag on the side
   [of]'.  "C++?  That's just a bag on the side of C …." "They
   want me to hang a bag on the side of the accounting system."

bagbiter: /bag'bi:t-*r/ n. 1. Something, such as a program or a
   computer, that fails to work, or works in a remarkably clumsy
   manner.  "This text editor won't let me make a file with a line
   longer than 80 characters!  What a bagbiter!"  2. A person who has
   caused you some trouble, inadvertently or otherwise, typically by
   failing to program the computer properly.  Synonyms: {loser},
   {cretin}, {chomper}.  3. adj. `bagbiting' Having the
   quality of a bagbiter.  "This bagbiting system won't let me
   compute the factorial of a negative number."  Compare {losing},
   {cretinous}, {bletcherous}, `barfucious' (under
   {barfulous}) and `chomping' (under {chomp}).  4. `bite
   the bag' vi. To fail in some manner.  "The computer keeps crashing
   every 5 minutes."  "Yes, the disk controller is really biting the
   bag."  The original loading of these terms was almost undoubtedly
   obscene, possibly referring to the scrotum, but in their current
   usage they have become almost completely sanitized.

   A program called Lexiphage on the old MIT AI PDP-10 would draw on
   a selected victim's bitmapped terminal the words "THE BAG" in
   ornate letters, and then a pair of jaws biting pieces of it off.
   This is the first and to date only known example of a program
   *intended* to be a bagbiter.

bamf: /bamf/ 1. [from old X-Men comics] interj. Notional sound made
   by a person or object teleporting in or out of the hearer's
   vicinity.  Often used in {virtual reality} (esp. {MUD})
   electronic {fora} when a character wishes to make a dramatic entrance
   or exit.  2. The sound of magical transformation, used in virtual
   reality {fora} like sense 1.  3. [from `Don Washington's
   Survival Guide'] n. Acronym for `Bad-Ass Mother Fucker', used to
   refer to one of the handful of nastiest monsters on an LPMUD or
   other similar MUD.

banana label: n. The labels often used on the sides of {macrotape}
   reels, so called because they are shaped roughly like blunt-ended
   bananas.  This term, like macrotapes themselves, is still current
   but visibly headed for obsolescence.

banana problem: n. [from the story of the little girl who said "I
   know how to spell `banana', but I don't know when to stop"].  Not
   knowing where or when to bring a production to a close (compare
   {fencepost error}).  One may say `there is a banana problem' of an
   algorithm with poorly defined or incorrect termination conditions,
   or in discussing the evolution of a design that may be succumbing
   to featuritis (see also {creeping elegance}, {creeping
   featuritis}).  See item 176 under {HAKMEM}, which describes a
   banana problem in a {Dissociated Press} implementation.

bandwidth: n. 1. Used by hackers in a generalization of its
   technical meaning as the volume of information per unit time that a
   computer, person, or transmission medium can handle.  "Those are
   amazing graphics, but I missed some of the detail — not enough
   bandwidth, I guess."  Compare {low-bandwidth}.  2. Attention
   span.  3. On {USENET}, a measure of network capacity that is
   often wasted by people complaining about how items posted by others
   are a waste of bandwidth.

bang: 1. n. Common spoken name for `!' (ASCII 0100001),
   especially when used in pronouncing a {bang path} in spoken
   hackish.  In {elder days} this was considered a CMUish usage,
   with MIT and Stanford hackers preferring {excl} or {shriek};
   but the spread of UNIX has carried `bang' with it (esp. via the
   term {bang path}) and it is now certainly the most common spoken
   name for `!'.  Note that it is used exclusively for
   non-emphatic written `!'; one would not say "Congratulations
   bang" (except possibly for humorous purposes), but if one wanted
   to specify the exact characters `foo!' one would speak "Eff oh oh
   bang".  See {shriek}, {{ASCII}}.  2. interj. An exclamation
   signifying roughly "I have achieved enlightenment!", or "The
   dynamite has cleared out my brain!"  Often used to acknowledge
   that one has perpetrated a {thinko} immediately after one has
   been called on it.

bang on: vt. To stress-test a piece of hardware or software: "I
   banged on the new version of the simulator all day yesterday and it
   didn't crash once.  I guess it is ready to release."  The term
   {pound on} is synonymous.

bang path: n. An old-style UUCP electronic-mail address specifying
   hops to get from some assumed-reachable location to the addressee,
   so called because each {hop} is signified by a {bang} sign.
   Thus, for example, the path …!bigsite!foovax!barbox!me
   directs people to route their mail to machine bigsite (presumably
   a well-known location accessible to everybody) and from there
   through the machine foovax to the account of user me on

   In the bad old days of not so long ago, before autorouting mailers
   became commonplace, people often published compound bang addresses
   using the { } convention (see {glob}) to give paths from
   *several* big machines, in the hopes that one's correspondent
   might be able to get mail to one of them reliably (example:
   …!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me).  Bang paths
   of 8 to 10 hops were not uncommon in 1981.  Late-night dial-up
   UUCP links would cause week-long transmission times.  Bang paths
   were often selected by both transmission time and reliability, as
   messages would often get lost.  See {{Internet address}},
   {network, the}, and {sitename}.

banner: n. 1. The title page added to printouts by most print
   spoolers (see {spool}).  Typically includes user or account ID
   information in very large character-graphics capitals.  Also called
   a `burst page', because it indicates where to burst (tear apart)
   fanfold paper to separate one user's printout from the next.  2. A
   similar printout generated (typically on multiple pages of fan-fold
   paper) from user-specified text, e.g., by a program such as UNIX's
   `banner({1,6})'.  3. On interactive software, a first screen
   containing a logo and/or author credits and/or a copyright notice.

bar: /bar/ n. 1. The second metasyntactic variable, after {foo}
   and before {baz}.  "Suppose we have two functions: FOO and BAR.
   FOO calls BAR…."  2. Often appended to {foo} to produce

bare metal: n. 1. New computer hardware, unadorned with such
   snares and delusions as an {operating system}, an {HLL}, or
   even assembler.  Commonly used in the phrase `programming on the
   bare metal', which refers to the arduous work of {bit bashing}
   needed to create these basic tools for a new machine.  Real
   bare-metal programming involves things like building boot proms and
   BIOS chips, implementing basic monitors used to test device
   drivers, and writing the assemblers that will be used to write the
   compiler back ends that will give the new machine a real
   development environment.  2. `Programming on the bare metal' is
   also used to describe a style of {hand-hacking} that relies on
   bit-level peculiarities of a particular hardware design, esp.
   tricks for speed and space optimization that rely on crocks such as
   overlapping instructions (or, as in the famous case described in
   appendix A, interleaving of opcodes on a magnetic drum to minimize
   fetch delays due to the device's rotational latency).  This sort of
   thing has become less common as the relative costs of programming
   time and machine resources have changed, but is still found in
   heavily constrained environments such as industrial embedded systems.
   See {real programmer}.

   In the world of personal computing, bare metal programming (especially
   in sense 1 but sometimes also in sense 2) is often considered a
   {Good Thing}, or at least a necessary thing (because these
   machines have often been sufficiently slow and poorly designed
   to make it necessary; see {ill-behaved}).  There, the term
   usually refers to bypassing the BIOS or OS interface and writing
   the application to directly access device registers and machine
   addresses.  "To get 19.2 kilobaud on the serial port, you need to
   get down to the bare metal."  People who can do this sort of thing
   are held in high regard.

barf: /barf/ [from mainstream slang meaning `vomit']
   1. interj.  Term of disgust.  This is the closest hackish
   equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!)
   See {bletch}.  2. vi. To say "Barf!" or emit some similar
   expression of disgust.  "I showed him my latest hack and he
   barfed" means only that he complained about it, not that he
   literally vomited.  3. vi. To fail to work because of unacceptable
   input.  May mean to give an error message.  Examples: "The
   division operation barfs if you try to divide by 0."  (That is,
   the division operation checks for an attempt to divide by zero, and
   if one is encountered it causes the operation to fail in some
   unspecified, but generally obvious, manner.) "The text editor
   barfs if you try to read in a new file before writing out the old
   one."  See {choke}, {gag}.  In Commonwealth hackish,
   `barf' is generally replaced by `puke' or `vom'.  {barf}
   is sometimes also used as a metasyntactic variable, like {foo} or

barfulation: /bar`fyoo-lay'sh*n/ interj. Variation of {barf}
   used around the Stanford area.  An exclamation, expressing disgust.
   On seeing some particularly bad code one might exclaim,
   "Barfulation!  Who wrote this, Quux?"

barfulous: /bar'fyoo-l*s/ adj. (alt. `barfucious',
   /bar-fyoo-sh*s/) Said of something that would make anyone barf,
   if only for esthetic reasons.

baroque: adj. Feature-encrusted; complex; gaudy; verging on
   excessive.  Said of hardware or (esp.) software designs, this has
   many of the connotations of {elephantine} or {monstrosity} but is
   less extreme and not pejorative in itself.  "Metafont even has
   features to introduce random variations to its letterform output.
   Now *that* is baroque!"  See also {rococo}.

BartleMUD: /bar'tl-muhd/ n. Any of the MUDs derived from the
   original MUD game by Richard Bartle (see {MUD}).  BartleMUDs are
   noted for their (usually slightly offbeat) humor, dry but friendly
   syntax, and lack of adjectives in object descriptions, so a player
   is likely to come across `brand172', for instance (see {brand
   brand brand}).  Some MUDders intensely dislike Bartle and this
   term, and prefer to speak of `MUD-1'.

BASIC: n. A programming language, originally designed for
   Dartmouth's experimental timesharing system in the
   early 1960s, which has since become the leading cause of
   brain-damage in proto-hackers.  This is another case (like
   {Pascal}) of the bad things that happen when a language
   deliberately designed as an educational toy gets taken too
   seriously.  A novice can write short BASIC programs (on the order of
   10–20 lines) very easily; writing anything longer is (a) very
   painful, and (b) encourages bad habits that will bite him/her later
   if he/she tries to hack in a real language.  This wouldn't be so
   bad if historical accidents hadn't made BASIC so common on low-end
   micros.  As it is, it ruins thousands of potential wizards a year.

batch: adj. 1. Non-interactive.  Hackers use this somewhat more
   loosely than the traditional technical definitions justify; in
   particular, switches on a normally interactive program that prepare
   it to receive non-interactive command input are often referred to
   as `batch mode' switches.  A `batch file' is a series of
   instructions written to be handed to an interactive program running
   in batch mode.  2. Performance of dreary tasks all at one sitting.
   "I finally sat down in batch mode and wrote out checks for all
   those bills; I guess they'll turn the electricity back on next
   week…" 3. Accumulation of a number of small tasks that can be
   lumped together for greater efficiency.  "I'm batching up those
   letters to send sometime" "I'm batching up bottles to take to the
   recycling center."

bathtub curve: n. Common term for the curve (resembling an
   end-to-end section of one of those claw-footed antique bathtubs)
   that describes the expected failure rate of electronics with time:
   initially high, dropping to near 0 for most of the system's
   lifetime, then rising again as it `tires out'.  See also {burn-in
   period}, {infant mortality}.

baud: /bawd/ [simplified from its technical meaning] n. Bits per
   second.  Hence kilobaud or Kbaud, thousands of bits per second.
   The technical meaning is `level transitions per second'; this
   coincides with bps only for two-level modulation with no framing or
   stop bits.  Most hackers are aware of these nuances but blithely
   ignore them.

baud barf: /bawd barf/ n. The garbage one gets on the monitor
   when using a modem connection with some protocol setting (esp.
   line speed) incorrect, or when someone picks up a voice extension
   on the same line, or when really bad line noise disrupts the
   connection.  Baud barf is not completely {random}, by the way;
   hackers with a lot of serial-line experience can usually tell
   whether the device at the other end is expecting a higher or lower
   speed than the terminal is set to.  *Really* experienced ones
   can identify particular speeds.

baz: /baz/ [Stanford: corruption of {bar}] n. 1. The third
   metasyntactic variable, after {foo} and {bar} and before
   {quux} (or, occasionally, `qux'; or local idiosyncracies like
   `rag', `zowie', etc.).  "Suppose we have three functions: FOO,
   BAR, and BAZ.  FOO calls BAR, which calls BAZ…."
   2. interj. A term of mild annoyance.  In this usage the term is
   often drawn out for 2 or 3 seconds, producing an effect not unlike
   the bleating of a sheep; /baaaaaaz/.  3. Occasionally appended to
   {foo} to produce `foobaz'.

bboard: /bee'bord/ [contraction of `bulletin board'] n.
   1. Any electronic bulletin board; esp. used of {BBS} systems
   running on personal micros, less frequently of a USENET
   {newsgroup} (in fact, use of the term for a newsgroup generally
   marks one either as a {newbie} fresh in from the BBS world or as
   a real old-timer predating USENET).  2. At CMU and other colleges
   with similar facilities, refers to campus-wide electronic bulletin
   boards.  3. The term `physical bboard' is sometimes used to
   refer to a old-fashioned, non-electronic cork memo board.  At CMU,
   it refers to a particular one outside the CS Lounge.

   In either of senses 1 or 2, the term is usually prefixed by the
   name of the intended board (`the Moonlight Casino bboard' or
   `market bboard'); however, if the context is clear, the better-read
   bboards may be referred to by name alone, as in (at CMU) "Don't
   post for-sale ads on general".

BBS: /B-B-S/ [acronym, `Bulletin Board System'] n. An electronic
   bulletin board system; that is, a message database where people can
   log in and leave broadcast messages for others grouped (typically)
   into {topic group}s.  Thousands of local BBS systems are in
   operation throughout the U.S., typically run by amateurs for fun
   out of their homes on MS-DOS boxes with a single modem line each.
   Fans of USENET and Internet or the big commercial timesharing
   bboards such as CompuServe and GEnie tend to consider local BBSes
   the low-rent district of the hacker culture, but they serve a
   valuable function by knitting together lots of hackers and users in
   the personal-micro world who would otherwise be unable to exchange
   code at all.

beam: [from Star Trek Classic's "Beam me up, Scotty!"] vt. To
   transfer {softcopy} of a file electronically; most often in
   combining forms such as `beam me a copy' or `beam that over to
   his site'.  Compare {blast}, {snarf}, {BLT}.

beanie key: [Mac users] n. See {command key}.

beep: n.,v. Syn. {feep}.  This term seems to be preferred among micro

beige toaster: n. A Macintosh. See {toaster}; compare
   {Macintrash}, {maggotbox}.

bells and whistles: [by analogy with the toyboxes on theater
   organs] n. Features added to a program or system to make it more
   {flavorful} from a hacker's point of view, without necessarily
   adding to its utility for its primary function.  Distinguished from
   {chrome}, which is intended to attract users.  "Now that we've
   got the basic program working, let's go back and add some bells and
   whistles."  No one seems to know what distinguishes a bell from a

bells, whistles, and gongs: n. A standard elaborated form of
   {bells and whistles}; typically said with a pronounced and ironic
   accent on the `gongs'.

benchmark: [techspeak] n. An inaccurate measure of computer
   performance.  "In the computer industry, there are three kinds of
   lies: lies, damn lies, and benchmarks."  Well-known ones include
   Whetstone, Dhrystone, Rhealstone (see {h}), the Gabriel LISP
   benchmarks (see {gabriel}), the SPECmark suite, and LINPACK.  See
   also {machoflops}, {MIPS}.

Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
   in a pejorative sense to refer to software that was apparently
   created by rather spaced-out hackers late at night to solve some
   unique problem.  It usually has nonexistent, incomplete, or
   incorrect documentation, has been tested on at least two examples,
   and core dumps when anyone else attempts to use it.  This term was
   frequently applied to early versions of the `dbx(1)' debugger.
   See also {Berzerkeley}.

berklix: /berk'liks/ n.,adj. [contraction of `Berkeley UNIX'] See
   {BSD}.  Not used at Berkeley itself.  May be more common among
   {suit}s attempting to sound like cognoscenti than among hackers,
   who usually just say `BSD'.

berserking: vi. A {MUD} term meaning to gain points *only*
   by killing other players and mobiles (non-player characters).
   Hence, a Berserker-Wizard is a player character that has achieved
   enough points to become a wizard, but only by killing other
   characters.  Berserking is sometimes frowned upon because of its
   inherently antisocial nature, but some MUDs have a `berserker
   mode' in which a player becomes *permanently* berserk, can
   never flee from a fight, cannot use magic, gets no score for
   treasure, but does get double kill points.  "Berserker
   wizards can seriously damage your elf!"

Berzerkeley: /b*r-zer'klee/ [from `berserk', via the name of a
   now-deceased record label] n. Humorous distortion of `Berkeley'
   used esp. to refer to the practices or products of the
   {BSD} UNIX hackers.  See {software bloat}, {Missed'em-five},
   {Berkeley Quality Software}.

   Mainstream use of this term in reference to the cultural and
   political peculiarities of UC Berkeley as a whole has been reported
   from as far back as the 1960s.

beta: /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n. 1. In
   the {Real World}, software often goes through two stages of
   testing: Alpha (in-house) and Beta (out-house?).  Software is said
   to be `in beta'.  2. Anything that is new and experimental is in
   beta. "His girlfriend is in beta" means that he is still testing
   for compatibility and reserving judgment.  3. Beta software is
   notoriously buggy, so `in beta' connotes flakiness.

   Historical note: More formally, to beta-test is to test a
   pre-release (potentially unreliable) version of a piece of software
   by making it available to selected customers and users.  This term
   derives from early 1960s terminology for product cycle checkpoints,
   first used at IBM but later standard throughout the industry.
   `Alpha Test' was the unit, module, or component test phase; `Beta
   Test' was initial system test.  These themselves came from earlier
   A- and B-tests for hardware.  The A-test was a feasibility and
   manufacturability evaluation done before any commitment to design
   and development.  The B-test was a demonstration that the
   engineering model functioned as specified.  The C-test
   (corresponding to today's beta) was the B-test performed on early
   samples of the production design.

BFI: /B-F-I/ n. See {brute force and ignorance}.  Also
   encountered in the variant `BFMI', `brute force and
   *massive* ignorance'.

bible: n. 1. One of a small number of fundamental source books
   such as {Knuth} and {K&R}.  2. The most detailed and
   authoritative reference for a particular language, operating
   system, or other complex software system.

BiCapitalization: n. The act said to have been performed on
   trademarks (such as NeXT, {NeWS}, VisiCalc, FrameMaker,
   TK!solver, EasyWriter) that have been raised above the ruck of
   common coinage by nonstandard capitalization.  Too many
   {marketroid} types think this sort of thing is really cute, even
   the 2,317th time they do it.  Compare {studlycaps}.

BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
   prototypical {newbie}.  Articles from BIFF are characterized by
   all uppercase letters sprinkled liberally with bangs, typos,
   `cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A K00L
   THIS!!!), use (and often misuse) of fragments of {talk mode}
   abbreviations, a long {sig block} (sometimes even a {doubled
   sig}), and unbounded na"ivet'e.  BIFF posts articles using his elder
   brother's VIC-20.  BIFF's location is a mystery, as his articles
   appear to come from a variety of sites.  However, {BITNET} seems to
   be the most frequent origin.  The theory that BIFF is a denizen of
   BITNET is supported by BIFF's (unfortunately invalid) electronic
   mail address: BIFF@BIT.NET.

biff: /bif/ vt. To notify someone of incoming mail.  From the
   BSD utility `biff(1)', which was in turn named after the
   implementor's dog (it barked whenever the mailman came).  No
   relation to {BIFF}.

Big Gray Wall: n. What faces a {VMS} user searching for
   documentation.  A full VMS kit comes on a pallet, the documentation
   taking up around 15 feet of shelf space before the addition of layered
   products such as compilers, databases, multivendor networking,
   and programming tools.  Recent (since VMS version 5) DEC
   documentation comes with gray binders; under VMS version 4 the
   binders were orange (`big orange wall'), and under version 3
   they were blue.  See {VMS}.

big iron: n. Large, expensive, ultra-fast computers.  Used generally
   of {number-crunching} supercomputers such as Crays, but can include
   more conventional big commercial IBMish mainframes.  Term of
   approval; compare {heavy metal}, oppose {dinosaur}.

Big Red Switch: [IBM] n. The power switch on a computer, esp. the
   `Emergency Pull' switch on an IBM {mainframe} or the power switch
   on an IBM PC where it really is large and red.  "This !@%$%
   {bitty box} is hung again; time to hit the Big Red Switch."
   Sources at IBM report that, in tune with the company's passion for
   {TLA}s, this is often acronymized as `BRS' (this has also
   become established on FidoNet and in the PC {clone} world).  It
   is alleged that the emergency pull switch on an IBM 360/91 actually
   fired a non-conducting bolt into the main power feed; the BRSes on
   more recent machines physically drop a block into place so that
   they can't be pushed back in.  People get fired for pulling them,
   especially inappropriately (see also {molly-guard}).  Compare
   {power cycle}, {three-finger salute}, {120 reset}.

Big Room, the: n. The extremely large room with the blue ceiling
   and intensely bright light (during the day) or black ceiling with
   lots of tiny night-lights (during the night) found outside all
   computer installations.  "He can't come to the phone right now,
   he's somewhere out in the Big Room."

big win: n. Serendipity.  "Yes, those two physicists discovered
   high-temperature superconductivity in a batch of ceramic that had
   been prepared incorrectly according to their experimental schedule.
   Small mistake; big win!" See {win big}.

big-endian: [From Swift's `Gulliver's Travels' via the famous
   paper `On Holy Wars and a Plea for Peace' by Danny Cohen,
   USC/ISI IEN 137, dated April 1, 1980] adj. 1. Describes a computer
   architecture in which, within a given multi-byte numeric
   representation, the most significant byte has the lowest address
   (the word is stored `big-end-first').  Most processors, including
   the IBM 370 family, the {PDP-10}, the Motorola microprocessor
   families, and most of the various RISC designs current in mid-1991,
   are big-endian.  See {little-endian}, {middle-endian}, {NUXI
   problem}.  2. An {{Internet address}} the wrong way round.  Most
   of the world follows the Internet standard and writes email
   addresses starting with the name of the computer and ending up with
   the name of the country.  In the U.K. the Joint Networking Team had
   decided to do it the other way round before the Internet domain
   standard was established; e.g., me@uk.ac.wigan.cs.  Most gateway
   sites have {ad-hockery} in their mailers to handle this, but can
   still be confused.  In particular, the address above could be in the
   U.K. (domain uk) or Czechoslovakia (domain cs).

bignum: /big'nuhm/ [orig. from MIT MacLISP] n. 1. [techspeak] A
   multiple-precision computer representation for very large integers.
   More generally, any very large number.  "Have you ever looked at
   the United States Budget?  There's bignums for you!"
   2. [Stanford] In backgammon, large numbers on the dice are called
   `bignums', especially a roll of double fives or double sixes
   (compare {moby}, sense 4).  See also {El Camino Bignum}.

   Sense 1 may require some explanation.  Most computer languages
   provide a kind of data called `integer', but such computer
   integers are usually very limited in size; usually they must be
   smaller than than 2^{31} (2,147,483,648) or (on a losing
   {bitty box}) 2^{15} (32,768).  If you want to work with
   numbers larger than that, you have to use floating-point numbers,
   which are usually accurate to only six or seven decimal places.
   Computer languages that provide bignums can perform exact
   calculations on very large numbers, such as 1000!  (the factorial
   of 1000, which is 1000 times 999 times 998 times … times 2
   times 1).  For example, this value for 1000!  was computed by the
   MacLISP system using bignums:


bigot: n. A person who is religiously attached to a particular
   computer, language, operating system, editor, or other tool (see
   {religious issues}).  Usually found with a specifier; thus,
   `cray bigot', {ITS bigot}, `APL bigot', `VMS bigot',
   {Berkeley bigot}.  True bigots can be distinguished from mere
   partisans or zealots by the fact that they refuse to learn
   alternatives even when the march of time and/or technology is
   threatening to obsolete the favored tool.  It is said "You can
   tell a bigot, but you can't tell him much."  Compare

bit: [from the mainstream meaning and `Binary digIT'] n.
   1. [techspeak] The unit of information; the amount of information
   obtained by asking a yes-or-no question for which the two outcomes
   are equally probable.  2. [techspeak] A computational quantity that
   can take on one of two values, such as true and false or 0 and 1.
   3. A mental flag: a reminder that something should be done
   eventually.  "I have a bit set for you."  (I haven't seen you for
   a while, and I'm supposed to tell or ask you something.)  4. More
   generally, a (possibly incorrect) mental state of belief.  "I have
   a bit set that says that you were the last guy to hack on EMACS."
   (Meaning "I think you were the last guy to hack on EMACS, and what
   I am about to say is predicated on this, so please stop me if this
   isn't true.")

   "I just need one bit from you" is a polite way of indicating that
   you intend only a short interruption for a question that can
   presumably be answered yes or no.

   A bit is said to be `set' if its value is true or 1, and
   `reset' or `clear' if its value is false or 0.  One
   speaks of setting and clearing bits.  To {toggle} or
   `invert' a bit is to change it, either from 0 to 1 or from
   1 to 0.  See also {flag}, {trit}, {mode bit}.

bit bang: n. Transmission of data on a serial line, when
   accomplished by rapidly tweaking a single output bit at the
   appropriate times.  The technique is a simple
   loop with eight OUT and SHIFT instruction pairs for each byte.
   Input is more interesting.  And full duplex (doing input and output
   at the same time) is one way to separate the real hackers from the

   Bit bang was used on certain early models of Prime computers,
   presumably when UARTs were too expensive, and on archaic Z80 micros
   with a Zilog PIO but no SIO.  In an interesting instance of the
   {cycle of reincarnation}, this technique is now (1991) coming
   back into use on some RISC architectures because it consumes such
   an infinitesimal part of the processor that it actually makes sense
   not to have a UART.

bit bashing: n. (alt. `bit diddling' or {bit twiddling}) Term
   used to describe any of several kinds of low-level programming
   characterized by manipulation of {bit}, {flag}, {nybble},
   and other smaller-than-character-sized pieces of data; these
   include low-level device control, encryption algorithms, checksum
   and error-correcting codes, hash functions, some flavors of
   graphics programming (see {bitblt}), and assembler/compiler code
   generation.  May connote either tedium or a real technical
   challenge (more usually the former).  "The command decoding for
   the new tape driver looks pretty solid but the bit-bashing for the
   control registers still has bugs."  See also {bit bang},
   {mode bit}.

bit bucket: n. 1. The universal data sink (originally, the
   mythical receptacle used to catch bits when they fall off the end
   of a register during a shift instruction).  Discarded, lost, or
   destroyed data is said to have `gone to the bit bucket'.  On {{UNIX}},
   often used for {/dev/null}.  Sometimes amplified as `the Great
   Bit Bucket in the Sky'.  2. The place where all lost mail and news
   messages eventually go.  The selection is performed according to
   {Finagle's Law}; important mail is much more likely to end up in
   the bit bucket than junk mail, which has an almost 100% probability
   of getting delivered.  Routing to the bit bucket is automatically
   performed by mail-transfer agents, news systems, and the lower
   layers of the network.  3. The ideal location for all unwanted mail
   responses: "Flames about this article to the bit bucket."
   Such a request is guaranteed to overflow one's mailbox with flames.
   4. Excuse for all mail that has not been sent.  "I mailed you
   those figures last week; they must have ended in the bit bucket."
   Compare {black hole}.

   This term is used purely in jest.  It is based on the fanciful
   notion that bits are objects that are not destroyed but only
   misplaced.  This appears to have been a mutation of an earlier term
   `bit box', about which the same legend was current; old-time
   hackers also report that trainees used to be told that when the CPU
   stored bits into memory it was actually pulling them `out of the
   bit box'.  See also {chad box}.

   Another variant of this legend has it that, as a consequence of the
   `parity preservation law', the number of 1 bits that go to the bit
   bucket must equal the number of 0 bits.  Any imbalance results in
   bits filling up the bit bucket.  A qualified computer technician
   can empty a full bit bucket as part of scheduled maintenance.

bit decay: n. See {bit rot}.  People with a physics background
   tend to prefer this one for the analogy with particle decay.  See
   also {computron}, {quantum bogodynamics}.

bit rot: n. Also {bit decay}.  Hypothetical disease the existence
   of which has been deduced from the observation that unused programs
   or features will often stop working after sufficient time has
   passed, even if `nothing has changed'.  The theory explains that
   bits decay as if they were radioactive.  As time passes, the
   contents of a file or the code in a program will become
   increasingly garbled.

   There actually are physical processes that produce such effects
   (alpha particles generated by trace radionuclides in ceramic chip
   packages, for example, can change the contents of a computer memory
   unpredictably, and various kinds of subtle media failures can
   corrupt files in mass storage), but they are quite rare (and
   computers are built with error-detecting circuitry to compensate
   for them).  The notion long favored among hackers that cosmic
   rays are among the causes of such events turns out to be a myth;
   see the {cosmic rays} entry for details.

   The term {software rot} is almost synonymous.  Software rot is
   the effect, bit rot the notional cause.

bit twiddling: n. 1. (pejorative) An exercise in {tuning} in
   which incredible amounts of time and effort go to produce little
   noticeable improvement, often with the result that the code has
   become incomprehensible.  2. Aimless small modification to a
   program, esp. for some pointless goal.  3. Approx. syn. for {bit
   bashing}; esp. used for the act of frobbing the device control
   register of a peripheral in an attempt to get it back to a known

bit-paired keyboard: n. obs. (alt. `bit-shift keyboard') A
   non-standard keyboard layout that seems to have originated with
   the Teletype ASR-33 and remained common for several years on early
   computer equipment.  The ASR-33 was a mechanical device (see
   {EOU}), so the only way to generate the character codes from
   keystrokes was by some physical linkage.  The design of the ASR-33
   assigned each character key a basic pattern that could be modified
   by flipping bits if the SHIFT or the CTRL key was pressed.  In order
   to avoid making the thing more of a Rube Goldberg kluge than it
   already was, the design had to group characters that shared the
   same basic bit pattern on one key.

   Looking at the ASCII chart, we find:

     high  low bits
     bits  0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
      010        !    "    #    $    %    &    '    (    )
      011   0    1    2    3    4    5    6    7    8    9

   This is why the characters !"#$%&'() appear where they do on a
   Teletype (thankfully, they didn't use shift-0 for space).  This was
   *not* the weirdest variant of the {QWERTY} layout widely
   seen, by the way; that prize should probably go to one of several
   (differing) arrangements on IBM's even clunkier 026 and 029 card

   When electronic terminals became popular, in the early 1970s, there
   was no agreement in the industry over how the keyboards should be
   laid out.  Some vendors opted to emulate the Teletype keyboard,
   while others used the flexibility of electronic circuitry to make
   their product look like an office typewriter.  These alternatives
   became known as `bit-paired' and `typewriter-paired' keyboards.  To
   a hacker, the bit-paired keyboard seemed far more logical — and
   because most hackers in those days had never learned to touch-type,
   there was little pressure from the pioneering users to adapt
   keyboards to the typewriter standard.

   The doom of the bit-paired keyboard was the large-scale
   introduction of the computer terminal into the normal office
   environment, where out-and-out technophobes were expected to use
   the equipment.  The `typewriter-paired' standard became universal,
   `bit-paired' hardware was quickly junked or relegated to dusty
   corners, and both terms passed into disuse.

bitblt: /bit'blit/ n. [from {BLT}, q.v.] 1. Any of a family
   of closely related algorithms for moving and copying rectangles of
   bits between main and display memory on a bit-mapped device, or
   between two areas of either main or display memory (the requirement
   to do the {Right Thing} in the case of overlapping source and
   destination rectangles is what makes BitBlt tricky).  2. Synonym
   for {blit} or {BLT}.  Both uses are borderline techspeak.

BITNET: /bit'net/ [acronym: Because It's Time NETwork] n.
   Everybody's least favorite piece of the network (see {network,
   the}).  The BITNET hosts are a collection of IBM dinosaurs and
   VAXen (the latter with lobotomized comm hardware) that communicate
   using 80-character {{EBCDIC}} card images (see {eighty-column
   mind}); thus, they tend to mangle the headers and text of
   third-party traffic from the rest of the ASCII/RFC-822 world with
   annoying regularity.  BITNET is also notorious as the apparent home
   of {BIFF}.

bits: n.pl. 1. Information.  Examples: "I need some bits about file
   formats."  ("I need to know about file formats.")  Compare {core
   dump}, sense 4.  2. Machine-readable representation of a document,
   specifically as contrasted with paper:  "I have only a photocopy
   of the Jargon File; does anyone know where I can get the bits?".
   See {softcopy}, {source of all good bits} See also {bit}.

bitty box: /bit'ee boks/ n. 1. A computer sufficiently small,
   primitive, or incapable as to cause a hacker acute claustrophobia
   at the thought of developing software for it.  Especially used of
   small, obsolescent, single-tasking-only personal machines such as
   the Atari 800, Osborne, Sinclair, VIC-20, TRS-80, or IBM PC.
   2. [Pejorative]  More generally, the opposite of `real computer'
   (see {Get a real computer!}).  See also {mess-dos},
   {toaster}, and {toy}.

bixie: /bik'see/ n. Variant {emoticon}s used on BIX (the Byte
   Information eXchange).  The {smiley} bixie is , apparently
   intending to represent two cartoon eyes and a mouth.  A few others
   have been reported.

black art: n. A collection of arcane, unpublished, and (by
   implication) mostly ad-hoc techniques developed for a particular
   application or systems area (compare {black magic}).  VLSI design
   and compiler code optimization were (in their beginnings)
   considered classic examples of black art; as theory developed they
   became {deep magic}, and once standard textbooks had been written,
   became merely {heavy wizardry}.  The huge proliferation of formal
   and informal channels for spreading around new computer-related
   technologies during the last twenty years has made both the term
   `black art’ and what it describes less common than formerly.  See
   also {voodoo programming}.

black hole: n. When a piece of email or netnews disappears
   mysteriously between its origin and destination sites (that is,
   without returning a {bounce message}) it is commonly said to have
   `fallen into a black hole’.  “I think there’s a black hole at
   foovax!” conveys suspicion that site foovax has been dropping
   a lot of stuff on the floor lately (see {drop on the floor}).
   The implied metaphor of email as interstellar travel is interesting
   in itself.  Compare {bit bucket}.

black magic: n. A technique that works, though nobody really
   understands why.  More obscure than {voodoo programming}, which
   may be done by cookbook.  Compare also {black art}, {deep
   magic}, and {magic number} (sense 2).

blast: 1. vt.,n. Synonym for {BLT}, used esp. for large data
   sends over a network or comm line.  Opposite of {snarf}.  Usage:
   uncommon.  The variant `blat’ has been reported.  2. vt.
   [HP/Apollo] Synonymous with {nuke} (sense 3).  Sometimes the
   message `Unable to kill all processes.  Blast them (y/n)?’ would
   appear in the command window upon logout.

blat: n. 1. Syn. {blast}, sense 1.  2. See {thud}.

bletch: /blech/ [from Yiddish/German `brechen’, to vomit, poss.
   via comic-strip exclamation `blech’] interj.  Term of disgust.
   Often used in “Ugh, bletch”.  Compare {barf}.

bletcherous: /blech’*-r*s/ adj. Disgusting in design or function;
   esthetically unappealing.  This word is seldom used of people.
   “This keyboard is bletcherous!” (Perhaps the keys don’t work very
   well, or are misplaced.)  See {losing}, {cretinous},
   {bagbiter}, {bogus}, and {random}.  The term {bletcherous}
   applies to the esthetics of the thing so described; similarly for
   {cretinous}.  By contrast, something that is `losing’ or
   `bagbiting’ may be failing to meet objective criteria.  See also
   {bogus} and {random}, which have richer and wider shades of
   meaning than any of the above.

blinkenlights: /blink’*n-li:tz/ n. Front-panel diagnostic lights
   on a computer, esp. a {dinosaur}.  Derives from the last word of
   the famous
   sign in mangled pseudo-German that once graced about half the
   computer rooms in the English-speaking world.  One version ran in
   its entirety as follows:

        Das computermachine ist nicht fuer gefingerpoken und mittengrabben.
        Ist easy schnappen der springenwerk, blowenfusen und poppencorken
        mit spitzensparken.  Ist nicht fuer gewerken bei das dumpkopfen.
        Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
        pockets muss; relaxen und watchen das blinkenlichten.

   This silliness dates back at least as far as 1959 at Stanford
   University and had already gone international by the early 1960s,
   when it was reported at London University’s ATLAS computing site.
   There are several variants of it in circulation, some of which
   actually do end with the word `blinkenlights’.

   In an amusing example of turnabout-is-fair-play, German hackers
   have developed their own versions of the blinkenlights poster in
   fractured English, one of which is reproduced here:

        This room is fullfilled mit special electronische equippment.
        Fingergrabbing and pressing the cnoeppkes from the computers is
        allowed for die experts only!  So all the “lefthanders” stay away
        and do not disturben the brainstorming von here working
        intelligencies.  Otherwise you will be out thrown and kicked
        anderswhere!  Also: please keep still and only watchen astaunished
        the blinkenlights.

   See also {geef}.

blit: /blit/ vt. 1. To copy a large array of bits from one part
   of a computer’s memory to another part, particularly when the
   memory is being used to determine what is shown on a display
   screen.  “The storage allocator picks through the table and copies
   the good parts up into high memory, and then blits it all back
   down again.”  See {bitblt}, {BLT}, {dd}, {cat},
   {blast}, {snarf}.  More generally, to perform some operation
   (such as toggling) on a large array of bits while moving them.
   2. All-capitalized as `BLIT’: an early experimental bit-mapped
   terminal designed by Rob Pike at Bell Labs, later commercialized as
   the AT&T 5620.  (The folk etymology from `Bell Labs Intelligent
   Terminal’ is incorrect.)

blitter: /blit’r/ n. A special-purpose chip or hardware system
   built to perform {blit} operations, esp. used for fast
   implementation of bit-mapped graphics.  The Commodore Amiga and a
   few other micros have these, but in 1991 the trend is away from
   them (however, see {cycle of reincarnation}).  Syn. {raster

blivet: /bliv’*t/ [allegedly from a World War II military term
   meaning “ten pounds of manure in a five-pound bag”] n. 1. An
   intractable problem.  2. A crucial piece of hardware that can’t be
   fixed or replaced if it breaks.  3. A tool that has been hacked
   over by so many incompetent programmers that it has become an
   unmaintainable tissue of hacks.  4. An out-of-control but
   unkillable development effort.  5. An embarrassing bug that pops up
   during a customer demo.

   This term has other meanings in other technical cultures; among
   experimental physicists and hardware engineers of various kinds it
   seems to mean any random object of unknown purpose (similar to
   hackish use of {frob}).  It has also been used to describe an
   amusing trick-the-eye drawing resembling a three-pronged fork that
   appears to depict a three-dimensional object until one realizes that
   the parts fit together in an impossible way.

block: [from process scheduling terminology in OS theory] 1. vi.
   To delay or sit idle while waiting for something.  “We’re blocking
   until everyone gets here.”  Compare {busy-wait}.  2. `block
   on’ vt. To block, waiting for (something).  “Lunch is blocked on
   Phil’s arrival.”

block transfer computations: n. From the television series
   “Dr. Who”, in which it referred to computations so fiendishly
   subtle and complex that they could not be performed by machines.
   Used to refer to any task that should be expressible as an
   algorithm in theory, but isn’t.

blow an EPROM: /bloh *n ee’prom/ v. (alt. `blast an EPROM’,
   `burn an EPROM’) To program a read-only memory, e.g. for use
   with an embedded system.  This term arises because the programming
   process for the Programmable Read-Only Memories (PROMs) that
   preceded present-day Erasable Programmable Read-Only Memories
   (EPROMs) involved intentionally blowing tiny electrical fuses on
   the chip.  Thus, one was said to `blow’ (or `blast’) a PROM, and
   the terminology carried over even though the write process on
   EPROMs is nondestructive.

blow away: vt. To remove (files and directories) from permanent
   storage, generally by accident.  “He reformatted the wrong
   partition and blew away last night’s netnews.”  Oppose {nuke}.

blow out: vi. Of software, to fail spectacularly; almost as serious
   as {crash and burn}.  See {blow past}, {blow up}.

blow past: vt. To {blow out} despite a safeguard.  “The server blew
   past the 5K reserve buffer.”

blow up: vi. 1. [scientific computation] To become unstable.  Suggests
   that the computation is diverging so rapidly that it will soon
   overflow or at least go {nonlinear}.  2.  Syn. {blow out}.

BLT: /B-L-T/, /bl*t/ or (rarely) /belt/ n.,vt. Synonym for
   {blit}.  This is the original form of {blit} and the ancestor
   of {bitblt}.  It referred to any large bit-field copy or move
   operation (one resource-intensive memory-shuffling operation done
   on pre-paged versions of ITS, WAITS, and TOPS-10 was sardonically
   referred to as `The Big BLT’).  The jargon usage has outlasted the
   {PDP-10} BLock Transfer instruction from which {BLT} derives;
   nowadays, the assembler mnemonic {BLT} almost always means
   `Branch if Less Than zero’.

Blue Book: n. 1. Informal name for one of the three standard
   references on the page-layout and graphics-control language
   PostScript (`PostScript Language Tutorial and Cookbook’, Adobe
   Systems, Addison-Wesley 1985, QA76.73.P67P68, ISBN 0-201-10179-3);
   the other two official guides are known as the {Green Book} and
   {Red Book}.  2. Informal name for one of the three standard
   references on Smalltalk: `Smalltalk-80: The Language and its
   Implementation’, David Robson, Addison-Wesley 1983, QA76.8.S635G64,
   ISBN 0-201-11371-63 (this is also associated with green and red
   books).  3. Any of the 1988 standards issued by the CCITT’s
   ninth plenary assembly.  Until now, they have changed color each review
   cycle (1984 was {Red Book}, 1992 would be {Green Book}); however,
   it is rumored that this convention is going to be dropped before 1992.
   These include, among other things, the X.400 email spec and
   the Group 1 through 4 fax standards.  See also {{book titles}}.

Blue Glue: [IBM] n. IBM’s SNA (Systems Network Architecture), an
   incredibly {losing} and {bletcherous} communications protocol
   widely favored at commercial shops that don’t know any better.  The
   official IBM definition is “that which binds blue boxes
   together.”  See {fear and loathing}.  It may not be irrelevant
   that {Blue Glue} is the trade name of a 3M product that is
   commonly used to hold down the carpet squares to the removable
   panel floors common in {dinosaur pens}.  A correspondent at
   U. Minn. reports that the CS department there has about 80 bottles
   of the stuff hanging about, so they often refer to any messy work
   to be done as `using the blue glue’.

blue goo: n. Term for `police’ {nanobot}s intended to prevent
   {gray goo}, denature hazardous waste, destroy pollution, put
   ozone back into the stratosphere, prevent halitosis, and promote
   truth, justice, and the American way, etc.  See

BNF: /B-N-F/ n. 1. [techspeak] Acronym for `Backus-Naur Form’, a
   metasyntactic notation used to specify the syntax of programming
   languages, command sets, and the like.  Widely used for language
   descriptions but seldom documented anywhere, so that it must
   usually be learned by osmosis from other hackers.  Consider this
   BNF for a U.S. postal address:


      ::= | “.”

      ::= []

      ::= []

      ::= “,”

   This translates into English as: “A postal-address consists of a
   name-part, followed by a street-address part, followed by a
   zip-code part.  A personal-part consists of either a first name or
   an initial followed by a dot.  A name-part consists of either: a
   personal-part followed by a last name followed by an optional
   `jr-part’ (Jr., Sr., or dynastic number) and end-of-line, or a
   personal part followed by a name part (this rule illustrates the
   use of recursion in BNFs, covering the case of people who use
   multiple first and middle names and/or initials).  A street address
   consists of an optional apartment specifier, followed by a street
   number, followed by a street name.  A zip-part consists of a
   town-name, followed by a comma, followed by a state code, followed
   by a ZIP-code followed by an end-of-line.”  Note that many things
   (such as the format of a personal-part, apartment specifier, or
   ZIP-code) are left unspecified.  These are presumed to be obvious
   from context or detailed somewhere nearby.  See also {parse}.
   2. The term is also used loosely for any number of variants and
   extensions, possibly containing some or all of the {regexp}
   wildcards such as `*’ or `+’.  In fact the example above
   isn’t the pure form invented for the Algol-60 report; it uses
   `[]’, which was introduced a few years later in IBM’s PL/I
   definition but is now universally recognized.  3. In
   {{science-fiction fandom}}, BNF means `Big-Name Fan’
   (someone famous or notorious).  Years ago a fan started handing out
   black-on-green BNF buttons at SF conventions; this confused the
   hacker contingent terribly.

boa: [IBM] n. Any one of the fat cables that lurk under the floor
   in a {dinosaur pen}.  Possibly so called because they display a
   ferocious life of their own when you try to lay them straight and
   flat after they have been coiled for some time.  It is rumored
   within IBM that channel cables for the 370 are limited to 200 feet
   because beyond that length the boas get dangerous — and it is
   worth noting that one of the major cable makers uses the trademark

board: n. 1. In-context synonym for {bboard}; sometimes used
   even for USENET newsgroups.  2. An electronic circuit board
   (compare {card}).

boat anchor: n. 1. Like {doorstop} but more severe; implies that
   the offending hardware is irreversibly dead or useless.  “That was
   a working motherboard once.  One lightning strike later, instant
   boat anchor!”  2. A person who just takes up space.

bogo-sort: /boh`goh-sort’/ n. (var. `stupid-sort’) The
   archetypical perversely awful algorithm (as opposed to {bubble
   sort}, which is merely the generic *bad* algorithm).
   Bogo-sort is equivalent to repeatedly throwing a deck of cards in
   the air, picking them up at random, and then testing whether they
   are in order.  It serves as a sort of canonical example of
   awfulness.  Looking at a program and seeing a dumb algorithm, one
   might say “Oh, I see, this program uses bogo-sort.”  Compare
   {bogus}, {brute force}.

bogometer: /boh-gom’-*t-er/ n. See {bogosity}.  Compare the
   `wankometer’ described in the {wank} entry; see also

bogon: /boh’gon/ [by analogy with proton/electron/neutron, but
   doubtless reinforced after 1980 by the similarity to Douglas
   Adams’s `Vogons’; see the Bibliography] n. 1. The elementary particle of
   bogosity (see {quantum bogodynamics}).  For instance, “the
   Ethernet is emitting bogons again” means that it is broken or
   acting in an erratic or bogus fashion.  2. A query packet sent from
   a TCP/IP domain resolver to a root server, having the reply bit set
   instead of the query bit.  3. Any bogus or incorrectly formed
   packet sent on a network.  4. By synecdoche, used to refer to any
   bogus thing, as in “I’d like to go to lunch with you but I’ve got
   to go to the weekly staff bogon”.  5. A person who is bogus or who
   says bogus things.  This was historically the original usage, but
   has been overtaken by its derivative senses 1–4.  See
   also {bogosity}, {bogus}; compare {psyton}.

bogon filter: /boh’gon fil’tr/ n. Any device, software or hardware,
   that limits or suppresses the flow and/or emission of bogons.
   “Engineering hacked a bogon filter between the Cray and
   the VAXen, and now we’re getting fewer dropped packets.”  See
   also {bogosity}, {bogus}.

bogon flux: /boh’gon fluhks/ n. A measure of a supposed field of
   {bogosity} emitted by a speaker, measured by a {bogometer};
   as a speaker starts to wander into increasing bogosity a listener
   might say “Warning, warning, bogon flux is rising”.  See
   {quantum bogodynamics}.

bogosity: /boh-go’s*-tee/ n. 1. The degree to which something is
   {bogus}.  At CMU, bogosity is measured with a {bogometer}; in
   a seminar, when a speaker says something bogus, a listener might
   raise his hand and say “My bogometer just triggered”.  More
   extremely, “You just pinned my bogometer”  means you just said
   or did something so outrageously bogus that it is off the scale,
   pinning the bogometer needle at the highest possible reading (one
   might also say “You just redlined my bogometer”).  The
   agreed-upon unit of bogosity is the microLenat /mi:k`roh-len’*t/
   The consensus is that this is the largest unit practical
   for everyday use.  2. The potential field generated by a {bogon
   flux}; see {quantum bogodynamics}.  See also {bogon flux},
   {bogon filter}, {bogus}.

   Historical note: The microLenat was invented as a attack against
   noted computer scientist Doug Lenat by a {tenured graduate
   student}.  Doug had failed the student on an important exam for
   giving only “AI is bogus” as his answer to the questions.  The
   slur is generally considered unmerited, but it has become a running
   gag nevertheless.  Some of Doug’s friends argue that *of
   course* a microLenat is bogus, since it is only one millionth of a
   Lenat.  Others have suggested that the unit should be redesignated
   after the grad student, as the microReid.

bogotify: /boh-go’t*-fi:/ vt. To make or become bogus.  A
   program that has been changed so many times as to become completely
   disorganized has become bogotified.  If you tighten a nut too hard
   and strip the threads on the bolt, the bolt has become bogotified
   and you had better not use it any more.  This coinage led to the
   notional `autobogotiphobia’ defined as `the fear of becoming
   bogotified’; but is not clear that the latter has ever been
   `live’ jargon rather than a self-conscious joke in jargon about
   jargon.  See also {bogosity}, {bogus}.

bogue out: /bohg owt/ vi. To become bogus, suddenly and
   unexpectedly.  “His talk was relatively sane until somebody asked
   him a trick question; then he bogued out and did nothing but
   {flame} afterwards.”  See also {bogosity}, {bogus}.

bogus: adj. 1. Non-functional.  “Your patches are bogus.”
   2. Useless.  “OPCON is a bogus program.”  3. False.  “Your
   arguments are bogus.”  4. Incorrect.  “That algorithm is bogus.”
   5. Unbelievable.  “You claim to have solved the halting problem
   for Turing Machines?  That’s totally bogus.”  6. Silly.  “Stop
   writing those bogus sagas.”

   Astrology is bogus.  So is a bolt that is obviously about to break.
   So is someone who makes blatantly false claims to have solved a
   scientific problem.  (This word seems to have some, but not all, of
   the connotations of {random} — mostly the negative ones.)

   It is claimed that `bogus’ was originally used in the hackish sense
   at Princeton in the late 1960s.  It was spread to CMU and Yale by
   Michael Shamos, a migratory Princeton alumnus.  A glossary of bogus
   words was compiled at Yale when the word was first popularized (see
   {autobogotiphobia} under {bogotify}). The word spread into
   hackerdom from CMU and MIT.  By the early 1980s it was also
   current in something like the hackish sense in West Coast teen
   slang, and it had gone mainstream by 1985.  A correspondent from
   Cambridge reports, by contrast, that these uses of `bogus’ grate on
   British nerves; in Britain the word means, rather specifically,
   `counterfeit’, as in “a bogus 10-pound note”.

Bohr bug: /bohr buhg/ [from quantum physics] n. A repeatable
   {bug}; one that manifests reliably under a possibly unknown but
   well-defined set of conditions.  Antonym of {heisenbug}; see also

boink: /boynk/ [USENET: ascribed there to the TV series
   “Cheers” and “Moonlighting”] 1. To have sex with;
   compare {bounce}, sense 3. (This is mainstream slang.) In
   Commonwealth hackish the variant `bonk’ is more common.  2. After
   the original Peter Korn `Boinkon’ {USENET} parties, used for
   almost any net social gathering, e.g., Miniboink, a small boink
   held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota
   in 1989; Humpdayboinks, Wednesday get-togethers held in the San
   Francisco Bay Area.  Compare {@-party}.  3. Var of `bonk’;
   see {bonk/oif}.

bomb: 1. v. General synonym for {crash} (sense 1) except that it
   is not used as a noun; esp. used of software or OS failures.
   “Don’t run Empire with less than 32K stack, it’ll bomb.”
   2. n.,v. Atari ST and Macintosh equivalents of a UNIX `panic’ or
   Amiga {guru} (sense 2), where icons of little black-powder bombs
   or mushroom clouds are displayed, indicating that the system has died.
   On the Mac, this may be accompanied by a decimal (or occasionally
   hexadecimal) number indicating what went wrong, similar to the
   Amiga GURU MEDITATION number (see {guru}).  {{MS-DOS}} machines
   tend to get {locked up} in this situation.

bondage-and-discipline language: A language (such as Pascal, Ada,
   APL, or Prolog) that, though ostensibly general-purpose, is designed
   so as to enforce an author’s theory of `right programming’ even
   though said theory is demonstrably inadequate for systems hacking
   or even vanilla general-purpose programming.  Often abbreviated
   `B&D’; thus, one may speak of things “having the B&D nature”.
   See {{Pascal}}; oppose {languages of choice}.

bonk/oif: /bonk/, /oyf/ interj. In the {MUD} community, it has
   become traditional to express pique or censure by `bonking’ the
   offending person.  There is a convention that one should
   acknowledge a bonk by saying `oif!’ and a myth to the effect that
   failing to do so upsets the cosmic bonk/oif balance, causing much
   trouble in the universe.  Some MUDs have implemented special
   commands for bonking and oifing.  See also {talk mode},

book titles:: There is a tradition in hackerdom of informally
   tagging important textbooks and standards documents with the
   dominant color of their covers or with some other conspicuous
   feature of the cover.  Many of these are described in this lexicon
   under their own entries. See {Aluminum Book}, {Blue Book},
   {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green
   Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
   {Red Book}, {Silver Book}, {White Book}, {Wizard Book},
   {Yellow Book}, and {bible}.

boot: [techspeak; from `by one’s bootstraps’] v.,n. To load and
   initialize the operating system on a machine.  This usage is no
   longer jargon (having passed into techspeak) but has given rise to
   some derivatives that are still jargon.

   The derivative `reboot’ implies that the machine hasn’t been
   down for long, or that the boot is a {bounce} intended to clear
   some state of {wedgitude}.  This is sometimes used of human
   thought processes, as in the following exchange: “You’ve lost
   me.” “OK, reboot.  Here’s the theory….”

   This term is also found in the variants `cold boot’ (from
   power-off condition) and `warm boot’ (with the CPU and all
   devices already powered up, as after a hardware reset or software

   Another variant: `soft boot’, reinitialization of only part of a
   system, under control of other software still running: “If
   you’re running the {mess-dos} emulator, control-alt-insert will
   cause a soft-boot of the emulator, while leaving the rest of the
   system running.”

   Opposed to this there is `hard boot’, which connotes hostility
   towards or frustration with the machine being booted:  “I’ll have
   to hard-boot this losing Sun.” “I recommend booting it hard.”

   Historical note: this term derives from `bootstrap loader’, a short
   program that was read in from cards or paper tape, or toggled in
   from the front panel switches.  This program was always very short
   (great efforts were expended on making it short in order to
   minimize the labor and chance of error involved in toggling it in),
   but was just smart enough to read in a slightly more complex
   program (usually from a card or paper tape reader), to which it
   handed control; this program in turn was smart enough to read the
   application or operating system from a magnetic tape drive or disk
   drive.  Thus, in successive steps, the computer `pulled itself up
   by its bootstraps’ to a useful operating state.  Nowadays the
   bootstrap is usually found in ROM or EPROM, and reads the first
   stage in from a fixed location on the disk, called the `boot
   block’.  When this program gains control, it is powerful enough to
   load the actual OS and hand control over to it.

bottom-up implementation: n. Hackish opposite of the techspeak term
   `top-down design’.  It is now received wisdom in most
   programming cultures that it is best to design from higher levels
   of abstraction down to lower, specifying sequences of action in
   increasing detail until you get to actual code.  Hackers often find
   (especially in exploratory designs that cannot be closely
   specified in advance) that it works best to *build* things in
   the opposite order, by writing and testing a clean set of primitive
   operations and then knitting them together.

bounce: v. 1. [perhaps from the image of a thrown ball bouncing
   off a wall] An electronic mail message that is undeliverable and
   returns an error notification to the sender is said to `bounce’.
   See also {bounce message}.  2. [Stanford] To play volleyball.
   At the now-demolished {D. C. Power Lab} building used by the
   Stanford AI Lab in the 1970s, there was a volleyball court on the
   front lawn.  From 5 P.M. to 7 P.M. was the scheduled
   maintenance time for the computer, so every afternoon at 5 the
   computer would become unavailable, and over the intercom a voice
   would cry, “Now hear this: bounce, bounce!” followed by Brian
   McCune loudly bouncing a volleyball on the floor outside the
   offices of known volleyballers.  3. To engage in sexual
   intercourse; prob. from the expression `bouncing the mattress’,
   but influenced by Piglet’s psychosexually loaded “Bounce on me
   too, Tigger!” from the “Winnie-the-Pooh” books.  Compare
   {boink}.  4. To casually reboot a system in order to clear up a
   transient problem.  Reported primarily among {VMS} users.
   5. [IBM] To {power cycle} a peripheral in order to reset it.

bounce message: [UNIX] n. Notification message returned to sender by
   a site unable to relay {email} to the intended {{Internet address}}
   recipient or the next link in a {bang path} (see {bounce}).
   Reasons might include a nonexistent or misspelled username or a
   {down} relay site.  Bounce messages can themselves fail, with
   occasionally ugly results; see {sorcerer’s apprentice mode}.
   The term `bounce mail’ is also common.

box: n. 1. A computer; esp. in the construction `foo box’
   where foo is some functional qualifier, like `graphics’, or
   the name of an OS (thus, `UNIX box’, `MS-DOS box’, etc.)  “We
   preprocess the data on UNIX boxes before handing it up to the
   mainframe.”  2. [within IBM] Without qualification but within an
   SNA-using site, this refers specifically to an IBM front-end
   processor or FEP /F-E-P/.  An FEP is a small computer necessary
   to enable an IBM {mainframe} to communicate beyond the limits of
   the {dinosaur pen}.  Typically used in expressions like the cry
   that goes up when an SNA network goes down: “Looks like the
   {box} has fallen over.” (See {fall over}.) See also
   {IBM}, {fear and loathing}, {fepped out}, {Blue

boxed comments: n. Comments (explanatory notes attached to program
   instructions) that occupy several lines by themselves; so called
   because in assembler and C code they are often surrounded by a box
   in a style something like this:

      * This is a boxed comment in C style

   Common variants of this style omit the asterisks in column 2 or add
   a matching row of asterisks closing the right side of the box.  The
   sparest variant omits all but the comment delimiters themselves;
   the `box’ is implied.  Oppose {winged comments}.

boxen: /bok’sn/ [by analogy with {VAXen}] pl.n. Fanciful
   plural of {box} often encountered in the phrase `UNIX boxen’,
   used to describe commodity {{UNIX}} hardware.  The connotation is
   that any two UNIX boxen are interchangeable.

boxology: /bok-sol’*-jee/ n. Syn. {ASCII art}.  This term
   implies a more restricted domain, that of box-and-arrow drawings.
   “His report has a lot of boxology in it.”  Compare

bozotic: /boh-zoh’tik/ or /boh-zo’tik/ [from the name of a TV
   clown even more losing than Ronald McDonald] adj. Resembling or
   having the quality of a bozo; that is, clownish, ludicrously wrong,
   unintentionally humorous.  Compare {wonky}, {demented}.  Note
   that the noun `bozo’ occurs in slang, but the mainstream
   adjectival form would be `bozo-like’ or (in New England)

BQS: /B-Q-S/ adj. Syn. {Berkeley Quality Software}.

brain dump: n. The act of telling someone everything one knows
   about a particular topic or project.  Typically used when someone
   is going to let a new party maintain a piece of code.  Conceptually
   analogous to an operating system {core dump} in that it saves a
   lot of useful {state} before an exit.  “You’ll have to
   give me a brain dump on FOOBAR before you start your new job at
   HackerCorp.”  See {core dump} (sense 4).  At Sun, this is also
   known as `TOI’ (transfer of information).

brain-damaged: 1. [generalization of `Honeywell Brain Damage’
   (HBD), a theoretical disease invented to explain certain utter
   cretinisms in Honeywell {{Multics}}] adj. Obviously wrong;
   {cretinous}; {demented}.  There is an implication that the
   person responsible must have suffered brain damage, because he
   should have known better.  Calling something brain-damaged is
   really bad; it also implies it is unusable, and that its failure to
   work is due to poor design rather than some accident.  “Only six
   monocase characters per file name?  Now *that’s*
   brain-damaged!”  2. [esp. in the Mac world] May refer to free
   demonstration software that has been deliberately crippled in some
   way so as not to compete with the commercial product it is
   intended to sell.  Syn.  {crippleware}.

brain-dead: adj. Brain-damaged in the extreme.  It tends to imply
   terminal design failure rather than malfunction or simple
   stupidity.  “This comm program doesn’t know how to send a break
   — how brain-dead!”

braino: /bray’no/ n. Syn. for {thinko}.

branch to Fishkill: [IBM: from the location of one of the
   corporation’s facilities] n. Any unexpected jump in a program that
   produces catastrophic or just plain weird results.  See {jump
   off into never-never land}, {hyperspace}.

brand brand brand: n. Humorous catch-phrase from {BartleMUD}s, in
   which players were described carrying a list of objects, the most
   common of which would usually be a brand.  Often used as a joke in
   {talk mode} as in “Fred the wizard is here, carrying brand ruby
   brand brand brand kettle broadsword flamethrower”.  A brand is a
   torch, of course; one burns up a lot of those exploring dungeons.
   Prob. influenced by the famous Monty Python “Spam” skit.

break: 1. vt. To cause to be broken (in any sense).  “Your latest
   patch to the editor broke the paragraph commands.”  2. v.  (of a
   program) To stop temporarily, so that it may debugged.  The place
   where it stops is a `breakpoint’.  3. [techspeak] vi. To send an
   RS-232 break (125 msec of line high) over a serial comm line.
   4. [UNIX] vi. To strike whatever key currently causes the tty
   driver to send SIGINT to the current process.  Normally, break
   (sense 3) or delete does this.  5. `break break’ may be said to
   interrupt a conversation (this is an example of verb doubling).

breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
   contained bootstrap (see {boot}) code, periodically sent out
   from a working computer to infuse the `breath of life’ into any
   computer on the network that had happened to crash.  The machines
   had hardware or firmware that would wait for such a packet after a
   catastrophic error.

breedle: n. See {feep}.

bring X to its knees: v. To present a machine, operating system,
   piece of software, or algorithm with a load so extreme or
   {pathological} that it grinds to a halt.  “To bring a MicroVAX
   to its knees, try twenty users running {vi} — or four running
   {EMACS}.”  Compare {hog}.

brittle: adj. Said of software that is functional but easily broken
   by changes in operating environment or configuration, or by any
   minor tweak to the software itself.  Also, any system that
   responds inappropriately and disastrously to expected external
   stimuli; e.g., a file system that is usually totally scrambled by a
   power failure is said to be brittle.  This term is often used to
   describe the results of a research effort that were never intended
   to be robust, but it can be applied to commercially developed
   software, which displays the quality far more often than it ought
   to.  Oppose {robust}.

broadcast storm: n. An incorrect packet broadcast on a network that
   causes most hosts to respond all at once, typically with wrong
   answers that start the process over again.  See {network

broken: adj. 1. Not working properly (of programs).  2. Behaving
   strangely; especially (when used of people) exhibiting extreme

broken arrow: [IBM] n. The error code displayed on line 25 of a
   3270 terminal (or a PC emulating a 3270) for various kinds of
   protocol violations and “unexpected” error conditions (including
   connection to a {down} computer).  On a PC, simulated with
   `->/_’, with the two center characters overstruck. In true
   {luser} fashion, the original documentation of these codes
   (visible on every 3270 terminal, and necessary for debugging
   network problems) was confined to an IBM customer engineering

   Note: to appreciate this term fully, it helps to know that `broken
   arrow’ is also military jargon for an accident involving nuclear

broket: /broh’k*t/ or /broh’ket`/ [by analogy with `bracket’: a
   `broken bracket’] n. Either of the characters `’,
   when used as paired enclosing delimiters.  This word
   originated as a contraction of the phrase `broken bracket’, that
   is, a bracket that is bent in the middle.  (At MIT, and apparently
   in the {Real World} as well, these are usually called {angle

Brooks’s Law: prov. “Adding manpower to a late software project
   makes it later” — a result of the fact that the advantage from
   splitting work among N programmers is O(N) (that is,
   proportional to N), but the complexity and communications
   cost associated with coordinating and then merging their work
   is O(N^2) (that is, proportional to the square of N).
   The quote is from Fred Brooks, a manager of IBM’s OS/360 project
   and author of `The Mythical Man-Month’ (Addison-Wesley, 1975,
   ISBN 0-201-00650-2), an excellent early book on software
   engineering.  The myth in question has been most tersely expressed
   as “Programmer time is fungible” and Brooks established
   conclusively that it is not.  Hackers have never forgotten his
   advice; too often, {management} does.  See also
   {creationism}, {second-system effect}.

BRS: /B-R-S/ n. Syn. {Big Red Switch}.  This abbreviation is
   fairly common on-line.

brute force: adj. Describes a primitive programming style, one in
   which the programmer relies on the computer’s processing power
   instead of using his or her own intelligence to simplify the problem,
   often ignoring problems of scale and applying na”ive methods suited
   to small problems directly to large ones.

   The {canonical} example of a brute-force algorithm is associated
   with the `traveling salesman problem’ (TSP), a classical NP-hard
   problem: Suppose a person is in, say, Boston, and wishes to drive
   to N other cities.  In what order should he or she visit
   them in order to minimize the distance travelled?  The brute-force
   method is to simply generate all possible routes and compare the
   distances; while guaranteed to work and simple to implement, this
   algorithm is clearly very stupid in that it considers even
   obviously absurd routes (like going from Boston to Houston via San
   Francisco and New York, in that order).  For very small N it
   works well, but it rapidly becomes absurdly inefficient when
   N increases (for N = 15, there are already
   1,307,674,368,000 possible routes to consider, and for
   N = 1000 — well, see {bignum}).  See
   also {NP-}.

   A more simple-minded example of brute-force programming is finding
   the smallest number in a large list by first using an existing
   program to sort the list in ascending order, and then picking the
   first number off the front.

   Whether brute-force programming should be considered stupid or not
   depends on the context; if the problem isn’t too big, the extra CPU
   time spent on a brute-force solution may cost less than the
   programmer time it would take to develop a more `intelligent’
   algorithm.  Alternatively, a more intelligent algorithm may imply
   more long-term complexity cost and bug-chasing than are justified
   by the speed improvement.

   Ken Thompson, co-inventor of UNIX, is reported to have uttered the
   epigram “When in doubt, use brute force”.  He probably intended
   this as a {ha ha only serious}, but the original UNIX kernel’s
   preference for simple, robust, and portable algorithms over
   {brittle} `smart’ ones does seem to have been a significant
   factor in the success of that OS.  Like so many other tradeoffs in
   software design, the choice between brute force and complex,
   finely-tuned cleverness is often a difficult one that requires both
   engineering savvy and delicate esthetic judgment.

brute force and ignorance: n. A popular design technique at many
   software houses — {brute force} coding unrelieved by any
   knowledge of how problems have been previously solved in elegant
   ways.  Dogmatic adherence to design methodologies tends to
   encourage it.  Characteristic of early {larval stage}
   programming; unfortunately, many never outgrow it.  Often
   abbreviated BFI: “Gak, they used a bubble sort!  That’s strictly
   from BFI.”  Compare {bogosity}.

BSD: /B-S-D/ n. [acronym for `Berkeley System Distribution’] a
   family of {{UNIX}} versions for the DEC {VAX} and PDP-11
   developed by Bill Joy and others at {Berzerkeley} starting around
   1980, incorporating paged virtual memory, TCP/IP networking
   enhancements, and many other features.  The BSD versions (4.1, 4.2,
   and 4.3) and the commercial versions derived from them (SunOS, ULTRIX,
   and Mt. Xinu) held the technical lead in the UNIX world until
   AT&T’s successful standardization efforts after about 1986, and are
   still widely popular.  See {{UNIX}}, {USG UNIX}.

bubble sort: n. Techspeak for a particular sorting technique in
   which pairs of adjacent values in the list to be sorted are
   compared and interchanged if they are out of order; thus, list
   entries `bubble upward’ in the list until they bump into one with a
   lower sort value.  Because it is not very good relative to other
   methods and is the one typically stumbled on by {na”ive} and
   untutored programmers, hackers consider it the {canonical}
   example of a na”ive algorithm.  The canonical example of a really
   *bad* algorithm is {bogo-sort}.  A bubble sort might be used
   out of ignorance, but any use of bogo-sort could issue only from
   brain damage or willful perversity.

bucky bits: /buh’kee bits/ n. 1. obs. The bits produced by the
   CONTROL and META shift keys on a SAIL keyboard, resulting in a
   9-bit keyboard character set.  The MIT AI TV (Knight) keyboards
   extended this with TOP and separate left and right CONTROL and META
   keys, resulting in a 12-bit character set; later, LISP Machines
   added such keys as SUPER, HYPER, and GREEK (see {space-cadet
   keyboard}).  2. By extension, bits associated with `extra’ shift
   keys on any keyboard, e.g., the ALT on an IBM PC or command and
   option keys on a Macintosh.

   It is rumored that `bucky bits’ were named for Buckminster Fuller
   during a period when he was consulting at Stanford.  Actually,
   `Bucky’ was Niklaus Wirth’s nickname when *he* was at
   Stanford; he first suggested the idea of an EDIT key to set the
   8th bit of an otherwise 7-bit ASCII character.  This was used in a
   number of editors written at Stanford or in its environs (TV-EDIT
   and NLS being the best-known).  The term spread to MIT and CMU
   early and is now in general use.  See {double bucky},
   {quadruple bucky}.

buffer overflow: n. What happens when you try to stuff more data
   into a buffer (holding area) than it can handle.  This may be due
   to a mismatch in the processing rates of the producing and
   consuming processes (see {overrun}), or because the buffer is
   simply too small to hold all the data that must accumulate before a
   piece of it can be processed. For example, in a text-processing
   tool that {crunch}es a line at a time, a short line buffer can
   result in {lossage} as input from a long line overflows the
   buffer and trashes data beyond it.  Good defensive programming
   would check for overflow on each character and stop accepting data
   when the buffer is full up.  The term is used of and by humans in a
   metaphorical sense. “What time did I agree to meet you?  My buffer
   must have overflowed.”  Or “If I answer that phone my buffer is
   going to overflow.”  See also {spam}, {overrun screw}.

bug: n. An unwanted and unintended property of a program or hardware,
   esp. one that causes it to malfunction.  Antonym of {feature}.
   Examples: “There’s a bug in the editor: it writes things out
   backwards.”  “The system crashed because of a hardware bug.”
   “Fred is a winner, but he has a few bugs”  (i.e., Fred is a good
   guy, but he has a few personality problems).

   Historical note: Some have said this term came from telephone
   company usage, in which “bugs in a telephone cable” were blamed
   for noisy lines, but this appears to be an incorrect folk
   etymology.  Admiral Grace Hopper (an early computing pioneer better
   known for inventing {COBOL}) liked to tell a story in which a
   technician solved a persistent {glitch} in the Harvard Mark II
   machine by pulling an actual insect out from between the
   contacts of one of its relays, and she subsequently promulgated
   {bug} in its hackish sense as a joke about the incident (though,
   as she was careful to admit, she was not there when it happened).
   For many years the logbook associated with the incident and the
   actual bug in question (a moth) sat in a display case at the Naval
   Surface Warfare Center.  The entire story, with a picture of the
   logbook and the moth taped into it, is recorded in the `Annals of
   the History of Computing’, Vol. 3, No. 3 (July 1981), pp. 285–286.

   The text of the log entry (from September 9, 1945), reads “1545
   Relay #70 Panel F (moth) in relay.  First actual case of bug being
   found”.  This wording seems to establish that the term was already in use
   at the time in its current specific sense.  Indeed, the use of
   `bug’ to mean an industrial defect was already established in
   Thomas Edison’s time, and `bug’ in the sense of an disruptive event
   goes back to Shakespeare!  In the first edition of Samuel Johnson’s
   dictionary one meaning of `bug’ is “A frightful object; a walking
   spectre”; this is traced to `bugbear’, a Welsh term for a variety
   of mythological monster which (to complete the circle) has recently
   been reintroduced into the popular lexicon through fantasy
   role-playing games.

   In any case, in jargon the word almost never refers to insects.
   Here is a plausible conversation that never actually happened:

   “There is a bug in this ant farm!”

   “What do you mean?  I don’t see any ants in it.”

   “That’s the bug.”

   [There has been a widespread myth that the original bug was moved
   to the Smithsonian, and an earlier version of this entry so
   asserted.  A correspondent who thought to check discovered that the
   bug was not there.  While investigating this, your editor
   discovered that the NSWC still had the bug, but had unsuccessfully
   tried to get the Smithsonian to accept it — and that the present
   curator of the History of American Technology Museum didn’t
   know this and agreed that it would make a worthwhile exhibit.
   Thus, the process of investigating the original-computer-bug bug
   may have fixed it in an entirely unexpected way, by making the myth
   true!  — ESR]

bug-compatible: adj. Said of a design or revision that has been
   badly compromised by a requirement to be compatible with
   {fossil}s or {misfeature}s in other programs or (esp.)
   previous releases of itself. “MS-DOS 2.0 used \ as a path
   separator to be bug-compatible with some cretin’s choice of / as an
   option character in 1.0.”

bug-for-bug compatible: n. Same as {bug-compatible}, with the
   additional implication that much tedious effort went into ensuring
   that each (known) bug was replicated.

buglix: /buhg’liks/ n. Pejorative term referring to DEC’s ULTRIX
   operating system in its earlier *severely* buggy versions.
   Still used to describe ULTRIX, but without venom.  Compare

bulletproof: adj. Used of an algorithm or implementation considered
   extremely {robust}; lossage-resistant; capable of correctly
   recovering from any imaginable exception condition.  This is a rare
   and valued quality.  Syn. {armor-plated}.

bum: 1. vt. To make highly efficient, either in time or space,
   often at the expense of clarity.  “I managed to bum three more
   instructions out of that code.”  “I spent half the night bumming
   the interrupt code.”  2. To squeeze out excess; to remove
   something in order to improve whatever it was removed from (without
   changing function; this distinguishes the process from a
   {featurectomy}).  3. n. A small change to an algorithm, program,
   or hardware device to make it more efficient.  “This hardware bum
   makes the jump instruction faster.”  Usage: now uncommon, largely
   superseded by v. {tune} (and n. {tweak}, {hack}), though
   none of these exactly capture sense 2.  All these uses are rare in
   Commonwealth hackish, because in the parent dialects of English
   `bum’ is a rude synonym for `buttocks’.

bump: vt. Synonym for increment.  Has the same meaning as
   C’s ++ operator.  Used esp. of counter variables, pointers, and index
   dummies in `for’, `while’, and `do-while’ loops.

burble: [from Lewis Carroll’s “Jabberwocky”] v. Like {flame},
   but connotes that the source is truly clueless and ineffectual
   (mere flamers can be competent).  A term of deep contempt.
   “There’s some guy on the phone burbling about how he got a DISK
   FULL error and it’s all our comm software’s fault.”

buried treasure: n. A surprising piece of code found in some
   program.  While usually not wrong, it tends to vary from {crufty}
   to {bletcherous}, and has lain undiscovered only because it was
   functionally correct, however horrible it is.  Used sarcastically,
   because what is found is anything *but* treasure.  Buried
   treasure almost always needs to be dug up and removed.  “I just
   found that the scheduler sorts its queue using {bubble sort}!
   Buried treasure!”

burn-in period: n. 1. A factory test designed to catch systems
   with {marginal} components before they get out the door; the
   theory is that burn-in will protect customers by outwaiting the
   steepest part of the {bathtub curve} (see {infant
   mortality}).  2. A period of indeterminate length in which a person
   using a computer is so intensely involved in his project that he
   forgets basic needs such as food, drink, sleep, etc.  Warning:
   Excessive burn-in can lead to burn-out.  See {hack mode},
   {larval stage}.

burst page: n. Syn. {banner}, sense 1.

busy-wait: vi. Used of human behavior, conveys that the subject is
   busy waiting for someone or something, intends to move instantly as
   soon as it shows up, and thus cannot do anything else at the
   moment.  “Can’t talk now, I’m busy-waiting till Bill gets off the

   Technically, `busy-wait’ means to wait on an event by
   {spin}ning through a tight or timed-delay loop that polls for
   the event on each pass, as opposed to setting up an interrupt
   handler and continuing execution on another part of the task.  This
   is a wasteful technique, best avoided on time-sharing systems where
   a busy-waiting program may {hog} the processor.

buzz: vi. 1. Of a program, to run with no indication of progress
   and perhaps without guarantee of ever finishing; esp. said of
   programs thought to be executing tight loops of code.  A program
   that is buzzing appears to be {catatonic}, but you never get out
   of catatonia, while a buzzing loop may eventually end of its own
   accord.  “The program buzzes for about 10 seconds trying to sort
   all the names into order.”  See {spin}; see also {grovel}.
   2. [ETA Systems] To test a wire or printed circuit trace for
   continuity by applying an AC rather than DC signal.  Some wire
   faults will pass DC tests but fail a buzz test.  3. To process an
   array or list in sequence, doing the same thing to each element.
   “This loop buzzes through the tz array looking for a terminator

BWQ: /B-W-Q/ [IBM: acronym, `Buzz Word Quotient’] The
   percentage of buzzwords in a speech or documents.  Usually roughly
   proportional to {bogosity}.  See {TLA}.

by hand: adv. Said of an operation (especially a repetitive,
   trivial, and/or tedious one) that ought to be performed
   automatically by the computer, but which a hacker instead has to
   step tediously through.  “My mailer doesn’t have a command to
   include the text of the message I’m replying to, so I have to do it
   by hand.”  This does not necessarily mean the speaker has to
   retype a copy of the message; it might refer to, say, dropping into
   a {subshell} from the mailer, making a copy of one’s mailbox file,
   reading that into an editor, locating the top and bottom of the
   message in question, deleting the rest of the file, inserting `>’
   characters on each line, writing the file, leaving the editor,
   returning to the mailer, reading the file in, and later remembering
   to delete the file.  Compare {eyeball search}.

byte:: /bi:t/ [techspeak] n. A unit of memory or data equal to
   the amount used to represent one character; on modern architectures
   this is usually 8 bits, but may be 9 on 36-bit machines.  Some
   older architectures used `byte’ for quantities of 6 or 7 bits, and
   the PDP-10 supported `bytes’ that were actually bitfields of
   1 to 36 bits!  These usages are now obsolete, and even 9-bit bytes
   have become rare in the general trend toward power-of-2 word sizes.

   Historical note: The term originated in 1956 during the early
   design phase for the IBM Stretch computer; originally it was
   described as 1 to 6 bits (typical I/O equipment of the period
   used 6-bit chunks of information).  The move to an 8-bit byte
   happened in late 1956, and this size was later adopted and
   promulgated as a standard by the System/360.  The term `byte’ was
   coined by mutating the word `bite’ so it would not be accidentally
   misspelled as {bit}.  See also {nybble}.

bytesexual: /bi:t`sek’shu-*l/ adj. Said of hardware, denotes
   willingness to compute or pass data in either {big-endian} or
   {little-endian} format (depending, presumably, on a {mode bit}
   somewhere).  See also {NUXI problem}.

= C =

C: n. 1. The third letter of the English alphabet.  2. ASCII
   1000011.  3. The name of a programming language designed by
   Dennis Ritchie during the early 1970s and immediately used to
   reimplement {{UNIX}}.  So called because many features derived
   from an earlier compiler named `B’ in commemoration of
   *its* parent, BCPL; before Bjarne Stroustrup settled the
   question by designing C++, there was a humorous debate over whether
   C’s successor should be named `D’ or `P’.  C became immensely
   popular outside Bell Labs after about 1980 and is now the dominant
   language in systems and microcomputer applications programming.
   See also {languages of choice}, {indent style}.

   C is often described, with a mixture of fondness and disdain
   varying according to the speaker, as “a language that combines
   all the elegance and power of assembly language with all the
   readability and maintainability of assembly language”.

calculator: [Cambridge] n. Syn. for {bitty box}.

can: vt. To abort a job on a time-sharing system.  Used esp. when the
   person doing the deed is an operator, as in “canned from the
   {{console}}”.  Frequently used in an imperative sense, as in “Can
   that print job, the LPT just popped a sprocket!”  Synonymous with
   {gun}.  It is said that the ASCII character with mnemonic CAN
   (0011000) was used as a kill-job character on some early OSes.

canonical: [historically, `according to religious law’] adj. The
   usual or standard state or manner of something.  This word has a
   somewhat more technical meaning in mathematics.  Two formulas such
   as 9 + x and x + 9 are said to be equivalent because
   they mean the same thing, but the second one is in `canonical
   form’ because it is written in the usual way, with the highest
   power of x first.  Usually there are fixed rules you can use
   to decide whether something is in canonical form.  The jargon
   meaning, a relaxation of the technical meaning, acquired its
   present loading in computer-science culture largely through its
   prominence in Alonzo Church’s work in computation theory and
   mathematical logic (see {Knights of the Lambda Calculus}).
   Compare {vanilla}.

   This word has an interesting history.  Non-technical academics do
   not use the adjective `canonical’ in any of the senses defined
   above with any regularity; they do however use the nouns `canon’ and
   `canonicity’ (not *canonicalness or *canonicality). The `canon’ of
   a given author is the complete body of authentic works by that
   author (this usage is familiar to Sherlock Holmes fans as well as
   to literary scholars).  `*The* canon’ is the body of works in
   a given field (e.g., works of literature, or of art, or of music)
   deemed worthwhile for students to study and for scholars to

   These non-techspeak academic usages derive ultimately from the
   historical meaning, specifically the classification of the books of
   the Bible into two groups by Christian theologians.  The
   `canonical’ books were the ones widely accepted as Holy
   Scripture and held to be of primary authority.  The
   `deuterocanonical’ books (literally `secondarily canonical’;
   also known as the `Apochrypha’) were held to be of lesser
   authority — indeed they have been held in such low esteem that to
   this day they are omitted from most Protestant bibles.

   Hackers invest this term with a playfulness that makes an ironic
   contrast with its historical meaning.  A true story: One Bob
   Sjoberg, new at the MIT AI Lab, expressed some annoyance at the use
   of jargon.  Over his loud objections, GLS and RMS made a point of
   using it as much as possible in his presence, and eventually it
   began to sink in.  Finally, in one conversation, he used the word
   `canonical’ in jargon-like fashion without thinking.  Steele:
   “Aha!  We’ve finally got you talking jargon too!”  Stallman:
   “What did he say?”  Steele: “Bob just used `canonical’ in the
   canonical way.”

   Of course, canonicality depends on context, but it is implicitly
   defined as the way *hackers* normally expect things to be.
   Thus, a hacker may claim with a straight face that `according to
   religious law’ is *not* the canonical meaning of `canonical’.

card: n. 1. An electronic printed-circuit board (see also {tall
   card}, {short card}.  2. obs. Syn. {{punched card}}.

card walloper: n. An EDP programmer who grinds out batch programs
   that do stupid things like print people’s paychecks.  Compare
   {code grinder}.  See also {{punched card}}, {eighty-column

careware: /keir’weir/ n. {Shareware} for which either the
   author suggests that some payment be made to a nominated charity
   or a levy directed to charity is included on top of the
   distribution charge.  Syn. {charityware}; compare
   {crippleware}, sense 2.

cargo cult programming: n. A style of (incompetent) programming
   dominated by ritual inclusion of code or program structures that
   serve no real purpose.  A cargo cult programmer will usually
   explain the extra code as a way of working around some bug
   encountered in the past, but usually neither the bug nor the reason
   the code apparently avoided the bug was ever fully understood
   (compare {shotgun debugging}, {voodoo programming}).

   The term `cargo cult’ is a reference to aboriginal religions that
   grew up in the South Pacific after World War II.  The practices of
   these cults center on building elaborate mockups of airplanes and
   military style landing strips in the hope of bringing the return of
   the god-like airplanes that brought such marvelous cargo during the
   war.  Hackish usage probably derives from Richard Feynman’s
   characterization of certain practices as “cargo cult science” in
   his book `Surely You’re Joking, Mr. Feynman’ (W. W. Norton
   & Co, New York 1985, ISBN 0-393-01921-7).

case and paste: [from `cut and paste’] n. 1. The addition of a new
   {feature} to an existing system by selecting the code from an
   existing feature and pasting it in with minor changes.  Common in
   telephony circles because most operations in a telephone switch are
   selected using `case’ statements.  Leads to {software bloat}.

   In some circles of EMACS users this is called `programming by
   Meta-W’, because Meta-W is the EMACS command for copying a block of
   text to a kill buffer in preparation to pasting it in elsewhere.
   The term is condescending, implying that the programmer is acting
   mindlessly rather than thinking carefully about what is required to
   integrate the code for two similar cases.

casters-up mode: [IBM] n. Yet another synonym for `broken’ or

casting the runes: n. What a {guru} does when you ask him or her
   to run a particular program and type at it because it never works
   for anyone else; esp. used when nobody can ever see what the guru
   is doing different from what J. Random Luser does.  Compare
   {incantation}, {runes}, {examining the entrails}; also see
   the AI koan about Tom Knight in appendix A.

cat: [from `catenate’ via {{UNIX}} `cat(1)’] vt.
   1. [techspeak] To spew an entire file to the screen or some other
   output sink without pause.  2. By extension, to dump large amounts
   of data at an unprepared target or with no intention of browsing it
   carefully.  Usage: considered silly.  Rare outside UNIX sites.  See
   also {dd}, {BLT}.

   Among UNIX fans, `cat(1)’ is considered an excellent example
   of user-interface design, because it outputs the file contents
   without such verbosity as spacing or headers between the files, and
   because it does not require the files to consist of lines of text,
   but works with any sort of data.

   Among UNIX-haters, `cat(1)’ is considered the {canonical}
   example of *bad* user-interface design.  This because it is more
   often used to {blast} a file to standard output than to
   concatenate two files.  The name `cat’ for the former
   operation is just as unintuitive as, say, LISP’s {cdr}.

   Of such oppositions are {holy wars} made….

catatonic: adj. Describes a condition of suspended animation in
   which something is so {wedged} or {hung} that it makes no
   response.  If you are typing on a terminal and suddenly the
   computer doesn’t even echo the letters back to the screen as you
   type, let alone do what you’re asking it to do, then the computer
   is suffering from catatonia (possibly because it has crashed).
   “There I was in the middle of a winning game of {nethack} and it
   went catatonic on me!  Aaargh!” Compare {buzz}.

cdr: /ku’dr/ or /kuh’dr/ [from LISP] vt. To skip past the
   first item from a list of things (generalized from the LISP
   operation on binary tree structures, which returns a list
   consisting of all but the first element of its argument).  In the
   form `cdr down’, to trace down a list of elements:  “Shall we
   cdr down the agenda?”  Usage: silly.  See also {loop through}.

   Historical note: The instruction format of the IBM 7090 that hosted
   the original LISP implementation featured two 15-bit fields called
   the `address’ and `decrement’ parts.  The term `cdr’ was originally
   `Contents of Decrement part of Register’.  Similarly, `car’ stood
   for `Contents of Address part of Register’.

   The cdr and car operations have since become bases for
   formation of compound metaphors in non-LISP contexts.  GLS recalls,
   for example, a programming project in which strings were
   represented as linked lists; the get-character and skip-character
   operations were of course called CHAR and CHDR.

chad: /chad/ n. 1. The perforated edge strips on printer paper, after
   they have been separated from the printed portion.  Also called
   {selvage} and {perf}.  2. obs. The confetti-like paper bits punched
   out of cards or paper tape; this was also called `chaff’, `computer
   confetti’, and `keypunch droppings’.

   Historical note: One correspondent believes `chad’ (sense 2)
   derives from the Chadless keypunch (named for its inventor), which
   cut little u-shaped tabs in the card to make a hole when the tab
   folded back, rather than punching out a circle/rectangle; it was
   clear that if the Chadless keypunch didn’t make them, then the
   stuff that other keypunches made had to be `chad’.

chad box: n. {Iron Age} card punches contained boxes inside them,
   about the size of a lunchbox (or in some models a large
   wastebasket), that held the {chad} (sense 2).  You had to open
   the covers of the card punch periodically and empty the chad box.
   The {bit bucket} was notionally the equivalent device in the CPU
   enclosure, which was typically across the room in another great
   gray-and-blue box.

chain: [orig. from BASIC’s `CHAIN’ statement] vi. To hand off
   execution to a child or successor without going through the
   {OS} command interpreter that invoked it.  The state of the
   parent program is lost and there is no returning to it.  Though
   this facility used to be common on memory-limited micros and is
   still widely supported for backward compatibility, the jargon usage
   is semi-obsolescent; in particular, most UNIX programmers will
   think of this as an {exec}.  Oppose the more modern {subshell}.

char: /keir/ or /char/; rarely, /kar/ n. Shorthand for
   `character’.  Esp. used by C programmers, as `char’ is
   C’s typename for character data.

charityware: /char’it-ee-weir`/ n. Syn. {careware}.

chase pointers: 1. vi. To go through multiple levels of
   indirection, as in traversing a linked list or graph structure.
   Used esp. by programmers in C, where explicit pointers are a very
   common data type.  This is techspeak, but it remains jargon when
   used of human networks.  “I’m chasing pointers.  Bob said you
   could tell me who to talk to about….” See {dangling
   pointer} and {snap}.  2. [Cambridge] `pointer chase’ or
   `pointer hunt’: The process of going through a dump
   (interactively or on a large piece of paper printed with hex
   {runes}) following dynamic data-structures.  Used only in a
   debugging context.

chemist: [Cambridge] n. Someone who wastes computer time on
   {number-crunching} when you’d far rather the machine were doing
   something more productive, such as working out anagrams of your
   name or printing Snoopy calendars or running {life} patterns.
   May or may not refer to someone who actually studies chemistry.

Chernobyl chicken: n. See {laser chicken}.

Chernobyl packet: /cher-noh’b*l pak’*t/ n. A network packet that
   induces {network meltdown} (the result of a {broadcast storm}),
   in memory of the 1987 nuclear accident at Chernobyl in the Ukraine.
   The typical case of this is an IP Ethernet datagram that passes
   through a gateway with both source and destination Ether and IP
   address set as the respective broadcast addresses for the
   subnetworks being gated between.  Compare {Christmas tree

chicken head: [Commodore] n. The Commodore Business Machines logo,
   which strongly resembles a poultry part.  Rendered in ASCII as
   `C=’.  With the arguable exception of the Amiga (see {amoeba}),
   Commodore’s machines are notoriously crocky little {bitty box}es
   (see also {PETSCII}).  Thus, this usage may owe something to
   Philip K.  Dick’s novel `Do Androids Dream of Electric Sheep?’
   (the basis for the movie `Blade Runner’), in which a
   `chickenhead’ is a mutant with below-average intelligence.

chiclet keyboard: n. A keyboard with small rectangular or
   lozenge-shaped rubber or plastic keys that look like pieces of
   chewing gum.  (Chiclets is the brand name of a variety of chewing
   gum that does in fact resemble the keys of chiclet keyboards.)
   Used esp. to describe the original IBM PCjr keyboard.  Vendors
   unanimously liked these because they were cheap, and a lot of early
   portable and laptop products got launched using them.  Customers
   rejected the idea with almost equal unanimity, and chiclets are not
   often seen on anything larger than a digital watch any more.

chine nual: /sheen’yu-*l/ [MIT] n.,obs. The Lisp Machine Manual, so
   called because the title was wrapped around the cover so only those
   letters showed on the front.

Chinese Army technique: n. Syn. {Mongolian Hordes technique}.

choke: v. To reject input, often ungracefully.  “Nuls make System
   V’s `lpr(1)’ choke.”  “I tried building an {EMACS} binary to
   use {X}, but `cpp(1)’ choked on all those `#define’s.”
   See {barf}, {gag}, {vi}.

chomp: vi. To {lose}; specifically, to chew on something of
   which more was bitten off than one can.  Probably related to
   gnashing of teeth.  See {bagbiter}.  A hand gesture commonly
   accompanies this.  To perform it, hold the four fingers
   together and place the thumb against their tips.  Now open and
   close your hand rapidly to suggest a biting action (much like what
   Pac-Man does in the classic video game, though this pantomime seems
   to predate that).  The gesture alone means `chomp chomp’ (see
   Verb Doubling in the “Jargon Construction” section of the
   Prependices).  The hand may be pointed at the object of complaint,
   and for real emphasis you can use both hands at once.  Doing this
   to a person is equivalent to saying “You chomper!”  If you point
   the gesture at yourself, it is a humble but humorous admission of
   some failure.  You might do this if someone told you that a program
   you had written had failed in some surprising way and you felt dumb
   for not having anticipated it.

chomper: n. Someone or something that is chomping; a loser.  See
   {loser}, {bagbiter}, {chomp}.

Christmas tree: n. A kind of RS-232 line tester or breakout box
   featuring rows of blinking red and green LEDs suggestive of
   Christmas lights.

Christmas tree packet: n. A packet with every single option set for
   whatever protocol is in use.  See {kamikaze packet}, {Chernobyl
   packet}.  (The term doubtless derives from a fanciful image of each
   little option bit being represented by a different-colored light
   bulb, all turned on.)

chrome: [from automotive slang via wargaming] n. Showy features
   added to attract users but contributing little or nothing to
   the power of a system.  “The 3D icons in Motif are just chrome,
   but they certainly are *pretty* chrome!”  Distinguished from
   {bells and whistles} by the fact that the latter are usually
   added to gratify developers’ own desires for featurefulness.
   Often used as a term of contempt.

chug: vi. To run slowly; to {grind} or {grovel}.  “The disk is
   chugging like crazy.”

Church of the SubGenius: n. A mutant offshoot of
   {Discordianism} launched in 1981 as a spoof of fundamentalist
   Christianity by the `Reverend’ Ivan Stang, a brilliant satirist
   with a gift for promotion.  Popular among hackers as a rich source
   of bizarre imagery and references such as “Bob” the divine
   drilling-equipment salesman, the Benevolent Space Xists, and the
   Stark Fist of Removal.  Much SubGenius theory is concerned with the
   acquisition of the mystical substance or quality of

Cinderella Book: [CMU] n. `Introduction to Automata Theory,
   Languages, and Computation’, by John Hopcroft and Jeffrey Ullman,
   (Addison-Wesley, 1979).  So called because the cover depicts a girl
   (putatively Cinderella) sitting in front of a Rube Goldberg device
   and holding a rope coming out of it.  The back cover depicts the
   girl with the device in shambles after she has pulled on the rope.
   See also {{book titles}}.

CI$: // n. Hackerism for `CIS’, CompuServe Information Service.
   The dollar sign refers to CompuServe’s rather steep line charges.  Often
   used in {sig block}s just before a CompuServe address.  Syn.

Classic C: /klas’ik C/ [a play on `Coke Classic’] n. The
   C programming language as defined in the first edition of {K&R},
   with some small additions.  It is also known as `K&R C’.  The name
   came into use while C was being standardized by the ANSI X3J11
   committee.  Also `C Classic’.  This is sometimes applied
   elsewhere: thus, `X Classic’, where X = Star Trek (referring to the
   original TV series) or X = PC (referring to IBM’s ISA-bus machines
   as opposed to the PS/2 series).  This construction is especially
   used of product series in which the newer versions are considered
   serious losers relative to the older ones.

clean: 1. adj. Used of hardware or software designs, implies
   `elegance in the small’, that is, a design or implementation that
   may not hold any surprises but does things in a way that is
   reasonably intuitive and relatively easy to comprehend from the
   outside.  The antonym is `grungy’ or {crufty}.  2. v. To remove
   unneeded or undesired files in a effort to reduce clutter:  “I’m
   cleaning up my account.” “I cleaned up the garbage and now have
   100 Meg free on that partition.”

CLM: /C-L-M/ [Sun: `Career Limiting Move’] 1. n. An action
   endangering one’s future prospects of getting plum projects and
   raises, and possibly one’s job:  “His Halloween costume was a
   parody of his manager.  He won the prize for `best CLM’.”
   2. adj.  Denotes extreme severity of a bug, discovered by a
   customer and obviously missed earlier because of poor testing:
   “That’s a CLM bug!”

clobber: vt. To overwrite, usually unintentionally: “I walked off
   the end of the array and clobbered the stack.”  Compare {mung},
   {scribble}, {trash}, and {smash the stack}.

clocks: n. Processor logic cycles, so called because each
   generally corresponds to one clock pulse in the processor’s timing.
   The relative execution times of instructions on a machine are
   usually discussed in clocks rather than absolute fractions of a
   second; one good reason for this is that clock speeds for various
   models of the machine may increase as technology improves, and it
   is usually the relative times one is interested in when discussing
   the instruction set.  Compare {cycle}.

clone: n. 1. An exact duplicate: “Our product is a clone of
   their product.”  Implies a legal reimplementation from
   documentation or by reverse-engineering.  Also connotes lower
   price.  2. A shoddy, spurious copy: “Their product is a
   clone of our product.”  3. A blatant ripoff, most likely violating
   copyright, patent, or trade secret protections: “Your
   product is a clone of my product.”  This use implies legal
   action is pending.  4. A `PC clone’; a PC-BUS/ISA or
   EISA-compatible 80×86-based microcomputer (this use is sometimes
   spelled `klone’ or `PClone’).  These invariably have much
   more bang for the buck than the IBM archetypes they resemble.
   5. In the construction `UNIX clone’: An OS designed to deliver
   a UNIX-lookalike environment without UNIX license fees, or with
   additional `mission-critical’ features such as support for
   real-time programming.  6. v. To make an exact copy of something.
   “Let me clone that” might mean “I want to borrow that paper so I
   can make a photocopy” or “Let me get a copy of that file before
   you {mung} it”.

clover key: [Mac users] n. See {command key}.

clustergeeking: /kluh’st*r-gee`king/ [CMU] n.  Spending more time
   at a computer cluster doing CS homework than most people spend

COBOL: /koh’bol/ [COmmon Business-Oriented Language] n.
   (Synonymous with {evil}.)  A weak, verbose, and flabby language
   used by {card walloper}s to do boring mindless things on
   {dinosaur} mainframes.  Hackers believe all COBOL programmers
   are {suit}s or {code grinder}s, and no self-respecting hacker
   will ever admit to having learned the language.  Its very name is
   seldom uttered without ritual expressions of disgust or horror.
   See also {fear and loathing}, {software rot}.

COBOL fingers: /koh’bol fing’grz/ n. Reported from Sweden, a
   (hypothetical) disease one might get from coding in COBOL.  The
   language requires code verbose beyond all reason; thus it is
   alleged that programming too much in COBOL causes one’s fingers to
   wear down to stubs by the endless typing.  “I refuse to type in
   all that source code again; it would give me COBOL fingers!”

code grinder: n. 1. A {suit}-wearing minion of the sort hired in
   legion strength by banks and insurance companies to implement
   payroll packages in RPG and other such unspeakable horrors.  In his
   native habitat, the code grinder often removes the suit jacket to
   reveal an underplumage consisting of button-down shirt (starch
   optional) and a tie.  In times of dire stress, the sleeves (if
   long) may be rolled up and the tie loosened about half an inch.  It
   seldom helps.  The {code grinder}’s milieu is about as far from
   hackerdom as you can get and still touch a computer; the term
   connotes pity.  See {Real World}, {suit}.  2. Used of or to a
   hacker, a really serious slur on the person’s creative ability;
   connotes a design style characterized by primitive technique,
   rule-boundedness, {brute force}, and utter lack of imagination.
   Compare {card walloper}; contrast {hacker}, {real

code police: [by analogy with George Orwell’s `thought police’] n.
   A mythical team of Gestapo-like storm troopers that might burst
   into one’s office and arrest one for violating programming style
   rules.  May be used either seriously, to underline a claim that a
   particular style violation is dangerous, or ironically, to suggest
   that the practice under discussion is condemned mainly by
   anal-retentive {weenie}s.  “Dike out that goto or the code
   police will get you!”  The ironic usage is perhaps more common.

codewalker: n. A program component that traverses other programs for
   a living.  Compilers have codewalkers in their front ends; so do
   cross-reference generators and some database front ends.  Other
   utility programs that try to do too much with source code may turn
   into codewalkers.  As in “This new `vgrind’ feature would require a
   codewalker to implement.”

coefficient of X: n. Hackish speech makes rather heavy use of
   pseudo-mathematical metaphors.  Four particularly important ones
   involve the terms `coefficient’, `factor’, `index’, and
   `quotient’.  They are often loosely applied to things you
   cannot really be quantitative about, but there are subtle
   distinctions among them that convey information about the way the
   speaker mentally models whatever he or she is describing.

   `Foo factor’ and `foo quotient’ tend to describe something for
   which the issue is one of presence or absence.  The canonical
   example is {fudge factor}.  It’s not important how much you’re
   fudging; the term simply acknowledges that some fudging is needed.
   You might talk of liking a movie for its silliness factor.
   Quotient tends to imply that the property is a ratio of two opposing
   factors: “I would have won except for my luck quotient.”  This
   could also be “I would have won except for the luck factor”, but
   using *quotient* emphasizes that it was bad luck overpowering
   good luck (or someone else’s good luck overpowering your own).

   `Foo index’ and `coefficient of foo’ both tend to imply
   that foo is, if not strictly measurable, at least something that
   can be larger or smaller.  Thus, you might refer to a paper or
   person as having a `high bogosity index’, whereas you would be less
   likely to speak of a `high bogosity factor’.  `Foo index’ suggests
   that foo is a condensation of many quantities, as in the mundane
   cost-of-living index; `coefficient of foo’ suggests that foo is a
   fundamental quantity, as in a coefficient of friction.  The choice
   between these terms is often one of personal preference; e.g., some
   people might feel that bogosity is a fundamental attribute and thus
   say `coefficient of bogosity’, whereas others might feel it is a
   combination of factors and thus say `bogosity index’.

cokebottle: /kohk’bot-l/ n. Any very unusual character,
   particularly one you can’t type because it it isn’t on your
   keyboard.  MIT people used to complain about the
   `control-meta-cokebottle’ commands at SAIL, and SAIL people
   complained right back about the `altmode-altmode-cokebottle’
   commands at MIT.  After the demise of the {space-cadet
   keyboard}, `cokebottle’ faded away as serious usage, but was
   often invoked humorously to describe an (unspecified) weird or
   non-intuitive keystroke command.  It may be due for a second
   inning, however.  The OSF/Motif window manager, `mwm(1)’, has
   a reserved keystroke for switching to the default set of
   keybindings and behavior.  This keystroke is (believe it or not)
   `control-meta-bang’ (see {bang}).  Since the exclamation point
   looks a lot like an upside down Coke bottle, Motif hackers have
   begun referring to this keystroke as `cokebottle’.  See also
   {quadruple bucky}.

cold boot: n. See {boot}.

COME FROM: n. A semi-mythical language construct dual to the `go
   to’; `COME FROM’ would cause the referenced label to act as a
   sort of trapdoor, so that if the program ever reached it control
   would quietly and {automagically} be transferred to the statement
   following the `COME FROM’.  `COME FROM’ was first proposed in a
   {Datamation} article of December 1973 (reprinted in the April 1984
   issue of `Communications of the ACM’) that parodied the
   then-raging `structured programming’ {holy wars} (see
   {considered harmful}).  Mythically, some variants are the
   `assigned COME FROM’ and the `computed COME FROM’
   (parodying some nasty control constructs in FORTRAN and some
   extended BASICs).  Of course, multi-tasking (or non-determinism)
   could be implemented by having more than one `COME FROM’ statement
   coming from the same label.

   In some ways the FORTRAN `DO’ looks like a `COME FROM’
   statement.  After the terminating statement number/`CONTINUE’
   is reached, control continues at the statement following the DO.
   Some generous FORTRANs would allow arbitrary statements (other than
   `CONTINUE’) for the statement, leading to examples like:

           DO 10 I=1,LIMIT
     C imagine many lines of code here, leaving the
     C original DO statement lost in the spaghetti…
           WRITE(6,10) I,FROB(I)
      10   FORMAT(1X,I5,G10.4)

   in which the trapdoor is just after the statement labeled 10.
   (This is particularly surprising because the label doesn’t appear
   to have anything to do with the flow of control at all!)

   While sufficiently astonishing to the unsuspecting reader, this
   form of `COME FROM’ statement isn’t completely general.  After all,
   control will eventually pass to the following statement.  The
   implementation of the general form was left to Univac FORTRAN,
   ca. 1975.  The statement `AT 100′ would perform a `COME
   FROM 100′.  It was intended strictly as a debugging aid, with dire
   consequences promised to anyone so deranged as to use it in
   production code.  More horrible things had already been perpetrated
   in production languages, however; doubters need only contemplate
   the `ALTER’ verb in {COBOL}.

   `COME FROM’ was supported under its own name for the first
   time 15 years later, in C-INTERCAL (see {INTERCAL},
   {retrocomputing}); knowledgeable observers are still reeling
   from the shock.

comm mode: /kom mohd/ [ITS: from the feature supporting on-line
   chat; the term may spelled with one or two m’s] Syn. for {talk

command key: [Mac users] n. The Macintosh key with the cloverleaf
   graphic on its keytop; sometimes referred to as `flower’,
   `pretzel’, `clover’, `propeller’, `beanie’ (an apparent
   reference to the major feature of a propeller beanie), or
   {splat}.  The Mac’s equivalent of an {ALT} key.  The
   proliferation of terms for this creature may illustrate one subtle
   peril of iconic interfaces.

comment out: vt. To surround a section of code with comment
   delimiters or to prefix every line in the section with a comment
   marker; this prevents it from being compiled or interpreted.  Often
   done when the code is redundant or obsolete, but you want to leave
   it in the source to make the intent of the active code clearer;
   also when the code in that section is broken and you want to bypass
   it in order to debug some other part of the code.  Compare
   {condition out}, usually the preferred technique in languages
   (such as {C}) that make it possible.

Commonwealth Hackish:: n. Hacker jargon as spoken outside
   the U.S., esp. in the British Commonwealth.  It is reported that
   Commonwealth speakers are more likely to pronounce truncations like
   `char’ and `soc’, etc., as spelled (/char/, /sok/), as
   opposed to American /keir/ and /sohsh/.  Dots in {newsgroup}
   names tend to be pronounced more often (so soc.wibble is /sok dot
   wib’l/ rather than /sohsh wib’l/).  The prefix {meta} may be
   pronounced /mee’t*/; similarly, Greek letter beta is often
   /bee’t*/, zeta is often /zee’t*/, and so forth.  Preferred
   metasyntactic variables include `eek’, `ook’,
   `frodo’, and `bilbo’; `wibble’, `wobble’, and
   in emergencies `wubble’; `banana’, `wombat’,
   `frog’, {fish}, and so on and on (see {foo}, sense 4).

   Alternatives to verb doubling include suffixes `-o-rama’,
   `frenzy’ (as in feeding frenzy), and `city’ (examples: “barf
   city!” “hack-o-rama!” “core dump frenzy!”).  Finally, note
   that the American terms `parens’, `brackets’, and `braces’ for (),
   [], and {} are uncommon; Commonwealth hackish prefers
   `brackets’, `square brackets’, and `curly brackets’.  Also, the
   use of `pling’ for {bang} is common outside the United States.

   See also {attoparsec}, {calculator}, {chemist}, {console
   jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek},
   {heavy metal}, {leaky heap}, {lord high fixer}, {noddy},
   {psychedelicware}, {plingnet}, {raster blaster}, {seggie},
   {terminal junkie}, {tick-list features}, {weeble},
   {weasel}, {YABA}, and notes or definitions under {Bad Thing},
   {barf}, {bogus}, {bum}, {chase pointers}, {cosmic rays},
   {crippleware}, {crunch}, {dodgy}, {gonk}, {hamster},
   {hardwarily}, {mess-dos}, {nybble}, {proglet}, {root},
   {SEX}, {tweak}, and {xyzzy}.

compact: adj. Of a design, describes the valuable property that it
   can all be apprehended at once in one’s head.  This generally means
   the thing created from the design can be used with greater facility
   and fewer errors than an equivalent tool that is not compact.
   Compactness does not imply triviality or lack of power; for
   example, C is compact and FORTRAN is not, but C is more powerful
   than FORTRAN.  Designs become non-compact through accreting
   {feature}s and {cruft} that don’t merge cleanly into the
   overall design scheme (thus, some fans of {Classic C} maintain
   that ANSI C is no longer compact).

compiler jock: n. See {jock} (sense 2).

compress: [UNIX] vt. When used without a qualifier, generally
   refers to {crunch}ing of a file using a particular
   C implementation of Lempel-Ziv compression by James A. Woods et al. and
   widely circulated via {USENET}.  Use of {crunch} itself in this
   sense is rare among UNIX hackers.

Compu$erve: n. See {CI$}.

computer confetti: n. Syn. {chad}.  Though this term is common,
   this use of the punched-card chad is not a good idea, as the pieces
   are stiff and have sharp corners that could injure the eyes.  GLS
   reports that he once attended a wedding at MIT during which he and
   a few other guests enthusiastically threw chad instead of rice. The
   groom later grumbled that he and his bride had spent most of the
   evening trying to get the stuff out of their hair.

computer geek: n. One who eats (computer) bugs for a living.  One
   who fulfills all the dreariest negative stereotypes about hackers:
   an asocial, malodorous, pasty-faced monomaniac with all the
   personality of a cheese grater.  Cannot be used by outsiders
   without implied insult to all hackers; compare black-on-black usage
   of `nigger’.  A computer geek may be either a fundamentally
   clueless individual or a proto-hacker in {larval stage}.  Also
   called `turbo nerd’, `turbo geek’.  See also
   {clustergeeking}, {geek out}, {wannabee}, {terminal

computron: /kom’pyoo-tron`/ n. 1. A notional unit of computing
   power combining instruction speed and storage capacity, dimensioned
   roughly in instructions-per-second times megabytes-of-main-store
   times megabytes-of-mass-storage.  “That machine can’t run GNU
   EMACS, it doesn’t have enough computrons!”  This usage is usually
   found in metaphors that treat computing power as a fungible
   commodity good, like a crop yield or diesel horsepower.  See
   {bitty box}, {Get a real computer!}, {toy}, {crank}.
   2. A mythical subatomic particle that bears the unit quantity of
   computation or information, in much the same way that an electron
   bears one unit of electric charge (see also {bogon}).  An
   elaborate pseudo-scientific theory of computrons has been developed
   based on the physical fact that the molecules in a solid object
   move more rapidly as it is heated.  It is argued that an object
   melts because the molecules have lost their information about where
   they are supposed to be (that is, they have emitted computrons).
   This explains why computers get so hot and require air
   conditioning; they use up computrons.  Conversely, it should be
   possible to cool down an object by placing it in the path of a
   computron beam.  It is believed that this may also explain why
   machines that work at the factory fail in the computer room: the
   computrons there have been all used up by the other hardware.
   (This theory probably owes something to the “Warlock” stories
   by Larry Niven, the best known being “What Good is a Glass
   Dagger?”, in which magic is fueled by an exhaustible natural
   resource called `mana’.)

condition out: vt. To prevent a section of code from being compiled
   by surrounding it with a conditional-compilation directive whose
   condition is always false.  The {canonical} examples are `#if
   0′ (or `#ifdef notdef’, though some find this {bletcherous})
   and `#endif’ in C.  Compare {comment out}.

condom: n. 1. The protective plastic bag that accompanies 3.5-inch
   microfloppy diskettes.  Rarely, also used of (paper) disk envelopes.
   Unlike the write protect tab, the condom (when left on) not only
   impedes the practice of {SEX} but has also been shown to have a high
   failure rate as drive mechanisms attempt to access the disk — and
   can even fatally frustrate insertion.  2. The protective cladding
   on a {light pipe}.

connector conspiracy: [probably came into prominence with the
   appearance of the KL-10 (one model of the {PDP-10}), none of
   whose connectors matched anything else] n. The tendency of
   manufacturers (or, by extension, programmers or purveyors of
   anything) to come up with new products that don’t fit together
   with the old stuff, thereby making you buy either all new stuff or
   expensive interface devices.  The KL-10 Massbus connector was
   actually *patented* by DEC, which reputedly refused to license
   the design and thus effectively locked third parties out of
   competition for the lucrative Massbus peripherals market.  This is
   a source of never-ending frustration for the diehards who maintain
   older PDP-10 or VAX systems.  Their CPUs work fine, but they are
   stuck with dying, obsolescent disk and tape drives with low
   capacity and high power requirements.

   In these latter days of open-systems computing this term has fallen
   somewhat into disuse, to be replaced by the observation that
   “Standards are great!  There are so *many* of them to choose
   from!”  Compare {backward combatability}.

cons: /konz/ or /kons/ [from LISP] 1. vt. To add a new element
   to a specified list, esp. at the top.  “OK, cons picking a
   replacement for the console TTY onto the agenda.”  2. `cons up’:
   vt. To synthesize from smaller pieces: “to cons up an example”.

   In LISP itself, `cons’ is the most fundamental operation for
   building structures.  It takes any two objects and returns a
   `dot-pair’ or two-branched tree with one object hanging from each
   branch.  Because the result of a cons is an object, it can be used
   to build binary trees of any shape and complexity.  Hackers think
   of it as a sort of universal constructor, and that is where the
   jargon meanings spring from.

considered harmful: adj. Edsger W. Dijkstra’s note in the
   March 1968 `Communications of the ACM’, “Goto Statement
   Considered Harmful”, fired the first salvo in the structured
   programming wars.  Amusingly, the ACM considered the resulting
   acrimony sufficiently harmful that it will (by policy) no longer
   print an article taking so assertive a position against a coding
   practice.  In the ensuing decades, a large number of both serious
   papers and parodies have borne titles of the form “X
   considered Y”.  The structured-programming wars eventually blew
   over with the realization that both sides were wrong, but use of
   such titles has remained as a persistent minor in-joke (the
   `considered silly’ found at various places in this lexicon is

console:: n. 1. The operator’s station of a {mainframe}.  In
   times past, this was a privileged location that conveyed godlike
   powers to anyone with fingers on its keys.  Under UNIX and other
   modern timesharing OSes, such privileges are guarded by passwords
   instead, and the console is just the {tty} the system was booted
   from.  Some of the mystique remains, however, and it is traditional
   for sysadmins to post urgent messages to all users from the console
   (on UNIX, /dev/console).  2. On microcomputer UNIX boxes, the main
   screen and keyboard (as opposed to character-only terminals talking
   to a serial port).  Typically only the console can do real graphics
   or run {X}.  See also {CTY}.

console jockey: n. See {terminal junkie}.

content-free: [by analogy with techspeak `context-free’] adj.
   Used of a message that adds nothing to the recipient’s knowledge.
   Though this adjective is sometimes applied to {flamage}, it more
   usually connotes derision for communication styles that exalt form
   over substance or are centered on concerns irrelevant to the
   subject ostensibly at hand.  Perhaps most used with reference to
   speeches by company presidents and other professional manipulators.
   “Content-free?  Uh…that’s anything printed on glossy
   paper.”  See also {four-color glossies}.  “He gave a talk on
   the implications of electronic networks for postmodernism and the
   fin-de-siecle aesthetic.  It was content-free.”

control-C: vi. 1. “Stop whatever you are doing.”  From the
   interrupt character used on many operating systems to abort a
   running program.  Considered silly.  2. interj. Among BSD UNIX
   hackers, the canonical humorous response to “Give me a break!”

control-O: vi. “Stop talking.”  From the character used on some
   operating systems to abort output but allow the program to keep on
   running.  Generally means that you are not interested in hearing
   anything more from that person, at least on that topic; a standard
   response to someone who is flaming.  Considered silly.

control-Q: vi. “Resume.”  From the ASCII XON character used to
   undo a previous control-S (in fact it is also pronounced
   XON /X-on/).

control-S: vi. “Stop talking for a second.”  From the ASCII XOFF
   character (this is also pronounced XOFF /X-of/).  Control-S
   differs from {control-O} in that the person is asked to stop
   talking (perhaps because you are on the phone) but will be allowed
   to continue when you’re ready to listen to him — as opposed to
   control-O, which has more of the meaning of “Shut up.”  Considered

Conway’s Law: prov. The rule that the organization of the software and
   the organization of the software team will be congruent; originally
   stated as “If you have four groups working on a compiler, you’ll
   get a 4-pass compiler”.

   This was originally promulgated by Melvin Conway, an early
   proto-hacker who wrote an assembler for the Burroughs 220 called
   SAVE.  The name `SAVE’ didn’t stand for anything; it was just that
   you lost fewer card decks and listings because they all had SAVE
   written on them.

cookbook: [from amateur electronics and radio] n. A book of small
   code segments that the reader can use to do various {magic}
   things in programs.  One current example is the `PostScript
   Language Tutorial and Cookbook’ by Adobe Systems, Inc
   (Addison-Wesley, ISBN 0-201-10179-3) which has recipes for things
   like wrapping text around arbitrary curves and making 3D fonts.
   Cookbooks, slavishly followed, can lead one into {voodoo
   programming}, but are useful for hackers trying to {monkey up}
   small programs in unknown languages.  This is analogous to the role
   of phrasebooks in human languages.

cookie: n. A handle, transaction ID, or other token of agreement
   between cooperating programs.  “I give him a packet, he gives me
   back a cookie.”  The claim check you get from a dry-cleaning shop
   is a perfect mundane example of a cookie; the only thing it’s
   useful for is to relate a later transaction to this one (so you get
   the same clothes back).  Compare {magic cookie}; see also
   {fortune cookie}.

cookie bear: n. Syn. {cookie monster}.

cookie file: n. A collection of {fortune cookie}s in a format
   that facilitates retrieval by a fortune program.  There are several
   different ones in public distribution, and site admins often
   assemble their own from various sources including this lexicon.

cookie monster: [from “Sesame Street”] n. Any of a family of
   early (1970s) hacks reported on {{TOPS-10}}, {{ITS}}, {{Multics}},
   and elsewhere that would lock up either the victim’s terminal (on a
   time-sharing machine) or the {{console}} (on a batch
   {mainframe}), repeatedly demanding “I WANT A COOKIE”.  The
   required responses ranged in complexity from “COOKIE” through
   “HAVE A COOKIE” and upward.  See also {wabbit}.

copper: n. Conventional electron-carrying network cable with a
   core conductor of copper — or aluminum!  Opposed to {light
   pipe} or, say, a short-range microwave link.

copy protection: n. A class of clever methods for preventing
   incompetent pirates from stealing software and legitimate customers
   from using it.  Considered silly.

copybroke: /ko’pee-brohk/ adj. [play on `copyright’] Used to
   describe an instance of a copy-protected program that has been
   `broken’; that is, a copy with the copy-protection scheme disabled.
   Syn.  {copywronged}.

copyleft: /kop’ee-left/ [play on `copyright’] n. 1. The
   copyright notice (`General Public License’) carried by {GNU}
   {EMACS} and other Free Software Foundation software, granting reuse
   and reproduction rights to all comers (but see also {General
   Public Virus}).  2. By extension, any copyright notice intended to
   achieve similar aims.

copywronged: /ko’pee-rongd/ [play on `copyright’] adj. Syn. for

core: n. Main storage or RAM.  Dates from the days of ferrite-core
   memory; now archaic as techspeak most places outside IBM, but also
   still used in the UNIX community and by old-time hackers or those
   who would sound like them.  Some derived idioms are quite current;
   `in core’, for example, means `in memory’ (as opposed to `on
   disk’), and both {core dump} and the `core image’ or `core
   file’ produced by one are terms in favor.  Commonwealth hackish
   prefers {store}.

core dump: n. [common {Iron Age} jargon, preserved by UNIX]
   1. [techspeak] A copy of the contents of {core}, produced when a
   process is aborted by certain kinds of internal error.  2. By
   extension, used for humans passing out, vomiting, or registering
   extreme shock.  “He dumped core.  All over the floor.  What a
   mess.”  “He heard about X and dumped core.”  3. Occasionally
   used for a human rambling on pointlessly at great length; esp. in
   apology: “Sorry, I dumped core on you”.  4. A recapitulation of
   knowledge (compare {bits}, sense 1).  Hence, spewing all one
   knows about a topic, esp. in a lecture or answer to an exam
   question.  “Short, concise answers are better than core dumps”
   (from the instructions to an exam at Columbia; syn.  {brain
   dump}).  See {core}.

core leak: n. Syn. {memory leak}.

Core Wars: n. A game between `assembler’ programs in a
   simulated machine, where the objective is to kill your opponent’s
   program by overwriting it.  Popularized by A. K. Dewdney’s column
   in `Scientific American’ magazine, this was actually
   devised by Victor Vyssotsky, Robert Morris, and Dennis Ritchie in
   the early 1960s (their original game was called `Darwin’ and ran on
   a PDP-1 at Bell Labs).  See {core}.

corge: /korj/ [originally, the name of a cat] n. Yet another
   meta-syntactic variable, invented by Mike Gallaher and propagated
   by the {GOSMACS} documentation.  See {grault}.

cosmic rays: n. Notionally, the cause of {bit rot}.  However, this is
   a semi-independent usage that may be invoked as a humorous way to
   {handwave} away any minor {randomness} that doesn’t seem worth the
   bother of investigating.  “Hey, Eric — I just got a burst of
   garbage on my {tube}, where did that come from?”  “Cosmic rays, I
   guess.”  Compare {sunspots}, {phase of the moon}.  The British seem
   to prefer the usage `cosmic showers’; `alpha particles’ is also
   heard, because stray alpha particles passing through a memory chip
   can cause single-bit errors (this becomes increasingly more likely
   as memory sizes and densities increase).

   Factual note: Alpha particles cause bit rot, cosmic rays do not
   (except occasionally in spaceborne computers).  Intel could not
   explain random bit drops in their early chips, and one hypothesis
   was cosmic rays.  So they created the World’s Largest Lead Safe,
   using 25 tons of the stuff, and used two identical boards for
   testing.  One was placed in the safe, one outside.  The hypothesis
   was that if cosmic rays were causing the bit drops, they should see
   a statistically significant difference between the error rates on
   the two boards.  They did not observe such a difference.  Further
   investigation demonstrated conclusively that the bit drops were due
   to alpha particle emissions from thorium (and to a much lesser
   degree uranium) in the encapsulation material.  Since it is
   impossible to eliminate these radioactives (they are uniformly
   distributed through the earth’s crust, with the statistically
   insignificant exception of uranium lodes) it became obvious that
   you have to design memories to withstand these hits.

cough and die: v. Syn. {barf}.  Connotes that the program is
   throwing its hands up by design rather than because of a bug or
   oversight.  “The parser saw a control-A in its input where it was
   looking for a printable, so it coughed and died.”

cowboy: [Sun, from William Gibson’s {cyberpunk} SF] n. Synonym
   for {hacker}.  It is reported that at Sun this word is often
   said with reverence.

CP/M:: /C-P-M/ n. [Control Program for Microcomputers] An
   early microcomputer {OS} written by hacker Gary Kildall for
   8080- and Z80-based machines, very popular in the late 1970s but
   virtually wiped out by MS-DOS after the release of the IBM PC
   in 1981.  Legend has it that Kildall’s company blew its chance to
   write the OS for the IBM PC because Kildall decided to spend a day
   IBM’s reps wanted to meet with him enjoying the perfect flying
   weather in his private plane.  Many of CP/M’s features and conventions
   strongly resemble those of early DEC operating systems such as
   {{TOPS-10}}, OS/8, RSTS, and RSX-11.  See {{MS-DOS}},
   {operating system}.

CPU Wars: /C-P-U worz/ n. A 1979 large-format comic by Chas
   Andres chronicling the attempts of the brainwashed androids of IPM
   (Impossible to Program Machines) to conquer and destroy the
   peaceful denizens of HEC (Human Engineered Computers).  This rather
   transparent allegory featured many references to {ADVENT} and
   the immortal line “Eat flaming death, minicomputer mongrels!”
   (uttered, of course, by an IPM stormtrooper).  It is alleged that
   the author subsequently received a letter of appreciation on IBM
   company stationery from the head of IBM’s Thomas J. Watson Research
   Laboratories (then, as now, one of the few islands of true
   hackerdom in the IBM archipelago).  The lower loop of the B in the
   IBM logo, it is said, had been carefully whited out.  See {eat
   flaming death}.

cracker: n. One who breaks security on a system.  Coined ca. 1985
   by hackers in defense against journalistic misuse of {hacker}
   (q.v., sense 8).  An earlier attempt to establish `worm’ in this
   sense around 1981–82 on USENET was largely a failure.

crank: [from automotive slang] vt. Verb used to describe the
   performance of a machine, especially sustained performance.  “This
   box cranks (or, cranks at) about 6 {megaflops}, with a burst mode
   of twice that on vectorized operations.”

crash: 1. n. A sudden, usually drastic failure.  Most often said
   of the {system} (q.v., sense 1), sometimes of magnetic disk
   drives.  “Three {luser}s lost their files in last night’s disk
   crash.”  A disk crash that involves the read/write heads dropping
   onto the surface of the disks and scraping off the oxide may also
   be referred to as a `head crash’, whereas the term `system
   crash’ usually, though not always, implies that the operating
   system or other software was at fault.  2. v. To fail suddenly.
   “Has the system just crashed?”  “Something crashed the OS!” See
   {down}.  Also used transitively to indicate the cause of the
   crash (usually a person or a program, or both).  “Those idiots
   playing {SPACEWAR} crashed the system.” 3. vi. Sometimes said
   of people hitting the sack after a long {hacking run}; see
   {gronk out}.

crash and burn: vi.,n. A spectacular crash, in the mode of the
   conclusion of the car-chase scene in the movie “Bullitt” and
   many subsequent imitators.  Sun-3 monitors losing the flyback
   transformer and lightning strikes on VAX-11/780 backplanes are
   notable crash and burn generators.  The construction
   `crash-and-burn machine’ is reported for a computer used
   exclusively for alpha or {beta} testing, or reproducing bugs
   (i.e., not for development).  The implication is that it wouldn’t
   be such a disaster if that machine crashed, since only the testers
   would be inconvenienced.

crawling horror: n. Ancient crufty hardware or software that is
   kept obstinately alive by forces beyond the control of the hackers
   at a site.  Like {dusty deck} or {gonkulator}, but connotes
   that the thing described is not just an irritation but an active
   menace to health and sanity.  “Mostly we code new stuff in C, but
   they pay us to maintain one big FORTRAN II application from
   nineteen-sixty-X that’s a real crawling horror….”  Compare

cray: /kray/ n. 1. (properly, capitalized) One of the line of
   supercomputers designed by Cray Research.  2. Any supercomputer at
   all.  3. The {canonical} {number-crunching} machine.

   The term is actually the lowercased last name of Seymour Cray, a
   noted computer architect and co-founder of the company.  Numerous
   vivid legends surround him, some true and some admittedly invented
   by Cray Research brass to shape their corporate culture and image.

cray instability: n. A shortcoming of a program or algorithm that
   manifests itself only when a large problem is being run on a powerful
   machine (see {cray}).  Generally more subtle than bugs that can
   be detected in smaller problems running on a workstation or mini.

crayola: /kray-oh’l*/ n. A super-mini or -micro computer that
   provides some reasonable percentage of supercomputer performance
   for an unreasonably low price.  Might also be a {killer micro}.

crayon: n. 1. Someone who works on Cray supercomputers.  More
   specifically, it implies a programmer, probably of the CDC ilk,
   probably male, and almost certainly wearing a tie (irrespective of
   gender).  Systems types who have a UNIX background tend not to be
   described as crayons.  2. A {computron} (sense 2) that
   participates only in {number-crunching}.  3. A unit of
   computational power equal to that of a single Cray-1.  There is a
   standard joke about this that derives from an old Crayola crayon
   promotional gimmick: When you buy 64 crayons you get a free

creationism: n. The (false) belief that large, innovative designs
   can be completely specified in advance and then painlessly magicked
   out of the void by the normal efforts of a team of normally
   talented programmers.  In fact, experience has shown repeatedly
   that good designs arise only from evolutionary, exploratory
   interaction between one (or at most a small handful of)
   exceptionally able designer(s) and an active user population —
   and that the first try at a big new idea is always wrong.
   Unfortunately, because these truths don’t fit the planning models
   beloved of {management}, they are generally ignored.

creeping elegance: n. Describes a tendency for parts of a design to
   become {elegant} past the point of diminishing return.  This
   often happens at the expense of the less interesting parts of the
   design, the schedule, and other things deemed important in the
   {Real World}.  See also {creeping featurism}, {second-system
   effect}, {tense}.

creeping featurism: /kree’ping fee’chr-izm/ n. 1. Describes a
   systematic tendency to load more {chrome} and {feature}s onto
   systems at the expense of whatever elegance they may have possessed
   when originally designed.  See also {feeping creaturism}.  “You
   know, the main problem with {BSD} UNIX has always been creeping
   featurism.”  2. More generally, the tendency for anything
   complicated to become even more complicated because people keep
   saying “Gee, it would be even better if it had this feature
   too”.  (See {feature}.)  The result is usually a patchwork
   because it grew one ad-hoc step at a time, rather than being
   planned.  Planning is a lot of work, but it’s easy to add just one
   extra little feature to help someone … and then another …
   and another….  When creeping featurism gets out of hand, it’s
   like a cancer.  Usually this term is used to describe computer
   programs, but it could also be said of the federal government, the
   IRS 1040 form, and new cars.  A similar phenomenon sometimes
   afflicts conscious redesigns; see {second-system effect}.  See
   also {creeping elegance}.

creeping featuritis: /kree’ping fee’-chr-i:`t*s/ n. Variant of
   {creeping featurism}, with its own spoonerization: `feeping
   creaturitis’.  Some people like to reserve this form for the
   disease as it actually manifests in software or hardware, as
   opposed to the lurking general tendency in designers’ minds.  (After
   all, -ism means `condition’ or `pursuit of’, whereas -itis usually
   means `inflammation of’.)

cretin: /kret’n/ or /kree’tn/ n. Congenital {loser}; an obnoxious
   person; someone who can’t do anything right.  It has been observed
   that many American hackers tend to favor the British pronunciation
   /kre’tn/ over standard American /kree’tn/; it is thought this may
   be due to the insidious phonetic influence of Monty Python’s Flying

cretinous: /kret’n-*s/ or /kreet’n-*s/ adj. Wrong; stupid;
   non-functional; very poorly designed.  Also used pejoratively of
   people.  See {dread high-bit disease} for an example.
   Approximate synonyms: {bletcherous}, `bagbiting’ (see
   {bagbiter}), {losing}, {brain-damaged}.

crippleware: n. 1. Software that has some important functionality
   deliberately removed, so as to entice potential users to pay for a
   working version.  2. [Cambridge] {Guiltware} that exhorts you to
   donate to some charity (compare {careware}).  3. Hardware
   deliberately crippled, which can be upgraded to a more expensive
   model by a trivial change (e.g., cutting a jumper).

critical mass: n. In physics, the minimum amount of fissionable
   material required to sustain a chain reaction.  Of a software
   product, describes a condition of the software such that fixing one
   bug introduces one plus {epsilon} bugs.  When software achieves
   critical mass, it can only be discarded and rewritten.

crlf: /ker’l*f/, sometimes /kru’l*f/ or /C-R-L-F/ n. (often
   capitalized as `CRLF’) A carriage return (CR) followed by a line
   feed (LF).  More loosely, whatever it takes to get you from the
   end of one line of text to the beginning of the next line.  See
   {newline}, {terpri}.  Under {{UNIX}} influence this usage
   has become less common (UNIX uses a bare line feed as its `CRLF’).

crock: [from the obvious mainstream scatologism] n. 1. An awkward
   feature or programming technique that ought to be made cleaner.
   Using small integers to represent error codes without the
   program interpreting them to the user (as in, for example, UNIX
   `make(1)’, which returns code 139 for a process that dies due
   to {segfault}).  2. A technique that works acceptably, but which
   is quite prone to failure if disturbed in the least, for example
   depending on the machine opcodes having particular bit patterns so
   that you can use instructions as data words too; a tightly woven,
   almost completely unmodifiable structure.  See {kluge},
   {brittle}.  Also in the adjectives `crockish’ and
   `crocky’, and the nouns `crockishness’ and `crockitude’.

cross-post: [USENET] vi. To post a single article simultaneously to
   several newsgroups.  Distinguished from posting the article
   repeatedly, once to each newsgroup, which causes people to see it
   multiple times (this is very bad form).  Gratuitous cross-posting
   without a Followup-To line directing responses to a single followup
   group is frowned upon, as it tends to cause {followup} articles
   to go to inappropriate newsgroups when people respond to only one
   part of the original posting.

crudware: /kruhd’weir/ n. Pejorative term for the hundreds of
   megabytes of low-quality {freeware} circulated by user’s groups
   and BBS systems in the micro-hobbyist world.  “Yet *another*
   set of disk catalog utilities for {{MS-DOS}}?  What crudware!”

cruft: /kruhft/ [back-formation from {crufty}] 1. n. An
   unpleasant substance.  The dust that gathers under your bed is
   cruft; the TMRC Dictionary correctly noted that attacking it with a
   broom only produces more.  2. n. The results of shoddy
   construction.  3. vt. [from `hand cruft’, pun on `hand craft’] To
   write assembler code for something normally (and better) done by a
   compiler (see {hand-hacking}).  4. n. Excess; superfluous junk.
   Esp. used of redundant or superseded code.

cruft together: vt. (also `cruft up’) To throw together
   something ugly but temporarily workable.  Like vt. {kluge up},
   but more pejorative.  “There isn’t any program now to reverse all
   the lines of a file, but I can probably cruft one together in about
   10 minutes.”  See {hack together}, {hack up}, {kluge up},

cruftsmanship: /kruhfts’m*n-ship / n. [from {cruft}] The
   antithesis of craftsmanship.

crufty: /kruhf’tee/ [origin unknown; poss. from `crusty’ or
   `cruddy’] adj. 1. Poorly built, possibly over-complex.  The
   {canonical} example is “This is standard old crufty DEC
   software”.  In fact, one fanciful theory of the origin of `crufty’
   holds that was originally a mutation of `crusty’ applied to DEC
   software so old that the `s’ characters were tall and skinny, looking
   more like `f’ characters.  2. Unpleasant, especially to the touch,
   often with encrusted junk.  Like spilled coffee smeared with peanut
   butter and catsup.  3. Generally unpleasant.  4. (sometimes spelled
   `cruftie’) n. A small crufty object (see {frob}); often one
   that doesn’t fit well into the scheme of things.  “A LISP property
   list is a good place to store crufties (or, collectively,
   {random} cruft).”

crumb: n. Two binary digits; a {quad}.  Larger than a {bit},
   smaller than a {nybble}.  Considered silly.  Syn. {tayste}.

crunch: 1. vi. To process, usually in a time-consuming or
   complicated way.  Connotes an essentially trivial operation that is
   nonetheless painful to perform.  The pain may be due to the
   triviality’s being embedded in a loop from 1 to 1,000,000,000.
   “FORTRAN programs do mostly {number-crunching}.”  2. vt. To
   reduce the size of a file by a complicated scheme that produces bit
   configurations completely unrelated to the original data, such as
   by a Huffman code.  (The file ends up looking like a paper document
   would if somebody crunched the paper into a wad.)  Since such
   compression usually takes more computations than simpler methods
   such as run-length encoding, the term is doubly appropriate.  (This
   meaning is usually used in the construction `file crunch(ing)’ to
   distinguish it from {number-crunching}.)  See {compress}.
   3. n. The character `#’.  Used at XEROX and CMU, among other
   places.  See {{ASCII}}.  4. vt. To squeeze program source into a
   minimum-size representation that will still compile or execute.
   The term came into being specifically for a famous program on the
   BBC micro that crunched BASIC source in order to make it run more
   quickly (it was a wholly interpretive BASIC, so the number of
   characters mattered).  {Obfuscated C Contest} entries are often
   crunched; see the first example under that entry.

cruncha cruncha cruncha: /kruhn’ch* kruhn’ch* kruhn’ch*/ interj.
   An encouragement sometimes muttered to a machine bogged down in a
   serious {grovel}.  Also describes a notional sound made by
   groveling hardware.  See {wugga wugga}, {grind} (sense 3).

cryppie: /krip’ee/ n. A cryptographer.  One who hacks or implements
   cryptographic software or hardware.

CTSS: /C-T-S-S/ n. Compatible Time-Sharing System.  An early
   (1963) experiment in the design of interactive time-sharing
   operating systems, ancestral to {{Multics}}, {{UNIX}}, and
   {{ITS}}.  The name {{ITS}} (Incompatible Time-sharing System)
   was a hack on CTSS, meant both as a joke and to express some basic
   differences in philosophy about the way I/O services should be
   presented to user programs.

CTY: /sit’ee/ or /C-T-Y/ n. [MIT] The terminal physically
   associated with a computer’s system {{console}}.  The term is a
   contraction of `Console {tty}’, that is, `Console TeleTYpe’.
   This {{ITS}}- and {{TOPS-10}}-associated term has become less
   common, as most UNIX hackers simply refer to the CTY as `the

cube: n. 1. [short for `cubicle’] A module in the open-plan
   offices used at many programming shops.  “I’ve got the manuals in
   my cube.”  2. A NeXT machine (which resembles a matte-black cube).

cubing: [parallel with `tubing’] vi. 1. Hacking on an IPSC (Intel
   Personal SuperComputer) hypercube.  “Louella’s gone cubing
   *again*!!”  2. Hacking Rubik’s Cube or related puzzles,
   either physically or mathematically.  3. An indescribable form of
   self-torture (see sense 1 or #2).

cursor dipped in X: n. There are a couple of metaphors in English
   of the form `pen dipped in X’ (perhaps the most common values of X
   are `acid’, `bile’, and `vitriol’).  These map over neatly to this
   hackish usage (the cursor being what moves, leaving letters behind,
   when one is composing on-line).  “Talk about a {nastygram}!  He
   must’ve had his cursor dipped in acid when he wrote that one!”

cuspy: /kuhs’pee/ [WPI: from the DEC acronym CUSP, for `Commonly
   Used System Program’, i.e., a utility program used by many people]
   adj. 1. (of a program) Well-written.  2. Functionally excellent.  A
   program that performs well and interfaces well to users is cuspy.
   See {rude}.  3. [NYU] Said of an attractive woman, especially one
   regarded as available.  Implies a certain curvaceousness.

cut a tape: [poss. fr. mainstream `cut a check’ or from the
   recording industry’s `cut a record’] vi. To write a software or
   document distribution on magnetic tape for shipment.  Has nothing
   to do with physically cutting the medium!  Though this usage is
   quite widespread, one never speaks of analogously `cutting a disk’
   or anything else in this sense.

cybercrud: /si:’ber-kruhd/ [coined by Ted Nelson] n. Obfuscatory
   tech-talk.  Verbiage with a high {MEGO} factor.  The computer
   equivalent of bureaucratese.

cyberpunk: /si:’ber-puhnk/ [orig. by SF writer Bruce Bethke and/or
   editor Gardner Dozois] n.,adj. A subgenre of SF launched in 1982
   by William Gibson’s epoch-making novel `Neuromancer’ (though
   its roots go back through Vernor Vinge’s `True Names’ (see
   the Bibliography) to John Brunner’s 1975 novel `The Shockwave
   Rider’).  Gibson’s near-total ignorance of computers and the
   present-day hacker culture enabled him to speculate about the role
   of computers and hackers in the future in ways hackers have since
   found both irritatingly na”ive and tremendously stimulating.
   Gibson’s work was widely imitated, in particular by the short-lived
   but innovative “Max Headroom” TV series.  See {cyberspace},
   {ice}, {go flatline}.

cyberspace: /si:’ber-spays/ n. 1. Notional `information-space’
   loaded with visual cues and navigable with brain-computer
   interfaces called `cyberspace decks’; a characteristic prop of
   {cyberpunk} SF.  At the time of this writing (mid-1991),
   serious efforts to construct {virtual reality} interfaces
   modeled explicitly on Gibsonian cyberspace are already under way,
   using more conventional devices such as glove sensors and binocular
   TV headsets.  Few hackers are prepared to deny outright the
   possibility of a cyberspace someday evolving out of the network
   (see {network, the}).  2. Occasionally, the metaphoric location
   of the mind of a person in {hack mode}.  Some hackers report
   experiencing strong eidetic imagery when in hack mode;
   interestingly, independent reports from multiple sources suggest
   that there are common features to the experience.  In particular,
   the dominant colors of this subjective `cyberspace’ are often
   gray and silver, and the imagery often involves constellations of
   marching dots, elaborate shifting patterns of lines and angles, or
   moire patterns.

cycle: 1. n. The basic unit of computation.  What every hacker
   wants more of (noted hacker Bill Gosper describes himself as a
   “cycle junkie”). One can describe an instruction as taking so
   many `clock cycles’.  Often the computer can access its
   memory once on every clock cycle, and so one speaks also of
   `memory cycles’.  These are technical meanings of {cycle}.  The
   jargon meaning comes from the observation that there are only so
   many cycles per second, and when you are sharing a computer the
   cycles get divided up among the users.  The more cycles the
   computer spends working on your program rather than someone else’s,
   the faster your program will run.  That’s why every hacker wants
   more cycles: so he can spend less time waiting for the computer to
   respond.  2. By extension, a notional unit of *human* thought
   power, emphasizing that lots of things compete for the typical
   hacker’s think time.  “I refused to get involved with the Rubik’s
   Cube back when it was big.  Knew I’d burn too many cycles on it if
   I let myself.”  3. vt. Syn. {bounce}, {120 reset}; from the
   phrase `cycle power’. “Cycle the machine again, that serial port’s
   still hung.”

cycle crunch: n. A situation where the number of people trying to
   use the computer simultaneously has reached the point where no one
   can get enough cycles because they are spread too thin and the
   system has probably begun to {thrash}.  This is an inevitable
   result of Parkinson’s Law applied to timesharing.  Usually the only
   solution is to buy more computer.  Happily, this has rapidly become
   easier in recent years, so much so that the very term `cycle
   crunch’ now has a faintly archaic flavor; most hackers now use
   workstations or personal computers as opposed to traditional
   timesharing systems.

cycle drought: n. A scarcity of cycles.  It may be due to a {cycle
   crunch}, but it could also occur because part of the computer is
   temporarily not working, leaving fewer cycles to go around.
   “The {high moby} is {down}, so we’re running with only
   half the usual amount of memory.  There will be a cycle drought
   until it’s fixed.”

cycle of reincarnation: [coined by Ivan Sutherland ca. 1970] n.
   Term used to refer to a well-known effect whereby function in a
   computing system family is migrated out to special-purpose
   peripheral hardware for speed, then the peripheral evolves toward
   more computing power as it does its job, then somebody notices that
   it is inefficient to support two asymmetrical processors in the
   architecture and folds the function back into the main CPU, at
   which point the cycle begins again.  Several iterations of this
   cycle have been observed in graphics-processor design, and at least
   one or two in communications and floating-point processors.  Also
   known as `the Wheel of Life’, `the Wheel of Samsara’, and other
   variations of the basic Hindu/Buddhist theological idea.

cycle server: n. A powerful machine that exists primarily for
   running large {batch} jobs.  Implies that interactive tasks such as
   editing are done on other machines on the network, such as

= D =

D. C. Power Lab: n. The former site of {{SAIL}}.  Hackers thought
   this was very funny because the obvious connection to electrical
   engineering was nonexistent — the lab was named for a Donald C.
   Power.  Compare {Marginal Hacks}.

daemon: /day’mn/ or /dee’mn/ [from the mythological meaning,
   later rationalized as the acronym `Disk And Execution MONitor’] n.
   A program that is not invoked explicitly, but lies dormant waiting
   for some condition(s) to occur.  The idea is that the perpetrator
   of the condition need not be aware that a daemon is lurking (though
   often a program will commit an action only because it knows that it
   will implicitly invoke a daemon).  For example, under {{ITS}}
   writing a file on the {LPT} spooler’s directory would invoke the
   spooling daemon, which would then print the file.  The advantage is
   that programs wanting (in this example) files printed need not
   compete for access to the {LPT}.  They simply enter their
   implicit requests and let the daemon decide what to do with them.
   Daemons are usually spawned automatically by the system, and may
   either live forever or be regenerated at intervals.  Daemon and
   {demon} are often used interchangeably, but seem to have
   distinct connotations.  The term `daemon’ was introduced to
   computing by {CTSS} people (who pronounced it /dee’mon/) and
   used it to refer to what ITS called a {dragon}.  Although the
   meaning and the pronunciation have drifted, we think this glossary
   reflects current (1991) usage.

dangling pointer: n. A reference that doesn’t actually lead
   anywhere (in C and some other languages, a pointer that doesn’t
   actually point at anything valid).  Usually this is because it
   formerly pointed to something that has moved or disappeared.  Used
   as jargon in a generalization of its techspeak meaning; for
   example, a local phone number for a person who has since moved to the
   other coast is a dangling pointer.

Datamation: /day`t*-may’sh*n/ n. A magazine that many hackers
   assume all {suit}s read.  Used to question an unbelieved quote,
   as in “Did you read that in `Datamation?'” It used to
   publish something hackishly funny every once in a while, like the
   original paper on {COME FROM} in 1973, but it has since become much
   more exclusively {suit}-oriented and boring.

day mode: n. See {phase} (sense 1).  Used of people only.

dd: /dee-dee/ [UNIX: from IBM {JCL}] vt. Equivalent to {cat}
   or {BLT}.  This was originally the name of a UNIX copy command
   with special options suitable for block-oriented devices.  Often
   used in heavy-handed system maintenance, as in “Let’s dd the root
   partition onto a tape, then use the boot PROM to load it back on to
   a new disk”.  The UNIX `dd(1)’ was designed with a weird,
   distinctly non-UNIXy keyword option syntax reminiscent of IBM
   System/360 JCL (which had a similar DD command); though the command
   filled a need, the interface design was clearly a prank.  The
   jargon usage is now very rare outside UNIX sites and now nearly
   obsolete even there, as `dd(1)’ has been {deprecated} for a
   long time (though it has no exact replacement).  Replaced by
   {BLT} or simple English `copy’.

DDT: /D-D-T/ n. 1. Generic term for a program that assists in
   debugging other programs by showing individual machine instructions
   in a readable symbolic form and letting the user change them.  In
   this sense the term DDT is now archaic, having been widely
   displaced by `debugger’ or names of individual programs like
   `dbx’, `adb’, `gdb’, or `sdb’.  2. [ITS] Under
   MIT’s fabled {{ITS}} operating system, DDT (running under the alias
   HACTRN) was also used as the {shell} or top level command
   language used to execute other programs.  3. Any one of several
   specific DDTs (sense 1) supported on early DEC hardware.  The DEC
   PDP-10 Reference Handbook (1969) contained a footnote on the first
   page of the documentation for DDT which illuminates the origin of
   the term:

     Historical footnote: DDT was developed at MIT for the PDP-1
     computer in 1961.  At that time DDT stood for “DEC Debugging Tape”.
     Since then, the idea of an on-line debugging program has propagated
     throughout the computer industry.  DDT programs are now available
     for all DEC computers.  Since media other than tape are now
     frequently used, the more descriptive name “Dynamic Debugging
     Technique” has been adopted, retaining the DDT acronym.  Confusion
     between DDT-10 and another well known pesticide,
     dichloro-diphenyl-trichloroethane (C14-H9-Cl5) should be minimal
     since each attacks a different, and apparently mutually exclusive,
     class of bugs.

   Sadly, this quotation was removed from later editions of the
   handbook after the {suit}s took over and DEC became much more

de-rezz: /dee-rez’/ [from `de-resolve’ via the movie “Tron”]
   (also `derez’) 1. vi. To disappear or dissolve; the image that goes
   with it is of an object breaking up into raster lines and static
   and then dissolving.  Occasionally used of a person who seems to
   have suddenly `fuzzed out’ mentally rather than physically.
   Usage: extremely silly, also rare.  This verb was actually invented
   as *fictional* hacker jargon, and adopted in a spirit of irony
   by real hackers years after the fact.  2. vt. On a Macintosh, many
   program structures (including the code itself) are managed in small
   segments of the program file known as `resources’. The standard
   resource compiler is Rez.  The standard resource decompiler is
   DeRez.  Thus, decompiling a resource is `derezzing’.  Usage: very

dead code: n. Routines that can never be accessed because all calls
   to them have been removed, or code that cannot be reached because
   it is guarded by a control structure that provably must always
   transfer control somewhere else.  The presence of dead code may
   reveal either logical errors due to alterations in the program or
   significant changes in the assumptions and environment of the
   program (see also {software rot}); a good compiler should report
   dead code so a maintainer can think about what it means.  Syn.

DEADBEEF: /ded-beef/ n. The hexadecimal word-fill pattern for
   freshly allocated memory (decimal -21524111) under a number of
   IBM environments, including the RS/6000.  As in “Your program is
   DEADBEEF” (meaning gone, aborted, flushed from memory); if you
   start from an odd half-word boundary, of course, you have

deadlock: n. 1. [techspeak] A situation wherein two or more
   processes are unable to proceed because each is waiting for one of
   the others to do something.  A common example is a program
   communicating to a server, which may find itself waiting for output
   from the server before sending anything more to it, while the
   server is similarly waiting for more input from the controlling
   program before outputting anything.  (It is reported that this
   particular flavor of deadlock is sometimes called a `starvation
   deadlock’, though the term `starvation’ is more properly used for
   situations where a program can never run simply because it never
   gets high enough priority.  Another common flavor is
   `constipation’, where each process is trying to send stuff to
   the other but all buffers are full because nobody is reading
   anything.)  See {deadly embrace}.  2. Also used of
   deadlock-like interactions between humans, as when two people meet
   in a narrow corridor, and each tries to be polite by moving aside
   to let the other pass, but they end up swaying from side to side
   without making any progress because they always both move the same
   way at the same time.

deadly embrace: n. Same as {deadlock}, though usually used only when
   exactly 2 processes are involved.  This is the more popular term in
   Europe, while {deadlock} predominates in the United States.

Death Star: [from the movie “Star Wars”] 1. The AT&T corporate
   logo, which appears on computers sold by AT&T and bears an uncanny
   resemblance to the `Death Star’ in the movie.  This usage is
   particularly common among partisans of {BSD} UNIX, who tend to
   regard the AT&T versions as inferior and AT&T as a bad guy.  Copies
   still circulate of a poster printed by Mt. Xinu showing a starscape
   with a space fighter labeled 4.2 BSD streaking away from a broken
   AT&T logo wreathed in flames.  2. AT&T’s internal magazine,
   `Focus’, uses `death star’ for an incorrectly done AT&T logo
   in which the inner circle in the top left is dark instead of light
   — a frequent result of dark-on-light logo images.

DEC Wars: n. A 1983 {USENET} posting by Alan Hastings and Steve Tarr
   spoofing the “Star Wars” movies in hackish terms.  Some years
   later, ESR (disappointed by Hastings and Tarr’s failure to exploit a
   great premise more thoroughly) posted a 3-times-longer complete
   rewrite called “UNIX WARS”; the two are often confused.

DEChead: /dek’hed/ n. 1. A DEC {field servoid}.  Not flattering.
   2. [from `deadhead’] A Grateful Dead fan working at DEC.

deckle: /dek’l/ [from dec- and {nickle}] n. Two {nickle}s;
   10 bits.  Reported among developers for Mattel’s GI 1600 (the
   Intellivision games processor), a chip with 16-bit-wide RAM but
   10-bit-wide ROM.

deep hack mode: n. See {hack mode}.

deep magic: [poss. from C. S. Lewis’s “Narnia” books] n. An
   awesomely arcane technique central to a program or system, esp. one
   not generally published and available to hackers at large (compare
   {black art}); one that could only have been composed by a true
   {wizard}.  Compiler optimization techniques and many aspects of
   {OS} design used to be {deep magic}; many techniques in
   cryptography, signal processing, graphics, and AI still are.
   Compare {heavy wizardry}.  Esp. found in comments of the form
   “Deep magic begins here…”.  Compare {voodoo programming}.

deep space: n. 1. Describes the notional location of any program
   that has gone {off the trolley}.  Esp. used of programs that
   just sit there silently grinding long after either failure or some
   output is expected.  “Uh oh.  I should have gotten a prompt ten
   seconds ago.  The program’s in deep space somewhere.” Compare
   {buzz}, {catatonic}, {hyperspace}.  2. The metaphorical
   location of a human so dazed and/or confused or caught up in some
   esoteric form of {bogosity} that he or she no longer responds
   coherently to normal communication.  Compare {page out}.

defenestration: [from the traditional Czechoslovak method of
   assassinating prime ministers, via SF fandom] n. 1. Proper karmic
   retribution for an incorrigible punster.  “Oh, ghod, that was
   *awful*!”  “Quick! Defenestrate him!”  2. The act of
   exiting a window system in order to get better response time from a
   full-screen program.  This comes from the dictionary meaning of
   `defenestrate’, which is to throw something out a window.  3. The
   act of discarding something under the assumption that it will
   improve matters.  “I don’t have any disk space left.”  “Well,
   why don’t you defenestrate that 100 megs worth of old core dumps?”
   4. [proposed] The requirement to support a command-line interface.
   “It has to run on a VT100.”  “Curses!  I’ve been

defined as: adj. In the role of, usually in an organization-chart
   sense.  “Pete is currently defined as bug prioritizer.”  Compare

dehose: /dee-hohz/ vt. To clear a {hosed} condition.

delint: /dee-lint/ v. To modify code to remove problems detected
   when {lint}ing.

delta: n. 1. [techspeak] A quantitative change, especially a small
   or incremental one (this use is general in physics and
   engineering).  “I just doubled the speed of my program!”  “What
   was the delta on program size?”  “About 30 percent.”  (He
   doubled the speed of his program, but increased its size by only 30
   percent.)  2. [UNIX] A {diff}, especially a {diff} stored
   under the set of version-control tools called SCCS (Source Code
   Control System) or RCS (Revision Control System).  3. n. A small
   quantity, but not as small as {epsilon}.  The jargon usage of
   {delta} and {epsilon} stems from the traditional use of these
   letters in mathematics for very small numerical quantities,
   particularly in `epsilon-delta’ proofs in limit theory (as in the
   differential calculus).  The term {delta} is often used, once
   {epsilon} has been mentioned, to mean a quantity that is
   slightly bigger than {epsilon} but still very small.  “The cost
   isn’t epsilon, but it’s delta” means that the cost isn’t totally
   negligible, but it is nevertheless very small.  Common
   constructions include `within delta of —‘, `within epsilon of
   —‘: that is, close to and even closer to.

demented: adj. Yet another term of disgust used to describe a
   program.  The connotation in this case is that the program works as
   designed, but the design is bad.  Said, for example, of a program
   that generates large numbers of meaningless error messages,
   implying that it is on the brink of imminent collapse.  Compare
   {wonky}, {bozotic}.

demigod: n. A hacker with years of experience, a national reputation,
   and a major role in the development of at least one design, tool,
   or game used by or known to more than half of the hacker community.
   To qualify as a genuine demigod, the person must recognizably
   identify with the hacker community and have helped shape it.  Major
   demigods include Ken Thompson and Dennis Ritchie (co-inventors of
   {{UNIX}} and {C}) and Richard M. Stallman (inventor of
   {EMACS}).  In their hearts of hearts, most hackers dream of
   someday becoming demigods themselves, and more than one major
   software project has been driven to completion by the author’s
   veiled hopes of apotheosis.  See also {net.god}, {true-hacker}.

demo: /de’moh/ [short for `demonstration’] 1. v. To demonstrate a
   product or prototype.  A far more effective way of inducing bugs to
   manifest than any number of {test} runs, especially when
   important people are watching.  2. n. The act of demoing.

demo mode: [Sun] n. 1. The state of being {heads down} in order
   to finish code in time for a {demo}, usually due yesterday.
   2. A mode in which video games sit there by themselves running
   through a portion of the game, also known as `attract mode’.
   Some serious {app}s have a demo mode they use as a screen saver,
   or may go through a demo mode on startup (for example, the
   Microsoft Windows opening screen — which lets you impress your
   neighbors without actually having to put up with {Microsloth

demon: n. 1. [MIT] A portion of a program that is not invoked
   explicitly, but that lies dormant waiting for some condition(s) to
   occur.  See {daemon}.  The distinction is that demons are
   usually processes within a program, while daemons are usually
   programs running on an operating system.  Demons are particularly
   common in AI programs.  For example, a knowledge-manipulation
   program might implement inference rules as demons.  Whenever a new
   piece of knowledge was added, various demons would activate (which
   demons depends on the particular piece of data) and would create
   additional pieces of knowledge by applying their respective
   inference rules to the original piece.  These new pieces could in
   turn activate more demons as the inferences filtered down through
   chains of logic.  Meanwhile, the main program could continue with
   whatever its primary task was.  2. [outside MIT] Often used
   equivalently to {daemon} — especially in the {{UNIX}} world,
   where the latter spelling and pronunciation is considered mildly

depeditate: /dee-ped’*-tayt/ [by (faulty) analogy with
   `decapitate’] vt.  Humorously, to cut off the feet of.  When one is
   using some computer-aided typesetting tools, careless placement of
   text blocks within a page or above a rule can result in chopped-off
   letter descenders.  Such letters are said to have been depeditated.

deprecated: adj. Said of a program or feature that is considered
   obsolescent and in the process of being phased out, usually in
   favor of a specified replacement.  Deprecated features can,
   unfortunately, linger on for many years.

deserves to lose: adj. Said of someone who willfully does the
   {Wrong Thing}; humorously, if one uses a feature known to be
   {marginal}.  What is meant is that one deserves the consequences
   of one’s {losing} actions.  “Boy, anyone who tries to use
   {mess-dos} deserves to {lose}!” ({{ITS}} fans used to say this
   of {{UNIX}}; many still do.)  See also {screw}, {chomp},

desk check: n.,v. To {grovel} over hardcopy of source code,
   mentally simulating the control flow; a method of catching bugs.
   No longer common practice in this age of on-screen editing, fast
   compiles, and sophisticated debuggers — though some maintain
   stoutly that it ought to be.  Compare {eyeball search},
   {vdiff}, {vgrep}.

Devil Book: n. `The Design and Implementation of the 4.3BSD
   UNIX Operating System’, by Samuel J. Leffler, Marshall Kirk
   McKusick, Michael J. Karels, and John S. Quarterman (Addison-Wesley
   Publishers, 1989) — the standard reference book on the internals
   of {BSD} UNIX.  So called because the cover has a picture
   depicting a little devil (a visual play on {daemon}) in
   sneakers, holding a pitchfork (referring to one of the
   characteristic features of UNIX, the {fork(2)} system call).

devo: /dee’voh/ [orig. in-house jargon at Symbolics] n. A person in a
   development group.  See also {doco} and {mango}.

dickless workstation: n. Extremely pejorative hackerism for
   `diskless workstation’, a class of botches including the Sun 3/50
   and other machines designed exclusively to network with an
   expensive central disk server.  These combine all the disadvantages
   of time-sharing with all the disadvantages of distributed personal

dictionary flame: [USENET] n. An attempt to sidetrack a debate
   away from issues by insisting on meanings for key terms that
   presuppose a desired conclusion or smuggle in an implicit premise.
   A common tactic of people who prefer argument over definitions to
   disputes about reality.

diddle: 1. vt. To work with or modify in a not particularly
   serious manner.  “I diddled a copy of {ADVENT} so it didn’t
   double-space all the time.”  “Let’s diddle this piece of code and
   see if the problem goes away.”  See {tweak} and {twiddle}.
   2. n. The action or result of diddling.  See also {tweak},
   {twiddle}, {frob}.

diff: /dif/ n. 1. A change listing, especially giving differences
   between (and additions to) source code or documents (the term is
   often used in the plural `diffs’).  “Send me your diffs for the
   Jargon File!”  Compare {vdiff}.  2. Specifically, such a listing
   produced by the `diff(1)’ command, esp. when used as
   specification input to the `patch(1)’ utility (which can
   actually perform the modifications; see {patch}).  This is a
   common method of distributing patches and source updates in the
   UNIX/C world.  See also {vdiff}, {mod}.

digit: n. An employee of Digital Equipment Corporation.  See also
   {VAX}, {VMS}, {PDP-10}, {{TOPS-10}}, {DEChead}, {double
   DECkers}, {field circus}.

dike: vt. To remove or disable a portion of something, as a wire
   from a computer or a subroutine from a program.  A standard slogan
   is “When in doubt, dike it out”.  (The implication is that it is
   usually more effective to attack software problems by reducing
   complexity than by increasing it.)  The word `dikes’ is widely
   used among mechanics and engineers to mean `diagonal cutters’,
   esp.  a heavy-duty metal-cutting device, but may also refer to a
   kind of wire-cutters used by electronics techs.  To `dike
   something out’ means to use such cutters to remove something.
   Indeed, the TMRC Dictionary defined dike as “to attack with
   dikes”.  Among hackers this term has been metaphorically extended
   to informational objects such as sections of code.

ding: n.,vi. 1. Synonym for {feep}.  Usage: rare among hackers,
   but commoner in the {Real World}.  2. `dinged’: What happens
   when someone in authority gives you a minor bitching about
   something, esp. something trivial.  “I was dinged for having a
   messy desk.”

dink: /dink/ n. Said of a machine that has the {bitty box}
   nature; a machine too small to be worth bothering with — sometimes
   the system you’re currently forced to work on.  First heard from an
   MIT hacker (BADOB) working on a CP/M system with 64K, in reference
   to any 6502 system, then from fans of 32-bit architectures about
   16-bit machines.  “GNUMACS will never work on that dink machine.”
   Probably derived from mainstream `dinky’, which isn’t sufficiently

dinosaur: n. 1. Any hardware requiring raised flooring and special
   power.  Used especially of old minis and mainframes, in contrast
   with newer microprocessor-based machines.  In a famous quote from
   the 1988 UNIX EXPO, Bill Joy compared the mainframe in the massive
   IBM display with a grazing dinosaur “with a truck outside pumping
   its bodily fluids through it”.  IBM was not amused.  Compare
   {big iron}; see also {mainframe}.  2. [IBM] A very conservative
   user; a {zipperhead}.

dinosaur pen: n. A traditional {mainframe} computer room complete with
   raised flooring, special power, its own ultra-heavy-duty air
   conditioning, and a side order of Halon fire extinguishers.  See

dinosaurs mating: n. Said to occur when yet another {big iron}
   merger or buyout occurs; reflects a perception by hackers that
   these signal another stage in the long, slow dying of the
   {mainframe} industry.  In its glory days of the 1960s, it was
   `IBM and the Seven Dwarves’: Burroughs, Control Data, General
   Electric, Honeywell, NCR, RCA, and Univac.  RCA and GE sold out
   early, and it was `IBM and the Bunch’ (Burroughs, Univac, NCR,
   Control Data, and Honeywell) for a while.  Honeywell was bought out
   by Bull; Burroughs merged with Univac to form Unisys (in 1984 — this
   was when the phrase `dinosaurs mating’ was coined); and as this is
   written AT&T is attempting to recover from a disastrously bad first
   6 years in the hardware industry by absorbing NCR.  More such
   earth-shaking unions of doomed giants seem inevitable.

dirty power: n. Electrical mains voltage that is unfriendly to
   the delicate innards of computers.  Spikes, {drop-outs}, average
   voltage significantly higher or lower than nominal, or just plain
   noise can all cause problems of varying subtlety and severity.

Discordianism: /dis-kor’di-*n-ism/ n. The veneration of
   {Eris}, a.k.a. Discordia; widely popular among hackers.
   Discordianism was popularized by Robert Anton Wilson’s
   `Illuminatus!’ trilogy as a sort of self-subverting Dada-Zen
   for Westerners — it should on no account be taken seriously but
   is far more serious than most jokes.  Consider, for example, the
   Fifth Commandment of the Pentabarf, from `Principia
   Discordia’: “A Discordian is Prohibited of Believing What he
   Reads.”  Discordianism is usually connected with an elaborate
   conspiracy theory/joke involving millennia-long warfare between the
   anarcho-surrealist partisans of Eris and a malevolent,
   authoritarian secret society called the Illuminati.  See
   appendix B, {Church of the SubGenius}, and {ha ha only

disk farm: n. (also {laundromat}) A large room or rooms filled
   with disk drives (esp. {washing machine}s).

display hack: n. A program with the same approximate purpose as a
   kaleidoscope: to make pretty pictures.  Famous display hacks
   include {munching squares}, {smoking clover}, the BSD UNIX
   `rain(6)’ program, `worms(6)’ on miscellaneous UNIXes,
   and the {X} `kaleid(1)’ program.  Display hacks can also be
   implemented without programming by creating text files containing
   numerous escape sequences for interpretation by a video terminal;
   one notable example displayed, on any VT100, a Christmas tree with
   twinkling lights and a toy train circling its base.  The {hack
   value} of a display hack is proportional to the esthetic value of
   the images times the cleverness of the algorithm divided by the
   size of the code.  Syn. {psychedelicware}.

Dissociated Press: [play on `Associated Press’; perhaps inspired
   by a reference in the 1949 Bugs Bunny cartoon “What’s Up,
   Doc?”] n.  An algorithm for transforming any text into potentially
   humorous garbage even more efficiently than by passing it through a
   {marketroid}.  You start by printing any N consecutive
   words (or letters) in the text.  Then at every step you search for
   any random occurrence in the original text of the last N
   words (or letters) already printed and then print the next word or
   letter.  {EMACS} has a handy command for this.  Here is a short
   example of word-based Dissociated Press applied to an earlier
   version of this Jargon File:

     wart: n. A small, crocky {feature} that sticks out of
     an array (C has no checks for this).  This is relatively
     benign and easy to spot if the phrase is bent so as to be
     not worth paying attention to the medium in question.

   Here is a short example of letter-based Dissociated Press applied
   to the same source:

     window sysIWYG: n. A bit was named aften /bee’t*/ prefer
     to use the other guy’s re, especially in every cast a
     chuckle on neithout getting into useful informash speech
     makes removing a featuring a move or usage actual
     abstractionsidered interj. Indeed spectace logic or problem!

   A hackish idle pastime is to apply letter-based Dissociated Press
   to a random body of text and {vgrep} the output in hopes of finding
   an interesting new word.  (In the preceding example, `window
   sysIWYG’ and `informash’ show some promise.)  Iterated applications
   of Dissociated Press usually yield better results.  Similar
   techniques called `travesty generators’ have been employed with
   considerable satirical effect to the utterances of USENET flamers;
   see {pseudo}.

distribution: n. 1. A software source tree packaged for
   distribution; but see {kit}.  2. A vague term encompassing
   mailing lists and USENET newsgroups (but not {BBS} {fora}); any
   topic-oriented message channel with multiple recipients.  3. An
   information-space domain (usually loosely correlated with
   geography) to which propagation of a USENET message is restricted;
   a much-underutilized feature.

do protocol: [from network protocol programming] vi. To perform an
   interaction with somebody or something that follows a clearly
   defined procedure.  For example, “Let’s do protocol with the
   check” at a restaurant means to ask for the check, calculate the
   tip and everybody’s share, collect money from everybody, generate
   change as necessary, and pay the bill.  See {protocol}.

doc: /dok/ n. Common spoken and written shorthand for
   `documentation’.  Often used in the plural `docs’ and in the
   construction `doc file’ (documentation available on-line).

doco: /do’koh/ [orig. in-house jargon at Symbolics] n. A
   documentation writer.  See also {devo} and {mango}.

documentation:: n. The multiple kilograms of macerated, pounded,
   steamed, bleached, and pressed trees that accompany most modern
   software or hardware products (see also {tree-killer}).  Hackers
   seldom read paper documentation and (too) often resist writing it;
   they prefer theirs to be terse and on-line.  A common comment on
   this is “You can’t {grep} dead trees”.  See {drool-proof
   paper}, {verbiage}.

dodgy: adj. Syn. with {flaky}.  Preferred outside the U.S.

dogcow: /dog’kow/ n. See {Moof}.

dogwash: /dog’wosh/ [From a quip in the `urgency’ field of a very
   optional software change request, ca. 1982.  It was something like
   “Urgency: Wash your dog first”.] 1. n. A project of minimal
   priority, undertaken as an escape from more serious work.  2. v.
   To engage in such a project.  Many games and much {freeware} get
   written this way.

domainist: /doh-mayn’ist/ adj. 1. Said of an {{Internet
   address}} (as opposed to a {bang path}) because the part to the
   right of the `@’ specifies a nested series of `domains’;
   for example, eric@snark.thyrsus.com specifies the machine
   called snark in the subdomain called thyrsus within the
   top-level domain called com.  See also {big-endian}, sense 2.
   2. Said of a site, mailer, or routing program which knows how to
   handle domainist addresses.  3. Said of a person (esp. a site
   admin) who prefers domain addressing, supports a domainist mailer,
   or prosyletizes for domainist addressing and disdains {bang
   path}s.  This is now (1991) semi-obsolete, as most sites have

Don’t do that, then!: [from an old doctor’s office joke about a
   patient with a trivial complaint] Stock response to a user
   complaint.  “When I type control-S, the whole system comes to a
   halt for thirty seconds.”  “Don’t do that, then!” (or “So don’t
   do that!”).  Compare {RTFM}.

dongle: /dong’gl/ n. 1. A security or {copy-protection} device
   for commercial microcomputer programs consisting of a serialized
   EPROM and some drivers in a D-25 connector shell, which must be
   connected to an I/O port of the computer while the program is run.
   Programs that use a dongle query the port at startup and at
   programmed intervals thereafter, and terminate if it does not
   respond with the dongle’s programmed validation code.  Thus, users
   can make as many copies of the program as they want but must pay
   for each dongle.  The idea was clever, but it was initially a failure, as
   users disliked tying up a serial port this way.  Most dongles on
   the market today (1991) will pass data through the port and monitor
   for {magic} codes (and combinations of status lines) with minimal
   if any interference with devices further down the line — this
   innovation was necessary to allow daisy-chained dongles for
   multiple pieces of software.  The devices are still not widely
   used, as the industry has moved away from copy-protection schemes
   in general.  2. By extension, any physical electronic key or
   transferrable ID required for a program to function.  See

dongle-disk: /don’gl disk/ n. See {dongle}; a `dongle-disk’
   is a floppy disk with some coding that allows an application to
   identify it uniquely.  It can therefore be used as a {dongle}.
   Also called a `key disk’.

donuts: n.obs. A collective noun for any set of memory bits.  This is
   extremely archaic and may no longer be live jargon; it dates from the
   days of ferrite-{core} memories in which each bit was implemented by
   a doughnut-shaped magnetic flip-flop.

doorstop: n. Used to describe equipment that is non-functional and
   halfway expected to remain so, especially obsolete equipment kept
   around for political reasons or ostensibly as a backup.  “When we
   get another Wyse-50 in here, that ADM 3 will turn into a doorstop.”
   Compare {boat anchor}.

dot file: [UNIX] n. A file which is not visible to normal
   directory-browsing tools (on UNIX, files named with a leading dot
   are, by convention, not normally presented in directory listings).
   Many programs define one or more dot files in which startup or
   configuration information may be optionally recorded; a user can
   customize the program’s behavior by creating the appropriate file in
   the current or home directory.  See also {rc file}.

double bucky: adj. Using both the CTRL and META keys.  “The
   command to burn all LEDs is double bucky F.”

   This term originated on the Stanford extended-ASCII keyboard, and
   was later taken up by users of the {space-cadet keyboard} at
   MIT.  A typical MIT comment was that the Stanford {bucky bits}
   (control and meta shifting keys) were nice, but there weren’t
   enough of them; you could type only 512 different characters on a
   Stanford keyboard.  An obvious way to address this was simply to
   add more shifting keys, and this was eventually done; but a
   keyboard with that many shifting keys is hard on touch-typists, who
   don’t like to move their hands away from the home position on the
   keyboard.  It was half-seriously suggested that the extra shifting
   keys be implemented as pedals; typing on such a keyboard would be
   very much like playing a full pipe organ.  This idea is mentioned
   in a parody of a very fine song by Jeffrey Moss called
   “Rubber Duckie”, which was published in `The Sesame
   Street Songbook’ (Simon and Schuster 1971, ISBN 671-21036-X).
   These lyrics were written on May 27, 1978, in celebration of the
   Stanford keyboard:

     …Double Bucky

     .Double bucky, you’re the one!
     .You make my keyboard lots of fun.
     .    Double bucky, an additional bit or two:
     .Control and meta, side by side,
     .Augmented ASCII, nine bits wide!
     .    Double bucky!  Half a thousand glyphs, plus a few!
     ..I sure wish that I
     ..Had a couple of
     ..    Bits more!
     ..Perhaps a
     ..Set of pedals to
     ..Make the number of
     ..    Bits four:
     ..Double double bucky!
     .Double bucky, left and right
     .OR’d together, outta sight!
     .    Double bucky, I’d like a whole word of
     .    Double bucky, I’m happy I heard of
     .    Double bucky, I’d like a whole word of you!

     .— The Great Quux (with apologies to Jeffrey Moss)

   [This, by the way, is an excellent example of computer {filk} — ESR]

   See also {meta bit}, {cokebottle}, and {quadruple bucky}.

double DECkers: n. Used to describe married couples in which both
   partners work for Digital Equipment Corporation.

doubled sig: [USENET] n. A {sig block} that has been included
   twice in a {USENET} article or, less commonly, in an electronic
   mail message.  An article or message with a doubled sig can be
   caused by improperly configured software.  More often, however, it
   reveals the author’s lack of experience in electronic
   communication.  See {BIFF}, {pseudo}.

down: 1. adj. Not operating.  “The up escalator is down” is
   considered a humorous thing to say, and “The elevator is down”
   always means “The elevator isn’t working” and never refers to
   what floor the elevator is on.  With respect to computers, this
   usage has passed into the mainstream; the extension to other kinds
   of machine is still hackish.  2. `go down’ vi. To stop
   functioning; usually said of the {system}.  The message from the
   {console} that every hacker hates to hear from the operator is
   “The system will go down in 5 minutes”.  3. `take down’,
   `bring down’ vt. To deactivate purposely, usually for repair work
   or {PM}.  “I’m taking the system down to work on that bug in the
   tape drive.”  Occasionally one hears the word `down’ by itself
   used as a verb in this vt. sense.  See {crash}; oppose {up}.

download: vt. To transfer data or (esp.) code from a larger `host’
   system (esp. a {mainframe}) over a digital comm link to a smaller
   `client’ system, esp. a microcomputer or specialized peripheral.
   Oppose {upload}.

   However, note that ground-to-space communications has its own usage
   rule for this term.  Space-to-earth transmission is always download
   and the reverse upload regardless of the relative size of the
   computers involved.  So far the in-space machines have invariably
   been smaller; thus the upload/download distinction has been
   reversed from its usual sense.

DP: /D-P/ n. 1. Data Processing.  Listed here because,
   according to hackers, use of the term marks one immediately as a
   {suit}.  See {DPer}.  2. Common abbrev for {Dissociated

DPB: /d*-pib’/ [from the PDP-10 instruction set] vt. To plop
   something down in the middle.  Usage: silly.  “DPB
   yourself into that couch there.”  The connotation would be that
   the couch is full except for one slot just big enough for you to
   sit in.  DPB means `DePosit Byte’, and was the name of a PDP-10
   instruction that inserts some bits into the middle of some other
   bits.  This usage has been kept alive by the Common LISP function
   of the same name.

DPer: /dee-pee-er/ n. Data Processor.  Hackers are absolutely
   amazed that {suit}s use this term self-referentially.
   “*Computers* process data, not people!”  See {DP}.

dragon: n. [MIT] A program similar to a {daemon}, except that it
   is not invoked at all, but is instead used by the system to perform
   various secondary tasks.  A typical example would be an accounting
   program, which keeps track of who is logged in, accumulates
   load-average statistics, etc.  Under ITS, many terminals displayed
   a list of people logged in, where they were, what they were
   running, etc., along with some random picture (such as a unicorn,
   Snoopy, or the Enterprise), which was generated by the `name
   dragon’.  Usage: rare outside MIT — under UNIX and most other OSes
   this would be called a `background demon’ or {daemon}.  The
   best-known UNIX example of a dragon is `cron(1)’.  At SAIL,
   they called this sort of thing a `phantom’.

Dragon Book: n. The classic text `Compilers: Principles,
   Techniques and Tools’, by Alfred V. Aho, Ravi Sethi, and Jeffrey D.
   Ullman (Addison-Wesley 1986; ISBN 0-201-10088-6), so called because
   of the cover design featuring a dragon labeled `complexity of
   compiler design’ and a knight bearing the lance `LALR parser
   generator’ among his other trappings.  This one is more
   specifically known as the `Red Dragon Book’ (1986); an earlier
   edition, sans Sethi and titled `Principles Of Compiler Design’
   (Alfred V. Aho and Jeffrey D. Ullman; Addison-Wesley, 1977; ISBN
   0-201-00022-9), was the `Green Dragon Book’ (1977).  (Also `New
   Dragon Book’, `Old Dragon Book’.)  The horsed knight and the
   Green Dragon were warily eying each other at a distance; now the
   knight is typing (wearing gauntlets!) at a terminal showing a
   video-game representation of the Red Dragon’s head while the rest
   of the beast extends back in normal space.  See also {{book

drain: [IBM] v. Syn. for {flush} (sense 2).  Has a connotation
   of finality about it; one speaks of draining a device before taking
   it offline.

dread high-bit disease: n. A condition endemic to PRIME (a.k.a.
   PR1ME) minicomputers that results in all the characters having
   their high (0x80) bit ON rather than OFF.  This of course makes
   transporting files to other systems much more difficult, not to
   mention talking to true 8-bit devices.  It is reported that
   PRIME adopted the reversed-8-bit convention in order to save
   25 cents per serial line per machine.  This probably qualifies as one
   of the most {cretinous} design tradeoffs ever made.  See {meta
   bit}.   A few other machines (including the Atari 800) have exhibited
   similar brain damage.

DRECNET: /drek’net/ [from Yiddish/German `dreck’, meaning
   dirt] n. Deliberate distortion of DECNET, a networking protocol
   used in the {VMS} community.  So called because DEC helped write
   the Ethernet specification and then (either stupidly or as a
   malignant customer-control tactic) violated that spec in the design
   of DRECNET in a way that made it incompatible.  See also
   {connector conspiracy}.

driver: n. 1. The {main loop} of an event-processing program;
   the code that gets commands and dispatches them for execution.
   2. [techspeak] In `device driver’, code designed to handle a
   particular peripheral device such as a magnetic disk or tape unit.
   3. In the TeX   general, `driver’ also means a program that translates some
   device-independent or other common format to something a real
   device can actually understand.

droid: n. A person (esp. a low-level bureaucrat or
   service-business employee) exhibiting most of the following
   characteristics: (a) na”ive trust in the wisdom of the parent
   organization or `the system’; (b) a propensity to believe
   obvious nonsense emitted by authority figures (or computers!);
   blind faith; (c) a rule-governed mentality, one unwilling or unable
   to look beyond the `letter of the law’ in exceptional
   situations; and (d) no interest in fixing that which is broken; an
   “It’s not my job, man” attitude.

   Typical droid positions include supermarket checkout assistant and
   bank clerk; the syndrome is also endemic in low-level government
   employees.  The implication is that the rules and official
   procedures constitute software that the droid is executing.  This
   becomes a problem when the software has not been properly debugged.
   The term `droid mentality’ is also used to describe the mindset
   behind this behavior. Compare {suit}, {marketroid}; see

drool-proof paper: n. Documentation that has been obsessively {dumbed
   down}, to the point where only a {cretin} could bear to read it, is
   said to have succumbed to the `drool-proof paper syndrome’ or to
   have been `written on drool-proof paper’.  For example, this is
   an actual quote from Apple’s LaserWriter manual: “Do not expose
   your LaserWriter to open fire or flame.”

drop on the floor: vt. To react to an error condition by silently
   discarding messages or other valuable data.  “The gateway
   ran out of memory, so it just started dropping packets on the
   floor.”  Also frequently used of faulty mail and netnews relay
   sites that lose messages.  See also {black hole}, {bit bucket}.

drop-ins: [prob. by analogy with {drop-outs}] n. Spurious
   characters appearing on a terminal or console as a result of line noise or
   a system malfunction of some sort.  Esp. used when these are
   interspersed with one’s own typed input.  Compare {drop-outs}.

drop-outs: n. 1. A variety of `power glitch’ (see {glitch});
   momentary 0 voltage on the electrical mains.  2. Missing characters
   in typed input due to software malfunction or system saturation
   (this can happen under UNIX when a bad connection to a modem swamps
   the processor with spurious character interrupts).  3. Mental
   glitches; used as a way of describing those occasions when the mind
   just seems to shut down for a couple of beats.  See {glitch},

drugged: adj. (also `on drugs’) 1. Conspicuously stupid,
   heading toward {brain-damaged}.  Often accompanied by a
   pantomime of toking a joint (but see appendix B).  2. Of hardware,
   very slow relative to normal performance.

drunk mouse syndrome: n. A malady exhibited by the mouse pointing
   device of some computers.  The typical symptom is for the mouse
   cursor on the screen to move in random directions and not in sync
   with the motion of the actual mouse.  Can usually be corrected by
   unplugging the mouse and plugging it back again.  Another
   recommended fix for optical mice is to rotate your mouse pad
   90 degrees.

   At Xerox PARC in the 1970s, most people kept a can of copier
   cleaner (isopropyl alcohol) at their desks.  When the steel ball on
   the mouse had picked up enough {cruft} to be unreliable, the mouse
   was doused in cleaner, which restored it for a while.  However,
   this operation left a fine residue that accelerated the accumulation
   of cruft, so the dousings became more and more frequent.  Finally,
   the mouse was declared `alcoholic’ and sent to the clinic to be
   dried out in a CFC ultrasonic bath.

dumbass attack: /duhm’as *-tak’/ [Purdue] n. Notional cause of a
   novice’s mistake made by the experienced, especially one made while
   running as root under UNIX, e.g., typing `rm -r *’ or
   `mkfs’ on a mounted file system.  Compare {adger}.

dumbed down: adj. Simplified, with a strong connotation of
   *over*simplified.  Often, a {marketroid} will insist that the
   interfaces and documentation of software be dumbed down after the
   designer has burned untold gallons of midnight oil making it
   smart.  This creates friction.  See {user-friendly}.

dump: n. 1. An undigested and voluminous mass of information about a
   problem or the state of a system, especially one routed to the
   slowest available output device (compare {core dump}), and most
   especially one consisting of hex or octal {runes} describing the
   byte-by-byte state of memory, mass storage, or some file.  In {elder
   days}, debugging was generally done by `groveling over’ a dump
   (see {grovel}); increasing use of high-level languages and
   interactive debuggers has made this uncommon, and the term `dump’
   now has a faintly archaic flavor.  2. A backup.  This usage is
   typical only at large timesharing installations.

dup killer: /d[y]oop kill’r/ [FidoNet] n. Software that is
   supposed to detect and delete duplicates of a message that may
   have reached the FidoNet system via different routes.

dup loop: /d[y]oop loop/ (also `dupe loop’) [FidoNet] n. An
   incorrectly configured system or network gateway may propagate
   duplicate messages on one or more {echo}es, with different
   identification information that renders {dup killer}s
   ineffective.  If such a duplicate message eventually reaches a
   system through which it has already passed (with the original
   identification information), all systems passed on the way back to
   that system are said to be involved in a {dup loop}.

dusty deck: n. Old software (especially applications) which one is
   obliged to remain compatible with (or to maintain).  The term
   implies that the software in question is a holdover from card-punch
   days.  Used esp. when referring to old scientific and
   {number-crunching} software, much of which was written in FORTRAN
   and very poorly documented but is believed to be too expensive to
   replace.  See {fossil}.

DWIM: /dwim/ [acronym, `Do What I Mean’] 1. adj. Able to guess, sometimes
   even correctly, the result intended when bogus input was provided.
   2. n.,obs. The BBNLISP/INTERLISP function that attempted to
   accomplish this feat by correcting many of the more common errors.
   See {hairy}.  3. Occasionally, an interjection hurled at a
   balky computer, esp. when one senses one might be tripping over
   legalisms (see {legalese}).

   Warren Teitelman originally wrote DWIM to fix his typos and
   spelling errors, so it was somewhat idiosyncratic to his style, and
   would often make hash of anyone else’s typos if they were
   stylistically different.  This led a number of victims of DWIM to
   claim the acronym stood for `Damn Warren’s Infernal Machine!’.

   In one notorious incident, Warren added a DWIM feature to the
   command interpreter used at Xerox PARC.  One day another hacker
   there typed `delete *$’ to free up some disk space.  (The editor
   there named backup files by appending `$’ to the original file
   name, so he was trying to delete any backup files left over from
   old editing sessions.)  It happened that there weren’t any editor
   backup files, so DWIM helpfully reported `*$ not found, assuming
   you meant ‘delete *’.’  It then started to delete all the files on
   the disk!  The hacker managed to stop it with a {Vulcan nerve
   pinch} after only a half dozen or so files were lost.
   The hacker later said he had been sorely tempted to go to Warren’s
   office, tie Warren down in his chair in front of his workstation,
   and then type `delete *$’ twice.

   DWIM is often suggested in jest as a desired feature for a complex
   program; it is also occasionally described as the single
   instruction the ideal computer would have.  Back when proofs of
   program correctness were in vogue, there were also jokes about
   `DWIMC’ (Do What I Mean, Correctly).  A related term, more often
   seen as a verb, is DTRT (Do The Right Thing); see {Right Thing}.

dynner: /din’r/ 32 bits, by analogy with {nybble} and
   {{byte}}.  Usage: rare and extremely silly.  See also {playte},
   {tayste}, {crumb}.

= E =

earthquake: [IBM] n. The ultimate real-world shock test for
   computer hardware.  Hackish sources at IBM deny the rumor that the
   Bay Area quake of 1989 was initiated by the company to test
   quality-assurance procedures at its California plants.

Easter egg: n. 1. A message hidden in the object code of a program
   as a joke, intended to be found by persons disassembling or
   browsing the code.  2. A message, graphic, or sound effect emitted
   by a program (or, on a PC, the BIOS ROM) in response to some
   undocumented set of commands or keystrokes, intended as a joke or
   to display program credits.  One well-known early Easter egg found
   in a couple of OSes caused them to respond to the command
   `make love’ with `not war?’.  Many personal computers
   have much more elaborate eggs hidden in ROM, including lists of the
   developers’ names, political exhortations, snatches of music, and
   (in one case) graphics images of the entire development team.

Easter egging: [IBM] n. The act of replacing unrelated parts more or
   less at random in hopes that a malfunction will go away.  Hackers
   consider this the normal operating mode of {field circus} techs and
   do not love them for it.  Compare {shotgun debugging}.

eat flaming death: imp. A construction popularized among hackers by
   the infamous {CPU Wars} comic; supposed to derive from a famously
   turgid line in a WWII-era anti-Nazi propaganda comic that ran
   “Eat flaming death, non-Aryan mongrels!” or something of the sort
   (however, it is also reported that the Firesign Theater’s
   1975 album “In The Next World, You’re On Your Own” included the
   phrase “Eat flaming death, fascist media pigs”; this may have been
   an influence).  Used in humorously overblown expressions of
   hostility. “Eat flaming death, {{EBCDIC}} users!”

EBCDIC:: /eb’s*-dik/, /eb’see`dik/, or /eb’k*-dik/ [acronym,
   Extended Binary Coded Decimal Interchange Code] n. An alleged
   character set used on IBM {dinosaur}s.  It exists in at least six
   mutually incompatible versions, all featuring such delights as
   non-contiguous letter sequences and the absence of several ASCII
   punctuation characters fairly important for modern computer
   languages (exactly which characters are absent varies according to
   which version of EBCDIC you’re looking at).  IBM adapted EBCDIC
   from {{punched card}} code in the early 1960s and promulgated it
   as a customer-control tactic (see {connector conspiracy}),
   spurning the already established ASCII standard.  Today, IBM claims
   to be an open-systems company, but IBM’s own description of the
   EBCDIC variants and how to convert between them is still internally
   classified top-secret, burn-before-reading.  Hackers blanch at the
   very *name* of EBCDIC and consider it a manifestation of
   purest {evil}.  See also {fear and loathing}.

echo: [FidoNet] n. A {topic group} on {FidoNet}’s echomail
   system.  Compare {newsgroup}.

eighty-column mind: [IBM] n. The sort said to be possessed by
   persons for whom the transition from {punched card} to tape was
   traumatic (nobody has dared tell them about disks yet).  It is said
   that these people, including (according to an old joke) the founder
   of IBM, will be buried `face down, 9-edge first’ (the 9-edge being
   the bottom of the card).  This directive is inscribed on IBM’s
   1422 and 1602 card readers and is referenced in a famous bit of
   doggerel called “The Last Bug”, the climactic lines of which
   are as follows:

        He died at the console
        Of hunger and thirst.
        Next day he was buried,
        Face down, 9-edge first.

   The eighty-column mind is thought by most hackers to dominate IBM’s
   customer base and its thinking.  See {IBM}, {fear and
   loathing}, {card walloper}.

El Camino Bignum: /el’ k*-mee’noh big’nuhm/ n. The road
   mundanely called El Camino Real, a road through the San Francisco
   peninsula that originally extended all the way down to Mexico City
   and many portions of which are still intact.  Navigation on the San
   Francisco peninsula is usually done relative to El Camino Real,
   which defines {logical} north and south even though it isn’t
   really north-south many places.  El Camino Real runs right past
   Stanford University and so is familiar to hackers.

   The Spanish word `real’ (which has two syllables: /ray-ahl’/)
   means `royal’; El Camino Real is `the royal road’.  In the FORTRAN
   language, a `real’ quantity is a number typically precise to 7
   significant digits, and a `double precision’ quantity is a larger
   floating-point number, precise to perhaps fourteen significant
   digits (other languages have similar `real’ types).

   When a hacker from MIT visited Stanford in 1976, he remarked what a
   long road El Camino Real was.  Making a pun on `real’, he started
   calling it `El Camino Double Precision’ — but when the hacker
   was told that the road was hundreds of miles long, he renamed it
   `El Camino Bignum’, and that name has stuck.  (See {bignum}.)

elder days: n. The heroic age of hackerdom (roughly, pre-1980); the
   era of the {PDP-10}, {TECO}, {{ITS}}, and the ARPANET.  This
   term has been rather consciously adopted from J. R. R. Tolkien’s
   fantasy epic `The Lord of the Rings’.  Compare {Iron Age};
   see also {elvish}.

elegant: [from mathematical usage] adj. Combining simplicity, power,
   and a certain ineffable grace of design.  Higher praise than
   `clever’, `winning’, or even {cuspy}.

elephantine: adj. Used of programs or systems that are both
   conspicuous {hog}s (owing perhaps to poor design founded on
   {brute force and ignorance}) and exceedingly {hairy} in source
   form.  An elephantine program may be functional and even friendly,
   but (as in the old joke about being in bed with an elephant) it’s
   tough to have around all the same (and, like a pachyderm, difficult
   to maintain).  In extreme cases, hackers have been known to make
   trumpeting sounds or perform expressive proboscatory mime at the
   mention of the offending program.  Usage: semi-humorous.  Compare
   `has the elephant nature’ and the somewhat more pejorative
   {monstrosity}.  See also {second-system effect} and

elevator controller: n. Another archetypal dumb embedded-systems
   application, like {toaster} (which superseded it).  During one
   period (1983–84) in the deliberations of ANSI X3J11 (the
   C standardization committee) this was the canonical example of a
   really stupid, memory-limited computation environment.  “You can’t
   require `printf(3)’ to be part of the default runtime library
   — what if you’re targeting an elevator controller?”  Elevator
   controllers became important rhetorical weapons on both sides of
   several {holy wars}.

ELIZA effect: /*-li:’z* *-fekt’/ [AI community] n. The tendency of
   humans to attach associations to terms from prior experience.
   For example, there is nothing magic about the symbol `+’ that
   makes it well-suited to indicate addition; it’s just that people
   associate it with addition.  Using `+’ or `plus’ to mean addition
   in a computer language is taking advantage of the ELIZA effect.

   This term comes from the famous ELIZA program, which simulated a
   Rogerian psychoanalyst by rephrasing many of the patient’s
   statements as questions and posing them to the patient.  It worked
   by simple pattern recognition and substitution of key words into
   canned phrases.  It was so convincing, however, that there are many
   anecdotes about people becoming very emotionally caught up in
   dealing with ELIZA.  All this was due to people’s tendency to
   attach to words meanings which the computer never put there.  The
   ELIZA effect is a {Good Thing} when writing a programming
   language, but it can blind you to serious shortcomings when
   analyzing an Artificial Intelligence system.  Compare
   {ad-hockery}; see also {AI-complete}.

elvish: n. 1. The Tengwar of Feanor, a table of letterforms
   resembling the beautiful Celtic half-uncial hand of the `Book
   of Kells’.  Invented and described by J. R. R. Tolkien
   in `The Lord of The Rings’ as an orthography for his fictional
   `elvish’ languages, this system (which is both visually and
   phonetically elegant) has long fascinated hackers (who tend to be
   interested by artificial languages in general).  It is traditional
   for graphics printers, plotters, window systems, and the like to
   support a Feanorian typeface as one of their demo items.  See also
   {elder days}.  2. By extension, any odd or unreadable typeface
   produced by a graphics device.  3. The typeface mundanely called
   `B”ocklin’, an art-decoish display font.

EMACS: /ee’maks/ [from Editing MACroS] n. The ne plus ultra of
   hacker editors, a program editor with an entire LISP system inside
   it.  It was originally written by Richard Stallman in {TECO}
   under {{ITS}} at the MIT AI lab, but the most widely used versions
   now run under UNIX.  It includes facilities to run compilation
   subprocesses and send and receive mail; many hackers spend up to
   80% of their {tube time} inside it.

   Some versions running under window managers iconify as an
   overflowing kitchen sink, perhaps to suggest the one feature the
   editor does not (yet) include.  Indeed, some hackers find EMACS too
   heavyweight and {baroque} for their taste, and expand the name as
   `Escape Meta Alt Control Shift’ to spoof its heavy reliance on
   keystrokes decorated with {bucky bits}.  Other spoof expansions
   include `Eight Megabytes And Constantly Swapping’, `Eventually
   `malloc()’s All Computer Storage’, and `EMACS Makes A Computer
   Slow’ (see {{recursive acronym}}).  See also {vi}.

email: /ee’mayl/ 1. n. Electronic mail automatically passed
   through computer networks and/or via modems over common-carrier
   lines.  Contrast {snail-mail}, {paper-net}, {voice-net}.  See
   {network address}.  2. vt. To send electronic mail.

   Oddly enough, the word `emailed’ is actually listed in the OED; it
   means “embossed (with a raised pattern) or arranged in a net work”.
   A use from 1480 is given. The word is derived from French
   `emmailleure’, network.

emoticon: /ee-moh’ti-kon/ n. An ASCII glyph used to indicate an
   emotional state in email or news.  Hundreds have been proposed, but
   only a few are in common use.  These include:

          `smiley face’ (for humor, laughter, friendliness,
          occasionally sarcasm)

          `frowney face’ (for sadness, anger, or upset)

          `half-smiley’ ({ha ha only serious});
          also known as `semi-smiley’ or `winkey face’.

          `wry face’

   (These may become more comprehensible if you tilt your head
   sideways, to the left.)

   The first 2 listed are by far the most frequently encountered.
   Hyphenless forms of them are common on CompuServe, GEnie, and BIX;
   see also {bixie}.  On {USENET}, `smiley’ is often used as a
   generic term synonymous with {emoticon}, as well as specifically
   for the happy-face emoticon.

   It appears that the emoticon was invented by one Scott Fahlman on
   the CMU {bboard} systems around 1980.  He later wrote: “I wish I
   had saved the original post, or at least recorded the date for
   posterity, but I had no idea that I was starting something that
   would soon pollute all the world’s communication channels.”  [GLS
   confirms that he remembers this original posting].

   Note for the {newbie}: Overuse of the smiley is a mark of
   loserhood!  More than one per paragraph is a fairly sure sign that
   you’ve gone over the line.

empire: n. Any of a family of military simulations derived from a
   game written by Peter Langston many years ago.  There are five or six
   multi-player variants of varying degrees of sophistication, and one
   single-player version implemented for both UNIX and VMS; the latter is
   even available as MS-DOS freeware.  All are notoriously addictive.

engine: n. 1. A piece of hardware that encapsulates some function
   but can’t be used without some kind of {front end}.  Today we
   have, especially, `print engine’: the guts of a laser printer.
   2. An analogous piece of software; notionally, one that does a lot
   of noisy crunching, such as a `database engine’.

   The hackish senses of `engine’ are actually close to its original,
   pre-Industrial-Revolution sense of a skill, clever device, or
   instrument (the word is cognate to `ingenuity’).  This sense had
   not been completely eclipsed by the modern connotation of
   power-transducing machinery in Charles Babbage’s time, which
   explains why he named the stored-program computer that
   he designed in 1844 the `Analytical Engine’.

English: 1. n.,obs. The source code for a program, which may be in
   any language, as opposed to the linkable or executable binary
   produced from it by a compiler.  The idea behind the term is that
   to a real hacker, a program written in his favorite programming
   language is at least as readable as English.  Usage: used mostly by
   old-time hackers, though recognizable in context.  2. The official
   name of the database language used by the Pick Operating System,
   actually a sort of crufty interpreted BASIC with delusions of
   grandeur.  The name permits {marketroid}s to say “Yes, and you
   can program our computers in English!” to ignorant {suit}s
   without quite running afoul of the truth-in-advertising laws.

enhancement: n. {Marketroid}-speak for a bug {fix}.  This abuse
   of language is a popular and time-tested way to turn incompetence
   into increased revenue.  A hacker being ironic would instead call
   the fix a {feature} — or perhaps save some effort by declaring
   the bug itself to be a feature.

ENQ: /enkw/ or /enk/ [from the ASCII mnemonic ENQuire for
   0000101] An on-line convention for querying someone’s availability.
   After opening a {talk mode} connection to someone apparently in
   heavy hack mode, one might type `SYN SYN ENQ?’ (the SYNs
   representing notional synchronization bytes), and expect a return
   of {ACK} or {NAK} depending on whether or not the person felt
   interruptible.  Compare {ping}, {finger}, and the usage of
   `FOO?’ listed under {talk mode}.

EOF: /E-O-F/ [acronym, `End Of File’] n. 1. [techspeak] Refers
   esp. to whatever {out-of-band} value is returned by
   C’s sequential character-input functions (and their equivalents in
   other environments) when end of file has been reached.  This value
   is -1 under C libraries postdating V6 UNIX, but was
   originally 0.  2. Used by extension in non-computer contexts when a
   human is doing something that can be modeled as a sequential read
   and can’t go further.  “Yeah, I looked for a list of 360 mnemonics
   to post as a joke, but I hit EOF pretty fast; all the library had
   was a {JCL} manual.”  See also {EOL}.

EOL: /E-O-L/ [End Of Line] n. Syn. for {newline}, derived
   perhaps from the original CDC6600 Pascal.  Now rare, but widely
   recognized and occasionally used for brevity.  Used in the
   example entry under {BNF}.  See also {EOF}.

EOU: /E-O-U/ n. The mnemonic of a mythical ASCII control
   character (End Of User) that could make an ASR-33 Teletype explode
   on receipt.  This parodied the numerous obscure delimiter and
   control characters left in ASCII from the days when it was
   associated more with wire-service teletypes than computers (e.g.,
   FS, GS, RS, US, EM, SUB, ETX, and esp. EOT).  It is worth
   remembering that ASR-33s were big, noisy mechanical beasts with a
   lot of clattering parts; the notion that one might explode was
   nowhere near as ridiculous as it might seem to someone sitting in
   front of a {tube} or flatscreen today.

epoch: [UNIX: prob. from astronomical timekeeping] n. The time and
   date corresponding to 0 in an operating system’s clock and
   timestamp values.  Under most UNIX versions the epoch is 00:00:00
   GMT, January 1, 1970.  System time is measured in seconds or
   {tick}s past the epoch.  Weird problems may ensue when the clock
   wraps around (see {wrap around}), which is not necessarily a
   rare event; on systems counting 10 ticks per second, a signed
   32-bit count of ticks is good only for 6.8 years.  The
   1-tick-per-second clock of UNIX is good only until January 18,
   2038, assuming word lengths don’t increase by then.  See also
   {wall time}.

epsilon: [see {delta}] 1. n. A small quantity of anything.  “The
   cost is epsilon.”  2. adj. Very small, negligible; less than
   {marginal}.  “We can get this feature for epsilon cost.”
   3. `within epsilon of’: close enough to be indistinguishable for
   all practical purposes.  This is even closer than being `within
   delta of’.  “That’s not what I asked for, but it’s within
   epsilon of what I wanted.”  Alternatively, it may mean not close
   enough, but very little is required to get it there: “My program
   is within epsilon of working.”

epsilon squared: n. A quantity even smaller than {epsilon}, as
   small in comparison to epsilon as epsilon is to something normal;
   completely negligible.  If you buy a supercomputer for a million
   dollars, the cost of the thousand-dollar terminal to go with it is
   {epsilon}, and the cost of the ten-dollar cable to connect them
   is epsilon squared.  Compare {lost in the underflow}, {lost
   in the noise}.

era, the: Syn. {epoch}.  Webster’s Unabridged makes these words
   almost synonymous, but `era’ usually connotes a span of time rather
   than a point in time.  The {epoch} usage is recommended.

Eric Conspiracy: n. A shadowy group of mustachioed hackers named
   Eric first pinpointed as a sinister conspiracy by an infamous
   talk.bizarre posting ca. 1986; this was doubtless influenced by the
   numerous `Eric’ jokes in the Monty Python oeuvre.  There do indeed
   seem to be considerably more mustachioed Erics in hackerdom than
   the frequency of these three traits can account for unless they are
   correlated in some arcane way.  Well-known examples include Eric
   Allman (he of the `Allman style’ described under {indent style})
   and Erik Fair (co-author of NNTP); your editor has heard from about
   fourteen others by email, and the organization line `Eric
   Conspiracy Secret Laboratories’ now emanates regularly from more
   than one site.

Eris: /e’ris/ n. The Greek goddess of Chaos, Discord, Confusion,
   and Things You Know Not Of; her name was latinized to Discordia and
   she was worshiped by that name in Rome.  Not a very friendly deity
   in the Classical original, she was reinvented as a more benign
   personification of creative anarchy starting in 1959 by the
   adherents of {Discordianism} and has since been a semi-serious
   subject of veneration in several `fringe’ cultures, including
   hackerdom.  See {Discordianism}, {Church of the SubGenius}.

erotics: /ee-ro’tiks/ n. [Helsinki University of Technology,
   Finland] n. English-language university slang for electronics.
   Often used by hackers in Helsinki, maybe because good electronics
   excites them and makes them warm.

essentials: n. Things necessary to maintain a productive and secure
   hacking environment.  “A jug of wine, a loaf of bread, a
   20-megahertz 80386 box with 8 meg of core and a 300-megabyte disk
   supporting full UNIX with source and X windows and EMACS and UUCP
   via a ‘blazer to a friendly Internet site, and thou.”

evil: adj. As used by hackers, implies that some system, program,
   person, or institution is sufficiently maldesigned as to be not
   worth the bother of dealing with.  Unlike the adjectives in the
   {cretinous}/{losing}/{brain-damaged} series, `evil’ does not
   imply incompetence or bad design, but rather a set of goals or
   design criteria fatally incompatible with the speaker’s.  This is
   more an esthetic and engineering judgment than a moral one in the
   mainstream sense.  “We thought about adding a {Blue Glue}
   interface but decided it was too evil to deal with.”  “{TECO}
   is neat, but it can be pretty evil if you’re prone to typos.”
   Often pronounced with the first syllable lengthened, as /eeee’vil/.

exa-: /ek’s*/ [SI] pref. See {{quantifiers}}.

examining the entrails: n. The process of {grovel}ling through a
   core dump or hex image in the attempt to discover the bug that
   brought a program or system down.  Compare {runes},
   {incantation}, {black art}, {desk check}.

EXCH: /eks’ch*/ or /eksch/ vt. To exchange two things, each for the
   other; to swap places.  If you point to two people sitting down and
   say “Exch!”, you are asking them to trade places.  EXCH,
   meaning EXCHange, was originally the name of a PDP-10 instruction
   that exchanged the contents of a register and a memory location.
   Many newer hackers tend to be thinking instead of the PostScript
   exchange operator (which is usually written in lowercase).

excl: /eks’kl/ n. Abbreviation for `exclamation point’.  See
   {bang}, {shriek}, {{ASCII}}.

EXE: /eks’ee/ or /eek’see/ or /E-X-E/ n. An executable
   binary file.  Some operating systems (notably MS-DOS, VMS, and
   TWENEX) use the extension .EXE to mark such files.  This usage is
   also occasionally found among UNIX programmers even though UNIX
   executables don’t have any required suffix.

exec: /eg-zek’/ vt.,n.  1. [UNIX: from `execute’] Synonym for
   {chain}, derives from the `exec(2)’ call.  2. [from
   `executive’] obs. The command interpreter for an {OS} (see
   {shell}); term esp. used around mainframes, and prob. derived from
   UNIVAC’s archaic EXEC 2 and EXEC 8 operating systems.  3. At IBM,
   the equivalent of a shell command file (among VM/CMS users).

   The mainstream `exec’ as an abbreviation for (human) executive is
   *not* used.  To a hacker, an `exec’ is a always a program,
   never a person.

exercise, left as an: [from technical books] Used to complete a
   proof when one doesn’t mind a {handwave}, or to avoid one
   entirely.  The complete phrase is: “The proof (or the rest) is left as
   an exercise for the reader.”  This comment *has* occasionally
   been attached to unsolved research problems by authors possessed of
   either an evil sense of humor or a vast faith in the capabilities
   of their audiences.

eyeball search: n. To look for something in a mass of code or data
   with one’s own native optical sensors, as opposed to using some
   sort of pattern matching software like {grep} or any other
   automated search tool.  Also called a {vgrep}; compare
   {vdiff}, {desk check}.

= F =

fab: /fab/ [from `fabricate’] v. 1. To produce chips from a
   design that may have been created by someone at another company.
   Fabbing chips based on the designs of others is the activity of a
   {silicon foundry}.  To a hacker, `fab’ is practically never short
   for `fabulous’.  2. `fab line’: the production system
   (lithography, diffusion, etching, etc.) for chips at a chip
   manufacturer.  Different `fab lines’ are run with different
   process parameters, die sizes, or technologies, or simply to
   provide more manufacturing volume.

face time: n. Time spent interacting with somebody face-to-face (as
   opposed to via electronic links).  “Oh, yeah, I spent some face
   time with him at the last Usenix.”

factor: n. See {coefficient}.

fall over: [IBM] vi. Yet another synonym for {crash} or {lose}.
   `Fall over hard’ equates to {crash and burn}.

fall through: v. (n. `fallthrough’, var. `fall-through’) 1. To
   exit a loop by exhaustion, i.e., by having fulfilled its exit
   condition rather than via a break or exception condition that exits
   from the middle of it.  This usage appears to be *really* old,
   dating from the 1940s and 1950s.  2. To fail a test that would have
   passed control to a subroutine or some other distant portion of code.
   3. In C, `fall-through’ occurs when the flow of execution in a
   switch statement reaches a `case’ label other than by jumping
   there from the switch header, passing a point where one would
   normally expect to find a `break’.  A trivial example:

     switch (color)
     case GREEN:
     case PINK:
        /* FALL THROUGH */
     case RED:

   The variant spelling `/* FALL THRU */’ is also common.

   The effect of this code is to `do_green()’ when color is
   `GREEN’, `do_red()’ when color is `RED’,
   `do_blue()’ on any other color other than `PINK’, and
   (and this is the important part) `do_pink()’ *and then*
   `do_red()’ when color is `PINK’.  Fall-through is
   {considered harmful} by some, though there are contexts (such as
   the coding of state machines) in which it is natural; it is
   generally considered good practice to include a comment
   highlighting the fall-through where one would normally expect a

fandango on core: [UNIX/C hackers, from the Mexican dance] n.
   In C, a wild pointer that runs out of bounds, causing a {core
   dump}, or corrupts the `malloc(3)’ {arena} in such a way as
   to cause mysterious failures later on, is sometimes said to have
   `done a fandango on core’.  On low-end personal machines without an
   MMU, this can corrupt the OS itself, causing massive lossage.
   Other frenetic dances such as the rhumba, cha-cha, or watusi, may
   be substituted.  See {aliasing bug}, {precedence lossage},
   {smash the stack}, {memory leak}, {overrun screw},

FAQ list: /F-A-Q list/ [USENET] n. A compendium of accumulated
   lore, posted periodically to high-volume newsgroups in an attempt
   to forestall Frequently Asked Questions.  This lexicon itself
   serves as a good example of a collection of one kind of lore,
   although it is far too big for a regular posting.  Examples: “What
   is the proper type of NULL?”  and “What’s that funny name for
   the `#’ character?” are both Frequently Asked Questions.
   Several extant FAQ lists do (or should) make reference to the
   Jargon File (the on-line version of this lexicon).

FAQL: /fa’kl/ n. Syn. {FAQ list}.

farming: [Adelaide University, Australia] n. What the heads of a
   disk drive are said to do when they plow little furrows in the
   magnetic media.  Associated with a {crash}.  Typically used as
   follows: “Oh no, the machine has just crashed; I hope the hard
   drive hasn’t gone {farming} again.”

fascist: adj. 1. Said of a computer system with excessive or
   annoying security barriers, usage limits, or access policies.  The
   implication is that said policies are preventing hackers from
   getting interesting work done.  The variant `fascistic’ seems
   to have been preferred at MIT, poss. by analogy with
   `touristic’ (see {tourist}).  2. In the design of languages
   and other software tools, `the fascist alternative’ is the most
   restrictive and structured way of capturing a particular function;
   the implication is that this may be desirable in order to simplify
   the implementation or provide tighter error checking.  Compare
   {bondage-and-discipline language}, but that term is global rather
   than local.

faulty: adj. Non-functional; buggy.  Same denotation as
   {bletcherous}, {losing}, q.v., but the connotation is much

fd leak: /ef dee leek/ n. A kind of programming bug analogous to a
   {core leak}, in which a program fails to close file descriptors
   (`fd’s) after file operations are completed, and thus eventually
   runs out of them.  See {leak}.

fear and loathing: [from Hunter Thompson] n. A state inspired by the
   prospect of dealing with certain real-world systems and standards
   that are totally {brain-damaged} but ubiquitous — Intel 8086s,
   or {COBOL}, or {{EBCDIC}}, or any {IBM} machine except the
   Rios (a.k.a.  the RS/6000).  “Ack!  They want PCs to be able to
   talk to the AI machine.  Fear and loathing time!”

feature: n. 1. A good property or behavior (as of a program).
   Whether it was intended or not is immaterial.  2. An intended
   property or behavior (as of a program).  Whether it is good or not
   is immaterial (but if bad, it is also a {misfeature}).  3. A
   surprising property or behavior; in particular, one that is
   purposely inconsistent because it works better that way — such an
   inconsistency is therefore a {feature} and not a {bug}.  This
   kind of feature is sometimes called a {miswart}; see that entry
   for a classic example.  4. A property or behavior that is
   gratuitous or unnecessary, though perhaps also impressive or cute.
   For example, one feature of Common LISP’s `format’ function is
   the ability to print numbers in two different Roman-numeral formats
   (see {bells, w

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s