:plonk: [USENET: possibly influenced by British slang `plonk' for
   cheap booze, or `plonker' for someone behaving stupidly] The sound
   a {newbie} makes as he falls to the bottom of a {kill file}.
   Used almost exclusively in the {newsgroup} talk.bizarre,
   this term (usually written "*plonk*") is a form of public
   ridicule.

:plugh: /ploogh/ [from the {ADVENT} game] v. See {xyzzy}.

:plumbing: [UNIX] n. Term used for {shell} code, so called
   because of the prevalence of `pipelines' that feed the output of
   one program to the input of another.  Under UNIX, user utilities
   can often be implemented or at least prototyped by a suitable
   collection of pipelines and temp-file grinding encapsulated in a
   shell script; this is much less effort than writing C every time,
   and the capability is considered one of UNIX's major winning
   features.  A few other OSs such as IBM's VM/CMS support similar
   facilities.  Esp. used in the construction `hairy plumbing'
   (see {hairy}).  "You can kluge together a basic spell-checker
   out of `sort(1)', `comm(1)', and `tr(1)' with a
   little plumbing."  See also {tee}.

:PM: /P-M/ 1. v. (from `preventive maintenance') To bring
   down a machine for inspection or test purposes; see {scratch
   monkey}.  2. n. Abbrev. for `Presentation Manager', an
   {elephantine} OS/2 graphical user interface.  See also
   {provocative maintenance}.

:pnambic: /p*-nam'bik/ [Acronym from the scene in the film
   version of `The Wizard of Oz' in which the true nature of the
   wizard is first discovered: "Pay no attention to the man behind
   the curtain."]  1. A stage of development of a process or function
   that, owing to incomplete implementation or to the complexity of
   the system, requires human interaction to simulate or replace some
   or all of the actions, inputs, or outputs of the process or
   function.  2. Of or pertaining to a process or function whose
   apparent operations are wholly or partially falsified.
   3. Requiring {prestidigitization}.

   The ultimate pnambic product was "Dan Bricklin's Demo", a program
   which supported flashy user-interface design prototyping.  There is
   a related maxim among hackers: "Any sufficiently advanced
   technology is indistinguishable from a rigged demo."  See
   {magic}, sense 1, for illumination of this point.

:pod: [allegedly from abbreviation POD for `Prince Of Darkness'] n. A
   Diablo 630 (or, latterly, any letter-quality impact printer).  From
   the DEC-10 PODTYPE program used to feed formatted text to it.

:point-and-drool interface: n. Parody of the techspeak term
   `point-and-shoot interface', describing a windows, icons, and
   mice-based interface such as is found on the Macintosh.  The
   implication, of course, is that such an interface is only suitable
   for idiots.  See {for the rest of us}, {WIMP environment},
   {Macintrash}, {drool-proof paper}.  Also `point-and-grunt
   interface'.

:poke: n.,vt. See {peek}.

:poll: v.,n. 1. [techspeak] The action of checking the status of an
   input line, sensor, or memory location to see if a particular
   external event has been registered.  2. To repeatedly call or check
   with someone: "I keep polling him, but he's not answering his
   phone; he must be swapped out."  3. To ask.  "Lunch?  I poll for
   a takeout order daily."

:polygon pusher: n. A chip designer who spends most of his or her
   time at the physical layout level (which requires drawing
   *lots* of multi-colored polygons).  Also `rectangle
   slinger'.

:POM: /P-O-M/ n. Common abbreviation for {phase of the moon}.  Usage:
   usually in the phrase `POM-dependent', which means {flaky}.

:pop: [from the operation that removes the top of a stack, and the
   fact that procedure return addresses are saved on the stack] (also
   capitalized `POP' /pop/) 1. vt. To remove something from a
   {stack} or {pdl}.  If a person says he/she has popped
   something from his stack, that means he/she has finally finished
   working on it and can now remove it from the list of things hanging
   overhead.  2. When a discussion gets to too deep a level of detail
   so that the main point of the discussion is being lost, someone
   will shout "Pop!", meaning "Get back up to a higher level!"
   The shout is frequently accompanied by an upthrust arm with a
   finger pointing to the ceiling.

:POPJ: /pop'J/ [from a {PDP-10} return-from-subroutine
   instruction] n.,v. To return from a digression.  By verb doubling,
   "Popj, popj" means roughly "Now let's see, where were we?"
   See {RTI}.

:post: v. To send a message to a {mailing list} or {newsgroup}.
   Distinguished in context from `mail'; one might ask, for
   example: "Are you going to post the patch or mail it to known
   users?"

:postcardware: n. {Shareware} that borders on {freeware}, in
   that the author requests only that satisfied users send a postcard
   of their home town or something.  (This practice, silly as it might
   seem, serves to remind users that they are otherwise getting
   something for nothing, and may also be psychologically related to
   real estate `sales' in which $1 changes hands just to keep the
   transaction from being a gift.)

:posting: n. Noun corresp. to v. {post} (but note that
   {post} can be nouned).  Distinguished from a `letter' or ordinary
   {email} message by the fact that it is broadcast rather than
   point-to-point.  It is not clear whether messages sent to a small
   mailing list are postings or email; perhaps the best dividing line
   is that if you don't know the names of all the potential
   recipients, it is a posting.

:postmaster: n. The email contact and maintenance person at a site
   connected to the Internet or UUCPNET.  Often, but not always, the
   same as the {admin}.  The Internet standard for electronic mail
   ({RFC}-822) requires each machine to have a `postmaster' address;
   usually it is aliased to this person.

:PostScript:: n. A Page Description Language ({PDL}), based on
   work originally done by John Gaffney at Evans and Sutherland in
   1976, evolving through `JaM' (`John and Martin', Martin Newell) at
   {XEROX PARC}, and finally implemented in its current form by
   John Warnock et al. after he and Chuck Geschke founded Adobe
   Systems Incorporated in 1982.  PostScript gets its leverage by
   using a full programming language, rather than a series of
   low-level escape sequences, to describe an image to be printed on a
   laser printer or other output device (in this it parallels
   {EMACS}, which exploited a similar insight about editing
   tasks).  It is also noteworthy for implementing on-the fly
   rasterization, from Bezier curve descriptions, of high-quality
   fonts at low (e.g.  300 dpi) resolution (it was formerly believed
   that hand-tuned bitmap fonts were required for this task).  Hackers
   consider PostScript to be among the most elegant hacks of all time,
   and the combination of technical merits and widespread availability
   has made PostScript the language of choice for graphical
   output.

:pound on: vt.  Syn. {bang on}.

:power cycle: vt. (also, `cycle power' or just `cycle') To
   power off a machine and then power it on immediately, with the
   intention of clearing some kind of {hung} or {gronk}ed state.
   Syn. {120 reset}; see also {Big Red Switch}.  Compare
   {Vulcan nerve pinch}, {bounce}, and {boot}, and see the
   AI Koan in "{A Selection of AI Koans}" (in
   {Appendix A}) about Tom Knight and the novice.

:power hit: n. A spike or drop-out in the electricity supplying
   your machine; a power {glitch}.  These can cause crashes and
   even permanent damage to your machine(s).

:PPN: /P-P-N/, /pip'n/ [from `Project-Programmer Number'] n. A
   user-ID under {{TOPS-10}} and its various mutant progeny at SAIL,
   BBN, CompuServe, and elsewhere.  Old-time hackers from the PDP-10
   era sometimes use this to refer to user IDs on other systems as
   well.

:precedence lossage: /pre's*-dens los'*j/ [C programmers] n.
   Coding error in an expression due to unexpected grouping of
   arithmetic or logical operators by the compiler.  Used esp. of
   certain common coding errors in C due to the nonintuitively low
   precedence levels of `&', `|', `^', `<<',
   and `>>' (for this reason, experienced C programmers
   deliberately forget the language's {baroque} precedence
   hierarchy and parenthesize defensively).  Can always be avoided by
   suitable use of parentheses.  {LISP} fans enjoy pointing out
   that this can't happen in *their* favorite language, which
   eschews precedence entirely, requiring one to use explicit
   parentheses everywhere.  See {aliasing bug}, {memory leak},
   {memory smash}, {smash the stack}, {fandango on core},
   {overrun screw}.

:prepend: /pree`pend'/ [by analogy with `append'] vt. To
   prefix.  As with `append' (but not `prefix' or `suffix' as a
   verb), the direct object is always the thing being added and not
   the original word (or character string, or whatever).  "If you
   prepend a semicolon to the line, the translation routine will pass
   it through unaltered."

:prestidigitization: /pres`t*-di`j*-ti:-zay'sh*n/ n. 1. The act
   of putting something into digital notation via sleight of hand.
   2. Data entry through legerdemain.

:pretty pictures: n. [scientific computation] The next step up from
   {numbers}.  Interesting graphical output from a program that may
   not have any sensible relationship to the system the program is
   intended to model.  Good for showing to {management}.

:prettyprint: /prit'ee-print/ (alt. `pretty-print') v. 1. To
   generate `pretty' human-readable output from a {hairy} internal
   representation; esp. used for the process of {grind}ing (sense 2)
   LISP code.  2. To format in some particularly slick and
   nontrivial way.

:pretzel key: [Mac users] n. See {feature key}.

:prime time: [from TV programming] n. Normal high-usage hours on a
   timesharing system; the day shift.  Avoidance of prime time is a
   major reason for {night mode} hacking.

:printing discussion: [PARC] n. A protracted, low-level,
   time-consuming, generally pointless discussion of something only
   peripherally interesting to all.

:priority interrupt: [from the hardware term] n. Describes any
   stimulus compelling enough to yank one right out of {hack mode}.
   Classically used to describe being dragged away by an {SO} for
   immediate sex, but may also refer to more mundane interruptions
   such as a fire alarm going off in the near vicinity.  Also called
   an {NMI} (non-maskable interrupt), especially in PC-land.

:profile: n. 1. A control file for a program, esp. a text file
   automatically read from each user's home directory and intended to
   be easily modified by the user in order to customize the program's
   behavior.  Used to avoid {hardcoded} choices.  2. [techspeak] A
   report on the amounts of time spent in each routine of a program,
   used to find and {tune} away the {hot spot}s in it.  This sense
   is often verbed.  Some profiling modes report units other than time
   (such as call counts) and/or report at granularities other than
   per-routine, but the idea is similar.

:proglet: /prog'let/ [UK] n. A short extempore program written
   to meet an immediate, transient need.  Often written in BASIC,
   rarely more than a dozen lines long, and contains no subroutines.
   The largest amount of code that can be written off the top of one's
   head, that does not need any editing, and that runs correctly the
   first time (this amount varies significantly according to the
   language one is using).  Compare {toy program}, {noddy},
   {one-liner wars}.

:program: n. 1. A magic spell cast over a computer allowing it to
   turn one's input into error messages.  2. An exercise in
   experimental epistemology.  3. A form of art, ostensibly intended
   for the instruction of computers, which is nevertheless almost
   inevitably a failure if other programmers can't understand it.

:Programmer's Cheer: "Shift to the left!  Shift to the right!  Pop
   up, push down!  Byte!  Byte!  Byte!"  A joke so old it has hair on
   it.

:programming: n. 1. The art of debugging a blank sheet of paper (or,
   in these days of on-line editing, the art of debugging an empty
   file).  2. n. A pastime similar to banging one's head against a
   wall, but with fewer opportunities for reward.  3. n. The most fun
   you can have with your clothes on (although clothes are not
   mandatory).

:programming fluid: n. 1. Coffee.  2. Cola.  3. Any caffeinacious
   stimulant.  Many hackers consider these essential for those
   all-night hacking runs.  See {unleaded}, {wirewater}.

:propeller head: n. Used by hackers, this is syn. with {computer
   geek}.  Non-hackers sometimes use it to describe all techies.
   Prob. derives from SF fandom's tradition (originally invented by
   old-time fan Ray Faraday Nelson) of propeller beanies as fannish
   insignia (though nobody actually wears them except as a joke).

:propeller key: [Mac users] n. See {feature key}.

:proprietary: adj. 1. In {marketroid}-speak, superior; implies a
   product imbued with exclusive magic by the unmatched brilliance of
   the company's hardware or software designers.  2. In the language
   of hackers and users, inferior; implies a product not conforming to
   open-systems standards, and thus one that puts the customer at the
   mercy of a vendor able to gouge freely on service and upgrade
   charges after the initial sale has locked the customer in (that's
   assuming it wasn't too expensive in the first place).

:protocol: n. As used by hackers, this never refers to niceties
   about the proper form for addressing letters to the Papal Nuncio or
   the order in which one should use the forks in a Russian-style
   place setting; hackers don't care about such things.  It is used
   instead to describe any set of rules that allow different machines
   or pieces of software to coordinate with each other without
   ambiguity.  So, for example, it does include niceties about the
   proper form for addressing packets on a network or the order in
   which one should use the forks in the Dining Philosophers Problem.
   It implies that there is some common message format and an accepted
   set of primitives or commands that all parties involved understand,
   and that transactions among them follow predictable logical
   sequences.  See also {handshaking}, {do protocol}.

:provocative maintenance: [common ironic mutation of `preventive
   maintenance'] n. Actions performed upon a machine at regularly
   scheduled intervals to ensure that the system remains in a usable
   state.  So called because it is all too often performed by a
   {field servoid} who doesn't know what he is doing; this results
   in the machine's remaining in an *un*usable state for an
   indeterminate amount of time.  See also {scratch monkey}.

:prowler: [UNIX] n. A {daemon} that is run periodically (typically
   once a week) to seek out and erase {core} files, truncate
   administrative logfiles, nuke `lost+found' directories, and
   otherwise clean up the {cruft} that tends to pile up in the
   corners of a file system.  See also {GFR}, {reaper},
   {skulker}.

:pseudo: /soo'doh/ [USENET: truncation of `pseudonym'] n. 1. An
   electronic-mail or {USENET} persona adopted by a human for
   amusement value or as a means of avoiding negative repercussions of
   one's net.behavior; a `nom de USENET', often associated with
   forged postings designed to conceal message origins.  Perhaps the
   best-known and funniest hoax of this type is {BIFF}.
   2. Notionally, a {flamage}-generating AI program simulating a
   USENET user.  Many flamers have been accused of actually being such
   entities, despite the fact that no AI program of the required
   sophistication yet exists.  However, in 1989 there was a famous
   series of forged postings that used a phrase-frequency-based
   travesty generator to simulate the styles of several well-known
   flamers; it was based on large samples of their back postings
   (compare {Dissociated Press}).  A significant number of people
   were fooled by the forgeries, and the debate over their
   authenticity was settled only when the perpetrator came forward to
   publicly admit the hoax.

:pseudoprime: n. A backgammon prime (six consecutive occupied
   points) with one point missing.  This term is an esoteric pun
   derived from a mathematical method that, rather than determining
   precisely whether a number is prime (has no divisors), uses a
   statistical technique to decide whether the number is `probably'
   prime.  A number that passes this test is called a pseudoprime.
   The hacker backgammon usage stems from the idea that a pseudoprime
   is almost as good as a prime: it does the job of a prime until
   proven otherwise, and that probably won't happen.

:pseudosuit: /soo'doh-s[y]oot`/ n. A {suit} wannabee; a hacker
   who has decided that he wants to be in management or administration
   and begins wearing ties, sport coats, and (shudder!) suits
   voluntarily.  It's his funeral.  See also {lobotomy}.

:psychedelicware: /si:`k*-del'-ik-weir/ [UK] n. Syn.
   {display hack}.  See also {smoking clover}.

:psyton: /si:'ton/ [TMRC] n. The elementary particle carrying the
   sinister force.  The probability of a process losing is
   proportional to the number of psytons falling on it.  Psytons are
   generated by observers, which is why demos are more likely to fail
   when lots of people are watching.  [This term appears to have been
   largely superseded by {bogon}; see also {quantum bogodynamics}.
   --- ESR]

:pubic directory: [NYU] (also `pube directory' /pyoob'
   d*-rek't*-ree/) n. The `pub' (public) directory on a machine that
   allows {FTP} access.  So called because it is the default
   location for {SEX} (sense 1).  "I'll have the source in the
   pube directory by Friday."

:puff: vt. To decompress data that has been crunched by Huffman
   coding.  At least one widely distributed Huffman decoder program
   was actually *named* `PUFF', but these days it is usually
   packaged with the encoder.  Oppose {huff}.

:punched card:: alt. `punch card' [techspeak] n.obs. The
   signature medium of computing's {Stone Age}, now obsolescent
   outside of some IBM shops.  The punched card actually predated
   computers considerably, originating in 1801 as a control device for
   mechanical looms.  The version patented by Hollerith and used with
   mechanical tabulating machines in the 1890 U.S. Census was a piece
   of cardboard about 90 mm by 215 mm.  There is a widespread myth
   that it was designed to fit in the currency trays used for that
   era's larger dollar bills, but recent investigations have falsified
   this.

   IBM (which originated as a tabulating-machine manufacturer) married
   the punched card to computers, encoding binary information as
   patterns of small rectangular holes; one character per column,
   80 columns per card.  Other coding schemes, sizes of card, and
   hole shapes were tried at various times.

   The 80-column width of most character terminals is a legacy of the
   IBM punched card; so is the size of the quick-reference cards
   distributed with many varieties of computers even today.  See
   {chad}, {chad box}, {eighty-column mind}, {green card},
   {dusty deck}, {lace card}, {card walloper}.

:punt: [from the punch line of an old joke referring to American
   football: "Drop back 15 yards and punt!"] v. 1. To give up,
   typically without any intention of retrying.  "Let's punt the
   movie tonight."  "I was going to hack all night to get this
   feature in, but I decided to punt" may mean that you've decided
   not to stay up all night, and may also mean you're not ever even
   going to put in the feature.  2. More specifically, to give up on
   figuring out what the {Right Thing} is and resort to an
   inefficient hack.  3. A design decision to defer solving a
   problem, typically because one cannot define what is desirable
   sufficiently well to frame an algorithmic solution.  "No way to
   know what the right form to dump the graph in is --- we'll punt
   that for now."  4. To hand a tricky implementation problem off
   to some other section of the design.  "It's too hard to get the
   compiler to do that; let's punt to the runtime system."

:Purple Book: n. 1. The `System V Interface Definition'.  The
   covers of the first editions were an amazingly nauseating shade of
   off-lavender.  2. Syn. {Wizard Book}.  See also {{book
   titles}}.

:purple wire: [IBM] n. Wire installed by Field Engineers to work
   around problems discovered during testing or debugging.  These are
   called `purple wires' even when (as is frequently the case) their
   actual physical color is yellow....  Compare {blue wire},
   {yellow wire}, and {red wire}.

:push: [from the operation that puts the current information on a
   stack, and the fact that procedure return addresses are saved on a
   stack] Also PUSH /push/ or PUSHJ /push'J/ (the latter based on
   the PDP-10 procedure call instruction).  1. To put something onto a
   {stack} or {pdl}.  If one says that something has been pushed
   onto one's stack, it means that the Damoclean list of things
   hanging over ones's head has grown longer and heavier yet.  This
   may also imply that one will deal with it *before* other
   pending items; otherwise one might say that the thing was `added
   to my queue'.  2. vi. To enter upon a digression, to save the
   current discussion for later.  Antonym of {pop}; see also
   {stack}, {pdl}.

= Q =
=====

:quad: n. 1. Two bits; syn. for {quarter}, {crumb},
   {tayste}.  2. A four-pack of anything (compare {hex}, sense 2).
   3. The rectangle or box glyph used in the APL language for various
   arcane purposes mostly related to I/O.  Former Ivy-Leaguers and
   Oxford types are said to associate it with nostalgic memories of
   dear old University.

:quadruple bucky: n., obs. 1. On an MIT {space-cadet keyboard},
   use of all four of the shifting keys (control, meta, hyper, and
   super) while typing a character key.  2. On a Stanford or MIT
   keyboard in {raw mode}, use of four shift keys while typing a
   fifth character, where the four shift keys are the control and meta
   keys on *both* sides of the keyboard.  This was very difficult
   to do!  One accepted technique was to press the left-control and
   left-meta keys with your left hand, the right-control and
   right-meta keys with your right hand, and the fifth key with your
   nose.

   Quadruple-bucky combinations were very seldom used in practice,
   because when one invented a new command one usually assigned it to
   some character that was easier to type.  If you want to imply that
   a program has ridiculously many commands or features, you can say
   something like: "Oh, the command that makes it spin the tapes
   while whistling Beethoven's Fifth Symphony is
   quadruple-bucky-cokebottle."  See {double bucky}, {bucky
   bits}, {cokebottle}.

:quantifiers:: In techspeak and jargon, the standard metric
   prefixes used in the SI (Syst`eme International) conventions for
   scientific measurement have dual uses.  With units of time or
   things that come in powers of 10, such as money, they retain their
   usual meanings of multiplication by powers of 1000 = 10^3.
   But when used with bytes or other things that naturally come in
   powers of 2, they usually denote multiplication by powers of
   1024 = 2^(10).

   Here are the SI magnifying prefixes, along with the corresponding
   binary interpretations in common use:

     prefix  decimal  binary
     kilo-   1000^1   1024^1 = 2^10 = 1,024 
     mega-   1000^2   1024^2 = 2^20 = 1,048,576 
     giga-   1000^3   1024^3 = 2^30 = 1,073,741,824 
     tera-   1000^4   1024^4 = 2^40 = 1,099,511,627,776 
     peta-   1000^5   1024^5 = 2^50 = 1,125,899,906,842,624 
     exa-    1000^6   1024^6 = 2^60 = 1,152,921,504,606,846,976 
     zetta-  1000^7   1024^7 = 2^70 = 1,180,591,620,717,411,303,424 
     yotta-  1000^8   1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176 

   Here are the SI fractional prefixes:

     *prefix  decimal     jargon usage*
     milli-  1000^-1     (seldom used in jargon)
     micro-  1000^-2     small or human-scale (see {micro-})
     nano-   1000^-3     even smaller (see {nano-})
     pico-   1000^-4     even smaller yet (see {pico-})
     femto-  1000^-5     (not used in jargon---yet)
     atto-   1000^-6     (not used in jargon---yet)
     zepto-  1000^-7     (not used in jargon---yet)
     yocto-  1000^-8     (not used in jargon---yet)

   The prefixes zetta-, yotta-, zepto-, and yocto- have been included
   in these tables purely for completeness and giggle value; they were
   adopted in 1990 by the `19th Conference Generale des Poids et
   Mesures'.  The binary peta- and exa- loadings, though well
   established, are not in jargon use either --- yet.  The prefix
   milli-, denoting multiplication by 1000^(-1), has always
   been rare in jargon (there is, however, a standard joke about the
   `millihelen' --- notionally, the amount of beauty required to
   launch one ship).  See the entries on {micro-}, {pico-}, and
   {nano-} for more information on connotative jargon use of these
   terms.  `Femto' and `atto' (which, interestingly, derive not
   from Greek but from Danish) have not yet acquired jargon loadings,
   though it is easy to predict what those will be once computing
   technology enters the required realms of magnitude (however, see
   {attoparsec}).

   There are, of course, some standard unit prefixes for powers of
   10.  In the following table, the `prefix' column is the
   international standard suffix for the appropriate power of ten; the
   `binary' column lists jargon abbreviations and words for the
   corresponding power of 2.  The B-suffixed forms are commonly used
   for byte quantities; the words `meg' and `gig' are nouns that may
   (but do not always) pluralize with `s'.

     prefix   decimal   binary       pronunciation
     kilo-       k      K, KB,       /kay/
     mega-       M      M, MB, meg   /meg/
     giga-       G      G, GB, gig   /gig/,/jig/

   Confusingly, hackers often use K or M as though they were suffix or
   numeric multipliers rather than a prefix; thus "2K dollars", "2M
   of disk space".  This is also true (though less commonly) of G.

   Note that the formal SI metric prefix for 1000 is `k'; some use
   this strictly, reserving `K' for multiplication by 1024 (KB is
   `kilobytes').

   K, M, and G used alone refer to quantities of bytes; thus, 64G is
   64 gigabytes and `a K' is a kilobyte (compare mainstream use of
   `a G' as short for `a grand', that is, $1000).  Whether one
   pronounces `gig' with hard or soft `g' depends on what one thinks
   the proper pronunciation of `giga-' is.

   Confusing 1000 and 1024 (or other powers of 2 and 10 close in
   magnitude) --- for example, describing a memory in units of
   500K or 524K instead of 512K --- is a sure sign of the
   {marketroid}.

   One example of this: it is common to refer to the capacity of the
   3.5" {microfloppies} now ubiquitous in the PC world as `1.44 MB'
   In fact, this is a completely {bogus} number.  The correct size
   is 1440 KB, that is, 1440 * 1024 = 1474560 bytes.  So the `mega'
   in `1.44 MB' is compounded of two `kilos', one of which is 1024
   and the other of which is 1000.  The correct number of megabytes would
   of course be 1440 / 1024 = 1.40625.  Alas, this fine point is probably
   lost on the world forever.

   [1993 update: hacker Morgan Burke has proposed, to general
   approval on USENET, the following additional prefixes:

groucho
     10^-30
harpo
     10^-27
harpi
     10^27
grouchi
     10^30

   We observe that this would leave the prefixes zeppo-, gummo-, and
   chico- available for future expansion.  Sadly, there is little
   immediate prospect that Mr. Burke's eminently sensible proposal
   will be ratified.]

:quantum bogodynamics: /kwon'tm boh`goh-di:-nam'iks/ n. A theory
   that characterizes the universe in terms of bogon sources (such as
   politicians, used-car salesmen, TV evangelists, and {suit}s in
   general), bogon sinks (such as taxpayers and computers), and
   bogosity potential fields.  Bogon absorption, of course, causes
   human beings to behave mindlessly and machines to fail (and may
   also cause both to emit secondary bogons); however, the precise
   mechanics of the bogon-computron interaction are not yet understood
   and remain to be elucidated.  Quantum bogodynamics is most often
   invoked to explain the sharp increase in hardware and software
   failures in the presence of suits; the latter emit bogons, which
   the former absorb.  See {bogon}, {computron}, {suit},
   {psyton}.

:quarter: n. Two bits.  This in turn comes from the `pieces of
   eight' famed in pirate movies --- Spanish silver crowns that could
   be broken into eight pie-slice-shaped `bits' to make change.
   Early in American history the Spanish coin was considered equal to
   a dollar, so each of these `bits' was considered worth
   12.5 cents.  Syn.  {tayste}, {crumb}, {quad}.  Usage:
   rare.  See also {nickle}, {nybble}, {{byte}}, {dynner}.

:ques: /kwes/ 1. n. The question mark character (`?', ASCII
   0111111).  2. interj.  What?  Also frequently verb-doubled as
   "Ques ques?"  See {wall}.

:quick-and-dirty: adj. Describes a {crock} put together under time
   or user pressure.  Used esp. when you want to convey that you think
   the fast way might lead to trouble further down the road.  "I can
   have a quick-and-dirty fix in place tonight, but I'll have to
   rewrite the whole module to solve the underlying design problem."
   See also {kluge}.

:quine: [from the name of the logician Willard V. Quine, via
   Douglas Hofstadter] n. A program that generates a copy of its own
   source text as its complete output.  Devising the shortest possible
   quine in some given programming language is a common hackish
   amusement.  Here is one classic quine:

     ((lambda (x)
       (list x (list (quote quote) x)))
      (quote
         (lambda (x)
           (list x (list (quote quote) x)))))

   This one works in LISP or Scheme.  It's relatively easy to write
   quines in other languages such as Postscript which readily handle
   programs as data; much harder (and thus more challenging!) in
   languages like C which do not.  Here is a classic C quine for ASCII
   machines:

     char*f="char*f=%c%s%c;main()
     {printf(f,34,f,34,10);}%c";
     main(){printf(f,34,f,34,10);}

   For excruciatingly exact quinishness, remove the interior line
   breaks.  Some infamous {Obfuscated C Contest} entries have been
   quines that reproduced in exotic ways.

:quote chapter and verse: [by analogy with the mainstream phrase]
   v. To cite a relevant excerpt from an appropriate {bible}.  "I
   don't care if `rn' gets it wrong; `Followup-To: poster' is
   explicitly permitted by {RFC}-1036.  I'll quote chapter and verse if
   you don't believe me."

:quotient: n. See {coefficient of X}.

:quux: /kwuhks/ [Mythically, from the Latin semi-deponent verb
   quuxo, quuxare, quuxandum iri; noun form variously `quux' (plural
   `quuces', anglicized to `quuxes') and `quuxu' (genitive
   plural is `quuxuum', for four u-letters out of seven in all,
   using up all the `u' letters in Scrabble).]  1. Originally, a
   {metasyntactic variable} like {foo} and {foobar}.
   Invented by Guy Steele for precisely this purpose when he was young
   and naive and not yet interacting with the real computing
   community.  Many people invent such words; this one seems simply to
   have been lucky enough to have spread a little.  In an eloquent
   display of poetic justice, it has returned to the originator in the
   form of a nickname.  2. interj. See {foo}; however, denotes very
   little disgust, and is uttered mostly for the sake of the sound of
   it.  3. Guy Steele in his persona as `The Great Quux', which is
   somewhat infamous for light verse and for the `Crunchly' cartoons.
   4. In some circles, quux is used as a punning opposite of `crux'.
   "Ah, that's the quux of the matter!"  implies that the point is
   *not* crucial (compare {tip of the ice-cube}).  5. quuxy:
   adj. Of or pertaining to a quux.

:qux: /kwuhks/ The fourth of the standard {metasyntactic
   variable}, after {baz} and before the quu(u...)x series.
   See {foo}, {bar}, {baz}, {quux}.  This appears to be a
   recent mutation from {quux}, and  many versions of the
   standard series just run {foo}, {bar}, {baz}, {quux},
   ....

:QWERTY: /kwer'tee/ [from the keycaps at the upper left] adj.
   Pertaining to a standard English-language typewriter keyboard
   (sometimes called the Sholes keyboard after its inventor), as
   opposed to Dvorak or foreign-language layouts or a {space-cadet
   keyboard} or APL keyboard.

   Historical note: The QWERTY layout is a fine example of a {fossil}.
   It is sometimes said that it was designed to slow down the typist,
   but this is wrong; it was designed to allow *faster* typing
   --- under a constraint now long obsolete.  In early typewriters,
   fast typing using nearby type-bars jammed the mechanism.  So Sholes
   fiddled the layout to separate the letters of many common digraphs
   (he did a far from perfect job, though; `th', `tr', `ed', and `er',
   for example, each use two nearby keys).  Also, putting the letters
   of `typewriter' on one line allowed it to be typed with particular
   speed and accuracy for {demo}s.  The jamming problem was
   essentially solved soon afterward by a suitable use of springs, but
   the keyboard layout lives on.

= R =
=====

:rabbit job: [Cambridge] n. A batch job that does little, if any,
   real work, but creates one or more copies of itself, breeding like
   rabbits.  Compare {wabbit}, {fork bomb}.

:rain dance: n. 1. Any ceremonial action taken to correct a hardware
   problem, with the expectation that nothing will be accomplished.
   This especially applies to reseating printed circuit boards,
   reconnecting cables, etc.  "I can't boot up the machine.  We'll
   have to wait for Greg to do his rain dance."  2. Any arcane
   sequence of actions performed with computers or software in order
   to achieve some goal; the term is usually restricted to rituals
   that include both an {incantation} or two and physical activity
   or motion.  Compare {magic}, {voodoo programming}, {black
   art}.

:rainbow series: n. Any of several series of technical manuals
   distinguished by cover color.  The original rainbow series was the
   NCSC security manuals (see {Orange Book}, {crayola books});
   the term has also been commonly applied to the PostScript reference
   set (see {Red Book}, {Green Book}, {Blue Book}, {White
   Book}).  Which books are meant by "`the' rainbow series"
   unqualified is thus dependent on one's local technical culture.

:random: adj. 1. Unpredictable (closest to mathematical
   definition); weird.  "The system's been behaving pretty
   randomly."  2. Assorted; undistinguished.  "Who was at the
   conference?"  "Just a bunch of random business types."
   3. (pejorative) Frivolous; unproductive; undirected.  "He's just a
   random loser."  4. Incoherent or inelegant; poorly chosen; not
   well organized.  "The program has a random set of misfeatures."
   "That's a random name for that function."  "Well, all the names
   were chosen pretty randomly."  5. In no particular order, though
   deterministic.  "The I/O channels are in a pool, and when a file
   is opened one is chosen randomly."  6. Arbitrary.  "It generates
   a random name for the scratch file."  7. Gratuitously wrong, i.e.,
   poorly done and for no good apparent reason.  For example, a
   program that handles file name defaulting in a particularly useless
   way, or an assembler routine that could easily have been coded
   using only three registers, but redundantly uses seven for values
   with non-overlapping lifetimes, so that no one else can invoke it
   without first saving four extra registers.  What {randomness}!
   8. n. A random hacker; used particularly of high-school students
   who soak up computer time and generally get in the way.  9. n.
   Anyone who is not a hacker (or, sometimes, anyone not known to the
   hacker speaking); the noun form of sense 2.  "I went to the talk,
   but the audience was full of randoms asking bogus questions".
   10. n. (occasional MIT usage) One who lives at Random Hall.  See
   also {J. Random}, {some random X}.

:random numbers:: n. When one wishes to specify a large but random
   number of things, and the context is inappropriate for {N}, certain
   numbers are preferred by hacker tradition (that is, easily
   recognized as placeholders).  These include the following:

     17
          Long described at MIT as `the least random number'; see 23.
     23
          Sacred number of Eris, Goddess of Discord (along with 17 and
          5).
     42
          The Answer to the Ultimate Question of Life, the Universe, and
          Everything. (Note that this answer is completely fortuitous.
          `:-)')
     69
          From the sexual act.  This one was favored in MIT's ITS
          culture.
     105
          69 hex = 105 decimal, and 69 decimal = 105 octal.
     666
          The Number of the Beast.

   For further enlightenment, study the `Principia Discordia',
   `{The Hitchhiker's Guide to the Galaxy}', `The Joy
   of Sex', and the Christian Bible (Revelation 13:18).  See also
   {Discordianism} or consult your pineal gland.  See also {for
   values of}.

:randomness: n. 1. An inexplicable misfeature; gratuitous
   inelegance.  2. A {hack} or {crock} that depends on a complex
   combination of coincidences (or, possibly, the combination upon
   which the crock depends for its accidental failure to malfunction).
   "This hack can output characters 40--57 by putting the character
   in the four-bit accumulator field of an XCT and then extracting
   six bits --- the low 2 bits of the XCT opcode are the right
   thing."  "What randomness!"  3. Of people, synonymous with
   `flakiness'. The connotation is that the person so described is
   behaving weirdly, incompetently, or inappropriately for reasons
   which are (a) too tiresome to bother inquiring into, (b) are
   probably as inscrutable as quantum phenomena anyway, and (c) are
   likely to pass with time. "Maybe he has a real complaint, or maybe
   it's just randomness.  See if he calls back."

:rape: vt. 1. To {screw} someone or something, violently; in
   particular, to destroy a program or information irrecoverably.
   Often used in describing file-system damage.  "So-and-so was
   running a program that did absolute disk I/O and ended up raping
   the master directory."  2. To strip a piece of hardware for parts.
   3. [CMU/Pitt] To mass-copy files from an anonymous ftp site.  
   "Last night I raped Simtel's dskutl directory."

:rare mode: [UNIX] adj. CBREAK mode (character-by-character with
   interrupts enabled).  Distinguished from {raw mode} and {cooked
   mode}; the phrase "a sort of half-cooked (rare?) mode" is used
   in the V7/BSD manuals to describe the mode.  Usage: rare.

:raster blaster: n. [Cambridge] Specialized hardware for
   {bitblt} operations (a {blitter}).  Allegedly inspired by
   `Rasta Blasta', British slang for the sort of portable stereo
   Americans call a `boom box' or `ghetto blaster'.

:raster burn: n. Eyestrain brought on by too many hours of looking at
   low-res, poorly tuned, or glare-ridden monitors, esp. graphics
   monitors.  See {terminal illness}.

:rat belt: n. A cable tie, esp. the sawtoothed, self-locking plastic
   kind that you can remove only by cutting (as opposed to a random
   twist of wire or a twist tie or one of those humongous metal clip
   frobs).  Small cable ties are `mouse belts'.

:rave: [WPI] vi. 1. To persist in discussing a specific subject.
   2. To speak authoritatively on a subject about which one knows
   very little.  3. To complain to a person who is not in a position
   to correct the difficulty.  4. To purposely annoy another person
   verbally.  5. To evangelize.  See {flame}.  6. Also used to
   describe a less negative form of blather, such as friendly
   bullshitting.  `Rave' differs slightly from {flame} in that
   `rave' implies that it is the persistence or obliviousness of the
   person speaking that is annoying, while {flame} implies somewhat
   more strongly that the tone is offensive as well.

:rave on!: imp. Sarcastic invitation to continue a {rave}, often by
   someone who wishes the raver would get a clue but realizes this is
   unlikely.

:ravs: /ravz/, also `Chinese ravs' n. Jiao-zi (steamed or
   boiled) or Guo-tie (pan-fried).  A Chinese appetizer, known
   variously in the plural as dumplings, pot stickers (the literal
   translation of guo-tie), and (around Boston) `Peking Ravioli'.  The
   term `rav' is short for `ravioli', which among hackers always
   means the Chinese kind rather than the Italian kind.  Both consist
   of a filling in a pasta shell, but the Chinese kind includes no
   cheese, uses a thinner pasta, has a pork-vegetable filling (good
   ones include Chinese chives), and is cooked differently, either by
   steaming or frying.  A rav or dumpling can be cooked any way, but a
   potsticker is always the fried kind (so called because it sticks to
   the frying pot and has to be scraped off).  "Let's get
   hot-and-sour soup and three orders of ravs."  See also
   {{oriental food}}.

:raw mode: n. A mode that allows a program to transfer bits
   directly to or from an I/O device (or, under {bogus} systems
   that make a distinction, a disk file) without any processing,
   abstraction, or interpretation by the operating system.  Compare
   {rare mode}, {cooked mode}.  This is techspeak under UNIX,
   jargon elsewhere.

:rc file: /R-C fi:l/ [UNIX: from the startup script
   `/etc/rc', but this is commonly believed to have been named
   after older scripts to `run commands'] n. Script file containing
   startup instructions for an application program (or an entire
   operating system), usually a text file containing commands of the
   sort that might have been invoked manually once the system was
   running but are to be executed automatically each time the system
   starts up.  See also {dot file}.

:RE: /R-E/ n. Common spoken and written shorthand for {regexp}.

:read-only user: n. Describes a {luser} who uses computers almost
   exclusively for reading USENET, bulletin boards, and/or email,
   rather than writing code or purveying useful information.  See
   {twink}, {terminal junkie}, {lurker}.

:README file: n. By convention, the top-level directory of a UNIX
   source distribution always contains a file named `README' (or
   READ.ME, or rarely ReadMe or some other variant), which is a
   hacker's-eye introduction containing a pointer to more detailed
   documentation, credits, miscellaneous revision history notes, etc.
   In the Mac and PC worlds, software is not usually distributed in
   source form and a README is more likely to contain user-oriented
   material like last-minute documentation changes, error workarounds,
   and restrictions.  When asked, hackers invariably relate the README
   convention to the famous scene in Lewis Carroll's `Alice's
   Adventures In Wonderland' in which Alice confronts magic munchies
   labeled "Eat Me" and "Drink Me".

:real: adj. Not simulated.  Often used as a specific antonym to
   {virtual} in any of its jargon senses.

:real estate: n. May be used for any critical resource measured in
   units of area.  Most frequently used of `chip real estate', the
   area available for logic on the surface of an integrated circuit
   (see also {nanoacre}).  May also be used of floor space in a
   {dinosaur pen}, or even space on a crowded desktop (whether
   physical or electronic).

:real hack: n. A {crock}.  This is sometimes used affectionately;
   see {hack}.

:real operating system: n. The sort the speaker is used to.  People
   from the BSDophilic academic community are likely to issue comments
   like "System V?  Why don't you use a *real* operating
   system?", people from the commercial/industrial UNIX sector are
   known to complain "BSD?  Why don't you use a *real*
   operating system?", and people from IBM object "UNIX?  Why don't
   you use a *real* operating system?"  See {holy wars},
   {religious issues}, {proprietary}, {Get a real computer!}

:Real Programmer: [indirectly, from the book `Real Men Don't
   Eat Quiche'] n. A particular sub-variety of hacker: one possessed
   of a flippant attitude toward complexity that is arrogant even when
   justified by experience.  The archetypal `Real Programmer' likes
   to program on the {bare metal} and is very good at same,
   remembers the binary opcodes for every machine he has ever
   programmed, thinks that HLLs are sissy, and uses a debugger to edit
   his code because full-screen editors are for wimps.  Real
   Programmers aren't satisfied with code that hasn't been {bum}med
   into a state of {tense}ness just short of rupture.  Real
   Programmers never use comments or write documentation: "If it was
   hard to write", says the Real Programmer, "it should be hard to
   understand."  Real Programmers can make machines do things that
   were never in their spec sheets; in fact, they are seldom really
   happy unless doing so.  A Real Programmer's code can awe with its
   fiendish brilliance, even as its crockishness appalls.  Real
   Programmers live on junk food and coffee, hang line-printer art on
   their walls, and terrify the crap out of other programmers ---
   because someday, somebody else might have to try to understand
   their code in order to change it.  Their successors generally
   consider it a {Good Thing} that there aren't many Real
   Programmers around any more.  For a famous (and somewhat more
   positive) portrait of a Real Programmer, see "{The Story
   of Mel, a Real Programmer}" in {Appendix A}.  The term itself
   was popularized by a 1983 Datamation article "Real
   Programmers Don't Use Pascal" by Ed Post, still circulating on
   USENET and Internet in on-line form.

:Real Soon Now: [orig. from SF's fanzine community, popularized by
   Jerry Pournelle's column in `BYTE'] adv. 1. Supposed to be
   available (or fixed, or cheap, or whatever) real soon now according
   to somebody, but the speaker is quite skeptical.  2. When one's
   gods, fates, or other time commitments permit one to get to it (in
   other words, don't hold your breath).  Often abbreviated RSN.

:real time: 1. [techspeak] adj. Describes an application which
   requires a program to respond to stimuli within some small upper
   limit of response time (typically milli- or microseconds).  Process
   control at a chemical plant is the classic example.  Such
   applications often require special operating systems (because
   everything else must take a back seat to response time) and
   speed-tuned hardware.  2. adv. In jargon, refers to doing something
   while people are watching or waiting.  "I asked her how to find
   the calling procedure's program counter on the stack and she came
   up with an algorithm in real time."

:real user: n. 1. A commercial user.  One who is paying *real*
   money for his computer usage.  2. A non-hacker.  Someone using the
   system for an explicit purpose (a research project, a course, etc.)
   other than pure exploration.  See {user}.  Hackers who are also
   students may also be real users.  "I need this fixed so I can do a
   problem set.  I'm not complaining out of randomness, but as a real
   user."  See also {luser}.

:Real World: n. 1. Those institutions at which `programming' may
   be used in the same sentence as `FORTRAN', `{COBOL}',
   `RPG', `{IBM}', `DBASE', etc.  Places where programs do such
   commercially necessary but intellectually uninspiring things as
   generating payroll checks and invoices.  2. The location of
   non-programmers and activities not related to programming.  3. A
   bizarre dimension in which the standard dress is shirt and tie and
   in which a person's working hours are defined as 9 to 5 (see
   {code grinder}).  4. Anywhere outside a university.  "Poor
   fellow, he's left MIT and gone into the Real World."  Used
   pejoratively by those not in residence there.  In conversation,
   talking of someone who has entered the Real World is not unlike
   speaking of a deceased person.  It is also noteworthy that on the
   campus of Cambridge University in England, there is a gaily-painted
   lamp-post which bears the label `REALITY CHECKPOINT'.  It marks the
   boundary between university and the Real World; check your notions
   of reality before passing.  This joke is funnier because the
   Cambridge `campus' is actually coextensive with the center of
   Cambridge.  See also {fear and loathing}, {mundane}, and
   {uninteresting}.

:reality check: n. 1. The simplest kind of test of software or
   hardware; doing the equivalent of asking it what 2 + 2 is
   and seeing if you get 4.  The software equivalent of a
   {smoke test}.  2. The act of letting a {real user} try out
   prototype software.  Compare {sanity check}.

:reaper: n. A {prowler} that {GFR}s files.  A file removed in
   this way is said to have been `reaped'.

:rectangle slinger: n. See {polygon pusher}.

:recursion: n. See {recursion}.  See also {tail recursion}.

:recursive acronym:: pl.n. A hackish (and especially MIT) tradition
   is to choose acronyms/abbreviations that refer humorously to
   themselves or to other acronyms/abbreviations.  The classic
   examples were two MIT editors called EINE ("EINE Is Not EMACS")
   and ZWEI ("ZWEI Was EINE Initially").  More recently, there is a
   Scheme compiler called LIAR (Liar Imitates Apply Recursively), and
   {GNU} (q.v., sense 1) stands for "GNU's Not UNIX!" --- and a
   company with the name CYGNUS, which expands to "Cygnus, Your GNU
   Support".  See also {mung}, {EMACS}.

:Red Book: n. 1. Informal name for one of the three standard
   references on {{PostScript}} (`PostScript Language Reference
   Manual', Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN
   0-201-10174-2, or the 1990 second edition ISBN 0-201-18127-4); the
   others are known as the {Green Book}, the {Blue Book}, and
   the {White Book} (sense 2).  2. Informal name for one of the 3
   standard references on Smalltalk (`Smalltalk-80: The
   Interactive Programming Environment' by Adele Goldberg
   (Addison-Wesley, 1984; QA76.8.S635G638; ISBN 0-201-11372-4); this
   too is associated with blue and green books).  3. Any of the
   1984 standards issued by the CCITT eighth plenary assembly.  These
   include, among other things, the X.400 email spec and the Group
   1 through 4 fax standards.  4. The new version of the {Green
   Book} (sense 4) --- IEEE 1003.1-1990, a.k.a ISO 9945-1 --- is
   (because of the color and the fact that it is printed on A4 paper)
   known in the U.S.A. as "the Ugly Red Book That Won't Fit On The
   Shelf" and in Europe as "the Ugly Red Book That's A Sensible
   Size".  5. The NSA `Trusted Network Interpretation' companion
   to the {Orange Book}.  See also {{book titles}}.

:red wire: [IBM] n. Patch wires installed by programmers who have
   no business mucking with the hardware.  It is said that the only
   thing more dangerous than a hardware guy with a code patch is a
   {softy} with a soldering iron.... Compare {blue wire},
   {yellow wire}, {purple wire}.

:regexp: /reg'eksp/ [UNIX] n. (alt. `regex' or `reg-ex')
   1. Common written and spoken abbreviation for `regular
   expression', one of the wildcard patterns used, e.g., by UNIX
   utilities such as `grep(1)', `sed(1)', and `awk(1)'.
   These use conventions similar to but more elaborate than those
   described under {glob}.  For purposes of this lexicon, it is
   sufficient to note that regexps also allow complemented character
   sets using `^'; thus, one can specify `any non-alphabetic
   character' with `[^A-Za-z]'.  2. Name of a well-known PD
   regexp-handling package in portable C, written by revered USENETter
   Henry Spencer <henry@zoo.toronto.edu>.

:register dancing: n. Many older processor architectures suffer
   from a serious shortage of general-purpose registers.  This is
   especially a problem for compiler-writers, because their generated
   code needs places to store temporaries for things like intermediate
   values in expression evaluation.  Some designs with this problem,
   like the Intel 80x86, do have a handful of special-purpose
   registers that can be pressed into service, providing suitable care
   is taken to avoid unpleasant side effects on the state of the
   processor: while the special-purpose register is being used to hold
   an intermediate value, a delicate minuet is required in which the
   previous value of the register is saved and then restored just before
   the official function (and value) of the special-purpose register is
   again needed.

:reincarnation, cycle of: n. See {cycle of reincarnation}.

:reinvent the wheel: v. To design or implement a tool equivalent to
   an existing one or part of one, with the implication that doing so
   is silly or a waste of time.  This is often a valid criticism.
   On the other hand, automobiles don't use wooden rollers, and some
   kinds of wheel have to be reinvented many times before you get them
   right.  On the third hand, people reinventing the wheel do tend to
   come up with the moral equivalent of a trapezoid with an offset
   axle.

:religion of CHI: n. /ki:/ [Case Western Reserve University] n.
   Yet another hackish parody religion (see also {Church of the
   SubGenius}, {Discordianism}).  In the mid-70s, the canonical
   "Introduction to Programming" courses at CWRU were taught in
   Algol, and student exercises were punched on cards and run on a
   Univac 1108 system using a homebrew operating system named CHI.
   The religion had no doctrines and but one ritual: whenever the
   worshipper noted that a digital clock read 11:08, he or she would
   recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN, ARCCOS,
   ARCTAN."  The last five words were the first five functions in the
   appropriate chapter of the Algol manual; note the special
   pronunciations /obz/ and /ark'sin/ rather than the more common
   /abz/ and /ark'si:n/.  Using an alarm clock to warn of 11:08's
   arrival was {considered harmful}.

:religious issues: n. Questions which seemingly cannot be raised
   without touching off {holy wars}, such as "What is the best
   operating system (or editor, language, architecture, shell, mail
   reader, news reader)?", "What about that Heinlein guy, eh?",
   "What should we add to the new Jargon File?"  See {holy wars};
   see also {theology}, {bigot}.

   This term is an example of {ha ha only serious}.  People
   actually develop the most amazing and religiously intense
   attachments to their tools, even when the tools are intangible.
   The most constructive thing one can do when one stumbles into the
   crossfire is mumble {Get a life!} and leave --- unless, of course,
   one's *own* unassailably rational and obviously correct
   choices are being slammed.

:replicator: n. Any construct that acts to produce copies of
   itself; this could be a living organism, an idea (see {meme}), a
   program (see {quine}, {worm}, {wabbit}, {fork bomb},
   and {virus}), a pattern in a cellular automaton (see {life},
   sense 1), or (speculatively) a robot or {nanobot}.  It is even
   claimed by some that {{UNIX}} and {C} are the symbiotic halves
   of an extremely successful replicator; see {UNIX conspiracy}.

:reply: n. See {followup}.

:restriction: n. A {bug} or design error that limits a program's
   capabilities, and which is sufficiently egregious that nobody can
   quite work up enough nerve to describe it as a {feature}.  Often
   used (esp. by {marketroid} types) to make it sound as though
   some crippling bogosity had been intended by the designers all
   along, or was forced upon them by arcane technical constraints of a
   nature no mere user could possibly comprehend (these claims are
   almost invariably false).

   Old-time hacker Joseph M. Newcomer advises that whenever choosing a
   quantifiable but arbitrary restriction, you should make it either a
   power of 2 or a power of 2 minus 1.  If you impose a limit of
   17 items in a list, everyone will know it is a random number --- on
   the other hand, a limit of 15 or 16 suggests some deep reason
   (involving 0- or 1-based indexing in binary) and you will get less
   {flamage} for it.  Limits which are round numbers in base 10 are
   always especially suspect.

:retcon: /ret'kon/ [short for `retroactive continuity', from
   the USENET newsgroup rec.arts.comics] 1. n. The common
   situation in pulp fiction (esp. comics or soap operas) where a
   new story `reveals' things about events in previous stories,
   usually leaving the `facts' the same (thus preserving
   continuity) while completely changing their interpretation.  For
   example, revealing that a whole season of "Dallas" was a
   dream was a retcon.  2. vt. To write such a story about a character
   or fictitious object.  "Byrne has retconned Superman's cape so
   that it is no longer unbreakable."  "Marvelman's old adventures
   were retconned into synthetic dreams."  "Swamp Thing was
   retconned from a transformed person into a sentient vegetable."
   "Darth Vader was retconned into Luke Skywalker's father in
   "The Empire Strikes Back".

   [This is included because it is a good example of hackish
   linguistic innovation in a field completely unrelated to computers.
   The word `retcon' will probably spread through comics fandom and
   lose its association with hackerdom within a couple of years; for
   the record, it started here. --- ESR]

   [1993 update: some comics fans on the net now claim that retcon was
   independently in use in comics fandom before rec.arts.comics.
   In lexicography, nothing is ever simple. --- ESR]

:RETI: v. Syn. {RTI}

:retrocomputing: /ret'-roh-k*m-pyoo'ting/ n. Refers to emulations
   of way-behind-the-state-of-the-art hardware or software, or
   implementations of never-was-state-of-the-art; esp. if such
   implementations are elaborate practical jokes and/or parodies,
   written mostly for {hack value}, of more `serious' designs.
   Perhaps the most widely distributed retrocomputing utility was the
   `pnch(6)' or `bcd(6)' program on V7 and other early UNIX
   versions, which would accept up to 80 characters of text argument
   and display the corresponding pattern in {{punched card}} code.
   Other well-known retrocomputing hacks have included the programming
   language {INTERCAL}, a {JCL}-emulating shell for UNIX, the
   card-punch-emulating editor named 029, and various elaborate PDP-11
   hardware emulators and RT-11 OS emulators written just to keep an
   old, sourceless {Zork} binary running.

:return from the dead: v. To regain access to the net after a long
   absence.  Compare {person of no account}.

:RFC: /R-F-C/ [Request For Comment] n. One of a long-es-tab-lished
   series of numbered Internet standards widely followed by commercial
   software and freeware in the Internet and UNIX communities.
   Perhaps the single most influential one has been RFC-822 (the
   Internet mail-format standard).  The RFCs are unusual in that they
   are floated by technical experts acting on their own initiative and
   reviewed by the Internet at large, rather than formally promulgated
   through an institution such as ANSI.  For this reason, they remain
   known as RFCs even once adopted.

   The RFC tradition of pragmatic, experience-driven, after-the-fact
   standard writing done by individuals or small working groups has
   important advantages over the more formal, committee-driven process
   typical of ANSI or ISO.  Emblematic of some of these is the
   existence of a flourishing tradition of `joke' RFCs; usually at
   least one a year is published, usually on April 1st.  Well-known
   joke RFCs have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22
   June 1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin;
   1 April 1978), and 1149 ("A Standard for the Transmission of IP
   Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April 1990).
   The first was a Lewis Carroll pastiche; the second a parody of the
   TCP-IP documentation style, and the third a deadpan skewering of
   standards-document legalese, describing protocols for transmitting
   Internet data packets by carrier pigeon.

   The RFCs are most remarkable for how well they work --- they manage to
   have neither the ambiguities that are usually rife in informal
   specifications, nor the committee-perpetrated misfeatures that often
   haunt formal standards, and they define a network that has grown to
   truly worldwide proportions.

:RFE: /R-F-E/ n. 1. [techspeak] Request For Enhancement (compare
   {RFC}).  2. [from `Radio Free Europe', Bellcore and Sun] Radio
   Free Ethernet, a system (originated by Peter Langston) for
   broadcasting audio among Sun SPARCstations over the
   ethernet.

:rib site: [by analogy with {backbone site}] n. A machine that
   has an on-demand high-speed link to a {backbone site} and serves
   as a regional distribution point for lots of third-party traffic in
   email and USENET news.  Compare {leaf site}, {backbone site}.

:rice box: [from ham radio slang] n. Any Asian-made commodity
   computer, esp. an 80x86-based machine built to IBM PC-compatible
   ISA or EISA-bus standards.

:Right Thing: n. That which is *compellingly* the correct or
   appropriate thing to use, do, say, etc.  Often capitalized, always
   emphasized in speech as though capitalized.  Use of this term often
   implies that in fact reasonable people may disagree.  "What's the
   right thing for LISP to do when it sees `(mod a 0)'?  Should
   it return `a', or give a divide-by-0 error?"  Oppose
   {Wrong Thing}.

:RL: // [MUD community] n. Real Life.  "Firiss laughs in RL"
   means that Firiss's player is laughing.  Oppose {VR}.

:roach: [Bell Labs] vt. To destroy, esp. of a data structure.  Hardware
   gets {toast}ed or {fried}, software gets roached.

:robot: [IRC, MUD] n. An {IRC} or {MUD} user who is actually
   a program.  On IRC, typically the robot provides some useful
   service.  Examples are NickServ, which tries to prevent random
   users from adopting {nick}s already claimed by others, and
   MsgServ, which allows one to send asynchronous messages to be
   delivered when the recipient signs on.  Also common are
   "annoybots", such as KissServ, which perform no useful function
   except to send cute messages to other people.  Service robots are
   less common on MUDs; but some others, such as the `Julia' robot
   active in 1990--91, have been remarkably impressive Turing-test
   experiments, able to pass as human for as long as ten or fifteen
   minutes of conversation.

:robust: adj. Said of a system that has demonstrated an ability to
   recover gracefully from the whole range of exceptional inputs and
   situations in a given environment.  One step below {bulletproof}.
   Carries the additional connotation of elegance in addition to just
   careful attention to detail.  Compare {smart}, oppose
   {brittle}.

:rococo: adj. {Baroque} in the extreme.  Used to imply that a
   program has become so encrusted with the software equivalent of
   gold leaf and curlicues that they have completely swamped the
   underlying design.  Called after the later and more extreme forms
   of Baroque architecture and decoration prevalent during the
   mid-1700s in Europe.  Alan Perlis said: "Every program eventually
   becomes rococo, and then rubble."  Compare {critical
   mass}.

:rogue: [UNIX] n. A Dungeons-and-Dragons-like game using character
   graphics, written under BSD UNIX and subsequently ported to other
   UNIX systems.  The original BSD `curses(3)' screen-handling
   package was hacked together by Ken Arnold to support
   `rogue(6)' and has since become one of UNIX's most important
   and heavily used application libraries.  Nethack, Omega, Larn, and
   an entire subgenre of computer dungeon games all took off from the
   inspiration provided by `rogue(6)'.  See {nethack}.

:room-temperature IQ: [IBM] quant. 80 or below.  Used in describing the
   expected intelligence range of the {luser}.  "Well, but
   how's this interface going to play with the room-temperature IQ
   crowd?"  See {drool-proof paper}.  This is a much more insulting
   phrase in countries that use Celsius thermometers.

:root: [UNIX] n. 1. The {superuser} account that ignores
   permission bits, user number 0 on a UNIX system.  This account
   has the user name `root'.  The term {avatar} is also used.
   2. The top node of the system directory structure (home directory
   of the root user).  3. By extension, the privileged
   system-maintenance login on any OS.  See {root mode}, {go root}.

:root mode: n. Syn. with {wizard mode} or `wheel mode'.  Like
   these, it is often generalized to describe privileged states in
   systems other than OSes.

:rot13: /rot ther'teen/ [USENET: from `rotate alphabet
   13 places'] n., v. The simple Caesar-cypher encryption that
   replaces each English letter with the one 13 places forward or back
   along the alphabet, so that "The butler did it!" becomes "Gur
   ohgyre qvq vg!"  Most USENET news reading and posting programs
   include a rot13 feature.  It is used to enclose the text in a
   sealed wrapper that the reader must choose to open --- e.g., for
   posting things that might offend some readers, or answers to
   puzzles.  A major advantage of rot13 over rot(N) for
   other N is that it is self-inverse, so the same code can be
   used for encoding and decoding.

:rotary debugger: [Commodore] n. Essential equipment for those
   late-night or early-morning debugging sessions.  Mainly used as
   sustenance for the hacker.  Comes in many decorator colors, such as
   Sausage, Pepperoni, and Garbage.  See {pizza, ANSI standard}.

:round tape: n. Industry-standard 1/2-imch magnetic tape (7- or
   9-track) on traditional circular reels; oppose {square tape}.

:RSN: /R-S-N/ adj. See {Real Soon Now}.

:RTBM: /R-T-B-M/ [UNIX] imp. Commonwealth Hackish variant of
   {RTFM}; expands to `Read The Bloody Manual'.  RTBM is often the
   entire text of the first reply to a question from a {newbie};
   the *second* would escalate to "RTFM".

:RTFAQ: /R-T-F-A-Q/ [USENET: primarily written, by analogy with
   {RTFM}] imp. Abbrev. for `Read the FAQ!', an exhortation that
   the person addressed ought to read the newsgroup's {FAQ list}
   before posting questions.

:RTFB: /R-T-F-B/ [UNIX] imp. Acronym for `Read The Fucking
   Binary'.  Used when neither documentation nor the the source for the
   problem at hand exists, and the only thing to do is use some
   debugger or monitor and directly analyze the assembler or even
   the machine code.  "No source for the buggy port driver?  Aaargh! I
   *hate* proprietary operating systems.  Time to RTFB."

:RTFM: /R-T-F-M/ [UNIX] imp. Acronym for `Read The Fucking
   Manual'.  1. Used by {guru}s to brush off questions they
   consider trivial or annoying.  Compare {Don't do that, then!}
   2. Used when reporting a problem to indicate that you aren't just
   asking out of {randomness}.  "No, I can't figure out how to
   interface UNIX to my toaster, and yes, I have RTFM."  Unlike
   sense 1, this use is considered polite.  See also {FM},
   {RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which mutated
   from RTFM, and compare {UTSL}.

:RTFS: /R-T-F-S/ [UNIX] 1. imp. Acronym for `Read The Fucking
   Source'.  Stronger form of {RTFM}, used when the problem
   at hand is not necessarily obvious and not available from
   the manuals --- or the manuals are not yet written and maybe
   never will be.  For even more tricky situations, see {RTFB}.
   2. imp. `Read The Fucking Standard'; this oath can only be used when
   the problem area (e.g., a language or operating system interface) has
   actually been codified in a ratified standards document.  The
   existence of these standards documents (and the technically
   inappropriate but politically mandated compromises that they
   inevitably contain, and the stifling language in which they are
   invariably written, and the unbelievably tedious bureaucratic process
   by which they are produced) can be unnerving to hackers, who are used
   to a certain amount of ambiguity in the specifications of the systems
   they use.  (Hackers feel that such ambiguities are acceptable as long
   as the {Right Thing} to do is obvious to any thinking observer;
   sadly, this casual attitude towards specifications becomes unworkable
   when a system becomes popular in the {Real World}.)  Since a hacker
   is likely to feel that a standards document is both unnecessary and
   technically deficient, the deprecation inherent in this term may be
   directed as much against the standard as against the person who ought
   to read it.

:RTI: /R-T-I/ interj. The mnemonic for the `return from
   interrupt' instruction on many computers including the 6502 and
   6800.  The variant `RETI' is found among former Z80 hackers
   (almost nobody programs these things in assembler anymore).
   Equivalent to "Now, where was I?" or used to end a
   conversational digression.  See {pop}; see also {POPJ}.

:RTM: /R-T-M/ [USENET: abbreviation for `Read The Manual']
   1. Politer variant of {RTFM}.  2. Robert T. Morris Jr.,
   perpetrator of the great Internet worm of 1988 (see {Great Worm,
   the}); villain to many, naive hacker gone wrong to a few.  Morris
   claimed that the worm that brought the Internet to its knees was a
   benign experiment that got out of control as the result of a coding
   error.  After the storm of negative publicity that followed this
   blunder, Morris's name on ITS was hacked from RTM to {RTFM}.

:rude: [WPI] adj. 1. (of a program) Badly written.  2. Functionally
   poor, e.g., a program that is very difficult to use because of
   gratuitously poor (random?) design decisions.  Oppose {cuspy}.
   3. Anything that manipulates a shared resource without regard for
   its other users in such a way as to cause a (non-fatal) problem is
   said to be `rude'.  Examples: programs that change tty modes
   without resetting them on exit, or windowing programs that keep
   forcing themselves to the top of the window stack.  Compare
   {all-elbows}.

:runes: pl.n. 1. Anything that requires {heavy wizardry} or
   {black art} to {parse}: core dumps, JCL commands, APL, or code
   in a language you haven't a clue how to read.  Compare {casting
   the runes}, {Great Runes}.  2. Special display characters (for
   example, the high-half graphics on an IBM PC).

:runic: adj. Syn. {obscure}.  VMS fans sometimes refer to UNIX as
   `Runix'; UNIX fans return the compliment by expanding VMS to `Very
   Messy Syntax' or `Vachement Mauvais Syst`eme' (French; lit.
   "Cowlike Bad System", idiomatically "Bitchy Bad System").

:rusty iron: n. Syn. {tired iron}.  It has been claimed that this
   is the inevitable fate of {water MIPS}.

:rusty memory: n. Mass-storage that uses iron-oxide-based magnetic
   media (esp. tape and the pre-Winchester removable disk packs used
   in {washing machine}s).  Compare {donuts}.
= S =
=====

:S/N ratio: // n. (also `s/n ratio', `s:n ratio').  Syn.
   {signal-to-noise ratio}.  Often abbreviated `SNR'.

:sacred: adj. Reserved for the exclusive use of something (an
   extension of the standard meaning).  Often means that anyone may
   look at the sacred object, but clobbering it will screw whatever it
   is sacred to.  The comment "Register 7 is sacred to the interrupt
   handler" appearing in a program would be interpreted by a hacker
   to mean that if any *other* part of the program changes the
   contents of register 7, dire consequences are likely to ensue.

:saga: [WPI] n. A cuspy but bogus raving story about N random
   broken people.

   Here is a classic example of the saga form, as told by Guy L.
   Steele:

     Jon L. White (login name JONL) and I (GLS) were office mates at MIT
     for many years.  One April, we both flew from Boston to California
     for a week on research business, to consult face-to-face with some
     people at Stanford, particularly our mutual friend Richard P.
     Gabriel (RPG; see {Gabriel}).

     RPG picked us up at the San Francisco airport and drove us back to
     Palo Alto (going {logical} south on route 101, parallel to {El
     Camino Bignum}).  Palo Alto is adjacent to Stanford University and
     about 40 miles south of San Francisco.  We ate at The Good Earth, a
     `health food' restaurant, very popular, the sort whose milkshakes
     all contain honey and protein powder.  JONL ordered such a shake
     --- the waitress claimed the flavor of the day was "lalaberry".  I
     still have no idea what that might be, but it became a running
     joke.  It was the color of raspberry, and JONL said it tasted
     rather bitter.  I ate a better tostada there than I have ever had
     in a Mexican restaurant.

     After this we went to the local Uncle Gaylord's Old Fashioned Ice
     Cream Parlor.  They make ice cream fresh daily, in a variety of
     intriguing flavors.  It's a chain, and they have a slogan: "If you
     don't live near an Uncle Gaylord's --- MOVE!"  Also, Uncle Gaylord
     (a real person) wages a constant battle to force big-name ice cream
     makers to print their ingredients on the package (like air and
     plastic and other non-natural garbage).  JONL and I had first
     discovered Uncle Gaylord's the previous August, when we had flown
     to a computer-science conference in Berkeley, California, the first
     time either of us had been on the West Coast.  When not in the
     conference sessions, we had spent our time wandering the length of
     Telegraph Avenue, which (like Harvard Square in Cambridge) was
     lined with picturesque street vendors and interesting little
     shops.  On that street we discovered Uncle Gaylord's Berkeley
     store.  The ice cream there was very good.  During that August
     visit JONL went absolutely bananas (so to speak) over one
     particular flavor, ginger honey.

     Therefore, after eating at The Good Earth --- indeed, after every
     lunch and dinner and before bed during our April visit --- a trip
     to Uncle Gaylord's (the one in Palo Alto) was mandatory.  We had
     arrived on a Wednesday, and by Thursday evening we had been there
     at least four times.  Each time, JONL would get ginger honey ice
     cream, and proclaim to all bystanders that "Ginger was the spice
     that drove the Europeans mad!  That's why they sought a route to
     the East!  They used it to preserve their otherwise off-taste
     meat."  After the third or fourth repetition RPG and I were getting
     a little tired of this spiel, and began to paraphrase him: "Wow!
     Ginger!  The spice that makes rotten meat taste good!"  "Say!  Why
     don't we find some dog that's been run over and sat in the sun for
     a week and put some *ginger* on it for dinner?!"  "Right!  With a
     lalaberry shake!"  And so on.  This failed to faze JONL; he took it
     in good humor, as long as we kept returning to Uncle Gaylord's.  He
     loves ginger honey ice cream.

     Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
     (putting up with us?) in their home for our visit, so to thank them
     JONL and I took them out to a nice French restaurant of their
     choosing.  I unadventurously chose the filet mignon, and KBT had je
     ne sais quoi du jour, but RPG and JONL had lapin (rabbit).
     (Waitress: "Oui, we have fresh rabbit, fresh today."  RPG: "Well,
     JONL, I guess we won't need any *ginger*!")

     We finished the meal late, about 11 P.M., which is 2 A.M Boston
     time, so JONL and I were rather droopy.  But it wasn't yet
     midnight.  Off to Uncle Gaylord's!

     Now the French restaurant was in Redwood City, north of Palo Alto.
     In leaving Redwood City, we somehow got onto route 101 going north
     instead of south.  JONL and I wouldn't have known the difference
     had RPG not mentioned it.  We still knew very little of the local
     geography.  I did figure out, however, that we were headed in the
     direction of Berkeley, and half-jokingly suggested that we continue
     north and go to Uncle Gaylord's in Berkeley.

     RPG said "Fine!" and we drove on for a while and talked.  I was
     drowsy, and JONL actually dropped off to sleep for 5 minutes.  When
     he awoke, RPG said, "Gee, JONL, you must have slept all the way
     over the bridge!", referring to the one spanning San Francisco
     Bay.  Just then we came to a sign that said "University Avenue".  I
     mumbled something about working our way over to Telegraph Avenue;
     RPG said "Right!" and maneuvered some more.  Eventually we pulled
     up in front of an Uncle Gaylord's.

     Now, I hadn't really been paying attention because I was so sleepy,
     and I didn't really understand what was happening until RPG let me
     in on it a few moments later, but I was just alert enough to notice
     that we had somehow come to the Palo Alto Uncle Gaylord's after
     all.

     JONL noticed the resemblance to the Palo Alto store, but hadn't
     caught on.  (The place is lit with red and yellow lights at night,
     and looks much different from the way it does in daylight.)  He
     said, "This isn't the Uncle Gaylord's I went to in Berkeley!  It
     looked like a barn!  But this place looks *just like* the one back
     in Palo Alto!"

     RPG deadpanned, "Well, this is the one *I* always come to when I'm
     in Berkeley.  They've got two in San Francisco, too.  Remember,
     they're a chain."

     JONL accepted this bit of wisdom.  And he was not totally ignorant
     --- he knew perfectly well that University Avenue was in Berkeley,
     not far from Telegraph Avenue.  What he didn't know was that there
     is a completely different University Avenue in Palo Alto.

     JONL went up to the counter and asked for ginger honey.  The guy at
     the counter asked whether JONL would like to taste it first,
     evidently their standard procedure with that flavor, as not too
     many people like it.

     JONL said, "I'm sure I like it.  Just give me a cone."  The guy
     behind the counter insisted that JONL try just a taste first.
     "Some people think it tastes like soap."  JONL insisted, "Look, I
     *love* ginger.  I eat Chinese food.  I eat raw ginger roots.  I
     already went through this hassle with the guy back in Palo Alto.  I
     *know* I like that flavor!"

     At the words "back in Palo Alto" the guy behind the counter got a
     very strange look on his face, but said nothing.  KBT caught his
     eye and winked.  Through my stupor I still hadn't quite grasped
     what was going on, and thought RPG was rolling on the floor
     laughing and clutching his stomach just because JONL had launched
     into his spiel ("makes rotten meat a dish for princes") for the
     forty-third time.  At this point, RPG clued me in fully.

     RPG, KBT, and I retreated to a table, trying to stifle our
     chuckles.  JONL remained at the counter, talking about ice cream
     with the guy b.t.c., comparing Uncle Gaylord's to other ice cream
     shops and generally having a good old time.

     At length the g.b.t.c. said, "How's the ginger honey?"  JONL said,
     "Fine!  I wonder what exactly is in it?"  Now Uncle Gaylord
     publishes all his recipes and even teaches classes on how to make
     his ice cream at home.  So the g.b.t.c. got out the recipe, and he
     and JONL pored over it for a while.  But the g.b.t.c. could contain
     his curiosity no longer, and asked again, "You really like that
     stuff, huh?"  JONL said, "Yeah, I've been eating it constantly back
     in Palo Alto for the past two days.  In fact, I think this batch is
     about as good as the cones I got back in Palo Alto!"

     G.b.t.c. looked him straight in the eye and said, "You're *in* Palo
     Alto!"

     JONL turned slowly around, and saw the three of us collapse in a
     fit of giggles.  He clapped a hand to his forehead and exclaimed,
     "I've been hacked!"

   [My spies on the West Coast inform me that there is a close relative
   of the raspberry found out there called an `ollalieberry' --- ESR]

   [Ironic footnote: it appears that the {meme} about ginger vs.
   rotting meat may be an urban legend.  It's not borne out by an
   examination of medieval recipes or period purchase records for
   spices, and appears full-blown in the works of Samuel Pegge, a
   gourmand and notorious flake case who originated numerous food
   myths. --- ESR]

:sagan: /say'gn/ [from Carl Sagan's TV series "Cosmos";
   think "billions and billions"] n. A large quantity of anything.
   "There's a sagan different ways to tweak EMACS."  "The
   U.S. Government spends sagans on bombs and welfare --- hard to say
   which is more destructive."

:SAIL:: /sayl/, not /S-A-I-L/ n. 1. Stanford Artificial
   Intelligence Lab.  An important site in the early development of
   LISP; with the MIT AI Lab, BBN, CMU, XEROX PARC, and the UNIX
   community, one of the major wellsprings of technical innovation and
   hacker-culture traditions (see the {{WAITS}} entry for details).
   The SAIL machines were officially shut down in late May 1990, scant
   weeks after the MIT AI Lab's ITS cluster was officially
   decommissioned.  2. The Stanford Artificial Intelligence Language
   used at SAIL (sense 1).  It was an Algol-60 derivative with a
   coroutining facility and some new data types intended for building
   search trees and association lists.

:salescritter: /sayls'kri`tr/ n. Pejorative hackerism for a computer
   salesperson.  Hackers tell the following joke:

     Q. What's the difference between a used-car dealer and a
        computer salesman?
     A. The used-car dealer knows he's lying.  [Some versions add:
        ...and probably knows how to drive.]

   This reflects the widespread hacker belief that salescritters are
   self-selected for stupidity (after all, if they had brains and the
   inclination to use them, they'd be in programming).  The terms
   `salesthing' and `salesdroid' are also common.  Compare
   {marketroid}, {suit}, {droid}.

:salt mines: n. Dense quarters housing large numbers of programmers
   working long hours on grungy projects, with some hope of seeing the
   end of the tunnel in N years.  Noted for their absence of sunshine.
   Compare {playpen}, {sandbox}.

:salt substrate: [MIT] n. Collective noun used to refer to potato
   chips, pretzels, saltines, or any other form of snack food
   designed primarily as a carrier for sodium chloride.  From the
   technical term `chip substrate', used to refer to the silicon on the
   top of which the active parts of integrated circuits are deposited.

:same-day service: n. Ironic term used to describe long response
   time, particularly with respect to {{MS-DOS}} system calls (which
   ought to require only a tiny fraction of a second to execute).
   Such response time is a major incentive for programmers to write
   programs that are not {well-behaved}.  See also {PC-ism}.

:samurai: n. A hacker who hires out for legal cracking jobs,
   snooping for factions in corporate political fights, lawyers
   pursuing privacy-rights and First Amendment cases, and other
   parties with legitimate reasons to need an electronic locksmith.
   In 1991, mainstream media reported the existence of a loose-knit
   culture of samurai that meets electronically on BBS systems, mostly
   bright teenagers with personal micros; they have modeled
   themselves explicitly on the historical samurai of Japan and on the
   "net cowboys" of William Gibson's {cyberpunk} novels.  Those
   interviewed claim to adhere to a rigid ethic of loyalty to their
   employers and to disdain the vandalism and theft practiced by
   criminal crackers as beneath them and contrary to the hacker ethic;
   some quote Miyamoto Musashi's `Book of Five Rings', a classic
   of historical samurai doctrine, in support of these principles.
   See also {Stupids}, {social engineering}, {cracker},
   {hacker ethic, the}, and {dark-side hacker}.

:sandbender: [IBM] n. A person involved with silicon lithography and
   the physical design of chips.  Compare {ironmonger}, {polygon
   pusher}.

:sandbox: n. 1. (also `sandbox, the') Common term for the
   R&D department at many software and computer companies (where hackers
   in commercial environments are likely to be found).  Half-derisive,
   but reflects the truth that research is a form of creative play.
   Compare {playpen}.  2. Syn. {link farm}

:sanity check: n. 1. The act of checking a piece of code (or
   anything else, e.g., a USENET posting) for completely stupid mistakes.
   Implies that the check is to make sure the author was sane when it
   was written; e.g., if a piece of scientific software relied on a
   particular formula and was giving unexpected results, one might
   first look at the nesting of parentheses or the coding of the
   formula, as a `sanity check', before looking at the more complex
   I/O or data structure manipulation routines, much less the
   algorithm itself.  Compare {reality check}.  2. A run-time test,
   either validating input or ensuring that the program hasn't screwed
   up internally (producing an inconsistent value or state).

:Saturday-night special: [from police slang for a cheap handgun] n.
   A program or feature kluged together during off hours, under a
   deadline, and in response to pressure from a {salescritter}.
   Such hacks are dangerously unreliable, but all too often sneak into
   a production release after insufficient review.

:say: vt. 1. To type to a terminal.  "To list a directory
   verbosely, you have to say `ls -l'."  Tends to imply a
   {newline}-terminated command (a `sentence').  2. A computer
   may also be said to `say' things to you, even if it doesn't have
   a speech synthesizer, by displaying them on a terminal in response
   to your commands.  Hackers find it odd that this usage confuses
   {mundane}s.

:scag: vt. To destroy the data on a disk, either by corrupting the
  filesystem or by causing media damage.  "That last power hit scagged
  the system disk."  Compare {scrog}, {roach}.

:scanno: /skan'oh/ n. An error in a document caused by a scanner
   glitch, analogous to a typo or {thinko}.

:schroedinbug: /shroh'din-buhg/ [MIT: from the Schroedinger's Cat
   thought-experiment in quantum physics] n. A design or
   implementation bug in a program that doesn't manifest until someone
   reading source or using the program in an unusual way notices that
   it never should have worked, at which point the program promptly
   stops working for everybody until fixed.  Though (like {bit
   rot}) this sounds impossible, it happens; some programs have
   harbored latent schroedinbugs for years.  Compare {heisenbug},
   {Bohr bug}, {mandelbug}.

:science-fiction fandom:: n. Another voluntary subculture having a
   very heavy overlap with hackerdom; most hackers read SF and/or
   fantasy fiction avidly, and many go to `cons' (SF conventions) or
   are involved in fandom-connected activities such as the Society for
   Creative Anachronism.  Some hacker jargon originated in SF fandom;
   see {defenestration}, {great-wall}, {cyberpunk}, {h},
   {ha ha only serious}, {IMHO}, {mundane}, {neep-neep},
   {Real Soon Now}.  Additionally, the jargon terms {cowboy},
   {cyberspace}, {de-rezz}, {go flatline}, {ice},
   {phage}, {virus}, {wetware}, {wirehead}, and {worm}
   originated in SF stories.

:scram switch: [from the nuclear power industry] n. An
   emergency-power-off switch (see {Big Red Switch}), esp. one
   positioned to be easily hit by evacuating personnel.  In general,
   this is *not* something you {frob} lightly; these often
   initiate expensive events (such as Halon dumps) and are installed
   in a {dinosaur pen} for use in case of electrical fire or in
   case some luckless {field servoid} should put 120 volts across
   himself while {Easter egging}.  (See also {molly-guard}.)

:scratch: 1. [from `scratchpad'] adj. Describes a data
   structure or recording medium attached to a machine for testing or
   temporary-use purposes; one that can be {scribble}d on without
   loss.  Usually in the combining forms `scratch memory',
   `scratch register', `scratch disk', `scratch tape',
   `scratch volume'.  See {scratch monkey}.  2. [primarily
   IBM] vt. To delete (as in a file).

:scratch monkey: n. As in "Before testing or reconfiguring, always
   mount a {scratch monkey}", a proverb used to advise caution
   when dealing with irreplaceable data or devices.  Used to refer to
   any scratch volume hooked to a computer during any risky operation
   as a replacement for some precious resource or data that might
   otherwise get trashed.

   This term preserves the memory of Mabel, the Swimming Wonder
   Monkey, star of a biological research program at the University of
   Toronto.  Mabel was not (so the legend goes) your ordinary monkey;
   the university had spent years teaching her how to swim, breathing
   through a regulator, in order to study the effects of different gas
   mixtures on her physiology.  Mabel suffered an untimely demise one
   day when a DEC engineer troubleshooting a crash on the program's VAX 
   inadvertently interfered with some custom hardware that was wired
   to Mabel.

   It is reported that, after calming down an understandably irate
   customer sufficiently to ascertain the facts of the matter, a DEC
   troubleshooter called up the {field circus} manager responsible
   and asked him sweetly, "Can you swim?"

   Not all the consequences to humans were so amusing; the sysop of
   the machine in question was nearly thrown in jail at the behest of
   certain clueless droids at the local `humane' society.  The moral
   is clear: When in doubt, always mount a scratch monkey.

   [There is a version of this story, complete with reported dialogue
   between one of the project people and DEC field service, that has
   been circulating on Internet since 1986.  It is hilarious and
   mythic, but gets some facts wrong.  For example, it reports the
   machine as a PDP-11 and alleges that Mabel's demise occurred when
   DEC {PM}ed the machine.  Earlier versions of this entry were
   based on that story; this one has been corrected from an interview
   with the hapless sysop. --- ESR]

:scream and die: v. Syn. {cough and die}, but connotes that an
   error message was printed or displayed before the program crashed.

:screaming tty: [UNIX] n. A terminal line which is either
   disconnected or connected to a powered-off terminal which, due to
   misconfiguration, misimplementation, or simple bad luck, acts as a
   source of an infinite number of random characters.  A screaming tty
   or two can seriously degrade the performance of a vanilla UNIX
   system; the arriving "characters" are treated as userid/password
   pairs and tested as such.  The UNIX password encryption algorithm
   is designed to be computationally intensive in order to foil
   brute-force crack attacks, so though none of the logins succeeds;
   the overhead of rejecting them all can be substantial.

:screw: [MIT] n. A {lose}, usually in software.  Especially used for
   user-visible misbehavior caused by a bug or misfeature.  This use
   has become quite widespread outside MIT.

:screwage: /skroo'*j/ n. Like {lossage} but connotes that the
   failure is due to a designed-in misfeature rather than a simple
   inadequacy or a mere bug.

:scribble: n. To modify a data structure in a random and
   unintentionally destructive way.  "Bletch! Somebody's
   disk-compactor program went berserk and scribbled on the i-node
   table."  "It was working fine until one of the allocation routines
   scribbled on low core."  Synonymous with {trash}; compare {mung},
   which conveys a bit more intention, and {mangle}, which is more
   violent and final.

:scrog: /skrog/ [Bell Labs] vt. To damage, trash, or corrupt a
   data structure.  "The list header got scrogged."  Also reported
   as `skrog', and ascribed to the comic strip "The Wizard of
   Id".  Compare {scag}; possibly the two are related.  Equivalent
   to {scribble} or {mangle}.

:scrool: /skrool/ [from the pioneering Roundtable chat system in
   Houston ca. 1984; prob. originated as a typo for `scroll'] n. The
   log of old messages, available for later perusal or to help one get
   back in synch with the conversation. It was originally called the
   `scrool monster', because an early version of the roundtable
   software had a bug where it would dump all 8K of scrool on a user's
   terminal.

:scrozzle: /skroz'l/ vt. Used when a self-modifying code segment runs
   incorrectly and corrupts the running program or vital data.  "The
   damn compiler scrozzled itself again!"

:scruffies: n. See {neats vs. scruffies}.

:SCSI: [Small Computer System Interface] n. A bus-independent
   standard for system-level interfacing between a computer and
   intelligent devices.  Typically annotated in literature with `sexy'
   (/sek'see/), `sissy' (/sis'ee/), and `scuzzy' (/skuh'zee/) as
   pronunciation guides --- the last being the overwhelmingly
   predominant form, much to the dismay of the designers and their
   marketing people.  One can usually assume that a person who
   pronounces it /S-C-S-I/ is clueless.

:ScumOS: /skuhm'os/ or /skuhm'O-S/ n. Unflattering hackerism
   for SunOS, the UNIX variant supported on Sun Microsystems's UNIX
   workstations (see also {sun-stools}), and compare {AIDX},
   {terminak}, {Macintrash}, {Nominal Semidestructor},
   {Open DeathTrap}, {HP-SUX}.  Despite what this term might
   suggest, Sun was founded by hackers and still enjoys excellent
   relations with hackerdom; usage is more often in exasperation than
   outright loathing.

:search-and-destroy mode: n. Hackerism for the search-and-replace
   facility in an editor, so called because an incautiously chosen
   match pattern can cause {infinite} damage.

:second-system effect: n. (sometimes, more euphoniously,
   `second-system syndrome') When one is designing the successor to
   a relatively small, elegant, and successful system, there is a
   tendency to become grandiose in one's success and design an
   {elephantine} feature-laden monstrosity.  The term was first
   used by Fred Brooks in his classic `The Mythical Man-Month:
   Essays on Software Engineering' (Addison-Wesley, 1975; ISBN
   0-201-00650-2).  It described the jump from a set of nice, simple
   operating systems on the IBM 70xx series to OS/360 on the
   360 series.  A similar effect can also happen in an evolving
   system; see {Brooks's Law}, {creeping elegance}, {creeping
   featurism}.  See also {{Multics}}, {OS/2}, {X}, {software
   bloat}.

   This version of the jargon lexicon has been described (with
   altogether too much truth for comfort) as an example of
   second-system effect run amok on jargon-1....

:secondary damage: n. When a fatal error occurs (esp. a
   {segfault}) the immediate cause may be that a pointer has been
   trashed due to a previous {fandango on core}.  However, this
   fandango may have been due to an *earlier* fandango, so no
   amount of analysis will reveal (directly) how the damage occurred.
   "The data structure was clobbered, but it was secondary damage."

   By extension, the corruption resulting from N cascaded
   fandangoes on core is `Nth-level damage'.  There is at least
   one case on record in which 17 hours of {grovel}ling with
   `adb' actually dug up the underlying bug behind an instance of
   seventh-level damage!  The hacker who accomplished this
   near-superhuman feat was presented with an award by his fellows.

:security through obscurity: alt. `security by obscurity' n. A
   term applied by hackers to most OS vendors' favorite way of coping
   with security holes --- namely, ignoring them and not documenting
   them and trusting that nobody will find out about them and that
   people who do find out about them won't exploit them.  This
   "strategy" never works for long and occasionally sets the world
   up for debacles like the {RTM} worm of 1988 (see {Great Worm,
   the}), but once the brief moments of panic created by such events
   subside most vendors are all too willing to turn over and go back
   to sleep.  After all, actually fixing the bugs would siphon off the
   resources needed to implement the next user-interface frill on
   marketing's wish list --- and besides, if they started fixing
   security bugs customers might begin to *expect* it and imagine
   that their warranties of merchantability gave them some sort of
   *right* to a system with fewer holes in it than a shotgunned
   Swiss cheese, and *then* where would we be?

   Historical note: There are conflicting stories about the origin of
   this term.  It has been claimed that it was first used in the
   USENET newsgroup in comp.sys.apollo during a campaign to get
   HP/Apollo to fix security problems in its UNIX-{clone}
   Aegis/DomainOS (they didn't change a thing).  {ITS} fans, on the
   other hand, say it was coined years earlier in opposition to the
   incredibly paranoid {Multics} people down the hall, for whom
   security was everything.  In the ITS culture it referred to (1) the
   fact that that by the time a tourist figured out how to make
   trouble he'd generally gotten over the urge to make it, because he
   felt part of the community; and (2) (self-mockingly) the poor
   coverage of the documentation and obscurity of many commands.  One
   instance of *deliberate* security through obscurity is
   recorded; the command to allow patching the running ITS system
   ({altmode} altmode control-R) echoed as $$^D.  If you actually
   typed alt alt ^D, that set a flag that would prevent patching the
   system even if you later got it right.

:SED: [TMRC, from `Light-Emitting Diode'] /S-E-D/ n.
   Smoke-emitting diode.  A {friode} that lost the war. See
   {LER}.

:segfault: n.,vi. Syn. {segment}, {seggie}.

:seggie: /seg'ee/ [UNIX] n. Shorthand for {segmentation fault}
   reported from Britain.

:segment: /seg'ment/ vi. To experience a {segmentation fault}.
   Confusingly, this is often pronounced more like the noun `segment'
   than like mainstream v. segment; this is because it is actually a
   noun shorthand that has been verbed.

:segmentation fault: n. [UNIX] 1. An error in which a running program
   attempts to access memory not allocated to it and {core dump}s
   with a segmentation violation error.  2. To lose a train of
   thought or a line of reasoning.  Also uttered as an exclamation at
   the point of befuddlement.

:segv: /seg'vee/ n.,vi. Yet another synonym for {segmentation
   fault} (actually, in this case, `segmentation violation').

:self-reference: n. See {self-reference}.

:selvage: /sel'v*j/ [from sewing] n. See {chad} (sense 1).

:semi: /se'mee/ or /se'mi:/ 1. n. Abbreviation for
   `semicolon', when speaking.  "Commands to {grind} are
   prefixed by semi-semi-star" means that the prefix is `;;*',
   not 1/4 of a star.  2. A prefix used with words such as
   `immediately' as a qualifier.  "When is the system coming up?"
   "Semi-immediately." (That is, maybe not for an hour.)  "We did
   consider that possibility semi-seriously."  See also
   {infinite}.

:semi-infinite: n. See {infinite}.

:senior bit: [IBM] n. Syn. {meta bit}.

:server: n. A kind of {daemon} that performs a service for the
   requester and which often runs on a computer other than the one on
   which the server runs.  A particularly common term on the Internet,
   which is rife with `name servers', `domain servers', `news
   servers', `finger servers', and the like.

:SEX: /seks/ [Sun Users' Group & elsewhere] n. 1. Software
   EXchange.  A technique invented by the blue-green algae hundreds of
   millions of years ago to speed up their evolution, which had been
   terribly slow up until then.  Today, SEX parties are popular among
   hackers and others (of course, these are no longer limited to
   exchanges of genetic software).  In general, SEX parties are a
   {Good Thing}, but unprotected SEX can propagate a {virus}.
   See also {pubic directory}.  2. The rather Freudian mnemonic
   often used for Sign EXtend, a machine instruction found in the
   PDP-11 and many other architectures.  The RCA 1802 chip used in the
   early Elf and SuperElf personal computers had a `SEt X register'
   SEX instruction, but this seems to have had little folkloric
   impact.

   DEC's engineers nearly got a PDP-11 assembler that used the
   `SEX' mnemonic out the door at one time, but (for once)
   marketing wasn't asleep and forced a change.  That wasn't the last
   time this happened, either.  The author of `The Intel 8086
   Primer', who was one of the original designers of the 8086, noted
   that there was originally a `SEX' instruction on that
   processor, too.  He says that Intel management got cold feet and
   decreed that it be changed, and thus the instruction was renamed
   `CBW' and `CWD' (depending on what was being extended).
   Amusingly, the Intel 8048 (the microcontroller used in IBM PC
   keyboards) is also missing straight `SEX' but has logical-or
   and logical-and instructions `ORL' and `ANL'.

   The Motorola 6809, used in the U.K.'s `Dragon 32' personal
   computer, actually had an official `SEX' instruction; the 6502
   in the Apple II it competed with did not.  British hackers thought
   this made perfect mythic sense; after all, it was commonly
   observed, you could (on some theoretical level) have sex with a
   dragon, but you can't have sex with an apple.

:sex changer: n. Syn. {gender mender}.

:shambolic link: /sham-bol'ik link/ n. A UNIX symbolic link,
   particularly when it confuses you, points to nothing at all, or
   results in you ending up in some completely unexpected part of the
   filesystem....

:sharchive: [UNIX and USENET; from /bin/sh archive] n. A {flatten}ed
   representation of a set of one or more files, with the unique
   property that it can be unflattened (the original files restored) by
   feeding it through a standard UNIX shell; thus, a sharchive can be
   distributed to anyone running UNIX, and no special unpacking software is
   required.  Sharchives are also intriguing in that they are
   typically created by shell scripts; the script that produces
   sharchives is thus a script which produces self-unpacking scripts,
   which may themselves contain scripts.  (The downsides of sharchives
   are that they are an ideal venue for {Trojan horse} attacks and that,
   for recipients not running UNIX, no simple un-sharchiving program is
   possible; sharchives can and do make use of arbitrarily-powerful
   shell features.)

:Share and enjoy!: imp. 1. Commonly found at the end of software
   release announcements and {README file}s, this phrase indicates
   allegience to the hacker ethic of free information sharing (see
   {hacker ethic, the}, sense 1).  2. The motto of the Sirius
   Cybernetics Corporation (the ultimate gaggle of incompetent
   {suit}s) in Douglas Adams's `Hitch Hiker's Guide to the
   Galaxy'.  The irony of using this as a cultural recognition signal
   appeals to freeware hackers.

:shareware: /sheir'weir/ n. {Freeware} (sense 1) for which the
   author requests some payment, usually in the accompanying
   documentation files or in an announcement made by the software
   itself.  Such payment may or may not buy additional support or
   functionality.  See also {careware}, {charityware},
   {crippleware}, {guiltware}, {postcardware}, and
   {-ware}; compare {payware}.

:shelfware: /shelfweir/ n. Software purchased on a whim (by an
   individual user) or in accordance with policy (by a corporation or
   government agency), but not actually required for any particular
   use.  Therefore, it often ends up on some shelf.

:shell: [orig. {{Multics}} techspeak, widely propagated via UNIX] n.
   1. [techspeak] The command interpreter used to pass commands to an
   operating system; so called because it is the part of the operating
   system that interfaces with the outside world.  2. More generally,
   any interface program that mediates access to a special resource
   or {server} for convenience, efficiency, or security reasons; for
   this meaning, the usage is usually `a shell around' whatever.
   This sort of program is also called a `wrapper'.

:shell out: [UNIX] n. To spawn an interactive subshell from within
   a program (e.g., a mailer or editor).  "Bang foo runs foo in a
   subshell, while bang alone shells out."

:shift left (or right) logical: [from any of various machines'
   instruction sets] 1. vi. To move oneself to the left (right).  To
   move out of the way.  2. imper. "Get out of that (my) seat!  You
   can shift to that empty one to the left (right)."  Often
   used without the `logical', or as `left shift' instead of
   `shift left'.  Sometimes heard as LSH /lish/, from the {PDP-10}
   instruction set.  See {Programmer's Cheer}.

:shim: n. A small piece of data inserted in order to achieve a
   desired memory alignment or other addressing property.  For
   example, the PDP-11 UNIX linker, in split I&D (instructions and
   data) mode, inserts a two-byte shim at location 0 in data space so
   that no data object will have an address of 0 (and be confused with
   the C null pointer). See also {loose bytes}.

:shitogram: /shit'oh-gram/ n. A *really* nasty piece of email.
   Compare {nastygram}, {flame}.

:short card: n. A half-length IBM PC expansion card or adapter that
   will fit in one of the two short slots located towards the right
   rear of a standard chassis (tucked behind the floppy disk drives).
   See also {tall card}.

:shotgun debugging: n. The software equivalent of {Easter egging};
   the making of relatively undirected changes to software in the hope
   that a bug will be perturbed out of existence.  This almost never
   works, and usually introduces more bugs.

:shovelware: n. Extra software dumped onto a CD-ROM or tape to fill 
   up the remaining space on the medium after the software distribution
   it's intended to carry, but not integrated with the distribution.

:showstopper: n. A hardware or (especially) software bug that makes
   an implementation effectively unusable; one that absolutely has to
   be fixed before development can go on.  Opposite in connotation
   from its original theatrical use, which refers to something
   stunningly *good*.

:shriek: n. See {excl}.  Occasional CMU usage, also in common use
   among APL fans and mathematicians, especially category theorists.

:Shub-Internet: /shuhb in't*r-net/ [MUD: from H. P. Lovecraft's
   evil fictional deity `Shub-Niggurath', the Black Goat with a
   Thousand Young] n. The harsh personification of the Internet,
   Beast of a Thousand Processes, Eater of Characters, Avatar of Line
   Noise, and Imp of Call Waiting; the hideous multi-tendriled entity
   formed of all the manifold connections of the net.  A sect of
   MUDders worships Shub-Internet, sacrificing objects and praying for
   good connections.  To no avail --- its purpose is malign and evil,
   and is the cause of all network slowdown.  Often heard as in
   "Freela casts a tac nuke at Shub-Internet for slowing her down."
   (A forged response often follows along the lines of:
   "Shub-Internet gulps down the tac nuke and burps happily.")  Also
   cursed by users of {FTP} and {telnet} when the system slows
   down.  The dread name of Shub-Internet is seldom spoken aloud, as
   it is said that repeating it three times will cause the being to
   wake, deep within its lair beneath the Pentagon.

:sidecar: n. 1. Syn. {slap on the side}.  Esp. used of add-ons
   for the late and unlamented IBM PCjr.  2. The IBM PC compatibility
   box that could be bolted onto the side of an Amiga.  Designed and
   produced by Commodore, it broke all of the company's own design
   rules.  If it worked with any other peripherals, it was by
   {magic}.

:SIG: /sig/ n. (also common as a prefix in combining forms) The
   Association for Computing Machinery traditionally sponsors Special
   Interest Groups in various technical areas; well-known ones include
   SIGPLAN (the Special Interest Group on Programming Languages),
   SIGARCH (the Special Interest Group for Computer Architecture) and
   SIGGRAPH (the Special Interest Group for Computer Graphics).
   Hackers, not surprisingly, like to overextend this naming
   convention to less formal associations like SIGBEER (at ACM
   conferences) and SIGFOOD (at University of Illinois).

:sig block: /sig blok/ [UNIX; often written `.sig' there] n.
   Short for `signature', used specifically to refer to the
   electronic signature block that most UNIX mail- and news-posting
   software will {automagically} append to outgoing mail and news.
   The composition of one's sig can be quite an art form, including an
   ASCII logo or one's choice of witty sayings (see {sig quote},
   {fool file, the}); but many consider large sigs a waste of
   {bandwidth}, and it has been observed that the size of one's sig
   block is usually inversely proportional to one's longevity and
   level of prestige on the net.

:sig quote: /sig kwoht/ [USENET] n. A maxim, quote, proverb, joke,
   or slogan embedded in one's {sig block} and intended to convey
   something of one's philosophical stance, pet peeves, or sense of
   humor. "Calm down, it's only ones and zeroes."

:sig virus: n. A parasitic {meme} embedded in a {sig block}.
   There was a {meme plague} or fad for these on USENET in late
   1991.  Most were equivalents of "I am a .sig virus.  Please reproduce
   me in your .sig block.".  Of course, the .sig virus's memetic hook
   is the giggle value of going along with the gag; this, however,
   was a self-limiting phenomenon as more and more people picked up
   on the idea.  There were creative variants on it; some people
   stuck `sig virus antibody' texts in their sigs, and there was at
   least one instance of a sig virus eater.

:signal-to-noise ratio: [from analog electronics] n. Used by hackers
   in a generalization of its technical meaning.  `Signal' refers to
   useful information conveyed by some communications medium, and
   `noise' to anything else on that medium.  Hence a low ratio implies
   that it is not worth paying attention to the medium in question.
   Figures for such metaphorical ratios are never given.  The term is
   most often applied to {USENET} newsgroups during {flame war}s.
   Compare {bandwidth}.  See also {coefficient of X}, {lost in
   the noise}.

:silicon: n. Hardware, esp. ICs or microprocessor-based computer
   systems (compare {iron}).  Contrasted with software.  See also
   {sandbender}.

:silly walk: [from Monty Python's Flying Circus] vi. 1. A ridiculous
   procedure required to accomplish a task.  Like {grovel}, but more
   {random} and humorous.  "I had to silly-walk through half the
   /usr directories to find the maps file."  2. Syn. {fandango on
   core}.

:silo: n. The FIFO input-character buffer in an RS-232 line card.  So
   called from DEC terminology used on DH and DZ line cards for the
   VAX and PDP-11, presumably because it was a storage space for
   fungible stuff that you put in the top and took out the bottom.

:Silver Book: n. Jensen and Wirth's infamous `Pascal User Manual
   and Report', so called because of the silver cover of the
   widely distributed Springer-Verlag second edition of 1978 (ISBN
   0-387-90144-2).  See {{book titles}}, {Pascal}.

:since time T equals minus infinity: adv. A long time ago; for as
   long as anyone can remember; at the time that some particular frob
   was first designed.  Usually the word `time' is omitted.  See also
   {time T}.

:sitename: /si:t'naym/ [UNIX/Internet] n. The unique electronic
   name of a computer system, used to identify it in UUCP mail,
   USENET, or other forms of electronic information interchange.  The
   folklore interest of sitenames stems from the creativity and humor
   they often display.  Interpreting a sitename is not unlike
   interpreting a vanity license plate; one has to mentally unpack it,
   allowing for mono-case and length restrictions and the lack of
   whitespace.  Hacker tradition deprecates dull,
   institutional-sounding names in favor of punchy, humorous, and
   clever coinages (except that it is considered appropriate for the
   official public gateway machine of an organization to bear the
   organization's name or acronym).  Mythological references, cartoon
   characters, animal names, and allusions to SF or fantasy literature
   are probably the most popular sources for sitenames (in roughly
   descending order).  The obligatory comment when discussing these is
   Harris's Lament: "All the good ones are taken!"  See also
   {network address}.

:skrog: v. Syn. {scrog}.

:skulker: n. Syn. {prowler}.

:slack: n. 1. Space allocated to a disk file but not actually used
   to store useful information.  The techspeak equivalent is `internal
   fragmentation'.  2. In the theology of the {Church of the
   SubGenius}, a mystical substance or quality that is the
   prerequisite of all human happiness.

   Since UNIX files are stored compactly, except for the unavoidable
   wastage in the last block or fragment, it might be said that "Unix
   has no slack".  See {ha ha only serious}.

:slap on the side: n. (also called a {sidecar}, or abbreviated
   `SOTS'.)  A type of external expansion hardware marketed by
   computer manufacturers (e.g., Commodore for the Amiga 500/1000
   series and IBM for the hideous failure called `PCjr').  Various
   SOTS boxes provided necessities such as memory, hard drive
   controllers, and conventional expansion slots.

:slash: n. Common name for the slant (`/', ASCII 0101111)
   character.  See {ASCII} for other synonyms.

:sleep: vi. 1. [techspeak] On a timesharing system, a process that
   relinquishes its claim on the scheduler until some given event
   occurs or a specified time delay elapses is said to `go to
   sleep'.  2. In jargon, used very similarly to v. {block}; also
   in `sleep on', syn. with `block on'.  Often used to
   indicate that the speaker has relinquished a demand for resources
   until some (possibly unspecified) external event: "They can't get
   the fix I've been asking for into the next release, so I'm going to
   sleep on it until the release, then start hassling them again."

:slim: n. A small, derivative change (e.g., to code).

:slop: n. 1. A one-sided {fudge factor}, that is, an allowance for
   error but in only one of two directions.  For example, if you need
   a piece of wire 10 feet long and have to guess when you cut it,
   you make very sure to cut it too long, by a large amount if
   necessary, rather than too short by even a little bit, because you
   can always cut off the slop but you can't paste it back on again.
   When discrete quantities are involved, slop is often introduced to
   avoid the possibility of being on the losing side of a {fencepost
   error}.  2. The percentage of `extra' code generated by a compiler
   over the size of equivalent assembler code produced by
   {hand-hacking}; i.e., the space (or maybe time) you lose because
   you didn't do it yourself.  This number is often used as a measure
   of the goodness of a compiler; slop below 5% is very good, and
   10% is usually acceptable.  With modern compiler technology, esp.
   on RISC machines, the compiler's slop may actually be
   *negative*; that is, humans may be unable to generate code as
   good.  This is one of the reasons assembler programming is no
   longer common.

:slopsucker: /slop'suhk-r/ n. A lowest-priority task that must
   wait around until everything else has `had its fill' of machine
   resources.  Only when the machine would otherwise be idle is the
   task allowed to `suck up the slop'.  Also called a `hungry puppy'
   or `bottom feeder'.  One common variety of slopsucker hunts for
   large prime numbers.  Compare {background}.

:slurp: vt. To read a large data file entirely into {core} before
   working on it.  This may be contrasted with the strategy of reading
   a small piece at a time, processing it, and then reading the next
   piece.  "This program slurps in a 1K-by-1K matrix and does
   an FFT."  See also {sponge}.

:smart: adj. Said of a program that does the {Right Thing} in a
   wide variety of complicated circumstances.  There is a difference
   between calling a program smart and calling it intelligent; in
   particular, there do not exist any intelligent programs (yet ---
   see {AI-complete}).  Compare {robust} (smart programs can be
   {brittle}).

:smart terminal: n. 1. A terminal that has enough computing capability
   to render graphics or to offload some kind of front-end processing
   from the computer it talks to.  The development of workstations and
   personal computers has made this term and the product it describes
   semi-obsolescent, but one may still hear variants of the phrase
   `act like a smart terminal' used to describe the behavior of
   workstations or PCs with respect to programs that execute almost
   entirely out of a remote {server}'s storage, using said devices
   as displays.  Compare {glass tty}.  2. obs. Any terminal with an
   addressable cursor; the opposite of a {glass tty}.  Today, a
   terminal with merely an addressable cursor, but with none of the
   more-powerful features mentioned in sense 1, is called a {dumb
   terminal}.

   There is a classic quote from Rob Pike (inventor of the {blit}
   terminal): "A smart terminal is not a smart*ass* terminal,
   but rather a terminal you can educate."  This illustrates a common
   design problem: The attempt to make peripherals (or anything else)
   intelligent sometimes results in finicky, rigid `special
   features' that become just so much dead weight if you try to use
   the device in any way the designer didn't anticipate.  Flexibility
   and programmability, on the other hand, are *really* smart.
   Compare {hook}.

:smash case: vi. To lose or obliterate the uppercase/lowercase
   distinction in text input.  "MS-DOS will automatically smash case
   in the names of all the files you create."  Compare {fold case}.

:smash the stack: [C programming] n. On many C implementations it
   is possible to corrupt the execution stack by writing past the end
   of an array declared `auto' in a routine.  Code that does this
   is said to `smash the stack', and can cause return from the
   routine to jump to a random address.  This can produce some of the
   most insidious data-dependent bugs known to mankind.  Variants
   include `trash' the stack, {scribble} the stack, {mangle}
   the stack; the term **{mung} the stack is not used, as this is
   never done intentionally.  See {spam}; see also {aliasing
   bug}, {fandango on core}, {memory leak}, {memory smash},
   {precedence lossage}, {overrun screw}.

:smiley: n. See {emoticon}.

:smoke: 1. vi. To {crash}, blow up, usually spectacularly. "The 
   new version smoked, just like the last one."  Used for both hardware
   (where it often describes an actual physical event), and software
   (where it's merely colorful).  2. vi. [from automotive slang] To be
   conspicuously fast.  "That processor really smokes."

:smoke and mirrors: n. Marketing deceptions.  The term is
   mainstream in this general sense.  Among hackers it's strongly
   associated with bogus demos and crocked {benchmark}s (see also
   {MIPS}, {machoflops}).  "They claim their new box cranks 50
   MIPS for under $5000, but didn't specify the instruction mix ---
   sounds like smoke and mirrors to me."  The phrase has been said to
   derive from carnie slang for magic acts and `freak show' displays
   that depend on `trompe l'oeil' effects, but also calls to mind
   the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") for
   whom the hearts of huge numbers of human sacrificial victims were
   regularly cut out.  Upon hearing about a rigged demo or yet another
   round of fantasy-based marketing promises, hackers often feel
   analogously disheartened.

:smoke test: n. 1. A rudimentary form of testing applied to
   electronic equipment following repair or reconfiguration, in which
   power is applied and the tester checks for sparks, smoke, or other
   dramatic signs of fundamental failure.  See {magic smoke}.
   2. By extension, the first run of a piece of software after
   construction or a critical change.  See and compare {reality
   check}.

   There is an interesting semi-parallel to this term among
   typographers and printers: When new typefaces are being punch-cut by
   hand, a `smoke test' (hold the letter in candle smoke, then press
   it onto paper) is used to check out new dies.

:smoking clover: [ITS] n. A {display hack} originally due to
   Bill Gosper.  Many convergent lines are drawn on a color monitor in
   {AOS} mode (so that every pixel struck has its color
   incremented).  The lines all have one endpoint in the middle of the
   screen; the other endpoints are spaced one pixel apart around the
   perimeter of a large square.  The color map is then repeatedly
   rotated.  This results in a striking, rainbow-hued, shimmering
   four-leaf clover.  Gosper joked about keeping it hidden from the
   FDA (the U.S.'s Food and Drug Administration) lest its
   hallucinogenic properties cause it to be banned.

:SMOP: /S-M-O-P/ [Simple (or Small) Matter of Programming] n.
   1. A piece of code, not yet written, whose anticipated length is
   significantly greater than its complexity.  Used to refer to a
   program that could obviously be written, but is not worth the
   trouble.  Also used ironically to imply that a difficult problem
   can be easily solved because a program can be written to do it; the
   irony is that it is very clear that writing such a program will be
   a great deal of work.  "It's easy to enhance a FORTRAN compiler to
   compile COBOL as well; it's just an SMOP."  2. Often used
   ironically by the intended victim when a suggestion for a program
   is made which seems easy to the suggester, but is obviously (to the
   victim) a lot of work.

:smurf: /smerf/ [from the soc.motss newsgroup on USENET,
   after some obnoxiously gooey cartoon characters] n. A newsgroup
   regular with a habitual style that is irreverent, silly, and
   cute.  Like many other hackish terms for people, this one may
   be praise or insult depending on who uses it.  In general, being
   referred to as a smurf is probably not going to make your day
   unless you've previously adopted the label yourself in a spirit of
   irony.  Compare {old fart}.

:SNAFU principle: /sna'foo prin'si-pl/ [from a WWII Army
   ac-ro-nym for `Situation Normal, All Fucked Up'] n. "True
   communication is possible only between equals, because inferiors
   are more consistently rewarded for telling their superiors pleasant
   lies than for telling the truth." --- a central tenet of
   {Discordianism}, often invoked by hackers to explain why
   authoritarian hierarchies screw up so reliably and systematically.
   The effect of the SNAFU principle is a progressive disconnection of
   decision-makers from reality.  This lightly adapted version of a
   fable dating back to the early 1960s illustrates the phenomenon
   perfectly:

     In the beginning was the plan,
            and then the specification;
     And the plan was without form,
            and the specification was void.

     And darkness
            was on the faces of the implementors thereof;
     And they spake unto their leader,
            saying:
     "It is a crock of shit,
            and smells as of a sewer."

     And the leader took pity on them,
            and spoke to the project leader:
     "It is a crock of excrement,
            and none may abide the odor thereof."

     And the project leader
            spake unto his section head, saying:
     "It is a container of excrement,
            and it is very strong, such that none may abide it."

     The section head then hurried to his department manager,
            and informed him thus:
     "It is a vessel of fertilizer,
            and none may abide its strength."

     The department manager carried these words
           to his general manager,
     and spoke unto him
           saying:
     "It containeth that which aideth the growth of plants,
           and it is very strong."

     And so it was that the general manager rejoiced
           and delivered the good news unto the Vice President.
     "It promoteth growth,
           and it is very powerful."

     The Vice President rushed to the President's side,
           and joyously exclaimed:
     "This powerful new software product
           will promote the growth of the company!"

     And the President looked upon the product,
           and saw that it was very good.

   After the subsequent disaster, the {suit}s protect themselves by
   saying "I was misinformed!", and the implementors are demoted or
   fired.

:snail: vt. To {snail-mail} something. "Snail me a copy of those
   graphics, will you?"

:snail-mail: n. Paper mail, as opposed to electronic.  Sometimes
   written as the single word `SnailMail'.  One's postal address is,
   correspondingly, a `snail address'.  Derives from earlier coinage
   `USnail' (from `U.S. Mail'), for which there have been
   parody posters and stamps made.  Oppose {email}.

:snap: v. To replace a pointer to a pointer with a direct pointer;
   to replace an old address with the forwarding address found there.
   If you telephone the main number for an institution and ask for a
   particular person by name, the operator may tell you that person's
   extension before connecting you, in the hopes that you will `snap
   your pointer' and dial direct next time.  The underlying metaphor
   may be that of a rubber band stretched through a number of
   intermediate points; if you remove all the thumbtacks in the
   middle, it snaps into a straight line from first to last.  See
   {chase pointers}.

   Often, the behavior of a {trampoline} is to perform an error
   check once and then snap the pointer that invoked it so as
   henceforth to bypass the trampoline (and its one-shot error check).
   In this context one also speaks of `snapping links'.  For
   example, in a LISP implementation, a function interface trampoline
   might check to make sure that the caller is passing the correct
   number of arguments; if it is, and if the caller and the callee are
   both compiled, then snapping the link allows that particular path
   to use a direct procedure-call instruction with no further
   overhead.

:snarf: /snarf/ vt. 1. To grab, esp. to grab a large document
   or file for the purpose of using it with or without the author's
   permission.  See also {BLT}.  2. [in the UNIX community] To
   fetch a file or set of files across a network.  See also
   {blast}.  This term was mainstream in the late 1960s, meaning
   `to eat piggishly'.  It may still have this connotation in
   context.  "He's in the snarfing phase of hacking --- {FTP}ing
   megs of stuff a day."  3. To acquire, with little concern for
   legal forms or politesse (but not quite by stealing).  "They
   were giving away samples, so I snarfed a bunch of them."
   4. Syn. for {slurp}.  "This program starts by snarfing the
   entire database into core, then...." 5. [GEnie] To spray
   food or {programming fluid}s due to laughing at the wrong
   moment.  "I was drinking coffee, and when I read your post I
   snarfed all over my desk." "If I keep reading this topic, I think
   I'll have to snarf-proof my computer with a keyboard {condom}."
   [This sense appears to be widespread among mundane teenagers ---
   ESR]

:snarf & barf: /snarf'n-barf`/ n. Under a {WIMP environment},
   the act of grabbing a region of text and then stuffing the contents
   of that region into another region (or the same one) to avoid
   retyping a command line.  In the late 1960s, this was a mainstream
   expression for an `eat now, regret it later' cheap-restaurant
   expedition.

:snarf down: v. To {snarf}, with the connotation of absorbing,
   processing, or understanding.  "I'll  snarf down the latest
   version of the {nethack} user's guide --- It's been a while
   since I played last and I don't know what's changed recently."

:snark: [Lewis Carroll, via the Michigan Terminal System] n. 1. A
   system failure.  When a user's process bombed, the operator would
   get the message "Help, Help, Snark in MTS!"  2. More generally,
   any kind of unexplained or threatening event on a computer
   (especially if it might be a boojum).  Often used to refer to an
   event or a log file entry that might indicate an attempted security
   violation.  See {snivitz}.  3. UUCP name of
   snark.thyrsus.com, home site of the Jargon File 2.*.* versions
   (i.e., this lexicon).

:sneakernet: /snee'ker-net/ n. Term used (generally with ironic
   intent) for transfer of electronic information by physically
   carrying tape, disks, or some other media from one machine to
   another.  "Never underestimate the bandwidth of a station wagon
   filled with magtape, or a 747 filled with CD-ROMs."  Also called
   `Tennis-Net', `Armpit-Net', `Floppy-Net' or `Shoenet'.

:sniff: v.,n. Synonym for {poll}.

:snivitz: /sniv'itz/ n. A hiccup in hardware or software; a small,
   transient problem of unknown origin (less serious than a
   {snark}).  Compare {glitch}.

:SO: /S-O/ n. 1. (also `S.O.') Abbrev. for Significant
   Other, almost invariably written abbreviated and pronounced
   /S-O/ by hackers.  Used to refer to one's primary
   relationship, esp. a live-in to whom one is not married.  See
   {MOTAS}, {MOTOS}, {MOTSS}.  2. The Shift Out control
   character in ASCII (Control-N, 0001110).

:social engineering: n. Term used among {cracker}s and
   {samurai} for cracking techniques that rely on weaknesses in
   {wetware} rather than software; the aim is to trick people into
   revealing passwords or other information that compromises a target
   system's security.  Classic scams include phoning up a mark who has
   the required information and posing as a field service tech or a
   fellow employee with an urgent access problem.  See also the
   {tiger team} story in the {patch} entry.

:social science number: [IBM] n. A statistic that is
   {content-free}, or nearly so.  A measure derived via methods of
   questionable validity from data of a dubious and vague nature.
   Predictively, having a social science number in hand is seldom much
   better than nothing, and can be considerably worse.  {Management}
   loves them.  See also {numbers}, {math-out}, {pretty
   pictures}.

:soft boot: n. See {boot}.

:softcopy: /soft'ko-pee/ n. [by analogy with `hardcopy'] A
   machine-readable form of corresponding hardcopy.  See {bits},
   {machinable}.

:software bloat: n. The results of {second-system effect} or
   {creeping featuritis}.  Commonly cited examples include
   `ls(1)', {X}, {BSD}, {Missed'em-five}, and {OS/2}.

:software laser: n. A laser works by bouncing photons back and
   forth between two mirrors, one totally reflective and one partially
   reflective.  If the lasing material (usually a crystal) has the
   right properties, photons scattering off the atoms in the crystal
   will excite cascades of more photons, all in lockstep.  Eventually
   the beam will escape through the partially-reflective mirror.  One
   kind of {sorcerer's apprentice mode} involving {bounce message}s
   can produce closely analogous results, with a {cascade} of
   messages escaping to flood nearby systems.  By mid-1993 there had
   been at least two publicized incidents of this kind.

:software rot: n. Term used to describe the tendency of software
   that has not been used in a while to {lose}; such failure may be
   semi-humorously ascribed to {bit rot}.  More commonly,
   `software rot' strikes when a program's assumptions become out
   of date.  If the design was insufficiently {robust}, this may
   cause it to fail in mysterious ways.

   For example, owing to endemic shortsightedness in the design of
   COBOL programs, most will succumb to software rot when their
   2-digit year counters {wrap around} at the beginning of the
   year 2000.  Actually, related lossages often afflict centenarians
   who have to deal with computer software designed by unimaginative
   clods.  One such incident became the focus of a minor public flap
   in 1990, when a gentleman born in 1889 applied for a driver's
   license renewal in Raleigh, North Carolina.  The new system
   refused to issue the card, probably because with 2-digit years the
   ages 101 and 1 cannot be distinguished.

   Historical note: Software rot in an even funnier sense than the
   mythical one was a real problem on early research computers (e.g.,
   the R1; see {grind crank}).  If a program that depended on a
   peculiar instruction hadn't been run in quite a while, the user
   might discover that the opcodes no longer did the same things they
   once did.  ("Hey, so-and-so needs an instruction to do
   such-and-such.  We can {snarf} this opcode, right?  No one uses
   it.")

   Another classic example of this sprang from the time an MIT hacker
   found a simple way to double the speed of the unconditional jump
   instruction on a PDP-6, so he patched the hardware.  Unfortunately,
   this broke some fragile timing software in a music-playing program,
   throwing its output out of tune.  This was fixed by adding a
   defensive initialization routine to compare the speed of a timing
   loop with the real-time clock; in other words, it figured out how
   fast the PDP-6 was that day, and corrected appropriately.

   Compare {bit rot}.

:softwarily: /soft-weir'i-lee/ adv. In a way pertaining to software.
   "The system is softwarily unreliable."  The adjective
   `softwary' is *not* used.  See {hardwarily}.

:softy: [IBM] n. Hardware hackers' term for a software expert who
   is largely ignorant of the mysteries of hardware.

:some random X: adj. Used to indicate a member of class X, with the
   implication that Xs are interchangeable.  "I think some random
   cracker tripped over the guest timeout last night."  See also
   {J. Random}.

:sorcerer's apprentice mode: [from Friedrich Schiller's `Der
   Zauberlehrling' via the film "Fantasia"] n. A bug in a
   protocol where, under some circumstances, the receipt of a message
   causes multiple messages to be sent, each of which, when received,
   triggers the same bug.  Used esp. of such behavior caused by
   {bounce message} loops in {email} software.  Compare
   {broadcast storm}, {network meltdown}, {software
   laser}, {ARMM}..

:SOS: n.,obs. /S-O-S/ 1. An infamously {losing} text editor.
   Once, back in the 1960s, when a text editor was needed for the
   PDP-6, a hacker crufted together a {quick-and-dirty} `stopgap
   editor' to be used until a better one was written.  Unfortunately,
   the old one was never really discarded when new ones (in
   particular, {TECO}) came along.  SOS is a descendant (`Son of
   Stopgap') of that editor, and many PDP-10 users gained the dubious
   pleasure of its acquaintance.  Since then other programs similar in
   style to SOS have been written, notably the early font editor BILOS
   /bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion
   `Bastard Issue, Loins of Stopgap' has been proposed).  2. /sos/
   n. To decrease; inverse of {AOS}, from the PDP-10 instruction
   set.

:source of all good bits: n. A person from whom (or a place from
   which) useful information may be obtained.  If you need to know
   about a program, a {guru} might be the source of all good bits.
   The title is often applied to a particularly competent secretary.

:space-cadet keyboard: n. A now-legendary device used on MIT LISP
   machines, which inspired several still-current jargon terms and
   influenced the design of {EMACS}.  It was equipped with no
   fewer than *seven* shift keys: four keys for {bucky bits}
   (`control', `meta', `hyper', and `super') and three like
   regular shift keys, called `shift', `top', and `front'.  Many
   keys had three symbols on them: a letter and a symbol on the top,
   and a Greek letter on the front.  For example, the `L' key had an
   `L' and a two-way arrow on the top, and the Greek letter lambda on
   the front.  By pressing this key with the right hand while playing
   an appropriate `chord' with the left hand on the shift keys, you
   can get the following results:

     L               
          lowercase l

     shift-L         
          uppercase L

     front-L         
          lowercase lambda

     front-shift-L   
          uppercase lambda

     top-L           
          two-way arrow
          (front and shift are ignored)

   And of course each of these might also be typed with any
   combination of the control, meta, hyper, and super keys.  On this
   keyboard, you could type over 8000 different characters!  This
   allowed the user to type very complicated mathematical text, and
   also to have thousands of single-character commands at his
   disposal.  Many hackers were actually willing to memorize the
   command meanings of that many characters if it reduced typing time
   (this attitude obviously shaped the interface of EMACS).  Other
   hackers, however, thought having that many bucky bits was overkill,
   and objected that such a keyboard can require three or four hands
   to operate.  See {bucky bits}, {cokebottle}, {double bucky},
   {meta bit}, {quadruple bucky}.

   Note: early versions of this entry incorrectly identified the
   space-cadet keyboard with the `Knight keyboard'.  Though both
   were designed by Tom Knight, the latter term was properly applied
   only to a keyboard used for ITS on the PDP-10 and modeled 
   on the Stanford keyboard (as described under {bucky bits}).  The
   true space-cadet keyboard evolved from the Knight keyboard.

:SPACEWAR: n. A space-combat simulation game, inspired by
   E. E. "Doc" Smith's "Lensman" books, in which two spaceships
   duel around a central sun, shooting torpedoes at each other and
   jumping through hyperspace.  This game was first implemented on the
   PDP-1 at MIT in 1960--61.  SPACEWAR aficionados formed the core of
   the early hacker culture at MIT.  Nine years later, a descendant
   of the game motivated Ken Thompson to build, in his spare time on a
   scavenged PDP-7, the operating system that became {{UNIX}}.  Less
   than nine years after that, SPACEWAR was commercialized as one of
   the first video games; descendants are still {feep}ing in video
   arcades everywhere.

:spaghetti code: n. Code with a complex and tangled control
   structure, esp. one using many GOTOs, exceptions, or other
   `unstructured' branching constructs.  Pejorative.  The synonym
   `kangaroo code' has been reported, doubtless because such code
   has many jumps in it.

:spaghetti inheritance: n. [encountered among users of object-oriented
   languages that use inheritance, such as Smalltalk] A convoluted
   class-subclass graph, often resulting from carelessly deriving
   subclasses from other classes just for the sake of reusing their
   code.  Coined in a (successful) attempt to discourage such
   practice, through guilt-by-association with {spaghetti code}.

:spam: [from the {MUD} community] vt. To crash a program by overrunning
   a fixed-size buffer with excessively large input data.  See also
   {buffer overflow}, {overrun screw}, {smash the stack}.

:special-case: vt. To write unique code to handle input to or
   situations arising in program that are somehow distinguished from
   normal processing.  This would be used for processing of mode
   switches or interrupt characters in an interactive interface (as
   opposed, say, to text entry or normal commands), or for processing
   of {hidden flag}s in the input of a batch program or {filter}.

:speedometer: n. A pattern of lights displayed on a linear set of
   LEDs (today) or nixie tubes (yesterday, on ancient mainframes).
   The pattern is shifted left every N times the software goes
   through its main loop.  A swiftly moving pattern indicates that the
   system is mostly idle; the speedometer slows down as the system
   becomes overloaded.  The speedometer on Sun Microsystems hardware
   bounces back and forth like the eyes on one of the Cylons from the
   wretched "Battlestar Galactica" TV series.

   Historical note: One computer, the GE 600 (later Honeywell 6000)
   actually had an *analog* speedometer on the front panel,
   calibrated in instructions executed per second.

:spell: n. Syn. {incantation}.

:spelling flame: [USENET] n.  A posting ostentatiously correcting a
   previous article's spelling as a way of casting scorn on the point
   the article was trying to make, instead of actually responding to
   that point (compare {dictionary flame}).  Of course, people who
   are more than usually slovenly spellers are prone to think
   *any* correction is a spelling flame.

:spiffy: /spi'fee/ adj. 1. Said of programs having a pretty,
   clever, or exceptionally well-designed interface. "Have you seen
   the spiffy {X} version of {empire} yet?"  2. Said
   sarcastically of a program that is perceived to have little more
   than a flashy interface going for it.  Which meaning should be
   drawn depends delicately on tone of voice and context.  This word
   was common mainstream slang during the 1940s, in a sense close to
#1.

:spike: v. To defeat a selection mechanism by introducing a
   (sometimes temporary) device that forces a specific result.  The
   word is used in several industries; telephone engineers refer to
   spiking a relay by inserting a pin to hold the relay in either the
   closed or open state, and railroaders refer to spiking a
   track switch so that it cannot be moved.  In programming
   environments it normally refers to a temporary change, usually for
   testing purposes (as opposed to a permanent change, which would be
   called {hardwired}).

:spin: vi. Equivalent to {buzz}.  More common among C and UNIX
   programmers.

:spl: /S-P-L/ [abbrev, from Set Priority Level] The way
   traditional UNIX kernels implement mutual exclusion by running code
   at high interrupt levels.  Used in jargon to describe the act of
   tuning in or tuning out ordinary communication.  Classically, spl
   levels run from 1 to 7; "Fred's at spl 6 today." would mean
   that he is very hard to interrupt.  "Wait till I finish this; I'll
   spl down then."  See also {interrupts locked out}.

:splash screen: [Mac] n. Syn. {banner}, sense 3.

:splat: n. 1. Name used in many places (DEC, IBM, and others) for
   the asterisk (`*') character (ASCII 0101010).  This may derive
   from the `squashed-bug' appearance of the asterisk on many early
   line printers.  2. [MIT] Name used by some people for the
   `#' character (ASCII 0100011).  3. [Rochester Institute of
   Technology] The {feature key} on a Mac (same as {alt},
   sense 2).  4. [Stanford] Name used by some people for the
   Stanford/ITS extended ASCII
   circle-x
   character.  This character is also called `blobby' and `frob',
   among other names; it is sometimes used by mathematicians as a
   notation for `tensor product'.  5. [Stanford] Name for the
   semi-mythical extended ASCII
   circle-plus
   character.  6. Canonical name for an output routine that outputs
   whatever the local interpretation of `splat' is.

   With ITS and WAITS gone, senses 4--6 are now nearly obsolete.  See
   also {{ASCII}}.

:spod: [Great Britain] n. A lower form of life found on {talker
   system}s and {MUD}s.  The spod has few friends in {RL} and
   uses talkers instead, finding communication easier and preferable
   over the net.  He has all the negative traits of the {computer
   geek} without having any interest in computers per se.  Lacking any
   knowledge of or interest in how networks work, and considering his
   access a God-given right, he is a major irritant to sysadmins,
   clogging up lines in order to reach new MUDs, following passed-on
   instructions on how to sneak his way onto Internet ("Wow!  It's in
   America!") and complaining when he is not allowed to use busy
   routes.  A true spod will start any conversation with "Are you
   male or female?" (and follow it up with "Got any good
   numbers/IDs/passwords?") and will not talk to someone physically
   present in the same terminal room until they log onto the same
   machine that he is using and enter talk mode.  Compare {newbie},
   {tourist}, {weenie}, {twink}, {terminal junkie}.

:spoiler: [USENET: sci.math and rec.puzzles] n. Any remark
   which telegraphs the solution of a problem or puzzle, thus denying
   the reader the pleasure of working out the correct answer (see also
   {interesting}).  Readily forms compounds like `total spoiler',
   `quasi-spoiler' and even `pseudo-spoiler'.

:sponge: [UNIX] n. A special case of a {filter} that reads its
   entire input before writing any output; the canonical example is a
   sort utility.  Unlike most filters, a sponge can conveniently
   overwrite the input file with the output data stream.  If a file
   system has versioning (as ITS did and VMS does now) the
   sponge/filter distinction loses its usefulness, because directing
   filter output would just write a new version.  See also {slurp}.

:spoo: n. Variant of {spooge}, sense 1.

:spooge: /spooj/ 1. n. Inexplicable or arcane code, or random
   and probably incorrect output from a computer program.  2. vi. To
   generate spooge (sense 1).

:spool: [from early IBM `Simultaneous Peripheral Operation
   On-Line', but this acronym is widely thought to have been contrived
   for effect] vt. To send files to some device or program (a
   `spooler') that queues them up and does something useful with
   them later.  Without qualification, the spooler is the `print
   spooler' controlling output of jobs to a printer; but the term has
   been used in connection with other peripherals (especially plotters
   and graphics devices) and occasionally even for input devices.  See
   also {demon}.

:spool file: n. Any file to which data is {spool}ed to await the
   next stage of processing.  Especially used in circumstances where
   spooling the data copes with a mismatch between speeds in two
   devices or pieces of software.  For example, when you send mail
   under UNIX, it's typically copied to a spool file to await a
   transport {demon}'s attentions.  This is borderline techspeak.

:square tape: n. Mainframe magnetic tape cartridges for use with
   IBM 3480 or compatible tape drives; or QIC tapes used on
   workstations and micros.  The term comes from the square (actually
   rectangular) shape of the cartridges; contrast {round tape}.

:stack: n. A person's stack is the set of things he or she has to do
   in the future.  One speaks of the next project to be attacked as
   having risen to the top of the stack.  "I'm afraid I've got real
   work to do, so this'll have to be pushed way down on my stack."
   "I haven't done it yet because every time I pop my stack something
   new gets pushed."  If you are interrupted several times in the
   middle of a conversation, "My stack overflowed" means "I
   forget what we were talking about."  The implication is that more
   items were pushed onto the stack than could be remembered, so the
   least recent items were lost.  The usual physical example of a
   stack is to be found in a cafeteria: a pile of plates or trays
   sitting on a spring in a well, so that when you put one on the top
   they all sink down, and when you take one off the top the rest
   spring up a bit.  See also {push} and {pop}.

   At MIT, {pdl} used to be a more common synonym for {stack} in
   all these contexts, and this may still be true.  Everywhere else
   {stack} seems to be the preferred term.  {Knuth}
   (`The Art of Computer Programming', second edition, vol. 1,
   p. 236) says:

        Many people who realized the importance of stacks and queues
        independently have given other names to these structures:
        stacks have been called push-down lists, reversion storages,
        cellars, nesting stores, piles, last-in-first-out ("LIFO")
        lists, and even yo-yo lists!

:stack puke: n. Some processor architectures are said to `puke their
   guts onto the stack' to save their internal state during exception
   processing.  The Motorola 68020, for example, regurgitates up to
   92 bytes on a bus fault.  On a pipelined machine, this can take a
   while.

:stale pointer bug: n. Synonym for {aliasing bug} used esp. among
   microcomputer hackers.

:state: n. 1. Condition, situation.  "What's the state of your
   latest hack?"  "It's winning away."  "The system tried to read
   and write the disk simultaneously and got into a totally {wedged}
   state."  The standard question "What's your state?"  means
   "What are you doing?" or "What are you about to do?"  Typical
   answers are "about to gronk out", or "hungry".  Another
   standard question is "What's the state of the world?", meaning
   "What's new?" or "What's going on?".  The more terse and
   humorous way of asking these questions would be "State-p?".
   Another way of phrasing the first question under sense 1 would be
   "state-p latest hack?".  2. Information being maintained in
   non-permanent memory (electronic or human).

:steam-powered: adj. Old-fashioned or underpowered; archaic.  This
   term does not have a strong negative loading and may even be used
   semi-affectionately for something that clanks and wheezes a lot
   but hangs in there doing the job.

:stiffy: [University of Lowell, Massachusetts.] n. 3.5-inch
   {microfloppies}, so called because their jackets are more firm
   than those of the 5.25-inch and the 8-inch floppy.  Elsewhere this
   might be called a `firmy'.

:stir-fried random: alt. `stir-fried mumble' n. Term used for the 
   best dish of many of those hackers who can cook.  Consists of
   random fresh veggies and meat wokked with random spices.  Tasty and
   economical.  See {random}, {great-wall}, {ravs}, {{laser
   chicken}}, {{oriental food}}; see also {mumble}.

:stomp on: vt. To inadvertently overwrite something important, usually
   automatically.  "All the work I did this weekend got
   stomped on last night by the nightly server script."  Compare
   {scribble}, {mangle}, {trash}, {scrog}, {roach}.

:Stone Age: n., adj. 1. In computer folklore, an ill-defined period
   from ENIAC (ca. 1943) to the mid-1950s; the great age of
   electromechanical {dinosaur}s.  Sometimes used for the entire
   period up to 1960--61 (see {Iron Age}); however, it is funnier
   and more descriptive to characterize the latter period in terms of
   a `Bronze Age' era of transistor-logic, pre-ferrite-{core}
   machines with drum or CRT mass storage (as opposed to just mercury
   delay lines and/or relays).  See also {Iron Age}.  2. More
   generally, a pejorative for any crufty, ancient piece of hardware
   or software technology.  Note that this is used even by people who
   were there for the {Stone Age} (sense 1).

:stone knives and bearskins: [ITS, prob. from the Star Trek Classic
   episode "The City on the Edge of Forever"] n. A term
   traditionally used by {ITS} fans to describe (and deprecate)
   computing environments they regard as less advanced, with the
   (often correct) implication that said environments were grotesquely
   primitive in light of what is known about good ways to design
   things.  As in "Don't get too used to the facilities here.  Once
   you leave MIT it's stone knives and bearskins as far as the eye can
   see".  Compare {steam-powered}.

:stoppage: /sto'p*j/ n. Extreme {lossage} that renders
   something (usually something vital) completely unusable.  "The
   recent system stoppage was caused by a {fried} transformer."

:store: [prob. from techspeak `main store'] n. In some
   varieties of Commonwealth hackish, the referred synonym for
   {core}.  Thus, `bringing a program into store' means not that
   one is returning shrink-wrapped software but that a program is
   being {swap}ped in.

:stroke: n. Common name for the slant (`/', ASCII 0101111)
   character.  See {ASCII} for other synonyms.

:strudel: n. Common (spoken) name for the at-sign (`@', ASCII
   1000000) character.  See {ASCII} for other synonyms.

:stubroutine: /stuhb'roo-teen/ [contraction of `stub
   subroutine'] n. Tiny, often vacuous placeholder for a subroutine
   that is to be written or fleshed out later.

:studlycaps: /stuhd'lee-kaps/ n. A hackish form of silliness
   similar to {BiCapitalization} for trademarks, but applied
   randomly and to arbitrary text rather than to trademarks.  ThE
   oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.

:stunning: adj. Mind-bogglingly stupid.  Usually used in sarcasm.
   "You want to code *what* in ADA?  That's ... a stunning
   idea!"

:stupid-sort: n. Syn. {bogo-sort}.

:Stupids: n. Term used by {samurai} for the {suit}s who
   employ them; succinctly expresses an attitude at least as common,
   though usually better disguised, among other subcultures of
   hackers.  There may be intended reference here to an SF story
   originally published in 1952 but much anthologized since, Mark
   Clifton's `Star, Bright'.  In it, a super-genius child
   classifies humans into a very few `Brights' like herself, a huge
   majority of `Stupids', and a minority of `Tweens', the merely
   ordinary geniuses.

:Sturgeon's Law: prov. "Ninety percent of everything is crap".  Derived
   from a quote by science fiction author Theodore Sturgeon, who once
   said, "Sure, 90% of science fiction is crud. That's because 90% of
   everything is crud."  Oddly, when Sturgeon's Law is cited, the 
   final word is almost invariably changed to `crap'.  Compare
   {Hanlon's Razor}.  Though this maxim originated in SF fandom,
   most hackers recognize it and are all too aware of its truth.

:sucking mud: [Applied Data Research] adj. (also `pumping
   mud') Crashed or {wedged}.  Usually said of a machine that provides
   some service to a network, such as a file server.  This Dallas
   regionalism derives from the East Texas oilfield lament, "Shut
   'er down, Ma, she's a-suckin' mud".  Often used as a query.  "We
   are going to reconfigure the network, are you ready to suck mud?"

:sufficiently small: adj. Syn. {suitably small}.

:suit: n. 1. Ugly and uncomfortable `business clothing' often
   worn by non-hackers.  Invariably worn with a `tie', a
   strangulation device that partially cuts off the blood supply to
   the brain.  It is thought that this explains much about the
   behavior of suit-wearers.  Compare {droid}.  2. A person who
   habitually wears suits, as distinct from a techie or hacker.  See
   {loser}, {burble}, {management}, {Stupids}, {SNAFU
   principle}, and {brain-damaged}.  English, by the way, is
   relatively kind; our Moscow correspondent informs us that the
   corresponding idiom in Russian hacker jargon is `sovok', lit. a
   tool for grabbing garbage.

:suitable win: n. See {win}.

:suitably small: [perverted from mathematical jargon] adj. An
   expression used ironically to characterize unquantifiable
   behavior that differs from expected or required behavior.  For
   example, suppose a newly created program came up with a correct
   full-screen display, and one publicly exclaimed: "It works!"
   Then, if the program dumps core on the first mouse click, one might
   add: "Well, for suitably small values of `works'."  Compare
   the characterization of pi under {{random numbers}}.

:sun lounge: [Great Britain] n. The room where all the Sun
   workstations live.  The humor in this term comes from the fact
   that it's also in mainstream use to describe a solarium, and all
   those Sun workstations clustered together give off an amazing
   amount of heat.

:sun-stools: n. Unflattering hackerism for SunTools, a pre-X
   windowing environment notorious in its day for size, slowness, and
   misfeatures.  {X}, however, is larger and slower; see
   {second-system effect}.

:sunspots: n. 1. Notional cause of an odd error.  "Why did the
   program suddenly turn the screen blue?"  "Sunspots, I guess."
   2. Also the cause of {bit rot} --- from the myth that sunspots
   will increase {cosmic rays}, which can flip single bits in memory.
   See {cosmic rays}, {phase of the moon}.

:superprogrammer: n. A prolific programmer; one who can code
   exceedingly well and quickly.  Not all hackers are
   superprogrammers, but many are.  (Productivity can vary from one
   programmer to another by three orders of magnitude.  For example,
   one programmer might be able to write an average of 3 lines of
   working code in one day, while another, with the proper tools,
   might be able to write 3,000.  This range is astonishing; it is
   matched in very few other areas of human endeavor.)  The term
   `superprogrammer' is more commonly used within such places as IBM
   than in the hacker community.  It tends to stress naive measures
   of productivity and to underweight creativity, ingenuity, and
   getting the job *done* --- and to sidestep the question of
   whether the 3,000 lines of code do more or less useful work than
   three lines that do the {Right Thing}.  Hackers tend to prefer
   the terms {hacker} and {wizard}.

:superuser: [UNIX] n. Syn. {root}, {avatar}.  This usage has
   spread to non-UNIX environments; the superuser is any account with
   all {wheel} bits on.  A more specific term than {wheel}.

:support: n. After-sale handholding; something many software
   vendors promise but few deliver.  To hackers, most support people
   are useless --- because by the time a hacker calls support he or
   she will usually know the relevant manuals better than the support
   people (sadly, this is *not* a joke or exaggeration).  A
   hacker's idea of `support' is a t^ete-`a-t^ete with the
   software's designer.

:Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank Zappa's
   `Suzy Creamcheese'] n. A coder straight out of training school who
   knows everything except the value of comments in plain English.
   Also (fashionable among personkind wishing to avoid accusations of
   sexism) `Sammy Cobol' or (in some non-IBM circles) `Cobol Charlie'.
   2. [proposed] Meta-name for any {code grinder}, analogous to
   {J. Random Hacker}.

:swab: /swob/ [From the mnemonic for the PDP-11 `SWAp Byte'
   instruction, as immortalized in the `dd(1)' option `conv=swab'
   (see {dd})] 1. vt. To solve the {NUXI problem} by swapping
   bytes in a file.  2. n. The program in V7 UNIX used to perform this
   action, or anything functionally equivalent to it.  See also
   {big-endian}, {little-endian}, {middle-endian},
   {bytesexual}.

:swap: vt. 1. [techspeak] To move information from a fast-access
   memory to a slow-access memory (`swap out'), or vice versa
   (`swap in').  Often refers specifically to the use of disks as
   `virtual memory'.  As pieces of data or program are needed, they
   are swapped into {core} for processing; when they are no longer
   needed they may be swapped out again.  2. The jargon use of these
   terms analogizes people's short-term memories with core.  Cramming
   for an exam might be spoken of as swapping in.  If you temporarily
   forget someone's name, but then remember it, your excuse is that it
   was swapped out.  To `keep something swapped in' means to keep it
   fresh in your memory: "I reread the TECO manual every few months
   to keep it swapped in."  If someone interrupts you just as you got
   a good idea, you might say "Wait a moment while I swap this
   out", implying that the piece of paper is your extra-somatic
   memory and if you don't swap the info out by writing it down it
   will get overwritten and lost as you talk.  Compare {page in},
   {page out}.

:swap space: n. Storage space, especially temporary storage space
   used during a move or reconfiguration.  "I'm just using that corner
   of the machine room for swap space."

:swapped in: n. See {swap}.  See also {page in}.

:swapped out: n. See {swap}.  See also {page out}.

:swizzle: v. To convert external names, array indices, or references
   within a data structure into address pointers when the data
   structure is brought into main memory from external storage (also
   called `pointer swizzling'); this may be done for speed in
   chasing references or to simplify code (e.g., by turning lots of
   name lookups into pointer dereferences).  The converse operation is
   sometimes termed `unswizzling'.  See also {snap}.

:sync: /sink/ (var. `synch') n., vi. 1. To synchronize, to
   bring into synchronization.  2. [techspeak] To force all pending
   I/O to the disk; see {flush}, sense 2.  3. More generally, to
   force a number of competing processes or agents to a state that
   would be `safe' if the system were to crash; thus, to checkpoint
   (in the database-theory sense).

:syntactic salt: n. The opposite of {syntactic sugar}, a feature
   designed to make it harder to write bad code.  Specifically,
   syntactic salt is a hoop the programmer must jump through just to
   prove that he knows what's going on, rather than to express a
   program action.  Some programmers consider required type
   declarations to be syntactic salt.  A requirement to write
   `end if', `end while', `end do', etc. to terminate
   the last block controlled by a control construct (as opposed to
   just `end') would definitely be syntactic salt. Syntactic salt
   is like the real thing in that it tends to raise hackers' blood
   pressures in an unhealthy way..

:syntactic sugar: [coined by Peter Landin] n. Features added to a
   language or other formalism to make it `sweeter' for humans,
   which do not affect the expressiveness of the formalism (compare
   {chrome}).  Used esp. when there is an obvious and trivial
   translation of the `sugar' feature into other constructs already
   present in the notation.  C's `a[i]' notation is syntactic
   sugar for `*(a + i)'.  "Syntactic sugar causes cancer of the
   semicolon." --- Alan Perlis.

   The variants `syntactic saccharin' and `syntactic syrup' are
   also recorded.  These denotes something even more gratuitous, in
   that syntactic sugar serves a purpose (making something more
   acceptable to humans), but syntactic saccharin or syrup serves no
   purpose at all.  Compare {candygrammar}, {syntactic salt}.

:sys-frog: /sis'frog/ [the PLATO system] n. Playful variant of
   `sysprog', which is in turn short for `systems programmer'.

:sysadmin: /sis'ad-min/ n. Common contraction of `system
   admin'; see {admin}.

:sysape: /sysape/ n. A rather derogatory term for a computer
   operator; a play on {sysop} common at sites that use the banana
   hierarchy of problem complexity (see {one-banana
   problem}).

:sysop: /sis'op/ n. [esp. in the BBS world] The operator (and
   usually the owner) of a bulletin-board system.  A common neophyte
   mistake on {FidoNet} is to address a message to `sysop' in an
   international {echo}, thus sending it to hundreds of sysops
   around the world.

:system: n. 1. The supervisor program or OS on a computer.  2. The
   entire computer system, including input/output devices, the
   supervisor program or OS, and possibly other software.  3. Any
   large-scale program.  4. Any method or algorithm.  5. `System
   hacker': one who hacks the system (in senses 1 and 2 only; for
   sense 3 one mentions the particular program: e.g., `LISP
   hacker')

:systems jock: n. See {jock}, (sense 2).

:system mangler: n. Humorous synonym for `system manager', poss.
   from the fact that one major IBM OS had a {root} account called
   SYSMANGR.  Refers specifically to a systems programmer in charge of
   administration, software maintenance, and updates at some site.
   Unlike {admin}, this term emphasizes the technical end of the
   skills involved.

:SysVile: /sis-vi:l'/ n. See {Missed'em-five}.

= T =
=====

:T: /T/ 1. [from LISP terminology for `true'] Yes.  Used in
   reply to a question (particularly one asked using the `-P'
   convention).  In LISP, the constant T means `true', among other
   things.  Some hackers use `T' and `NIL' instead of `Yes' and `No'
   almost reflexively.  This sometimes causes misunderstandings.  When
   a waiter or flight attendant asks whether a hacker wants coffee, he
   may well respond `T', meaning that he wants coffee; but of course
   he will be brought a cup of tea instead.  As it happens, most
   hackers (particularly those who frequent Chinese restaurants) like
   tea at least as well as coffee --- so it is not that big a problem.
   2. See {time T} (also {since time T equals minus infinity}).
   3. [techspeak] In transaction-processing circles, an abbreviation
   for the noun `transaction'.  4. [Purdue] Alternate spelling of
   {tee}. 5. A dialect of {LISP} developed at Yale.

:tail recursion: n. If you aren't sick of it already, see {tail
   recursion}.

:talk mode: n. A feature supported by UNIX, ITS, and some other
   OSes that allows two or more logged-in users to set up a real-time
   on-line conversation.  It combines the immediacy of talking with
   all the precision (and verbosity) that written language entails.
   It is difficult to communicate inflection, though conventions have
   arisen for some of these (see the section on writing style in the
   Prependices for details).

   Talk mode has a special set of jargon words, used to save typing,
   which are not used orally.  Some of these are identical to (and
   probably derived from) Morse-code jargon used by ham-radio amateurs
   since the 1920s.

     BCNU    
          be seeing you
     BTW
          by the way
     BYE?
          are you ready to unlink?  (this is the standard way to end a
          talk-mode conversation; the other person types `BYE' to
          confirm, or else continues the conversation)
     CUL     
          see you later
     ENQ?
          are you busy?  (expects `ACK' or `NAK' in return)
     FOO?
          are you there? (often used on unexpected links, meaning also
          "Sorry if I butted in ..." (linker) or "What's up?"  (linkee))
     FWIW
          for what it's worth
     FYI     
          for your information
     FYA     
          for your amusement
     GA
          go ahead (used when two people have tried to type
          simultaneously; this cedes the right to type to the other)
     GRMBL   
          grumble (expresses disquiet or disagreement)
     HELLOP
          hello? (an instance of the `-P' convention)
     JAM
          just a minute (equivalent to `SEC....')
     MIN     
          same as `JAM'
     NIL     
          no (see {NIL})
     O
          over to you
     OO      
          over and out
     /
          another form of "over to you" (from x/y as "x over y")
     \
          lambda (used in discussing LISPy things)
     OBTW  
          oh, by the way
     R U THERE?
          are you there?
     SEC     
          wait a second (sometimes written `SEC...')
     T
          yes (see the main entry for {T})
     TNX     
          thanks
     TNX 1.0E6
          thanks a million (humorous)
     TNXE6
          another form of "thanks a million"
     WRT     
          with regard to, or with respect to.
     WTF
          the universal interrogative particle; WTF knows what it means?
     WTH     
          what the hell?
     <double newline>
          When the typing party has finished, he/she types two newlines
          to signal that he/she is done; this leaves a blank line
          between `speeches' in the conversation, making it easier to
          reread the preceding text.
     <name>:
          When three or more terminals are linked, it is conventional
          for each typist to {prepend} his/her login name or handle and
          a colon (or a hyphen) to each line to indicate who is typing
          (some conferencing facilities do this automatically).  The
          login name is often shortened to a unique prefix (possibly a
          single letter) during a very long conversation.
     /\/\/\
          A giggle or chuckle.  On a MUD, this usually means `earthquake
          fault'.

   Most of the above sub-jargon is used at both Stanford and MIT.
   Several of these expressions are also common in {email}, esp.
   FYI, FYA, BTW, BCNU, WTF, and CUL.  A few other abbreviations have
   been reported from commercial networks, such as GEnie and
   CompuServe, where on-line `live' chat including more than two
   people is common and usually involves a more `social' context,
   notably the following:

     <g>
          grin
     <gr&d>
          grinning, running, and ducking
     BBL
          be back later
     BRB
          be right back
     HHOJ
          ha ha only joking
     HHOK
          ha ha only kidding
     HHOS
          {ha ha only serious}
     IMHO
          in my humble opinion (see {IMHO})
     LOL
          laughing out loud
     NHOH
          Never Heard of Him/Her (often used in {initgame})
     ROTF
          rolling on the floor
     ROTFL
          rolling on the floor laughing
     AFK
          away from keyboard
     b4
          before
     CU l8tr
          see you later
     MORF
          male or female?
     TTFN
          ta-ta for now
     TTYL
          talk to you later
     OIC
          oh, I see
     rehi
          hello again

   Most of these are not used at universities or in the UNIX world,
   though ROTF and TTFN have gained some currency there and IMHO is
   common; conversely, most of the people who know these are
   unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.

   The {MUD} community uses a mixture of USENET/Internet emoticons,
   a few of the more natural of the old-style talk-mode abbrevs, and
   some of the `social' list above; specifically, MUD respondents
   report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH.  The use
   of `rehi' is also common; in fact, mudders are fond of re-
   compounds and will frequently `rehug' or `rebonk' (see
   {bonk/oif}) people.  The word `re' by itself is taken as
   `regreet'.  In general, though, MUDders express a preference for
   typing things out in full rather than using abbreviations; this may
   be due to the relative youth of the MUD cultures, which tend to
   include many touch typists and to assume high-speed links.  The
   following uses specific to MUDs are reported:

     CU l8er
          see you later (mutant of `CU l8tr')
     FOAD
          fuck off and die (use of this is generally OTT)
     OTT
          over the top (excessive, uncalled for)
     ppl
          abbrev for "people"
     THX
          thanks (mutant of `TNX'; clearly this comes in batches of 1138
          (the Lucasian K)).
     UOK?
          are you OK?

   Some {BIFF}isms (notably the variant spelling `d00d')
   appear to be passing into wider use among some subgroups of
   MUDders.

   One final note on talk mode style: neophytes, when in talk mode,
   often seem to think they must produce letter-perfect prose because
   they are typing rather than speaking.  This is not the best
   approach.  It can be very frustrating to wait while your partner
   pauses to think of a word, or repeatedly makes the same spelling
   error and backs up to fix it.  It is usually best just to leave
   typographical errors behind and plunge forward, unless severe
   confusion may result; in that case it is often fastest just to type
   "xxx" and start over from before the mistake.

   See also {hakspek}, {emoticon}, {bonk/oif}.

:talker system: n. British hackerism for software that enables
   real-time chat or {talk mode}.

:tall card: n. A PC/AT-size expansion card (these can be larger
   than IBM PC or XT cards because the AT case is bigger).  See also
   {short card}.  When IBM introduced the PS/2 model 30 (its last
   gasp at supporting the ISA) they made the case lower and many
   industry-standard tall cards wouldn't fit; this was felt to be a
   reincarnation of the {connector conspiracy}, done with less
   style.

:tanked: adj. Same as {down}, used primarily by UNIX hackers.  See
   also {hosed}.  Popularized as a synonym for `drunk' by Steve
   Dallas in the late lamented "Bloom County" comic strip.

:TANSTAAFL: /tan'sto-fl/ [acronym, from Robert Heinlein's
   classic `The Moon is a Harsh Mistress'.]  "There Ain't No
   Such Thing As A Free Lunch", often invoked when someone is balking
   at an ugly design requirement or the prospect of using an
   unpleasantly {heavyweight} technique.  "What? Don't tell me I
   have to implement a database back end to get my address book
   program to work!"  "Well, TANSTAAFL you know."  This phrase owes
   some of its popularity to the high concentration of science-fiction
   fans and political libertarians in hackerdom (see Appendix
   B).

:tar and feather: [from UNIX `tar(1)'] vt. To create a
   transportable archive from a group of files by first sticking them
   together with `tar(1)' (the Tape ARchiver) and then
   compressing the result (see {compress}).  The latter action is
   dubbed `feathering' by analogy to what you do with an airplane
   propeller to decrease wind resistance, or with an oar to reduce
   water resistance; smaller files, after all, slip through comm links
   more easily.

:taste: [primarily MIT] n. 1. The quality in a program that tends
   to be inversely proportional to the number of features, hacks, and
   kluges programmed into it.  Also `tasty', `tasteful',
   `tastefulness'.  "This feature comes in N tasty flavors."
   Although `tasteful' and `flavorful' are essentially
   synonyms, `taste' and {flavor} are not.  Taste refers to
   sound judgment on the part of the creator; a program or feature
   can *exhibit* taste but cannot *have* taste.  On the other
   hand, a feature can have {flavor}.  Also, {flavor} has the
   additional meaning of `kind' or `variety' not shared by
   `taste'.  {Flavor} is a more popular word than `taste',
   though both are used.  See also {elegant}.  2. Alt. sp. of
   {tayste}.

:tayste: /tayst/ n. Two bits; also as {taste}.  Syn. {crumb},
   {quarter}.  Compare {{byte}}, {dynner}, {playte},
   {nybble}, {quad}.

:TCB: /T-C-B/ [IBM] n. 1. Trouble Came Back.  An intermittent or
   difficult-to-reproduce problem that has failed to respond to
   neglect.  Compare {heisenbug}.  Not to be confused with:
   2. Trusted Computing Base, an `official' jargon term from the
   {Orange Book}.

:tea, ISO standard cup of: [South Africa] n. A cup of tea with milk
   and one teaspoon of sugar, where the milk is poured into the cup
   before the tea.  Variations are ISO 0, with no sugar; ISO 2, with
   two spoons of sugar; and so on.

   Like many ISO standards, this one has a faintly alien ring in North
   America, where hackers generally shun the decadent British practice
   of adulterating perfectly good tea with dairy products and
   prefer instead to add a wedge of lemon, if anything.  If one were
   feeling extremely silly, one might hypothesize an analogous `ANSI
   standard cup of tea' and wind up with a political situation
   distressingly similar to several that arise in much more serious
   technical contexts.  Milk and lemon don't mix very well.

:TechRef: /tek'ref/ [MS-DOS] n. The original `IBM PC
   Technical Reference Manual', including the BIOS listing and
   complete schematics for the PC.  The only PC documentation in the
   issue package that's considered serious by real hackers.

:TECO: /tee'koh/ obs. 1. vt. Originally, to edit using the TECO
   editor in one of its infinite variations (see below).  2. vt.,obs.
   To edit even when TECO is *not* the editor being used!  This
   usage is rare and now primarily historical.  2. [originally an
   acronym for `[paper] Tape Editor and COrrector'; later, `Text
   Editor and COrrector'] n. A text editor developed at MIT and
   modified by just about everybody.  With all the dialects included,
   TECO might have been the most prolific editor in use before
   {EMACS}, to which it was directly ancestral.  Noted for its
   powerful programming-language-like features and its unspeakably
   hairy syntax.  It is literally the case that every string of
   characters is a valid TECO program (though probably not a useful
   one); one common hacker game used to be mentally working out what
   the TECO commands corresponding to human names did.  As an example
   of TECO's obscurity, here is a TECO program that takes a list of
   names such as:

     Loser, J. Random
     Quux, The Great
     Dick, Moby

   sorts them alphabetically according to surname, and then puts the
   surname last, removing the comma, to produce the following:

     Moby Dick
     J. Random Loser
     The Great Quux

   The program is

     [1 J^P$L$$
     J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$

   (where ^B means `Control-B' (ASCII 0000010) and $ is actually
   an {alt} or escape (ASCII 0011011) character).

   In fact, this very program was used to produce the second, sorted
   list from the first list.  The first hack at it had a {bug}: GLS
   (the author) had accidentally omitted the `@' in front
   of `F^B', which as anyone can see is clearly the {Wrong Thing}.  It
   worked fine the second time.  There is no space to describe all the
   features of TECO, but it may be of interest that `^P' means
   `sort' and `J<.-Z; ... L>' is an idiomatic series of commands
   for `do once for every line'.

   In mid-1991, TECO is pretty much one with the dust of history,
   having been replaced in the affections of hackerdom by {EMACS}.
   Descendants of an early (and somewhat lobotomized) version adopted
   by DEC can still be found lurking on VMS and a couple of crufty
   PDP-11 operating systems, however, and ports of the more advanced
   MIT versions remain the focus of some antiquarian interest.  See
   also {retrocomputing}, {write-only language}.

:tee: n.,vt. [Purdue] A carbon copy of an electronic transmission.
   "Oh, you're sending him the {bits} to that?  Slap on a tee for
   me."  From the UNIX command `tee(1)', itself named after a
   pipe fitting (see {plumbing}).  Can also mean `save one for me',
   as in "Tee a slice for me!"  Also spelled `T'.

:teledildonics: /tel`*-dil-do'-niks/ n. Sex in a computer
   simulated virtual reality, esp. computer-mediated sexual
   interaction between the {VR} presences of two humans.  This
   practice is not yet possible except in the rather limited form of
   erotic conversation on {MUD}s and the like.  The term, however,
   is widely recognized in the VR community as a {ha ha only
   serious} projection of things to come.  "When we can sustain a
   multi-sensory surround good enough for teledildonics, *then*
   we'll know we're getting somewhere."

:Telerat: /tel'*-rat/ n. Unflattering hackerism for `Teleray', a
   line of extremely losing terminals.  Compare {AIDX}, {terminak},
   {Macintrash} {Nominal Semidestructor}, {Open DeathTrap},
   {ScumOS}, {sun-stools}, {HP-SUX}.

:TELNET: /tel'net/ vt. To communicate with another Internet host
   using the {TELNET} protocol (usually using a program of the same
   name).  TOPS-10 people used the word IMPCOM, since that was the
   program name for them.  Sometimes abbreviated to TN /T-N/.  "I
   usually TN over to SAIL just to read the AP News."

:ten-finger interface: n. The interface between two networks that
   cannot be directly connected for security reasons; refers to the
   practice of placing two terminals side by side and having an
   operator read from one and type into the other.

:tense: adj. Of programs, very clever and efficient.  A tense piece
   of code often got that way because it was highly {bum}med, but
   sometimes it was just based on a great idea.  A comment in a clever
   routine by Mike Kazar, once a grad-student hacker at CMU: "This
   routine is so tense it will bring tears to your eyes."  A tense
   programmer is one who produces tense code.

:tenured graduate student: n. One who has been in graduate school
   for 10 years (the usual maximum is 5 or 6): a `ten-yeared'
   student (get it?).  Actually, this term may be used of any grad
   student beginning in his seventh year.  Students don't really get
   tenure, of course, the way professors do, but a tenth-year graduate
   student has probably been around the university longer than any
   untenured professor.

:tera-: /te'r*/ [SI] pref. See {{quantifiers}}.

:teraflop club: /te'r*-flop kluhb/ [FLOP = Floating Point
   Operation] n. A mythical association of people who consume
   outrageous amounts of computer time in order to produce a few
   simple pictures of glass balls with intricate ray-tracing
   techniques.  Caltech professor James Kajiya is said to have been
   the founder.

:terminak: /ter'mi-nak`/ [Caltech, ca. 1979] n. Any
   malfunctioning computer terminal.  A common failure mode of
   Lear-Siegler ADM 3a terminals caused the `L' key to produce the
   `K' code instead; complaints about this tended to look like
   "Terminak #3 has a bad keyboard.  Pkease fix."  See {AIDX},
   {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS},
   {sun-stools}, {Telerat}, {HP-SUX}.

:terminal brain death: n. The extreme form of {terminal illness}
   (sense 1).  What someone who has obviously been hacking
   continuously for far too long is said to be suffering from.

:terminal illness: n. 1. Syn. {raster burn}.  2. The `burn-in'
   condition your CRT tends to get if you don't have a screen saver.

:terminal junkie: [UK] n. A {wannabee} or early {larval
   stage} hacker who spends most of his or her time wandering the
   directory tree and writing {noddy} programs just to get a fix of
   computer time.  Variants include `terminal jockey', `console
   junkie', and {console jockey}.  The term `console jockey'
   seems to imply more expertise than the other three (possibly
   because of the exalted status of the {{console}} relative to an
   ordinary terminal).  See also {twink}, {read-only
   user}.

:terpri: /ter'pree/ [from LISP 1.5 (and later, MacLISP)] vi. To
   output a {newline}.  Now rare as jargon, though still used as
   techspeak in Common LISP.  It is a contraction of `TERminate PRInt
   line', named for the fact that, on some early OSes and hardware, no
   characters would be printed until a complete line was formed, so
   this operation terminated the line and emitted the output.

:test: n. 1. Real users bashing on a prototype long enough to get
   thoroughly acquainted with it, with careful monitoring and followup
   of the results.  2. Some bored random user trying a couple of the
   simpler features with a developer looking over his or her shoulder,
   ready to pounce on mistakes.  Judging by the quality of most
   software, the second definition is far more prevalent.  See also
   {demo}.

:TeX:: /tekh/ n. An extremely powerful {macro}-based
   text formatter written by Donald E. {Knuth}, very popular in the
   computer-science community (it is good enough to have displaced
   UNIX `troff(1)', the other favored formatter, even at many
   UNIX installations).  TeX fans insist on the correct (guttural)
   pronunciation, and the correct spelling (all caps, squished
   together, with the E depressed below the baseline; the
   mixed-case `TeX' is considered an acceptable kluge on ASCII-only
   devices).  Fans like to proliferate names from the word `TeX'
   --- such as TeXnician (TeX user), TeXhacker (TeX
   programmer), TeXmaster (competent TeX programmer), TeXhax,
   and TeXnique.

   Knuth began TeX because he had become annoyed at the declining
   quality of the typesetting in volumes I--III of his monumental
   `Art of Computer Programming' (see {Knuth}, also
   {bible}).  In a manifestation of the typical hackish urge to
   solve the problem at hand once and for all, he began to design his
   own typesetting language.  He thought he would finish it on his
   sabbatical in 1978; he was wrong by only about 8 years.  The
   language was finally frozen around 1985, but volume IV of `The
   Art of Computer Programming' has yet to appear as of mid-1993.  The
   impact and influence of TeX's design has been such that nobody
   minds this very much.  Many grand hackish projects have started as
   a bit of tool-building on the way to something else; Knuth's
   diversion was simply on a grander scale than most.

   TeX{} has also been a noteworthy example of free, shared, but
   high-quality software.  Knuth used to offer monetary awards to people
   who found and reported bugs in it; as the years wore on and the few
   remaining bugs were fixed (and new ones even harder to find), the
   bribe went up.  Though well-written, TeX{} is so large (and so full of
   cutting edge technique) that it is said to have unearthed at least
   one bug in every Pascal it has been compiled with.

:text: n. 1. [techspeak] Executable code, esp. a `pure code'
   portion shared between multiple instances of a program running in a
   multitasking OS (compare {English}).  2. Textual material in the
   mainstream sense; data in ordinary {{ASCII}} or {{EBCDIC}}
   representation (see {flat-ASCII}).  "Those are text files;
   you can review them using the editor."  These two contradictory
   senses confuse hackers, too.

:thanks in advance: [USENET] Conventional net.politeness ending a
   posted request for information or assistance.  Sometimes written
   `advTHANKSance' or `aTdHvAaNnKcSe' or abbreviated `TIA'.  See
   {net.-}, {netiquette}.

:That's not a bug, that's a feature!: The {canonical} first
   parry in a debate about a purported bug.  The complainant, if
   unconvinced, is likely to retort that the bug is then at best a
   {misfeature}.  See also {feature}.

:the X that can be Y is not the true X: Yet another instance of
   hackerdom's peculiar attraction to mystical references --- a common
   humorous way of making exclusive statements about a class of
   things.  The template is from the `Tao te Ching': "The
   Tao which can be spoken of is not the true Tao."  The implication
   is often that the X is a mystery accessible only to the
   enlightened.  See the {trampoline} entry for an example, and
   compare {has the X nature}.

:theology: n. 1. Ironically or humorously used to refer to
   {religious issues}.  2. Technical fine points of an abstruse
   nature, esp. those where the resolution is of theoretical
   interest but is relatively {marginal} with respect to actual use of
   a design or system.  Used esp. around software issues with a
   heavy AI or language-design component, such as the smart-data vs.
   smart-programs dispute in AI.

:theory: n. The consensus, idea, plan, story, or set of rules that
   is currently being used to inform a behavior.  This is a
   generalization and abuse of the technical meaning.  "What's the
   theory on fixing this TECO loss?"  "What's the theory on dinner
   tonight?"  ("Chinatown, I guess.")  "What's the current theory
   on letting lusers on during the day?"  "The theory behind this
   change is to fix the following well-known screw...."

:thinko: /thing'koh/ [by analogy with `typo'] n. A momentary,
   correctable glitch in mental processing, especially one involving
   recall of information learned by rote; a bubble in the stream of
   consciousness.  Syn. {braino}; see also {brain fart}.
   Compare {mouso}.

:This can't happen: Less clipped variant of {can't happen}.

:This time, for sure!: excl. Ritual affirmation frequently uttered
   during protracted debugging sessions involving numerous small
   obstacles (e.g., attempts to bring up a UUCP connection).  For the
   proper effect, this must be uttered in a fruity imitation of
   Bullwinkle J. Moose.  Also heard: "Hey, Rocky!  Watch me pull a
   rabbit out of my hat!"  The {canonical} response is, of course,
   "But that trick *never* works!"  See {{Humor, Hacker}}.

:thrash: vi. To move wildly or violently, without accomplishing
   anything useful.  Paging or swapping systems that are overloaded
   waste most of their time moving data into and out of core (rather
   than performing useful computation) and are therefore said to
   thrash.  Someone who keeps changing his mind (esp. about what to
   work on next) is said to be thrashing.  A person frantically trying
   to execute too many tasks at once (and not spending enough time on
   any single task) may also be described as thrashing.  Compare
   {multitask}.

:thread: n. [USENET, GEnie, CompuServe] Common abbreviation of
   `topic thread', a more or less continuous chain of postings on a
   single topic.  To `follow a thread' is to read a series of USENET
   postings sharing a common subject or (more correctly) which are
   connected by Reference headers.  The better newsreaders present
   news in thread order.

:three-finger salute: n. Syn. {Vulcan nerve pinch}.

:thud: n. 1. Yet another {metasyntactic variable} (see {foo}).
   It is reported that at CMU from the mid-1970s the canonical series of
   these was `foo', `bar', `thud', `blat'.  2. Rare term
   for the hash character, `#' (ASCII 0100011).  See {ASCII} for
   other synonyms.

:thumb: n. The slider on a window-system scrollbar.  So called
   because moving it allows you to browse through the contents of a
   text window in a way analogous to thumbing through a book.

:thunk: /thuhnk/ n. 1. "A piece of coding which provides an
   address", according to P. Z. Ingerman, who invented thunks
   in 1961 as a way of binding actual parameters to their formal
   definitions in Algol-60 procedure calls.  If a procedure is called
   with an expression in the place of a formal parameter, the compiler
   generates a {thunk} to compute the expression and leave the
   address of the result in some standard location.  2. Later
   generalized into: an expression, frozen together with its
   environment, for later evaluation if and when needed (similar to
   what in techspeak is called a `closure').  The process of
   unfreezing these thunks is called `forcing'.  3. A
   {stubroutine}, in an overlay programming environment, that loads
   and jumps to the correct overlay.  Compare {trampoline}.
   4. People and activities scheduled in a thunklike manner.  "It
   occurred to me the other day that I am rather accurately modeled by
   a thunk --- I frequently need to be forced to completion." ---
   paraphrased from a {plan file}.

   Historical note: There are a couple of onomatopoeic myths
   circulating about the origin of this term.  The most common is that
   it is the sound made by data hitting the stack; another holds that
   the sound is that of the data hitting an accumulator.  Yet another
   holds that it is the sound of the expression being unfrozen at
   argument-evaluation time.  In fact, according to the inventors, it
   was coined after they realized (in the wee hours after hours of
   discussion) that the type of an argument in Algol-60 could be
   figured out in advance with a little compile-time thought,
   simplifying the evaluation machinery.  In other words, it had
   `already been thought of'; thus it was christened a `thunk',
   which is "the past tense of `think' at two in the morning".

:tick: n. 1. A {jiffy} (sense 1).  2. In simulations, the
   discrete unit of time that passes between iterations of the
   simulation mechanism.  In AI applications, this amount of time is
   often left unspecified, since the only constraint of interest is
   the ordering of events.  This sort of AI simulation is often
   pejoratively referred to as `tick-tick-tick' simulation,
   especially when the issue of simultaneity of events with long,
   independent chains of causes is {handwave}d. 3. In the FORTH
   language, a single quote character.

:tick-list features: [Acorn Computers] n. Features in software or
   hardware that customers insist on but never use (calculators in
   desktop TSRs and that sort of thing).  The American equivalent
   would be `checklist features', but this jargon sense of the
   phrase has not been reported.

:tickle a bug: vt. To cause a normally hidden bug to manifest
   through some known series of inputs or operations.  "You can
   tickle the bug in the Paradise VGA card's highlight handling by
   trying to set bright yellow reverse video."

:tiger team: [U.S. military jargon] n. 1. Originally, a team whose
   purpose is to penetrate security, and thus test security measures.
   These people are paid professionals who do hacker-type tricks,
   e.g., leave cardboard signs saying "bomb" in critical defense
   installations, hand-lettered notes saying "Your codebooks have
   been stolen" (they usually haven't been) inside safes, etc.  After
   a successful penetration, some high-ranking security type shows up
   the next morning for a `security review' and finds the sign,
   note, etc., and all hell breaks loose.  Serious successes of tiger
   teams sometimes lead to early retirement for base commanders and
   security officers (see the {patch} entry for an example).
   2. Recently, and more generally, any official inspection team or
   special {firefighting} group called in to look at a problem.

   A subset of tiger teams are professional {cracker}s, testing the
   security of military computer installations by attempting remote
   attacks via networks or supposedly `secure' comm channels.  Some of
   their escapades, if declassified, would probably rank among the
   greatest hacks of all times.  The term has been adopted in
   commercial computer-security circles in this more specific sense.

:time bomb: n. A subspecies of {logic bomb} that is triggered by
   reaching some preset time, either once or periodically.  There are
   numerous legends about time bombs set up by programmers in their
   employers' machines, to go off if the programmer is fired or laid
   off and is not present to perform the appropriate suppressing
   action periodically.

   Interestingly, the only such incident for which we have been
   pointed to documentary evidence took place in the Soviet Union in
   1986!  A disgruntled programmer at the Volga Automobile Plant
   (where the Fiat clones called Ladas were manufactured) planted a
   time bomb which, a week after he'd left on vacation, stopped the
   entire main assembly line for a day.  The case attracted lots of
   attention in the Soviet Union because it was the first cracking
   case to make it to court there.  The perpetrator got 3 years in
   jail.

:time sink: [poss. by analogy with `heat sink' or `current sink'] n.
   A project that consumes unbounded amounts of time.

:time T: /ti:m T/ n. 1. An unspecified but usually well-understood
   time, often used in conjunction with a later time T+1.
   "We'll meet on campus at time T or at Louie's at
   time T+1" means, in the context of going out for dinner:
   "We can meet on campus and go to Louie's, or we can meet at Louie's
   itself a bit later."  (Louie's was a Chinese restaurant in Palo Alto
   that was a favorite with hackers.)  Had the number 30 been used instead
   of the number 1, it would have implied that the travel time from
   campus to Louie's is 30 minutes; whatever time T is (and
   that hasn't been decided on yet), you can meet half an hour later at
   Louie's than you could on campus and end up eating at the same time.
   See also {since time T equals minus infinity}.

:times-or-divided-by: [by analogy with `plus-or-minus'] quant.
   Term occasionally used when describing the uncertainty associated
   with a scheduling estimate, for either humorous or brutally honest
   effect.  For a software project, the scheduling uncertainty factor
   is usually at least 2.

:tip of the ice-cube: [IBM] n. The visible part of something small and
   insignificant.  Used as an ironic comment in situations where `tip
   of the iceberg' might be appropriate if the subject were at all
   important.

:tired iron: [IBM] n. Hardware that is perfectly functional but
   far enough behind the state of the art to have been superseded by new
   products, presumably with sufficient improvement in bang-per-buck that
   the old stuff is starting to look a bit like a {dinosaur}.

:tits on a keyboard: n. Small bumps on certain keycaps to keep
   touch-typists registered (usually on the `5' of a numeric
   keypad, and on the `F' and `J' of a QWERTY keyboard; but
   the Mac, perverse as usual, has them on the `D' and `K'
   keys).

:TLA: /T-L-A/ [Three-Letter Acronym] n. 1. Self-describing
   abbreviation for a species with which computing terminology is
   infested.  2. Any confusing acronym.  Examples include MCA, FTP,
   SNA, CPU, MMU, SCCS, DMU, FPU, NNTP, TLA.  People who like this
   looser usage argue that not all TLAs have three letters, just as
   not all four-letter words have four letters.  One also hears of
   `ETLA' (Extended Three-Letter Acronym, pronounced /ee tee el
   ay/) being used to describe four-letter acronyms.  The term
   `SFLA' (Stupid Four-Letter Acronym) has also been reported.  See
   also {YABA}.

   The self-effacing phrase "TDM TLA" (Too Damn Many...) is
   often used to bemoan the plethora of TLAs in use.  In 1989, a
   random of the journalistic persuasion asked hacker Paul Boutin
   "What do you think will be the biggest problem in computing in
   the 90s?"  Paul's straight-faced response: "There are only
   17,000 three-letter acronyms." (To be exact, there are 26^3
   = 17,576.)

:TMRC: /tmerk'/ n. The Tech Model Railroad Club at MIT, one of
   the wellsprings of hacker culture.  The 1959 `Dictionary of
   the TMRC Language' compiled by Peter Samson included several terms
   that became basics of the hackish vocabulary (see esp. {foo},
   {mung}, and {frob}).

   By 1962, TMRC's legendary layout was already a marvel of complexity
   (and has grown in the thirty years since; all the features
   described here are still present).  The control system alone
   featured about 1200 relays.  There were {scram switch}es located
   at numerous places around the room that could be thwacked if
   something undesirable was about to occur, such as a train going
   full-bore at an obstruction.  Another feature of the system was a
   digital clock on the dispatch board, which was itself something of
   a wonder in those bygone days before cheap LEDS and seven-segment
   displays (no model railroad can begin to approximate the scale
   distances between towns and stations, so model railroad timetables
   assume a fast clock so that it seems to take about the right amount
   of time for a train to complete its journey).  When someone hit a
   scram switch the clock stopped and the display was replaced with the
   word `FOO'; at TMRC the scram switches are therefore called `foo
   switches'.

   Steven Levy, in his book `Hackers' (see the Bibliography in
   {Appendix C}), gives a stimulating account of those early
   years.  TMRC's Power and Signals group included most of the early
   PDP-1 hackers and the people who later bacame the core of the MIT
   AI Lab staff.  Thirty years later that connection is still very
   much alive, and this lexicon accordingly includes a number of
   entries from a recent revision of the TMRC dictionary.

:TMRCie: /tmerk'ee/, [MIT] n. A denizen of {TMRC}.

:to a first approximation: 1. [techspeak] When one is doing certain
   numerical computations, an approximate solution may be computed by
   any of several heuristic methods, then refined to a final value.
   By using the starting point of a first approximation of the answer,
   one can write an algorithm that converges more quickly to the
   correct result.  2. In jargon, a preface to any comment that
   indicates that the comment is only approximately true.  The remark
   "To a first approximation, I feel good" might indicate that
   deeper questioning would reveal that not all is perfect (e.g., a
   nagging cough still remains after an illness).

:to a zeroth approximation: [from `to a first approximation'] A
   *really* sloppy approximation; a wild guess.  Compare
   {social science number}.

:toast: 1. n. Any completely inoperable system or component, esp.
   one that has just crashed and burned: "Uh, oh ... I think the
   serial board is toast."  2. vt. To cause a system to crash
   accidentally, especially in a manner that requires manual
   rebooting.  "Rick just toasted the {firewall machine} again."

:toaster: n. 1. The archetypal really stupid application for an
   embedded microprocessor controller; often used in comments that
   imply that a scheme is inappropriate technology (but see
   {elevator controller}).  "{DWIM} for an assembler?  That'd be
   as silly as running UNIX on your toaster!"  2. A very, very dumb
   computer. "You could run this program on any dumb toaster."  See
   {bitty box}, {Get a real computer!}, {toy}, {beige toaster}.
   3. A Macintosh, esp. the Classic Mac.  Some hold that this is
   implied by sense 2.  4. A peripheral device.  "I bought my box
   without toasters, but since then I've added two boards and a second
   disk drive."

:toeprint: n. A {footprint} of especially small size.

:toggle: vt. To change a {bit} from whatever state it is in to the
   other state; to change from 1 to 0 or from 0 to 1.  This comes from
   `toggle switches', such as standard light switches, though the
   word `toggle' actually refers to the mechanism that keeps the
   switch in the position to which it is flipped rather than to the
   fact that the switch has two positions.  There are four things you
   can do to a bit: set it (force it to be 1), clear (or zero) it,
   leave it alone, or toggle it.  (Mathematically, one would say that
   there are four distinct boolean-valued functions of one boolean
   argument, but saying that is much less fun than talking about
   toggling bits.)

:tool: 1. n. A program used primarily to create, manipulate, modify,
   or analyze other programs, such as a compiler or an editor or a
   cross-referencing program.  Oppose {app}, {operating system}.
   2. [UNIX] An application program with a simple, `transparent'
   (typically text-stream) interface designed specifically to be used
   in programmed combination with other tools (see {filter}).
   3. [MIT: general to students there] vi. To work; to study (connotes
   tedium).  The TMRC Dictionary defined this as "to set one's brain
   to the grindstone".  See {hack}.  4. [MIT] n. A student who
   studies too much and hacks too little.  (MIT's student humor
   magazine rejoices in the name `Tool and Die'.)

:toolsmith: n. The software equivalent of a tool-and-die
   specialist; one who specializes in making the {tool}s with which
   other programmers create applications.  Many hackers consider this
   more fun than applications per se; to understand why, see
   {uninteresting}.  Jon Bentley, in the "Bumper-Sticker Computer
   Science" chapter of his book `More Programming Pearls',
   quotes Dick Sites from DEC as saying "I'd rather write programs to
   write programs than write programs".

:topic drift: n. Term used on GEnie, USENET and other electronic
   fora to describe the tendency of a {thread} to drift away from
   the original subject of discussion (and thus, from the Subject
   header of the originating message), or the results of that
   tendency.  Often used in gentle reminders that the discussion has
   strayed off any useful track.  "I think we started with a question
   about Niven's last book, but we've ended up discussing the sexual
   habits of the common marmoset.  Now *that's* topic drift!"

:topic group: n. Syn. {forum}.

:TOPS-10:: /tops-ten/ n. DEC's proprietary OS for the fabled {PDP-10}
   machines, long a favorite of hackers but now effectively extinct.
   A fountain of hacker folklore; see {Appendix A}.  See also {{ITS}},
   {{TOPS-20}}, {{TWENEX}}, {VMS}, {operating system}.  TOPS-10 was
   sometimes called BOTS-10 (from `bottoms-ten') as a comment on the
   inappropriateness of describing it as the top of anything.

:TOPS-20:: /tops-twen'tee/ n. See {{TWENEX}}.

:toto: /toh'toh/ n. This is reported to be the default scratch
   file name among French-speaking programmers --- in other words, a
   francophone {foo}.  It is reported that the phonetic mutations
   "titi", "tata", and "tutu" canonically follow `toto',
   analogously to {bar}, {baz} and {quux} in English.

:tourist: [ITS] n. A guest on the system, especially one who
   generally logs in over a network from a remote location for {comm
   mode}, email, games, and other trivial purposes.  One step below
   {luser}.  Hackers often spell this {turist}, perhaps by
   some sort of tenuous analogy with {luser} (this also expresses the
   ITS culture's penchant for six-letterisms).  Compare {twink},
   {read-only user}.

:tourist information: n. Information in an on-line display that is
   not immediately useful, but contributes to a viewer's gestalt of
   what's going on with the software or hardware behind it.  Whether a
   given piece of info falls in this category depends partly on what
   the user is looking for at any given time.  The `bytes free'
   information at the bottom of an MS-DOS `dir' display is
   tourist information; so (most of the time) is the TIME information
   in a UNIX `ps(1)' display.

:touristic: adj. Having the quality of a {tourist}.  Often used
   as a pejorative, as in `losing touristic scum'.  Often spelled
   `turistic' or `turistik', so that phrase might be more properly
   rendered `lusing turistic scum'.

:toy: n. A computer system; always used with qualifiers.
   1. `nice toy': One that supports the speaker's hacking style
   adequately.  2. `just a toy': A machine that yields
   insufficient {computron}s for the speaker's preferred uses.  This
   is not condemnatory, as is {bitty box}; toys can at least be fun.
   It is also strongly conditioned by one's expectations; Cray XMP
   users sometimes consider the Cray-1 a `toy', and certainly all RISC
   boxes and mainframes are toys by their standards.  See also {Get
   a real computer!}.

:toy language: n. A language useful for instructional purposes or
   as a proof-of-concept for some aspect of computer-science theory,
   but inadequate for general-purpose programming.  {Bad Thing}s
   can result when a toy language is promoted as a general purpose
   solution for programming (see {bondage-and-discipline
   language}); the classic example is {{Pascal}}.  Several moderately
   well-known formalisms for conceptual tasks such as programming Turing
   machines also qualify as toy languages in a less negative sense.
   See also {MFTL}.

:toy problem: [AI] n. A deliberately oversimplified case of a
   challenging problem used to investigate, prototype, or test
   algorithms for a real problem.  Sometimes used pejoratively.  See
   also {gedanken}, {toy program}.

:toy program: n. 1. One that can be readily comprehended; hence, a
   trivial program (compare {noddy}).  2. One for which the effort
   of initial coding dominates the costs through its life cycle.
   See also {noddy}.

:trampoline: n. An incredibly {hairy} technique, found in some
   {HLL} and program-overlay implementations (e.g., on the
   Macintosh), that involves on-the-fly generation of small executable
   (and, likely as not, self-modifying) code objects to do indirection
   between code sections.  These pieces of {live data} are called
   `trampolines'.  Trampolines are notoriously difficult to understand
   in action; in fact, it is said by those who use this term that the
   trampoline that doesn't bend your brain is not the true
   trampoline.  See also {snap}.

:trap: 1. n. A program interrupt, usually an interrupt caused by
   some exceptional situation in the user program.  In most cases, the
   OS performs some action, then returns control to the program.
   2. vi. To cause a trap.  "These instructions trap to the
   monitor."  Also used transitively to indicate the cause of the
   trap.  "The monitor traps all input/output instructions."

   This term is associated with assembler programming (`interrupt'
   or `exception' is more common among {HLL} programmers) and
   appears to be fading into history among programmers as the role of
   assembler continues to shrink.  However, it is still important to
   computer architects and systems hackers (see {system},
   sense 1), who use it to distinguish deterministically repeatable
   exceptions from timing-dependent ones (such as I/O interrupts).

:trap door: alt. `trapdoor' n. 1. Syn. {back door} --- a
   {Bad Thing}.  2. [techspeak] A `trap-door function' is one
   which is easy to compute but very difficult to compute the inverse
   of.  Such functions are {Good Thing}s with important
   applications in cryptography, specifically in the construction of
   public-key cryptosystems.

:trash: vt. To destroy the contents of (said of a data structure).
   The most common of the family of near-synonyms including {mung},
   {mangle}, and {scribble}.

:trawl: v. To sift through large volumes of data (e.g., USENET
   postings, FTP archives, or the Jargon File) looking for something
   of interest.

:tree-killer: [Sun] n. 1. A printer.  2. A person who wastes paper.
   This should be interpreted in a broad sense; `wasting paper'
   includes the production of {spiffy} but {content-free}
   documents.  Thus, most {suit}s are tree-killers.  The negative
   loading of this term may reflect the epithet `tree-killer'
   applied by Treebeard the Ent to the Orcs in J.R.R. Tolkien's
   `Lord of the Rings' (see also {elvish}, {elder
   days}).

:treeware: n. Printouts, books, and other information media made
   from pulped dead trees.  Compare {tree-killer}, see
   {documentation}.

:trit: /trit/ [by analogy with `bit'] n. One base-3 digit; the
   amount of information conveyed by a selection among one of three
   equally likely outcomes (see also {bit}).  These arise, for
   example, in the context of a {flag} that should actually be able
   to assume *three* values --- such as yes, no, or unknown.  Trits are
   sometimes jokingly called `3-state bits'.  A trit may be
   semi-seriously referred to as `a bit and a half', although it is
   linearly equivalent to 1.5849625 bits (that is,
   log2(3)
   bits).

:trivial: adj. 1. Too simple to bother detailing.  2. Not worth the
   speaker's time.  3. Complex, but solvable by methods so well known
   that anyone not utterly {cretinous} would have thought of them
   already.  4. Any problem one has already solved (some claim that
   hackish `trivial' usually evaluates to `I've seen it before').
   Hackers' notions of triviality may be quite at variance with those
   of non-hackers.  See {nontrivial}, {uninteresting}.

:troff:: /tee'rof/ or /trof/ [UNIX] n. The gray eminence of UNIX
   text processing; a formatting and phototypesetting program, written
   originally in PDP-11 assembler and then in barely-structured early
   C by the late Joseph Ossanna, modeled after the earlier ROFF which
   was in turn modeled after Multics' RUNOFF by Jerome Saltzer
   (*that* name came from the expression "to run off a copy").  A
   companion program, `nroff', formats output for terminals and
   line printers.

   In 1979, Brian Kernighan modified `troff' so that it could
   drive phototypesetters other than the Graphic Systems CAT.  His
   paper describing that work ("A Typesetter-independent troff,"
   AT&T CSTR #97) explains troff's durability.  After discussing the
   program's "obvious deficiencies --- a rebarbative input syntax,
   mysterious and undocumented properties in some areas, and a
   voracious appetite for computer resources" and noting the ugliness
   and extreme hairiness of the code and internals, Kernighan
   concludes:

     None of these remarks should be taken as denigrating
     Ossanna's accomplishment with TROFF.  It has proven a
     remarkably robust tool, taking unbelievable abuse from a
     variety of preprocessors and being forced into uses that
     were never conceived of in the original design, all with
     considerable grace under fire.

   The success of {{TeX}} and desktop publishing systems have
   reduced `troff''s relative importance, but this tribute
   perfectly captures the strengths that secured `troff' a place
   in hacker folklore; indeed, it could be taken more generally as an
   indication of those qualities of good programs that, in the long
   run, hackers most admire.

:troglodyte: [Commodore] n. 1. A hacker who never leaves his
   cubicle.  The term `Gnoll' (from Dungeons & Dragons) is also
   reported.  2. A curmudgeon attached to an obsolescent computing
   environment.  The combination `ITS troglodyte' was flung around
   some during the USENET and email wringle-wrangle attending the
   2.x.x revision of the Jargon File; at least one of the people it
   was intended to describe adopted it with pride.

:troglodyte mode: [Rice University] n. Programming with the lights
   turned off, sunglasses on, and the terminal inverted (black on
   white) because you've been up for so many days straight that your
   eyes hurt (see {raster burn}).  Loud music blaring from a stereo
   stacked in the corner is optional but recommended.  See {larval
   stage}, {hack mode}.

:Trojan horse: [coined by MIT-hacker-turned-NSA-spook Dan Edwards]
   n. A program designed to break security or damage a system that is
   disguised as something else benign, such as a directory lister,
   archiver, a game, or (in one notorious 1990 case on the Mac) a
   program to find and destroy viruses!  See {back door}, {virus},
   {worm}, {phage}, {mockingbird}.

:tron: [NRL, CMU; prob. fr. the movie `Tron'] v. To become
   inaccessible except via email or `talk(1)', especially when
   one is normally available via telephone or in person.  Frequently
   used in the past tense, as in: "Ran seems to have tronned on us
   this week" or "Gee, Ran, glad you were able to un-tron
   yourself".  One may also speak of `tron mode'; compare
   {spod}.

:true-hacker: [analogy with `trufan' from SF fandom] n. One who
   exemplifies the primary values of hacker culture, esp. competence
   and helpfulness to other hackers.  A high compliment.  "He spent
   6 hours helping me bring up UUCP and netnews on my FOOBAR 4000
   last week --- manifestly the act of a true-hacker."  Compare
   {demigod}, oppose {munchkin}.

:tty: /T-T-Y/ [UNIX], /tit'ee/ [ITS, but some UNIX people say it
   this way as well; this pronunciation is not considered to have
   sexual undertones] n. 1. A terminal of the teletype variety,
   characterized by a noisy mechanical printer, a very limited
   character set, and poor print quality.  Usage: antiquated (like the
   TTYs themselves).  See also {bit-paired keyboard}.
   2. [especially UNIX] Any terminal at all; sometimes used to refer
   to the particular terminal controlling a given job.  3. [UNIX] Any
   serial port, whether or not the device connected to it is a
   terminal; so called because under UNIX such devices have names of
   the form tty*.  Ambiguity between senses 2 and 3 is common but
   seldom bothersome.

:tube: 1. n. A CRT terminal.  Never used in the mainstream sense of
   TV; real hackers don't watch TV, except for Loony Toons, Rocky &
   Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy
   old swashbuckler movie (see {Appendix B}).  2. [IBM] To send
   a copy of something to someone else's terminal.  "Tube me that
   note?"

:tube time: n. Time spent at a terminal or console.  More inclusive
   than hacking time; commonly used in discussions of what parts of
   one's environment one uses most heavily.  "I find I'm spending too
   much of my tube time reading mail since I started this revision."

:tunafish: n. In hackish lore, refers to the mutated punchline of
   an age-old joke to be found at the bottom of the manual pages of
   `tunefs(8)' in the original {BSD} 4.2 distribution.  The
   joke was removed in later releases once commercial sites started
   using 4.2.  Tunefs relates to the `tuning' of file-system
   parameters for optimum performance, and at the bottom of a few
   pages of wizardly inscriptions was a `BUGS' section consisting of
   the line "You can tune a file system, but you can't tunafish".
   Variants of this can be seen in other BSD versions, though it has
   been excised from some versions by humorless management
   {droid}s.  The [nt]roff source for SunOS 4.1.1 contains a
   comment apparently designed to prevent this: "Take this out and a
   Unix Demon will dog your steps from now until the `time_t''s
   wrap around."

:tune: [from automotive or musical usage] vt. To optimize a program
   or system for a particular environment, esp. by adjusting numerical
   parameters designed as {hook}s for tuning, e.g., by changing
   `#define' lines in C.  One may `tune for time' (fastest
   execution), `tune for space' (least memory use), or
   `tune for configuration' (most efficient use of hardware).  See
   {bum}, {hot spot}, {hand-hacking}.

:turbo nerd: n. See {computer geek}.

:Turing tar-pit: n. 1. A place where anything is possible but
   nothing of interest is practical.  Alan Turing helped lay the
   foundations of computer science by showing that all machines and
   languages capable of expressing a certain very primitive set of
   operations are logically equivalent in the kinds of computations
   they can carry out, and in principle have capabilities that differ
   only in speed from those of the most powerful and elegantly
   designed computers.  However, no machine or language exactly
   matching Turing's primitive set has ever been built (other than
   possibly as a classroom exercise), because it would be horribly
   slow and far too painful to use.  A `Turing tar-pit' is any
   computer language or other tool that shares this property.  That
   is, it's theoretically universal --- but in practice, the harder
   you struggle to get any real work done, the deeper its inadequacies
   suck you in.  Compare {bondage-and-discipline language}.  2. The
   perennial {holy wars} over whether language A or B is the "most
   powerful".

:turist: /too'rist/ n. Var. sp. of {tourist}, q.v.  Also in
   adjectival form, `turistic'.  Poss. influenced by {luser} and
   `Turing'.

:tweak: vt. 1. To change slightly, usually in reference to a
   value.  Also used synonymously with {twiddle}.  If a program is
   almost correct, rather than figure out the precise problem you
   might just keep tweaking it until it works.  See {frobnicate}
   and {fudge factor}; also see {shotgun debugging}.  2. To
   {tune} or {bum} a program; preferred usage in the U.K.

:tweeter: [University of Waterloo] n. Syn. {perf}, {chad}
   (sense 1).  This term (like {woofer}) has been in use at
   Waterloo since 1972 but is elsewhere unknown.  In audio jargon, the
   word refers to the treble speaker(s) on a hi-fi.

:TWENEX:: /twe'neks/ n. The TOPS-20 operating system by DEC ---
   the second proprietary OS for the PDP-10 --- preferred by most
   PDP-10 hackers over TOPS-10 (that is, by those who were not
   {{ITS}} or {{WAITS}} partisans).  TOPS-20 began in 1969 as Bolt,
   Beranek & Newman's TENEX operating system using special paging
   hardware.  By the early 1970s, almost all of the systems on the
   ARPANET ran TENEX.  DEC purchased the rights to TENEX from BBN and
   began work to make it their own.  The first in-house code name for
   the operating system was VIROS (VIRtual memory Operating System);
   when customers started asking questions, the name was changed to
   SNARK so DEC could truthfully deny that there was any project
   called VIROS.  When the name SNARK became known, the name was
   briefly reversed to become KRANS; this was quickly abandoned when
   someone objected that `krans' meant `funeral wreath' in Swedish
   (though some Swedish speakers have since said it means simply
   `wreath'; this part of the story may be apocryphal).  Ultimately
   DEC picked TOPS-20 as the name of the operating system, and it was
   as TOPS-20 that it was marketed.  The hacker community, mindful of
   its origins, quickly dubbed it {{TWENEX}} (a contraction of
   `twenty TENEX'), even though by this point very little of the
   original TENEX code remained (analogously to the differences
   between AT&T V6 UNIX and BSD).  DEC people cringed when they heard
   "TWENEX", but the term caught on nevertheless (the written
   abbreviation `20x' was also used).  TWENEX was successful and
   very popular; in fact, there was a period in the early 1980s when
   it commanded as fervent a culture of partisans as UNIX or ITS ---
   but DEC's decision to scrap all the internal rivals to the VAX
   architecture and its relatively stodgy VMS OS killed the DEC-20 and
   put a sad end to TWENEX's brief day in the sun.  DEC attempted to
   convince TOPS-20 hackers to convert to {VMS}, but instead, by
   the late 1980s, most of the TOPS-20 hackers had migrated to UNIX.

:twiddle: n. 1. Tilde (ASCII 1111110, `~').  Also
   called `squiggle', `sqiggle' (sic --- pronounced /skig'l/),
   and `twaddle', but twiddle is the most common term.  2. A small
   and insignificant change to a program.  Usually fixes one bug and
   generates several new ones.  3. vt. To change something in a small
   way.  Bits, for example, are often twiddled.  Twiddling a switch or
   knob implies much less sense of purpose than toggling or tweaking
   it; see {frobnicate}.  To speak of twiddling a bit connotes
   aimlessness, and at best doesn't specify what you're doing to the
   bit; `toggling a bit' has a more specific meaning (see {bit
   twiddling}, {toggle}).

:twilight zone: [IRC] n. Notionally, the area of cyberspace where {IRC}
   operators live.  An {op} is said to have a "connection to the
   twilight zone".
   
:twink: /twink/ [UCSC] n. Equivalent to {read-only user}.
   Also reported on the USENET group soc.motss; may derive from
   gay slang for a cute young thing with nothing upstairs (compare
   mainstream `chick').

:two pi: quant. The number of years it takes to finish one's
   thesis.  Occurs in stories in the following form: "He started on
   his thesis; 2 pi years later..."

:two-to-the-N: quant. An amount much larger than {N} but smaller
   than {infinity}.  "I have 2-to-the-N things to do before I can
   go out for lunch" means you probably won't show up.

:twonkie: /twon'kee/ n. The software equivalent of a Twinkie (a
   variety of sugar-loaded junk food, or (in gay slang) the male
   equivalent of `chick'); a useless `feature' added to look sexy
   and placate a {marketroid} (compare {Saturday-night
   special}).  This may also be related to "The Twonky", title
   menace of a classic SF short story by Lewis Padgett (Henry Kuttner
   and C. L. Moore), first published in the September 1942
   `Astounding Science Fiction' and subsequently much
   anthologized.

= U =
=====

:UBD: /U-B-D/ [abbreviation for `User Brain Damage'] An
   abbreviation used to close out trouble reports obviously due to
   utter cluelessness on the user's part.  Compare {pilot error};
   oppose {PBD}; see also {brain-damaged}.

:UN*X: n. Used to refer to the UNIX operating system (a trademark of
   AT&T) in writing, but avoiding the need for the ugly
   {(TM)} typography.
   Also used to refer to any or all varieties of Unixoid operating
   systems.  Ironically, lawyers now say that the requirement for the
   TM-postfix has no legal force, but the asterisk usage is
   entrenched anyhow.  It has been suggested that there may be a
   psychological connection to practice in certain religions
   (especially Judaism) in which the name of the deity is never
   written out in full, e.g., `YHWH' or `G--d' is used.  See also
   {glob}.

:undefined external reference: excl. [UNIX] A message from UNIX's
   linker.  Used in speech to flag loose ends or dangling references
   in an argument or discussion.

:under the hood: prep. [hot-rodder talk] 1. Used to introduce the
   underlying implementation of a product (hardware, software, or
   idea).  Implies that the implementation is not intuitively obvious
   from the appearance, but the speaker is about to enable the
   listener to {grok} it.  "Let's now look under the hood to see
   how ...." 2. Can also imply that the implementation is much
   simpler than the appearance would indicate: "Under the hood, we
   are just fork/execing the shell."  3. Inside a chassis, as in
   "Under the hood, this baby has a 40MHz 68030!"

:undocumented feature: n. See {feature}.

:uninteresting: adj. 1. Said of a problem that, although
   {nontrivial}, can be solved simply by throwing sufficient
   resources at it.  2. Also said of problems for which a solution
   would neither advance the state of the art nor be fun to design and
   code.

   Hackers regard uninteresting problems as intolerable wastes of
   time, to be solved (if at all) by lesser mortals.  *Real*
   hackers (see {toolsmith}) generalize uninteresting problems
   enough to make them interesting and solve them --- thus solving the
   original problem as a special case (and, it must be admitted,
   occasionally turning a molehill into a mountain, or a mountain into
   a tectonic plate).  See {WOMBAT}, {SMOP}; compare {toy
   problem}, oppose {interesting}.

:UNIX:: /yoo'niks/ [In the authors' words, "A weak pun on
   Multics"] n. (also `Unix') An interactive time-sharing system
   originally invented in 1969 by Ken Thompson after Bell Labs left
   the Multics project, originally so he could play games on his
   scavenged PDP-7.  Dennis Ritchie, the inventor of C, is considered
   a co-author of the system.  The turning point in UNIX's history
   came when it was reimplemented almost entirely in C during
   1972--1974, making it the first source-portable OS.  UNIX
   subsequently underwent mutations and expansions at the hands of
   many different people, resulting in a uniquely flexible and
   developer-friendly environment.  By 1991, UNIX was the most widely
   used multiuser general-purpose operating system in the world.  Many
   people consider this the most important victory yet of hackerdom
   over industry opposition (but see {UNIX weenie} and {UNIX
   conspiracy} for an opposing point of view).  See {Version 7},
   {BSD}, {USG UNIX}.

:UNIX brain damage: n. Something that has to be done to break a  
   network program (typically a mailer) on a non-UNIX system so that
   it will interoperate with UNIX systems. The hack may qualify as
   `UNIX brain damage' if the program conforms to published standards
   and the UNIX program in question does not.  UNIX brain damage
   happens because it is much easier for other (minority) systems to
   change their ways to match non-conforming behavior than it is to
   change all the hundreds of thousands of UNIX systems out there.

   An example of UNIX brain damage is a {kluge} in a mail server to 
   recognize bare line feed (the UNIX newline) as an equivalent form
   to the Internet standard newline, which is a carriage return
   followed by a line feed.  Such things can make even a hardened
   {jock} weep.

:UNIX conspiracy: [ITS] n. According to a conspiracy theory long
   popular among {{ITS}} and {{TOPS-20}} fans, UNIX's growth is the
   result of a plot, hatched during the 1970s at Bell Labs, whose
   intent was to hobble AT&T's competitors by making them dependent
   upon a system whose future evolution was to be under AT&T's
   control.  This would be accomplished by disseminating an operating
   system that is apparently inexpensive and easily portable, but also
   relatively unreliable and insecure (so as to require continuing
   upgrades from AT&T).  This theory was lent a substantial impetus
   in 1984 by the paper referenced in the {back door} entry.

   In this view, UNIX was designed to be one of the first computer
   viruses (see {virus}) --- but a virus spread to computers indirectly
   by people and market forces, rather than directly through disks and
   networks.  Adherents of this `UNIX virus' theory like to cite the
   fact that the well-known quotation "UNIX is snake oil" was
   uttered by DEC president Kenneth Olsen shortly before DEC began
   actively promoting its own family of UNIX workstations.  (Olsen now
   claims to have been misquoted.)

:UNIX weenie: [ITS] n. 1. A derogatory play on `UNIX wizard',
   common among hackers who use UNIX by necessity but would prefer
   alternatives.  The implication is that although the person in
   question may consider mastery of UNIX arcana to be a wizardly
   skill, the only real skill involved is the ability to tolerate (and
   the bad taste to wallow in) the incoherence and needless complexity
   that is alleged to infest many UNIX programs.  "This shell script
   tries to parse its arguments in 69 bletcherous ways.  It must have
   been written by a real UNIX weenie."  2. A derogatory term for
   anyone who engages in uncritical praise of UNIX.  Often appearing
   in the context "stupid UNIX weenie".  See {Weenix}, {UNIX
   conspiracy}.  See also {weenie}.

:unixism: n. A piece of code or a coding technique that depends on
   the protected multi-tasking environment with relatively low
   process-spawn overhead that exists on virtual-memory UNIX systems.
   Common {unixism}s include: gratuitous use of `fork(2)'; the
   assumption that certain undocumented but well-known features of
   UNIX libraries such as `stdio(3)' are supported elsewhere;
   reliance on {obscure} side-effects of system calls (use of
   `sleep(2)' with a 0 argument to clue the scheduler that you're
   willing to give up your time-slice, for example); the assumption
   that freshly allocated memory is zeroed; and the assumption that
   fragmentation problems won't arise from never `free()'ing
   memory.  Compare {vaxocentrism}; see also {New Jersey}.

:unleaded: adj. Said of decaffeinated coffee, Diet Coke, and other
   imitation {programming fluid}s.  "Do you want regular or
   unleaded?"  Appears to be widespread among programmers associated
   with the oil industry in Texas (and probably elsewhere).  Usage:
   silly, and probably unintelligible to the next generation of
   hackers.

:unroll: v. To repeat the body of a loop several times in succession.
   This optimization technique reduces the number of times the
   loop-termination test has to be executed.  But it only works if
   the number of iterations desired is a multiple of the number of
   repetitions of the body.  Something has to be done to take care
   of any leftover iterations --- such as {Duff's device}.

:unswizzle: v. See {swizzle}.

:unwind the stack: vi. 1. [techspeak] During the execution of a
   procedural language, one is said to `unwind the stack' from a
   called procedure up to a caller when one discards the stack frame
   and any number of frames above it, popping back up to the level of
   the given caller.  In C this is done with
   `longjmp'/`setjmp', in LISP with `throw/catch'.
   See also {smash the stack}.  2. People can unwind the stack as
   well, by quickly dealing with a bunch of problems: "Oh heck, let's
   do lunch.  Just a second while I unwind my stack."

:unwind-protect: [MIT: from the name of a LISP operator] n. A task you
   must remember to perform before you leave a place or finish a
   project.  "I have an unwind-protect to call my advisor."

:up: adj. 1. Working, in order.  "The down escalator is up."
   Oppose {down}.  2. `bring up': vt. To create a working
   version and start it.  "They brought up a down system." 
   3. `come up' vi. To become ready for production use.

:upload: /uhp'lohd/ v. 1. [techspeak] To transfer programs or
   data over a digital communications link from a smaller or
   peripheral `client' system to a larger or central `host'
   one.  A transfer in the other direction is, of course, called a
   {download} (but see the note about ground-to-space comm under
   that entry).  2. [speculatively] To move the essential patterns and
   algorithms that make up one's mind from one's brain into a
   computer.  Those who are convinced that such patterns and
   algorithms capture the complete essence of the self view this
   prospect with approbation.

:upthread: adv. Earlier in the discussion (see {thread}), i.e.,
   `above'. "As Joe pointed out upthread, ..."  See also
   {followup}.

:urchin: n. See {munchkin}.

:USENET: /yoos'net/ or /yooz'net/ [from `Users' Network'] n.
   A distributed {bboard} (bulletin board) system supported mainly
   by UNIX machines.  Originally implemented in 1979--1980 by Steve
   Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke
   University, it has swiftly grown to become international in scope
   and is now probably the largest decentralized information utility
   in existence.  As of early 1993, it hosts well over 1200
   {newsgroup}s and an average of 40 megabytes (the equivalent of
   several thousand paper pages) of new technical articles, news,
   discussion, chatter, and {flamage} every day.

:user: n. 1. Someone doing `real work' with the computer, using
   it as a means rather than an end.  Someone who pays to use a
   computer.  See {real user}.  2. A programmer who will believe
   anything you tell him.  One who asks silly questions.  [GLS
   observes: This is slightly unfair.  It is true that users ask
   questions (of necessity).  Sometimes they are thoughtful or deep.
   Very often they are annoying or downright stupid, apparently
   because the user failed to think for two seconds or look in the
   documentation before bothering the maintainer.]  See {luser}.
   3. Someone who uses a program from the outside, however skillfully,
   without getting into the internals of the program.  One who reports
   bugs instead of just going ahead and fixing them.

   The general theory behind this term is that there are two classes
   of people who work with a program: there are implementors (hackers)
   and {luser}s.  The users are looked down on by hackers to some
   extent because they don't understand the full ramifications of the
   system in all its glory.  (The few users who do are known as
   `real winners'.)  The term is a relative one: a skilled hacker
   may be a user with respect to some program he himself does not
   hack.  A LISP hacker might be one who maintains LISP or one who
   uses LISP (but with the skill of a hacker).  A LISP user is one who
   uses LISP, whether skillfully or not.  Thus there is some overlap
   between the two terms; the subtle distinctions must be resolved by
   context.

:user-friendly: adj. Programmer-hostile.  Generally used by hackers in
   a critical tone, to describe systems that hold the user's hand so
   obsessively that they make it painful for the more experienced and
   knowledgeable to get any work done.  See {menuitis}, {drool-proof
   paper}, {Macintrash}, {user-obsequious}.

:user-obsequious: adj. Emphatic form of {user-friendly}.  Connotes
   a system so verbose, inflexible, and determinedly simple-minded
   that it is nearly unusable.  "Design a system any fool can use and
   only a fool will want to use it."  See {WIMP environment},
   {Macintrash}.

:USG UNIX: /U-S-G yoo'niks/ n. Refers to AT&T UNIX
   commercial versions after {Version 7}, especially System III and
   System V releases 1, 2, and 3.  So called because during most of
   the life-span of those versions AT&T's support crew was called the
   `UNIX Support Group'.  See {BSD}, {{UNIX}}.

:UTSL: // [UNIX] n. On-line acronym for `Use the Source, Luke' (a
   pun on Obi-Wan Kenobi's "Use the Force, Luke!" in `Star
   Wars') --- analogous to {RTFM} but more polite.  This is a
   common way of suggesting that someone would be best off reading the
   source code that supports whatever feature is causing confusion,
   rather than making yet another futile pass through the manuals or
   broadcasting questions that haven't attracted {wizard}s to
   answer them.

   Until recently, this objurgation was in theory appropriately
   directed only at associates of some outfit with a UNIX source
   license; in practice, bootlegs of UNIX source code (made precisely
   for reference purposes) were so ubiquitous that one could utter
   at almost anyone on the network without concern.

   Nowadays, free UNIX clones are becomming common enough that almost
   anyone can read source legally.  The most widely distributed is
   probably Linux, with 386BSD (aka {jolix}) running second.  Cheap
   commercial UNIXes with source such as BSD/386 and Mach386 are
   accelerating this trend.

:UUCPNET: n. The store-and-forward network consisting of all the
   world's connected UNIX machines (and others running some clone of
   the UUCP (UNIX-to-UNIX CoPy) software).  Any machine reachable only
   via a {bang path} is on UUCPNET.  See {network address}.

= V =
=====

:vadding: /vad'ing/ [from VAD, a permutation of ADV (i.e.,
   {ADVENT}), used to avoid a particular {admin}'s continual
   search-and-destroy sweeps for the game] n. A leisure-time activity
   of certain hackers involving the covert exploration of the
   `secret' parts of large buildings --- basements, roofs, freight
   elevators, maintenance crawlways, steam tunnels, and the like.  A
   few go so far as to learn locksmithing in order to synthesize
   vadding keys.  The verb is `to vad' (compare {phreaking}; see
   also {hack}, sense 9).  This term dates from the late 1970s,
   before which such activity was simply called `hacking'; the older
   usage is still prevalent at MIT.

   The most extreme and dangerous form of vadding is `elevator
   rodeo', a.k.a. `elevator surfing', a sport played by wrasslin'
   down a thousand-pound elevator car with a 3-foot piece of
   string, and then exploiting this mastery in various stimulating
   ways (such as elevator hopping, shaft exploration, rat-racing, and
   the ever-popular drop experiments).  Kids, don't try this at home! 
   See also {hobbit} (sense 2).

:vanilla: [from the default flavor of ice cream in the U.S.] adj.
   Ordinary {flavor}, standard.  When used of food, very often does
   not mean that the food is flavored with vanilla extract!  For
   example, `vanilla wonton soup' means ordinary wonton soup, as
   opposed to hot-and-sour wonton soup.  Applied to hardware and
   software, as in "Vanilla Version 7 UNIX can't run on a
   vanilla 11/34."  Also used to orthogonalize chip nomenclature; for
   instance, a 74V00 means what TI calls a 7400, as distinct from
   a 74LS00, etc.  This word differs from {canonical} in that the
   latter means `default', whereas vanilla simply means `ordinary'.
   For example, when hackers go on a {great-wall}, hot-and-sour
   wonton soup is the {canonical} wonton soup to get (because that
   is what most of them usually order) even though it isn't the
   vanilla wonton soup.

:vannevar: /van'*-var/ n. A bogus technological prediction or a
   foredoomed engineering concept, esp. one that fails by implicitly
   assuming that technologies develop linearly, incrementally, and in
   isolation from one another when in fact the learning curve tends to
   be highly nonlinear, revolutions are common, and competition is the
   rule.  The prototype was Vannevar Bush's prediction of
   `electronic brains' the size of the Empire State Building with a
   Niagara-Falls-equivalent cooling system for their tubes and relays,
   made at a time when the semiconductor effect had already been
   demonstrated.  Other famous vannevars have included magnetic-bubble
   memory, LISP machines, {videotex}, and a paper from the
   late 1970s that computed a purported ultimate limit on areal
   density for ICs that was in fact less than the routine densities of
   5 years later.

:vaporware: /vay'pr-weir/ n. Products announced far in advance of
   any release (which may or may not actually take place).  See also
   {brochureware}.

:var: /veir/ or /var/ n. Short for `variable'.  Compare {arg},
   {param}.

:VAX: /vaks/ n. 1. [from Virtual Address eXtension] The most
   successful minicomputer design in industry history, possibly
   excepting its immediate ancestor, the PDP-11.  Between its release
   in 1978 and its eclipse by {killer micro}s after about 1986, the
   VAX was probably the hacker's favorite machine of them all, esp.
   after the 1982 release of 4.2 BSD UNIX (see {BSD}).  Esp.
   noted for its large, assembler-programmer-friendly instruction set
   --- an asset that became a liability after the RISC revolution.
   2. A major brand of vacuum cleaner in Britain.  Cited here because
   its alleged sales pitch, "Nothing sucks like a VAX!" became a
   sort of battle-cry of RISC partisans.    It is even sometimes
   claimed that DEC actually entered a cross-licensing deal with the
   vacuum-Vax people that allowed them to market VAX computers in the
   U.K. in return for not challenging the vacuum cleaner trademark in
   the U.S.

   It is sometimes claimed that this slogan was *not* actually
   used by the Vax vacuum-cleaner people, but was actually that of a
   rival brand called Electrolux (as in "Nothing sucks like...").
   It's been reliably confirmed that Electrolux actually did use this
   slogan in the late 1960s; they're a Belgian company, and it apparently
   has become a classic example (used in textbooks) of the perils of
   not knowing the local idiom.

   It appears, however, that the Vax people thought the slogan a
   sufficiently good idea to copy it.  Several British hackers report
   that their promotions used it in 1986--1987, and we have one
   report from a New Zealander that it surfaced there in TV ads for
   the product as recently as 1992!

:VAXectomy: /vak-sek't*-mee/ [by analogy with `vasectomy'] n. A
   VAX removal.  DEC's Microvaxen, especially, are much slower than
   newer RISC-based workstations such as the SPARC.  Thus, if one knows
   one has a replacement coming, VAX removal can be cause for
   celebration.

:VAXen: /vak'sn/ [from `oxen', perhaps influenced by `vixen'] n.
   (alt. `vaxen') The plural canonically used among hackers for the
   DEC VAX computers.  "Our installation has four PDP-10s and twenty
   vaxen."  See {boxen}.

:vaxherd: n. /vaks'herd/ [from `oxherd'] A VAX operator.

:vaxism: /vak'sizm/ n. A piece of code that exhibits
   {vaxocentrism} in critical areas.  Compare {PC-ism},
   {unixism}.

:vaxocentrism: /vak`soh-sen'trizm/ [analogy with
   `ethnocentrism'] n. A notional disease said to afflict
   C programmers who persist in coding according to certain
   assumptions that are valid (esp. under UNIX) on {VAXen} but
   false elsewhere. Among these are:

  1. The assumption that dereferencing a null pointer is safe because it
     is all bits 0, and location 0 is readable and 0.  Problem: this may
     instead cause an illegal-address trap on non-VAXen, and even on
     VAXen under OSes other than BSD UNIX.  Usually this is an implicit
     assumption of sloppy code (forgetting to check the pointer before
     using it), rather than deliberate exploitation of a misfeature.)

  2. The assumption that characters are signed.

  3. The assumption that a pointer to any one type can freely be cast
     into a pointer to any other type.  A stronger form of this is the
     assumption that all pointers are the same size and format, which
     means you don't have to worry about getting the types correct in
     calls.  Problem: this fails on word-oriented machines or others
     with multiple pointer formats.

  4. The assumption that the parameters of a routine are stored in
     memory, contiguously, and in strictly ascending or descending
     order.  Problem: this fails on many RISC architectures.

  5. The assumption that pointer and integer types are the same size,
     and that pointers can be stuffed into integer variables (and
     vice-versa) and drawn back out without being truncated or mangled.
     Problem: this fails on segmented architectures or word-oriented
     machines with funny pointer formats.

  6. The assumption that a data type of any size may begin at any byte
     address in memory (for example, that you can freely construct and
     dereference a pointer to a word- or greater-sized object at an odd
     char address).  Problem: this fails on many (esp. RISC)
     architectures better optimized for {HLL} execution speed, and can
     cause an illegal address fault or bus error.

  7. The (related) assumption that there is no padding at the end of
     types and that in an array you can thus step right from the last
     byte of a previous component to the first byte of the next one.
     This is not only machine- but compiler-dependent.

  8. The assumption that memory address space is globally flat and that
     the array reference `foo[-1]' is necessarily valid.  Problem: this
     fails at 0, or other places on segment-addressed machines like
     Intel chips (yes, segmentation is universally considered a
     {brain-damaged} way to design machines (see {moby}), but that is a
     separate issue).

  9. The assumption that objects can be arbitrarily large with no
     special considerations.  Problem: this fails on segmented
     architectures and under non-virtual-addressing environments.

 10. The assumption that the stack can be as large as memory.  Problem:
     this fails on segmented architectures or almost anything else
     without virtual addressing and a paged stack.

 11. The assumption that bits and addressable units within an object are
     ordered in the same way and that this order is a constant of
     nature.  Problem: this fails on {big-endian} machines.

 12. The assumption that it is meaningful to compare pointers to
     different objects not located within the same array, or to objects
     of different types.  Problem: the former fails on segmented
     architectures, the latter on word-oriented machines or others with
     multiple pointer formats.

 13. The assumption that an `int' is 32 bits, or (nearly equivalently)
     the assumption that `sizeof(int) == sizeof(long)'.  Problem: this
     fails on PDP-11s, 286-based systems and even on 386 and 68000
     systems under some compilers.

 14. The assumption that `argv[]' is writable.  Problem: this fails in
     many embedded-systems C environments and even under a few flavors
     of UNIX.

   Note that a programmer can validly be accused of vaxocentrism
   even if he or she has never seen a VAX.  Some of these assumptions
   (esp. 2--5) were valid on the PDP-11, the original C machine, and
   became endemic years before the VAX.  The terms `vaxocentricity'
   and `all-the-world's-a-VAX syndrome' have been used synonymously.

:vdiff: /vee'dif/ v.,n. Visual diff.  The operation of finding
   differences between two files by {eyeball search}.  The term
   `optical diff' has also been reported, and is sometimes more
   specifically used for the act of superimposing two nearly identical
   printouts on one another and holding them up to a light to spot
   differences.  Though this method is poor for detecting omissions in
   the `rear' file, it can also be used with printouts of graphics, a
   claim few if any diff programs can make.  See {diff}.

:veeblefester: /vee'b*l-fes`tr/ [from the "Born Loser"
   comix via Commodore; prob. originally from `Mad' Magazine's
   `Veeblefeetzer' parodies ca. 1960] n. Any obnoxious person engaged
   in the (alleged) professions of marketing or management.  Antonym
   of {hacker}.  Compare {suit}, {marketroid}.

:ventilator card: n. Syn. {lace card}.

:Venus flytrap: [after the insect-eating plant] n. See {firewall
   machine}.

:verbage: /ver'b*j/ n. A deliberate misspelling and mispronunciation of
   {verbiage} that assimilates it to the word `garbage'.  Compare
   {content-free}.  More pejorative than `verbiage'.

:verbiage: n. When the context involves a software or hardware
   system, this refers to {{documentation}}.  This term borrows the
   connotations of mainstream `verbiage' to suggest that the
   documentation is of marginal utility and that the motives behind
   its production have little to do with the ostensible subject.

:Version 7: alt. V7 /vee' se'vn/ n. The 1978 unsupported release of
   {{UNIX}} ancestral to all current commercial versions.  Before
   the release of the POSIX/SVID standards, V7's features were often
   treated as a UNIX portability baseline.  See {BSD}, {USG UNIX},
   {{UNIX}}.  Some old-timers impatient with commercialization and
   kernel bloat still maintain that V7 was the Last True UNIX.

:vgrep: /vee'grep/ v.,n. Visual grep.  The operation of finding
   patterns in a file optically rather than digitally (also called an
   `optical grep').  See {grep}; compare {vdiff}.

:vi: /V-I/, *not* /vi:/ and *never* /siks/ [from
   `Visual Interface'] n. A screen editor crufted together by Bill Joy
   for an early {BSD} release.  Became the de facto standard
   UNIX editor and a nearly undisputed hacker favorite outside of MIT
   until the rise of {EMACS} after about 1984.  Tends to frustrate
   new users no end, as it will neither take commands while expecting
   input text nor vice versa, and the default setup provides no
   indication of which mode one is in (one correspondent accordingly
   reports that he has often heard the editor's name pronounced
   /vi:l/).  Nevertheless it is still widely used (about half the
   respondents in a 1991 USENET poll preferred it), and even EMACS
   fans often resort to it as a mail editor and for small editing jobs
   (mainly because it starts up faster than the bulkier versions of
   EMACS).  See {holy wars}.

:videotex: n. obs. An electronic service offering people the
   privilege of paying to read the weather on their television screens
   instead of having somebody read it to them for free while they
   brush their teeth.  The idea bombed everywhere it wasn't
   government-subsidized, because by the time videotex was practical
   the installed base of personal computers could hook up to
   timesharing services and do the things for which videotex might
   have been worthwhile better and cheaper.  Videotex planners badly
   overestimated both the appeal of getting information from a
   computer and the cost of local intelligence at the user's end.
   Like the {gorilla arm} effect, this has been a cautionary tale
   to hackers ever since.  See also {vannevar}.

:virgin: adj. Unused; pristine; in a known initial state.  "Let's
   bring up a virgin system and see if it crashes again."  (Esp.
   useful after contracting a {virus} through {SEX}.)  Also, by
   extension, buffers and the like within a program that have not yet
   been used.

:virtual: [via the technical term `virtual memory', prob. from
   the term `virtual image' in optics] adj. 1. Common alternative
   to {logical}; often used to refer to the artificial objects
   created by a computer system to help the system control access to
   shared resources.  2. Simulated; performing the functions of
   something that isn't really there.  An imaginative child's doll may
   be a virtual playmate.  Oppose {real}.

:virtual Friday: n. (also `logical Friday') The last day before
   an extended weekend, if that day is not a `real' Friday.  For
   example, the U.S. holiday Thanksgiving is always on a Thursday.
   The next day is often also a holiday or taken as an extra day off,
   in which case Wednesday of that week is a virtual Friday (and
   Thursday is a virtual Saturday, as is Friday).  There are also
   `virtual Mondays' that are actually Tuesdays, after the three-day
   weekends associated with many national holidays in the U.S.

:virtual reality: n. 1. Computer simulations that use 3-D graphics
   and devices such as the Dataglove to allow the user to interact
   with the simulation.  See {cyberspace}.  2. A form of network
   interaction incorporating aspects of role-playing games,
   interactive theater, improvisational comedy, and `true confessions'
   magazines.  In a virtual reality forum (such as USENET's
   alt.callahans newsgroup or the {MUD} experiments on Internet),
   interaction between the participants is written like a shared novel
   complete with scenery, `foreground characters' that may be
   personae utterly unlike the people who write them, and common
   `background characters' manipulable by all parties.  The one
   iron law is that you may not write irreversible changes to a
   character without the consent of the person who `owns' it.
   Otherwise anything goes.  See {bamf}, {cyberspace}.

:virtual shredder: n. The jargonic equivalent of the {bit bucket}
   at shops using IBM's VM/CMS operating system.  VM/CMS officially
   supports a whole bestiary of virtual card readers, virtual
   printers, and other phantom devices; these are used to supply some
   of the same capabilities UNIX gets from pipes and I/O redirection.

:virus: [from the obvious analogy with biological viruses, via SF]
   n. A cracker program that searches out other programs and `infects'
   them by embedding a copy of itself in them, so that they become
   {Trojan horse}s.  When these programs are executed, the embedded
   virus is executed too, thus propagating the `infection'.  This
   normally happens invisibly to the user.  Unlike a {worm}, a
   virus cannot infect other computers without assistance.  It is
   propagated by vectors such as humans trading programs with their
   friends (see {SEX}).  The virus may do nothing but propagate
   itself and then allow the program to run normally.  Usually,
   however, after propagating silently for a while, it starts doing
   things like writing cute messages on the terminal or playing
   strange tricks with your display (some viruses include nice
   {display hack}s).  Many nasty viruses, written by particularly
   perversely minded {cracker}s, do irreversible damage, like
   nuking all the user's files.

   In the 1990s, viruses have become a serious problem, especially
   among IBM PC and Macintosh users (the lack of security on these
   machines enables viruses to spread easily, even infecting the
   operating system).  The production of special anti-virus software
   has become an industry, and a number of exaggerated media reports
   have caused outbreaks of near hysteria among users; many
   {luser}s tend to blame *everything* that doesn't work as
   they had expected on virus attacks.  Accordingly, this sense of
   `virus' has passed not only into techspeak but into also popular
   usage (where it is often incorrectly used to denote a {worm} or
   even a {Trojan horse}).  See {phage}; compare {back door};
   see also {UNIX conspiracy}.

:visionary: n. 1. One who hacks vision, in the sense of an
   Artificial Intelligence researcher working on the problem of
   getting computers to `see' things using TV cameras.  (There isn't
   any problem in sending information from a TV camera to a computer.
   The problem is, how can the computer be programmed to make use of
   the camera information?  See {SMOP}, {AI-complete}.)  2. [IBM]
   One who reads the outside literature.  At IBM, apparently, such a
   penchant is viewed with awe and wonder.

:VMS: /V-M-S/ n. DEC's proprietary operating system for its VAX
   minicomputer; one of the seven or so environments that loom largest
   in hacker folklore.  Many UNIX fans generously concede that VMS
   would probably be the hacker's favorite commercial OS if UNIX
   didn't exist; though true, this makes VMS fans furious.  One major
   hacker gripe with VMS concerns its slowness --- thus the following
   limerick:

        There once was a system called VMS
        Of cycles by no means abstemious.
             It's chock-full of hacks
             And runs on a VAX
        And makes my poor stomach all squeamious.
                                         --- The Great Quux

   See also {VAX}, {{TOPS-10}}, {{TOPS-20}}, {{UNIX}}, {runic}.

:voice: vt. To phone someone, as opposed to emailing them or
   connecting in {talk mode}.  "I'm busy now; I'll voice you later."

:voice-net: n. Hackish way of referring to the telephone system,
   analogizing it to a digital network.  USENET {sig block}s not
   uncommonly include the sender's phone next to a "Voice:" or
   "Voice-Net:" header; common variants of this are "Voicenet" and
   "V-Net".  Compare {paper-net}, {snail-mail}.

:voodoo programming: [from George Bush's "voodoo economics"] n.
   The use by guess or cookbook of an {obscure} or {hairy} system,
   feature, or algorithm that one does not truly understand.  The
   implication is that the technique may not work, and if it doesn't,
   one will never know why.  Almost synonymous with {black magic},
   except that black magic typically isn't documented and
   *nobody* understands it.  Compare {magic}, {deep magic},
   {heavy wizardry}, {rain dance}, {cargo cult programming},
   {wave a dead chicken}.

:VR: // [MUD] n. On-line abbrev for {virtual reality}, as
   opposed to {RL}.

:Vulcan nerve pinch: n. [from the old "Star Trek" TV series via
   Commodore Amiga hackers] The keyboard combination that forces a
   soft-boot or jump to ROM monitor (on machines that support such a
   feature).  On many micros this is Ctrl-Alt-Del; on Suns, L1-A; on
   some Macintoshes, it is <Cmd>-<Power switch>!  Also called
   {three-finger salute}.  Compare {quadruple bucky}.

:vulture capitalist: n. Pejorative hackerism for `venture
   capitalist', deriving from the common practice of pushing contracts
   that deprive inventors of control over their own innovations and
   most of the money they ought to have made from them.

= W =
=====

:wabbit: /wab'it/ [almost certainly from Elmer Fudd's immortal
   line "You wascawwy wabbit!"] n. 1. A legendary early hack
   reported on a System/360 at RPI and elsewhere around 1978; this may
   have descended (if only by inspiration) from hack called RABBITS
   reported from 1969 on a Burroughs 55000 at the University of
   Washington Computer Center.  The program would make two copies of
   itself every time it was run, eventually crashing the system.
   2. By extension, any hack that includes infinite self-replication
   but is not a {virus} or {worm}.  See {fork bomb} and
   {rabbit job}, see also {cookie monster}.

:WAITS:: /wayts/ n. The mutant cousin of {{TOPS-10}} used on a
   handful of systems at {{SAIL}} up to 1990.  There was never an
   `official' expansion of WAITS (the name itself having been arrived
   at by a rather sideways process), but it was frequently glossed as
   `West-coast Alternative to ITS'.  Though WAITS was less visible
   than ITS, there was frequent exchange of people and ideas between
   the two communities, and innovations pioneered at WAITS exerted
   enormous indirect influence.  The early screen modes of {EMACS},
   for example, were directly inspired by WAITS's `E' editor --- one
   of a family of editors that were the first to do `real-time
   editing', in which the editing commands were invisible and where
   one typed text at the point of insertion/overwriting.  The modern
   style of multi-region windowing is said to have originated there,
   and WAITS alumni at XEROX PARC and elsewhere played major roles in
   the developments that led to the XEROX Star, the Macintosh, and the
   Sun workstations.  {Bucky bits} were also invented there ---
   thus, the ALT key on every IBM PC is a WAITS legacy.  One notable
   WAITS feature seldom duplicated elsewhere was a news-wire interface
   that allowed WAITS hackers to read, store, and filter AP and UPI
   dispatches from their terminals; the system also featured a
   still-unusual level of support for what is now called `multimedia'
   computing, allowing analog audio and video signals to be switched
   to programming terminals.

:waldo: /wol'doh/ [From Robert A. Heinlein's story "Waldo"]
   1. A mechanical agent, such as a gripper arm, controlled by a human
   limb.  When these were developed for the nuclear industry in the
   mid-1940s they were named after the invention described by Heinlein
   in the story, which he wrote in 1942.  Now known by the more
   generic term `telefactoring', this technology is of intense
   interest to NASA for tasks like space station maintenance.  2. At
   Harvard (particularly by Tom Cheatham and students), this is used
   instead of {foobar} as a metasyntactic variable and general
   nonsense word.  See {foo}, {bar}, {foobar}, {quux}.

:walk: n.,vt. Traversal of a data structure, especially an array or
   linked-list data structure in {core}.  See also {codewalker},
   {silly walk}, {clobber}.

:walk off the end of: vt. To run past the end of an array, list, or
   medium after stepping through it --- a good way to land in trouble.
   Often the result of an {off-by-one error}.  Compare
   {clobber}, {roach}, {smash the stack}.

:walking drives: n. An occasional failure mode of magnetic-disk
   drives back in the days when they were huge, clunky {washing
   machine}s.  Those old {dinosaur} parts carried terrific angular
   momentum; the combination of a misaligned spindle or worn bearings
   and stick-slip interactions with the floor could cause them to
   `walk' across a room, lurching alternate corners forward a couple
   of millimeters at a time.  There is a legend about a drive that
   walked over to the only door to the computer room and jammed it
   shut; the staff had to cut a hole in the wall in order to get at
   it!  Walking could also be induced by certain patterns of drive
   access (a fast seek across the whole width of the disk, followed by
   a slow seek in the other direction).  Some bands of old-time
   hackers figured out how to induce disk-accessing patterns that
   would do this to particular drive models and held disk-drive races.

:wall: [WPI] interj. 1. An indication of confusion, usually spoken
   with a quizzical tone:  "Wall??"  2. A request for further
   explication.  Compare {octal forty}.  3. [UNIX] v. To send a message
   to everyone currently logged in, esp. with the wall(8) utility.

   It is said that sense 1 came from the idiom `like talking to a
   blank wall'.  It was originally used in situations where, after you
   had carefully answered a question, the questioner stared at you
   blankly, clearly having understood nothing that was explained.  You
   would then throw out a "Hello, wall?" to elicit some sort of
   response from the questioner.  Later, confused questioners began
   voicing "Wall?" themselves.

:wall follower: n. A person or algorithm that compensates for lack
   of sophistication or native stupidity by efficiently following some
   simple procedure shown to have been effective in the past.  Used of
   an algorithm, this is not necessarily pejorative; it recalls
   `Harvey Wallbanger', the winning robot in an early AI contest
   (named, of course, after the cocktail).  Harvey successfully solved
   mazes by keeping a `finger' on one wall and running till it came
   out the other end.  This was inelegant, but it was mathematically
   guaranteed to work on simply-connected mazes --- and, in fact,
   Harvey outperformed more sophisticated robots that tried to
   `learn' each maze by building an internal representation of it.
   Used of humans, the term *is* pejorative and implies an
   uncreative, bureaucratic, by-the-book mentality.  See also {code
   grinder}, {droid}.

:wall time: n. (also `wall clock time') 1. `Real world' time (what
   the clock on the wall shows), as opposed to the system clock's idea
   of time.  2. The real running time of a program, as opposed to the
   number of {clocks} required to execute it (on a timesharing
   system these will differ, as no one program gets all the
   {clocks}, and on multiprocessor systems with good thread support
   one may get more processor clocks than real-time clocks).

:wallpaper: n. 1. A file containing a listing (e.g., assembly
   listing) or a transcript, esp. a file containing a transcript of
   all or part of a login session.  (The idea was that the paper for
   such listings was essentially good only for wallpaper, as evidenced
   at Stanford, where it was used to cover windows.)  Now rare,
   esp. since other systems have developed other terms for it (e.g.,
   PHOTO on TWENEX).  However, the UNIX world doesn't have an
   equivalent term, so perhaps {wallpaper} will take hold there.
   The term probably originated on ITS, where the commands to begin
   and end transcript files were `:WALBEG' and `:WALEND',
   with default file `WALL PAPER' (the space was a path
   delimiter).  2. The background pattern used on graphical
   workstations (this is techspeak under the `Windows' graphical user
   interface to MS-DOS).  3. `wallpaper file' n. The file that
   contains the wallpaper information before it is actually printed on
   paper.  (Even if you don't intend ever to produce a real paper copy
   of the file, it is still called a wallpaper file.)

:wango: /wang'goh/ n. Random bit-level {grovel}ling going on in
   a system during some unspecified operation.  Often used in
   combination with {mumble}.  For example: "You start with the `.o'
   file, run it through this postprocessor that does mumble-wango ---
   and it comes out a snazzy object-oriented executable."

:wank: /wangk/ [Columbia University: prob. by mutation from
   Commonwealth slang v. `wank', to masturbate] n.,v. Used much as
   {hack} is elsewhere, as a noun denoting a clever technique or
   person or the result of such cleverness.  May describe (negatively)
   the act of hacking for hacking's sake ("Quit wanking, let's go get
   supper!")  or (more positively) a {wizard}.  Adj.  `wanky'
   describes something particularly clever (a person, program, or
   algorithm).  Conversations can also get wanky when there are too
   many wanks involved.  This excess wankiness is signalled by an
   overload of the `wankometer' (compare {bogometer}).  When the
   wankometer overloads, the conversation's subject must be changed,
   or all non-wanks will leave.  Compare `neep-neeping' (under
   {neep-neep}).  Usage: U.S. only.  In Britain and the Commonwealth
   this word is *extremely* rude and is best avoided unless one
   intends to give offense.

:wannabee: /won'*-bee/ (also, more plausibly, spelled
   `wannabe') [from a term recently used to describe Madonna fans
   who dress, talk, and act like their idol; prob. originally from
   biker slang] n. A would-be {hacker}.  The connotations of this
   term differ sharply depending on the age and exposure of the
   subject.  Used of a person who is in or might be entering
   {larval stage}, it is semi-approving; such wannabees can be
   annoying but most hackers remember that they, too, were once such
   creatures.  When used of any professional programmer, CS academic,
   writer, or {suit}, it is derogatory, implying that said person
   is trying to cuddle up to the hacker mystique but doesn't,
   fundamentally, have a prayer of understanding what it is all about.
   Overuse of terms from this lexicon is often an indication of the
   {wannabee} nature.  Compare {newbie}.

   Historical note: The wannabee phenomenon has a slightly different
   flavor now (1993) than it did ten or fifteen years ago.  When the
   people who are now hackerdom's tribal elders were in {larval
   stage}, the process of becoming a hacker was largely unconscious
   and unaffected by models known in popular culture --- communities
   formed spontaneously around people who, *as individuals*, felt
   irresistibly drawn to do hackerly things, and what wannabees
   experienced was a fairly pure, skill-focused desire to become
   similarly wizardly.  Those days of innocence are gone forever;
   society's adaptation to the advent of the microcomputer after 1980
   included the elevation of the hacker as a new kind of folk hero,
   and the result is that some people semi-consciously set out to
   *be hackers* and borrow hackish prestige by fitting the
   popular image of hackers.  Fortunately, to do this really well, one
   has to actually become a wizard.  Nevertheless, old-time hackers
   tend to share a poorly articulated disquiet about the change; among
   other things, it gives them mixed feelings about the effects of
   public compendia of lore like this one.

:warlording: [from the USENET group alt.fan.warlord] v. The act
   of excoriating a bloated, ugly, or derivative {sig block}.
   Common grounds for warlording include the presence of a signature
   rendered in a {BUAF}, over-used or cliched {sig quote}s, ugly
   {ASCII art}, or simply excessive size.  The original `Warlord'
   was a {BIFF}-like {newbie} c.1991 who featured in his sig a
   particularly large and obnoxious ASCII graphic resembling the sword
   of Conan the Barbarian in the 1981 John Milius movie; the group
   name alt.fan.warlord was sarcasm, and the characteristic mode
   of warlording is devastatingly sarcastic praise.

:warm boot: n. See {boot}.

:wart: n. A small, {crock}y {feature} that sticks out of an
   otherwise {clean} design.  Something conspicuous for localized
   ugliness, especially a special-case exception to a general rule.
   For example, in some versions of `csh(1)', single quotes
   literalize every character inside them except `!'.  In ANSI C,
   the `??' syntax used for obtaining ASCII characters in a foreign
   environment is a wart.  See also {miswart}.

:washing machine: n. Old-style 14-inch hard disks in floor-standing
   cabinets.  So called because of the size of the cabinet and the
   `top-loading' access to the media packs --- and, of course, they
   were always set on `spin cycle'.  The washing-machine idiom
   transcends language barriers; it is even used in Russian hacker
   jargon.  See also {walking drives}.  The thick channel cables
   connecting these were called `bit hoses' (see {hose}).

:water MIPS: n. (see {MIPS}, sense 2) Large, water-cooled
   machines of either today's ECL-supercomputer flavor or yesterday's
   traditional {mainframe} type.


:wave a dead chicken: v. To perform a ritual in the direction of
   crashed software or hardware that one believes to be futile but
   is nevertheless necessary so that others are satisfied that an
   appropriate degree of effort has been expended.  "I'll wave a dead
   chicken over the source code, but I really think we've run into an
   OS bug."  Compare {voodoo programming}, {rain dance}.

:weasel: n. [Cambridge] A naive user, one who deliberately or
   accidentally does things that are stupid or ill-advised.  Roughly
   synonymous with {loser}.

:wedged: adj. 1. To be stuck, incapable of proceeding without help.
   This is different from having crashed.  If the system has crashed,
   it has become totally non-functioning.  If the system is wedged, it
   is trying to do something but cannot make progress; it may be
   capable of doing a few things, but not be fully operational.  For
   example, a process may become wedged if it {deadlock}s with
   another (but not all instances of wedging are deadlocks).  See also
   {gronk}, {locked up}, {hosed}.  Describes a
   {deadlock}ed condition.  2. Often refers to humans suffering
   misconceptions.  "He's totally wedged --- he's convinced that he
   can levitate through meditation."  3. [UNIX] Specifically used to
   describe the state of a TTY left in a losing state by abort of a
   screen-oriented program or one that has messed with the line
   discipline in some obscure way.

   There is some dispute over the origin of this term.  It is usually
   thought to derive from a common description of recto-cranial
   inversion; however, it may actually have originated with older
   `hot-press' printing technology in which physical type elements
   were locked into type frames with wedges driven in by mallets.
   Once this had been done, no changes in the typesetting for that
   page could be made.

:wedgie: [Fairchild] n. A bug.  Prob. related to {wedged}.

:wedgitude: /wedj'i-t[y]ood/ n. The quality or state of being
   {wedged}.

:weeble: /weeb'l/ [Cambridge] interj. Used to denote frustration,
   usually at amazing stupidity.  "I stuck the disk in upside down."
   "Weeble...." Compare {gurfle}.

:weeds: n. 1. Refers to development projects or algorithms that have
   no possible relevance or practical application.  Comes from `off in
   the weeds'.  Used in phrases like "lexical analysis for microcode
   is serious weeds...."  2. At CDC/ETA before its demise, the
   phrase `go off in the weeds' was equivalent to IBM's {branch to
   Fishkill} and mainstream hackerdom's {jump off into never-never
   land}.

:weenie: n. 1. [on BBSes] Any of a species of luser resembling a
   less amusing version of {BIFF} that infests many {BBS}
   systems.  The typical weenie is a teenage boy with poor social
   skills travelling under a grandiose {handle} derived from
   fantasy or heavy-metal rock lyrics.  Among sysops, `the weenie
   problem' refers to the marginally literate and profanity-laden
   {flamage} weenies tend to spew all over a newly-discovered BBS.
   Compare {spod}, {computer geek}, {terminal junkie}.
   2. [Among hackers] When used with a qualifier (for example, as in
   {UNIX weenie}, VMS weenie, IBM weenie) this can be either an
   insult or a term of praise, depending on context, tone of voice,
   and whether or not it is applied by a person who considers him or
   herself to be the same sort of weenie.  Implies that the weenie has
   put a major investment of time, effort, and concentration into the
   area indicated; whether this is positive or negative depends on the
   hearer's judgment of how the speaker feels about that area.  See
   also {bigot}.  3. The semicolon character, `;' (ASCII
   0111011).

:Weenix: /wee'niks/ [ITS] n. A derogatory term for {{UNIX}},
   derived from {UNIX weenie}.  According to one noted ex-ITSer, it
   is "the operating system preferred by Unix Weenies: typified by
   poor modularity, poor reliability, hard file deletion, no file
   version numbers, case sensitivity everywhere, and users who believe
   that these are all advantages".  Some ITS fans behave as though
   they believe UNIX stole a future that rightfully belonged to them.
   See {{ITS}}, sense 2.

:well-behaved: adj. 1. [primarily {{MS-DOS}}] Said of software
   conforming to system interface guidelines and standards.
   Well-behaved software uses the operating system to do chores such
   as keyboard input, allocating memory and drawing graphics.  Oppose
   {ill-behaved}.  2. Software that does its job quietly and
   without counterintuitive effects.  Esp. said of software having
   an interface spec sufficiently simple and well-defined that it can
   be used as a {tool} by other software. See {cat}.

:well-connected: adj. Said of a computer installation, this means
   that it has reliable email links with the network and/or that
   it relays a large fraction of available {USENET} newsgroups.
   `Well-known' can be almost synonymous, but also implies that the
   site's name is familiar to many (due perhaps to an archive service
   or active USENET users).

:wetware: /wet'weir/ [prob. from the novels of Rudy Rucker] n.
   1. The human nervous system, as opposed to computer hardware or
   software.  "Wetware has 7 plus or minus 2 temporary registers."
   2. Human beings (programmers, operators, administrators) attached
   to a computer system, as opposed to the system's hardware or
   software.  See {liveware}, {meatware}.

:whack: v. According to arch-hacker James Gosling, to "...modify a
   program with no idea whatsoever how it works." (See {whacker}.)
   It is actually possible to do this in nontrivial circumstances if
   the change is small and well-defined and you are very good at
   {glark}ing things from context.  As a trivial example, it is
   relatively easy to change all `stderr' writes to `stdout'
   writes in a piece of C filter code which remains otherwise
   mysterious.

:whacker: [University of Maryland: from {hacker}] n. 1. A person,
   similar to a {hacker}, who enjoys exploring the details of
   programmable systems and how to stretch their capabilities.
   Whereas a hacker tends to produce great hacks, a whacker only ends
   up whacking the system or program in question.  Whackers are often
   quite egotistical and eager to claim {wizard} status,
   regardless of the views of their peers.  2. A person who is good at
   programming quickly, though rather poorly and ineptly.

:whales: n. See {like kicking dead whales down the beach}.

:whalesong: n. The peculiar clicking and whooshing sounds made by a
   PEP modem such as the Telebit Trailblazer as it tries to
   synchronize with another PEP modem for their special high-speed
   mode.  This sound isn't anything like the normal two-tone handshake
   between conventional modems and is instantly recognizable to anyone
   who has heard it more than once.  It sounds, in fact, very much
   like whale songs.  This noise is also called "the moose call" or
   "moose tones".

:What's a spline?: [XEROX PARC] This phrase expands to: "You have
   just used a term that I've heard for a year and a half, and I feel
   I should know, but don't.  My curiosity has finally overcome my
   guilt."  The PARC lexicon adds "Moral: don't hesitate to ask
   questions, even if they seem obvious."

:wheel: [from slang `big wheel' for a powerful person] n. A
   person who has an active {wheel bit}.  "We need to find a
   wheel to unwedge the hung tape drives." (see {wedged}, sense
   1.)

:wheel bit: n. A privilege bit that allows the possessor to perform
   some restricted operation on a timesharing system, such as read or
   write any file on the system regardless of protections, change or
   look at any address in the running monitor, crash or reload the
   system, and kill or create jobs and user accounts.  The term was
   invented on the TENEX operating system, and carried over to
   TOPS-20, XEROX-IFS, and others.  The state of being in a privileged
   logon is sometimes called `wheel mode'.  This term entered the
   UNIX culture from TWENEX in the mid-1980s and has been gaining
   popularity there (esp. at university sites).  See also {root}.

:wheel wars: [Stanford University] A period in {larval stage}
   during which student hackers hassle each other by attempting to log
   each other out of the system, delete each other's files, and
   otherwise wreak havoc, usually at the expense of the lesser users.

:White Book: n. 1. Syn. {K&R}.  2. Adobe's fourth book in the
   PostScript series, describing the previously-secret format of Type
   1 fonts; `Adobe Type 1 Font Format, version 1.1',
   (Addison-Wesley, 1990, ISBN 0-201-57044-0). See also {Red Book},
   {Green Book}, {Blue Book}.

:whizzy: [Sun] adj. (alt. `wizzy') Describes a {cuspy} program;
   one that is feature-rich and well presented.

:WIBNI: // [Bell Labs: Wouldn't It Be Nice If] n. What most
   requirements documents and specifications consist entirely of.
   Compare {IWBNI}.

:widget: n. 1. A meta-thing.  Used to stand for a real object in
   didactic examples (especially database tutorials).  Legend has it
   that the original widgets were holders for buggy whips.  "But
   suppose the parts list for a widget has 52 entries...."
   2. [poss. evoking `window gadget'] A user interface object in
   {X} graphical user interfaces.

:wiggles: n. [scientific computation] In solving partial differential
   equations by finite difference and similar methods, wiggles are
   sawtooth (up-down-up-down) oscillations at the shortest wavelength
   representable on the grid.  If an algorithm is unstable, this is
   often the most unstable waveform, so it grows to dominate the
   solution.  Alternatively, stable (though inaccurate) wiggles can be
   generated near a discontinuity by a Gibbs phenomenon.

:WIMP environment: n. [acronymic from `Window, Icon, Menu, Pointing
   device (or Pull-down menu)'] A graphical-user-interface-based
   environment such as {X} or the Macintosh interface, esp. as
   described by a hacker who prefers command-line interfaces for their
   superior flexibility and extensibility.  However, it is used
   without negative connotations; one must pay attention to voice tone
   and other signals to interpret correctly.  See {menuitis},
   {user-obsequious}.

:win: [MIT] 1. vi. To succeed.  A program wins if no unexpected
   conditions arise, or (especially) if it sufficiently {robust} to
   take exceptions in stride.  2. n. Success, or a specific instance
   thereof.  A pleasing outcome.  A {feature}.  Emphatic forms:
   `moby win', `super win', `hyper-win' (often used
   interjectively as a reply).  For some reason `suitable win' is
   also common at MIT, usually in reference to a satisfactory solution
   to a problem.  Oppose {lose}; see also {big win}, which isn't
   quite just an intensification of `win'.

:win big: vi. To experience serendipity.  "I went shopping and won
   big; there was a 2-for-1 sale." See {big win}.

:win win: interj. Expresses pleasure at a {win}.

:Winchester:: n. Informal generic term for `floating-head'
   magnetic-disk drives in which the read-write head planes over the
   disk surface on an air cushion.  The name arose because the
   original 1973 engineering prototype for what later became the
   IBM 3340 featured two 30-megabyte volumes; 30--30 became
   `Winchester' when somebody noticed the similarity to the common
   term for a famous Winchester rifle (in the latter, the first 30
   referred to caliber and the second to the grain weight of the
   charge).

:window shopping: [US Geological Survey] n. Among users of {WIMP
   environment}s like {X} or the Macintosh, extended
   experimentation with new window colors, fonts, and icon shapes.
   This activity can take up hours of what might otherwise have been
   productive working time.  "I spent the afternoon window shopping
   until I found the coolest shade of green for my active window
   borders --- now they perfectly match my medium slate blue
   background."  Serious window shoppers will spend their days
   with bitmap editors, creating new and different icons and
   background patterns for all to see.  Also: `window dressing', the
   act of applying new fonts, colors, etc.  See {fritterware},
   compare {macdink}.

:winged comments: n. Comments set on the same line as code, as
   opposed to {boxed comments}.  In C, for example:

     d = sqrt(x*x + y*y);  /* distance from origin */

   Generally these refer only to the action(s) taken on that line.

:winkey: n. (alt. `winkey face')  See {emoticon}.

:winnage: /win'*j/ n. The situation when a lossage is corrected, or
   when something is winning.

:winner: 1. n. An unexpectedly good situation, program, programmer,
   or person.  "So it turned out I could use a {lexer} generator
   instead of hand-coding my own pattern recognizer.  What a win!"
   2. `real winner': Often sarcastic, but also used as high praise
   (see also the note under {user}). "He's a real winner --- never
   reports a bug till he can duplicate it and send in an
   example."

:winnitude: /win'*-t[y]ood/ n. The quality of winning (as opposed
   to {winnage}, which is the result of winning).  "Guess what?
   They tweaked the microcode and now the LISP interpreter runs twice
   as fast as it used to."  "That's really great!  Boy, what
   winnitude!"  "Yup. I'll probably get a half-hour's winnage on the
   next run of my program."  Perhaps curiously, the obvious antonym
   `lossitude' is rare.

:wired: n. See {hardwired}.

:wirehead: /wi:r'hed/ n. [prob. from SF slang for an
   electrical-brain-stimulation addict] 1. A hardware hacker,
   especially one who concentrates on communications hardware.  2. An
   expert in local-area networks.  A wirehead can be a network
   software wizard too, but will always have the ability to deal with
   network hardware, down to the smallest component.  Wireheads are
   known for their ability to lash up an Ethernet terminator from
   spare resistors, for example.

:wirewater: n. Syn. {programming fluid}.  This melds the
   mainstream slang adjective `wired' (stimulated, up, hyperactive)
   with `firewater'.

:wish list: n. A list of desired features or bug fixes that probably
   won't get done for a long time, usually because the person
   responsible for the code is too busy or can't think of a clean way
   to do it.  "OK, I'll add automatic filename completion to the wish
   list for the new interface." Compare {tick-list features}.

:within delta of: adj. See {delta}.

:within epsilon of: adj. See {epsilon}.

:wizard: n. 1. A person who knows how a complex piece of software
   or hardware works (that is, who {grok}s it); esp. someone who
   can find and fix bugs quickly in an emergency.  Someone is a
   {hacker} if he or she has general hacking ability, but is a wizard
   with respect to something only if he or she has specific detailed
   knowledge of that thing.  A good hacker could become a wizard for
   something given the time to study it.  2. A person who is permitted
   to do things forbidden to ordinary people; one who has {wheel}
   privileges on a system.  3. A UNIX expert, esp. a UNIX systems
   programmer.  This usage is well enough established that `UNIX
   Wizard' is a recognized job title at some corporations and to most
   headhunters.  See {guru}, {lord high fixer}.  See also
   {deep magic}, {heavy wizardry}, {incantation}, {magic},
   {mutter}, {rain dance}, {voodoo programming}, {wave a
   dead chicken}.

:Wizard Book: n. Hal Abelson's, Jerry Sussman's and Julie Sussman's
   `Structure and Interpretation of Computer Programs' (MIT
   Press, 1984; ISBN 0-262-01077-1), an excellent computer science text
   used in introductory courses at MIT.  So called because of the
   wizard on the jacket.  One of the {bible}s of the LISP/Scheme
   world.  Also, less commonly, known as the {Purple Book}.

:wizard mode: [from {rogue}] n. A special access mode of a program or
   system, usually passworded, that permits some users godlike
   privileges.  Generally not used for operating systems themselves
   (`root mode' or `wheel mode' would be used instead).

:wizardly: adj. Pertaining to wizards.  A wizardly {feature} is one
   that only a wizard could understand or use properly.

:womb box: n. 1. [TMRC] Storage space for equipment.  2. [proposed]
   A variety of hard-shell equipment case with heavy interior padding
   and/or shaped carrier cutouts in a foam-rubber matrix; mundanely
   called a `flight case'.  Used for delicate test equipment,
   electronics, and musical instruments.

:WOMBAT: [Waste Of Money, Brains, And Time] adj. Applied to problems
   which are both profoundly {uninteresting} in themselves and
   unlikely to benefit anyone interesting even if solved.  Often used
   in fanciful constructions such as `wrestling with a wombat'.  See
   also {crawling horror}, {SMOP}.  Also note the rather different
   usage as a metasyntactic variable in {{Commonwealth Hackish}}.

:wonky: /wong'kee/ [from Australian slang] adj. Yet another
   approximate synonym for {broken}.  Specifically connotes a
   malfunction that produces behavior seen as crazy, humorous, or
   amusingly perverse.  "That was the day the printer's font logic
   went wonky and everybody's listings came out in Tengwar."  Also in
   `wonked out'.  See {funky}, {demented}, {bozotic}.

:woofer: [University of Waterloo] n. Some varieties of wide paper
   for printers have a perforation 8.5 inches from the left margin
   that allows the excess on the right-hand side to be torn off when
   the print format is 80 columns or less wide.  The right-hand excess
   may be called `woofer'.  This term (like {tweeter}, which see)
   has been in use at Waterloo since 1972, but is elsewhere unknown.
   In audio jargon, the word refers to the bass speaker(s) on a hi-fi.

:workaround: n. 1. A temporary {kluge} inserted in a system
   under development or test in order to avoid the effects of a
   {bug} or {misfeature} so that work can continue.
   Theoretically, workarounds are always replaced by {fix}es; in
   practice, customers often find themselves living with workarounds
   in the first couple of releases.  "The code died on NUL characters
   in the input, so I fixed it to interpret them as spaces."
   "That's not a fix, that's a workaround!"  2. A procedure to be
   employed by the user in order to do what some currently non-working
   feature should do.  Hypothetical example: "Using META-F7 {crash}es
   the 4.43 build of Weemax, but as a workaround you can type CTRL-R,
   then SHIFT-F5, and delete the remaining {cruft} by hand."

:working as designed: [IBM] adj. 1. In conformance to a wrong or
   inappropriate specification; useful, but misdesigned.
   2. Frequently used as a sardonic comment on a program's utility.
   3. Unfortunately also used as a bogus reason for not accepting a
   criticism or suggestion.  At {IBM}, this sense is used in
   official documents!  See {BAD}.

:worm: [from `tapeworm' in John Brunner's novel `The
   Shockwave Rider', via XEROX PARC] n. A program that propagates
   itself over a network, reproducing itself as it goes.  Compare
   {virus}.  Nowadays the term has negative connotations, as it is
   assumed that only {cracker}s write worms.  Perhaps the
   best-known example was Robert T. Morris's `Internet Worm' of 1988,
   a `benign' one that got out of control and hogged hundreds of
   Suns and VAXen across the U.S.  See also {cracker}, {RTM},
   {Trojan horse}, {ice}, and {Great Worm, the}.

:wound around the axle: adj. In an infinite loop.  Often used by older
   computer types.

:wrap around: vi. (also n. `wraparound' and v. shorthand
   `wrap') 1. [techspeak] The action of a counter that starts over
   at zero or at `minus infinity' (see {infinity}) after its
   maximum value has been reached, and continues incrementing, either
   because it is programmed to do so or because of an overflow (as
   when a car's odometer starts over at 0).  2. To change {phase}
   gradually and continuously by maintaining a steady wake-sleep cycle
   somewhat longer than 24 hours, e.g., living six long (28-hour) days
   in a week (or, equivalently, sleeping at the rate of
   10 microhertz).  This sense is also called {phase-wrapping}.

:write-only code: [a play on `read-only memory'] n. Code so
   arcane, complex, or ill-structured that it cannot be modified or
   even comprehended by anyone but its author, and possibly not even
   by him/her.  A {Bad Thing}.

:write-only language: n. A language with syntax (or semantics)
   sufficiently dense and bizarre that any routine of significant size
   is {write-only code}.  A sobriquet applied occasionally to C and
   often to APL, though {INTERCAL} and {TECO} certainly deserve it
   more.

:write-only memory: n. The obvious antonym to `read-only
   memory'.  Out of frustration with the long and seemingly useless
   chain of approvals required of component specifications, during
   which no actual checking seemed to occur, an engineer at Signetics
   once created a specification for a write-only memory and included
   it with a bunch of other specifications to be approved.  This
   inclusion came to the attention of Signetics {management} only
   when regular customers started calling and asking for pricing
   information.  Signetics published a corrected edition of the data
   book and requested the return of the `erroneous' ones.  Later,
   around 1974, Signetics bought a double-page spread in `Electronics'
   magazine's April issue and used the spec as an April Fools' Day
   joke.  Instead of the more conventional characteristic curves, the
   25120 "fully encoded, 9046 x N, Random Access, write-only-memory"
   data sheet included diagrams of "bit capacity vs. Temp.",
   "Iff vs. Vff", "Number of pins remaining vs. number of socket
   insertions", and "AQL vs. selling price".  The 25120 required a
   6.3 VAC VFF supply, a +10V VCC, and VDD of 0V, +/- 2%.

:Wrong Thing: n. A design, action, or decision that is clearly
   incorrect or inappropriate.  Often capitalized; always emphasized
   in speech as if capitalized.  The opposite of the {Right Thing};
   more generally, anything that is not the Right Thing.  In cases
   where `the good is the enemy of the best', the merely good ---
   although good --- is nevertheless the Wrong Thing. "In C, the
   default is for module-level declarations to be visible everywhere,
   rather than just within the module.  This is clearly the Wrong
   Thing."

:wugga wugga: /wuh'g* wuh'g*/ n. Imaginary sound that a computer
   program makes as it labors with a tedious or difficult task.
   Compare {cruncha cruncha cruncha}, {grind} (sense 4).

:wumpus: /wuhm'p*s/ n. The central monster (and, in many
   versions, the name) of a famous family of very early computer games
   called "Hunt The Wumpus", dating back at least to 1972 (several
   years before {ADVENT}) on the Dartmouth Time-Sharing System.
   The wumpus lived somewhere in a cave with the topology of an
   dodecahedron's edge/vertex graph (later versions supported other
   topologies, including an icosahedron and M"obius strip). The player
   started somewhere at random in the cave with five `crooked
   arrows'; these could be shot through up to three connected rooms,
   and would kill the wumpus on a hit (later versions introduced
   the wounded wumpus, which got very angry).  Unfortunately for
   players, the movement necessary to map the maze was made hazardous
   not merely by the wumpus (which would eat you if you stepped on
   him) but also by bottomless pits and colonies of super bats that would
   pick you up and drop you at a random location (later versions added
   `anaerobic termites' that ate arrows, bat migrations, and
   earthquakes that randomly changed pit locations).

   This game appears to have been the first to use a non-random
   graph-structured map (as opposed to a rectangular grid like the
   even older Star Trek games).  In this respect, as in the
   dungeon-like setting and its terse, amusing messages, it prefigured
   {ADVENT} and {Zork} and was directly ancestral to both (Zork
   acknowledged this heritage by including a super-bat colony).
   Today, a port is distributed with SunOS and as freeware for the
   Mac.  A C emulation of the original Basic game is in circulation
   as freeware on the net.

:WYSIAYG: /wiz'ee-ayg/ adj. Describes a user interface under
   which "What You See Is *All* You Get"; an unhappy variant of
   {WYSIWYG}.  Visual, `point-and-shoot'-style interfaces tend to
   have easy initial learning curves, but also to lack depth; they
   often frustrate advanced users who would be better served by a
   command-style interface.  When this happens, the frustrated user
   has a WYSIAYG problem.  This term is most often used of editors,
   word processors, and document formatting programs.  WYSIWYG
   `desktop publishing' programs, for example, are a clear win for
   creating small documents with lots of fonts and graphics in them,
   especially things like newsletters and presentation slides.  When
   typesetting book-length manuscripts, on the other hand, scale
   changes the nature of the task; one quickly runs into WYSIAYG
   limitations, and the increased power and flexibility of a
   command-driven formatter like {{TeX}} or UNIX's `troff(1)'
   becomes not just desirable but a necessity.  Compare {YAFIYGI}.

:WYSIWYG: /wiz'ee-wig/ adj. Describes a user interface under
   which "What You See Is What You Get", as opposed to one that uses
   more-or-less obscure commands that do not result in immediate
   visual feedback.  True WYSIWYG in environments supporting multiple
   fonts or graphics is a a rarely-attained ideal; there are variants
   of this term to express real-world manifestations including
   WYSIAWYG (What You See Is *Almost* What You Get) and
   WYSIMOLWYG (What You See Is More or Less What You Get).  All these
   can be mildly derogatory, as they are often used to refer to
   dumbed-down {user-friendly} interfaces targeted at
   non-programmers; a hacker has no fear of obscure commands (compare
   {WYSIAYG}).  On the other hand, {EMACS} was one of the very first
   WYSIWYG editors, replacing (actually, at first overlaying) the
   extremely obscure, command-based {TECO}.  See also {WIMP
   environment}.  [Oddly enough, WYSIWYG has already made it into the
   OED, in lower case yet. --- ESR]

= X =
=====

:X: /X/ n. 1. Used in various speech and writing contexts (also
   in lowercase) in roughly its algebraic sense of `unknown within a
   set defined by context' (compare {N}).  Thus, the abbreviation
   680x0 stands for 68000, 68010, 68020, 68030, or 68040, and 80x86
   stands for 80186, 80286 80386 or 80486 (note that a UNIX hacker
   might write these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86
   respectively; see {glob}).  2. [after the name of an earlier
   window system called `W'] An over-sized, over-featured,
   over-engineered and incredibly over-complicated window system
   developed at MIT and widely used on UNIX systems.

:XEROX PARC: The famed Palo Alto Research Center.  For more than a
   decade, from the early 1970s into the mid-1980s, PARC yielded an
   astonishing volume of groundbreaking hardware and software
   innovations.  The modern mice, windows, and icons style of software
   interface was invented there.  So was the laser printer and the
   local-area network; and PARC's series of D machines anticipated the
   powerful personal computers of the 1980s by a decade.  Sadly, the
   prophets at PARC were without honor in their own company, so much
   so that it became a standard joke to describe PARC as a place that
   specialized in developing brilliant ideas for everyone else.

   The stunning shortsightedness and obtusity of XEROX's top-level
   {suit}s has been well anatomized in `Fumbling The Future:
   How XEROX Invented, Then Ignored, the First Personal Computer' by
   Douglas K. Smith and Robert C. Alexander (William Morrow & Co,
   1988, ISBN 0-688-09511-9).

:XOFF: /X'of/ n. Syn. {control-S}.

:XON: /X'on/ n. Syn. {control-Q}.

:xor: /X'or/, /kzor/ conj. Exclusive or.  `A xor B' means
   `A or B, but not both'.  "I want to get cherry pie xor a
   banana split."  This derives from the technical use of the term as
   a function on truth-values that is true if exactly one of its two
   arguments is true.

:xref: /X'ref/ vt., n. Hackish standard abbreviation for
   `cross-reference'.

:XXX: /X-X-X/ n. A marker that attention is needed.
   Commonly used in program comments to indicate areas that are kluged
   up or need to be.  Some hackers liken `XXX' to the notional
   heavy-porn movie rating.  Compre {FIXME}.

:xyzzy: /X-Y-Z-Z-Y/, /X-Y-ziz'ee/, /ziz'ee/, or /ik-ziz'ee/
   [from the ADVENT game] adj. The {canonical} `magic word'.
   This comes from {ADVENT}, in which the idea is to explore an
   underground cave with many rooms and to collect the treasures you
   find there.  If you type `xyzzy' at the appropriate time, you can
   move instantly between two otherwise distant points.  If,
   therefore, you encounter some bit of {magic}, you might remark
   on this quite succinctly by saying simply "Xyzzy!"  "Ordinarily
   you can't look at someone else's screen if he has protected it, but
   if you type quadruple-bucky-clear the system will let you do it
   anyway."  "Xyzzy!"  Xyzzy has actually been implemented as an
   undocumented no-op command on several OSes; in Data General's
   AOS/VS, for example, it would typically respond "Nothing
   happens", just as {ADVENT} did if the magic was invoked at the
   wrong spot or before a player had performed the action that enabled
   the word.  In more recent 32-bit versions, by the way, AOS/VS
   responds "Twice as much happens".  See also {plugh}.

= Y =
=====

:YA-: [Yet Another] abbrev. In hackish acronyms this almost
   invariably expands to {Yet Another}, following the precedent set
   by UNIX `yacc(1)' (Yet Another Compiler-Compiler).  See
   {YABA}.

:YABA: /ya'b*/ [Cambridge] n. Yet Another Bloody Acronym.
   Whenever some program is being named, someone invariably suggests
   that it be given a name that is acronymic.  The response from those
   with a trace of originality is to remark ironically that the
   proposed name would then be `YABA-compatible'.  Also used in
   response to questions like "What is WYSIWYG?"  See also
   {TLA}.

:YAFIYGI: /yaf'ee-y:-gee/ adj.  [coined in response to WYSIWYG]
   Describes the command-oriented ed/vi/nroff/TeX style of word
   processing or other user interface, the opposite of {WYSIWYG}.
   Stands for "You asked for it, you got it", because what you 
   actually asked for is often not apparent until long after it is too
   late to do anything about it.  Used to denote perversity ("Real
   Programmers use YAFIYGI tools...and *like* it!") or, less 
   often, a necessary tradeoff ("Only a YAFIYGI tool can have full
   programmable flexibility in its interface.").

:YAUN: /yawn/ [Acronym for `Yet Another UNIX Nerd'] n. Reported
   from the San Diego Computer Society (predominantly a microcomputer
   users' group) as a good-natured punning insult aimed at UNIX
   zealots.

:Yellow Book: [proposed] n. The print version of this Jargon File;
   `The New Hacker's Dictionary', MIT Press, 1991 (ISBN
   0-262-68069-6).  Includes all the material in the 2.9.6 version of
   the File, plus a Foreword by Guy L. Steele Jr. and a Preface by
   Eric S. Raymond.  Most importantly, the book version is nicely
   typeset and includes almost all of the infamous Crunchly cartoons
   by the Great Quux, each attached to an appropriate entry.

:yellow wire: [IBM] n. Repair wires used when connectors
   (especially ribbon connectors) got broken due to some schlemiel
   pinching them, or to reconnect cut traces after the FE mistakenly
   cut one.  Compare {blue wire}, {purple wire}, {red wire}.

:Yet Another: adj. [From UNIX's `yacc(1)', `Yet Another
   Compiler-Compiler', a LALR parser generator] 1. Of your own work: A
   humorous allusion often used in titles to acknowledge that the
   topic is not original, though the content is.  As in `Yet Another
   AI Group' or `Yet Another Simulated Annealing Algorithm'.  2. Of
   others' work: Describes something of which there are already far
   too many.  See also {YA-}, {YABA}, {YAUN}.

:YKYBHTL: An abbreviation of `You Know You've Been Hacking Too Long'
   established on the USENET group alt.folklore.computers during
   extended discussion of the indicated entry in the Jargon File.

:You are not expected to understand this: cav. [UNIX] The canonical
   comment describing something {magic} or too complicated to
   bother explaining properly.  From an infamous comment in the
   context-switching code of the V6 UNIX kernel.

:You know you've been hacking too long when...: The set-up line
   for a genre of one-liners told by hackers about themselves.  These
   include the following:

   *    not only do you check your email more often than your paper
        mail, but you remember your {network address} faster than your
        postal one.
   *    your {SO} kisses you on the neck and the first thing you
        think is "Uh, oh, {priority interrupt}."
   *    you go to balance your checkbook and discover that you're
        doing it in octal.
   *    your computers have a higher street value than your car.
   *    in your universe, `round numbers' are powers of 2, not 10.
   *    more than once, you have woken up recalling a dream in
        some programming language.
   *    you realize you have never seen half of your best friends.

   [An early version of this entry said "All but one of these
   have been reliably reported as hacker traits (some of them quite
   often).  Even hackers may have trouble spotting the ringer."  The
   ringer was balancing one's checkbook in octal, which I made up out
   of whole cloth.  Although more respondents picked that one
   out as fiction than any of the others, I also received multiple
   independent reports of its actually happening, including a report
   that Grace Hopper used to tell such a story about herself. --- ESR]

:Your mileage may vary: cav. [from the standard disclaimer attached
   to EPA mileage ratings by American car manufacturers] 1. A ritual
   warning often found in UNIX freeware distributions.  Translates
   roughly as "Hey, I tried to write this portably, but who
   *knows* what'll happen on your system?"  2. A qualifier more
   generally attached to advice.  "I find that sending flowers works
   well, but your mileage may vary."

:Yow!: /yow/ [from "Zippy the Pinhead" comix] interj. A favored hacker
   expression of humorous surprise or emphasis.  "Yow!  Check out what
   happens when you twiddle the foo option on this display hack!"
   Compare {gurfle}.

:yoyo mode: n. The state in which the system is said to be when it
   rapidly alternates several times between being up and being down.
   Interestingly (and perhaps not by coincidence), many hardware
   vendors give out free yoyos at Usenix exhibits.

   Sun Microsystems gave out logoized yoyos at SIGPLAN '88.  Tourists
   staying at one of Atlanta's most respectable hotels were
   subsequently treated to the sight of 200 of the country's top
   computer scientists testing yo-yo algorithms in the lobby.

:Yu-Shiang Whole Fish: /yoo-shyang hohl fish/ n. obs. The
   character gamma (extended SAIL ASCII 0001001), which with a loop in
   its tail looks like a little fish swimming down the page.  The term
   is actually the name of a Chinese dish in which a fish is cooked
   whole (not {parse}d) and covered with Yu-Shiang (or Yu-Hsiang)
   sauce.  Usage: primarily by people on the MIT LISP Machine, which
   could display this character on the screen.  Tends to elicit
   incredulity from people who hear about it second-hand.

= Z =
=====

:zap: 1. n. Spiciness.  2. vt. To make food spicy.  3. vt. To make
   someone `suffer' by making his food spicy.  (Most hackers love
   spicy food.  Hot-and-sour soup is considered wimpy unless it makes
   you wipe your nose for the rest of the meal.)  See {zapped}.
   4. vt. To modify, usually to correct; esp. used when the action
   is performed with a debugger or binary patching tool.  Also implies
   surgical precision.  "Zap the debug level to 6 and run it again."
   In the IBM mainframe world, binary patches are applied to programs
   or to the OS with a program called `superzap', whose file name is
   `IMASPZAP' (possibly contrived from I M A SuPerZAP).  5. vt. To
   erase or reset.  6. To {fry} a chip with static electricity.
   "Uh oh --- I think that lightning strike may have zapped the disk
   controller."

:zapped: adj. Spicy.  This term is used to distinguish between food
   that is hot (in temperature) and food that is *spicy*-hot.
   For example, the Chinese appetizer Bon Bon Chicken is a kind of
   chicken salad that is cold but zapped; by contrast, {vanilla}
   wonton soup is hot but not zapped.  See also {{oriental food}},
   {laser chicken}.  See {zap}, senses 1 and 2.

:zen: vt. To figure out something by meditation or by a sudden flash
   of enlightenment.  Originally applied to bugs, but occasionally
   applied to problems of life in general.  "How'd you figure out the
   buffer allocation problem?"  "Oh, I zenned it."  Contrast {grok},
   which connotes a time-extended version of zenning a system.
   Compare {hack mode}.  See also {guru}.

:zero: vt. 1. To set to 0.  Usually said of small pieces of data,
   such as bits or words (esp. in the construction `zero out').  2. To
   erase; to discard all data from.  Said of disks and directories,
   where `zeroing' need not involve actually writing zeroes throughout
   the area being zeroed.  One may speak of something being
   `logically zeroed' rather than being `physically zeroed'.  See
   {scribble}.

:zero-content: adj. Syn. {content-free}.

:zeroth: /zee'rohth/ adj. First.  Among software designers, comes
   from C's and LISP's 0-based indexing of arrays.  Hardware people
   also tend to start counting at 0 instead of 1; this is natural
   since, e.g., the 256 states of 8 bits correspond to the binary
   numbers 0, 1, ..., 255 and the digital devices known as `counters'
   count in this way.

   Hackers and computer scientists often like to call the first
   chapter of a publication `chapter 0', especially if it is of an
   introductory nature (one of the classic instances was in the First
   Edition of {K&R}).  In recent years this trait has also been
   observed among many pure mathematicians (who have an independent
   tradition of numbering from 0).  Zero-based numbering tends to
   reduce {fencepost error}s, though it cannot eliminate them
   entirely.

:zigamorph: /zig'*-morf/ n. Hex FF (11111111) when used as a
   delimiter or {fence} character.  Usage: primarily at IBM
   shops.

:zip: [primarily MS-DOS] vt. To create a compressed archive from a
   group of files using PKWare's PKZIP or a compatible archiver.  Its
   use is spreading now that portable implementations of the algorithm
   have been written.  Commonly used as follows: "I'll zip it up and
   send it to you."  See {arc}, {tar and feather}.

:zipperhead: [IBM] n. A person with a closed mind.

:zombie: [UNIX] n. A process that has died but has not yet
   relinquished its process table slot (because the parent process
   hasn't executed a `wait(2)' for it yet).  These can be seen in
   `ps(1)' listings occasionally.  Compare {orphan}.

:zorch: /zorch/ 1. [TMRC] v. To attack with an inverse heat sink.
   2. [TMRC] v. To travel, with v approaching c [that
   is, with velocity approaching lightspeed --- ESR].  3. [MIT] v. To
   propel something very quickly.  "The new comm software is very
   fast; it really zorches files through the network."  4. [MIT] n.
   Influence.  Brownie points.  Good karma.  The intangible and fuzzy
   currency in which favors are measured.  "I'd rather not ask him
   for that just yet; I think I've used up my quota of zorch with him
   for the week."  5. [MIT] n. Energy, drive, or ability.  "I think
   I'll {punt} that change for now; I've been up for 30 hours
   and I've run out of zorch."  6. [MIT] To flunk an exam or course.

:Zork: /zork/ n. The second of the great early experiments in computer
   fantasy gaming; see {ADVENT}.  Originally written on MIT-DM
   during the late 1970s, later distributed with BSD UNIX (as a patched,
   sourceless RT-11 FORTRAN binary; see {retrocomputing}) and
   commercialized as `The Zork Trilogy' by Infocom.  The FORTRAN
   source was later rewritten for portability and released to USENET
   under the name "Dungeon".  Both FORTRAN "Dungeon" and
   translated C versions are available at many FTP sites.

:zorkmid: /zork'mid/ n. The canonical unit of currency in
   hacker-written games.  This originated in {zork} but has spread
   to {nethack} and is referred to in several other games.

= [^A-Za-z] (see {regexp}) =
============================

:'Snooze: /snooz/ [FidoNet] n. Fidonews, the weekly official on-line
   newsletter of FidoNet.  As the editorial policy of Fidonews is
   "anything that arrives, we print", there are often large articles
   completely unrelated to FidoNet, which in turn tend to elicit
   {flamage} in subsequent issues.

:(TM): // [USENET] ASCII rendition of the trademark-superscript symbol
   appended to phrases that the author feels should be recorded for
   posterity, perhaps in future editions of this lexicon.  Sometimes
   used ironically as a form of protest against the recent spate of
   software and algorithm patents and `look and feel' lawsuits.  See
   also {UN*X}.

:-oid: [from `android'] suff. 1. This suffix is used as in
   mainstream English to indicate a poor imitation, a counterfeit, or
   some otherwise slightly bogus resemblance.  Hackers will happily
   use it with all sorts of non-Greco/Latin stem words that wouldn't
   keep company with it in mainstream English.  For example, "He's a
   nerdoid" means that he superficially resembles a nerd but can't
   make the grade; a `modemoid' might be a 300-baud box (Real Modems
   run at 9600 or up); a `computeroid' might be any {bitty box}.
   The word `keyboid' could be used to describe a {chiclet
   keyboard}, but would have to be written; spoken, it would confuse
   the listener as to the speaker's city of origin.  2. There is a
   more specific sense of `-oid' as an indicator for `resembling an
   android' which in the past has been confined to science-fiction
   fans and hackers.  It too has recently (in 1991) started to go
   mainstream (most notably in the term `trendoid' for victims of
   terminal hipness).  This is probably traceable to the
   popularization of the term {droid} in "Star Wars" and its
   sequels.

   Coinages in both forms have been common in science fiction for at
   least fifty years, and hackers (who are often SF fans) have
   probably been making `-oid' jargon for almost that long
   [though GLS and I can personally confirm only that they were
   already common in the mid-1970s --- ESR].

:-ware: [from `software'] suff. Commonly used to form jargon terms
   for classes of software.  For examples, see {careware},
   {crippleware}, {crudware}, {freeware}, {fritterware},
   {guiltware}, {liveware}, {meatware}, {payware},
   {psychedelicware}, {shareware}, {shelfware}, {vaporware},
   {wetware}.

:/dev/null: /dev-nuhl/ [from the UNIX null device, used as a data
   sink] n. A notional `black hole' in any information space being
   discussed, used, or referred to.  A controversial posting, for
   example, might end "Kudos to rasputin@kremlin.org, flames to
   /dev/null".  See {bit bucket}.

:0: Numeric zero, as opposed to the letter `O' (the 15th letter of
   the English alphabet).  In their unmodified forms they look a lot
   alike, and various kluges invented to make them visually distinct
   have compounded the confusion.  If your zero is center-dotted and
   letter-O is not, or if letter-O looks almost rectangular but zero
   looks more like an American football stood on end (or the reverse),
   you're probably looking at a modern character display (though the
   dotted zero seems to have originated as an option on IBM 3270
   controllers).  If your zero is slashed but letter-O is not, you're
   probably looking at an old-style ASCII graphic set descended from
   the default typewheel on the venerable ASR-33 Teletype
   (Scandinavians, for whom slashed-O is a letter, curse this
   arrangement).  If letter-O has a slash across it and the zero does
   not, your display is tuned for a very old convention used at IBM
   and a few other early mainframe makers (Scandinavians curse
   *this* arrangement even more, because it means two of their
   letters collide).  Some Burroughs/Unisys equipment displays a zero
   with a *reversed* slash.  And yet another convention common on
   early line printers left zero unornamented but added a tail or hook
   to the letter-O so that it resembled an inverted Q or cursive
   capital letter-O.  Are we sufficiently confused yet?

:1TBS: // n. The "One True Brace Style"; see {indent style}.

:120 reset: /wuhn-twen'tee ree'set/ [from 120 volts, U.S. wall
   voltage] n. To cycle power on a machine in order to reset or unjam
   it.  Compare {Big Red Switch}, {power cycle}.

:2: infix. In translation software written by hackers, infix 2 often
   represents the syllable *to* with the connotation
   `translate to': as in dvi2ps (DVI to PostScript), int2string
   (integer to string), and texi2roff (Texinfo to [nt]roff).

:@-party: /at'par`tee/ [from the @-sign in an Internet address]
   n. (alt. `@-sign party' /at'si:n par`tee/) A semi-closed
   party thrown for hackers at a science-fiction convention (esp.
   the annual Worldcon); one must have a {network address} to
   get in, or at least be in company with someone who does.  One of
   the most reliable opportunities for hackers to meet face to face
   with people who might otherwise be represented by mere phosphor
   dots on their screens.  Compare {boink}.

:@Begin: // See {\begin}.

:\begin: // [from the LaTeX command] With \end, used
   humorously in writing to indicate a context or to remark on the
   surrounded text.  For example:

     \begin{flame}
     Predicate logic is the only good programming
     language.  Anyone who would use anything else
     is an idiot.  Also, all computers should be
     tredecimal instead of binary.
     \end{flame}

   The Scribe users at CMU and elsewhere used to use @Begin/@End in
   an identical way (LaTeX was built to resemble Scribe).  On USENET,
   this construct would more frequently be rendered as `<FLAME ON>'
   and `<FLAME OFF>'.
:(Lexicon Entries End Here):

:Appendix A: Hacker Folklore
****************************

This appendix contains several legends and fables that illuminate the
meaning of various entries in the lexicon.

:The Meaning of `Hack':
=======================

"The word {hack} doesn't really have 69 different meanings", according
to MIT hacker Phil Agre.  "In fact, {hack} has only one meaning, an
extremely subtle and profound one which defies articulation.  Which
connotation is implied by a given use of the word depends in similarly
profound ways on the context.  Similar remarks apply to a couple of
other hacker words, most notably {random}."

Hacking might be characterized as `an appropriate application of
ingenuity'.  Whether the result is a quick-and-dirty patchwork job or a
carefully crafted work of art, you have to admire the cleverness that
went into it.

An important secondary meaning of {hack} is `a creative practical
joke'.  This kind of hack is easier to explain to non-hackers than the
programming kind.  Of course, some hacks have both natures; see the
lexicon entries for {pseudo} and {kgbvax}.  But here are some examples
of pure practical jokes that illustrate the hacking spirit:

     In 1961, students from Caltech (California Institute of Technology,
     in Pasadena) hacked the Rose Bowl football game.  One student posed
     as a reporter and `interviewed' the director of the University of
     Washington card stunts (such stunts involve people in the stands
     who hold up colored cards to make pictures).  The reporter learned
     exactly how the stunts were operated, and also that the director
     would be out to dinner later.

     While the director was eating, the students (who called themselves
     the `Fiendish Fourteen') picked a lock and stole a blank direction
     sheet for the card stunts.  They then had a printer run off 2300
     copies of the blank.  The next day they picked the lock again and
     stole the master plans for the stunts --- large sheets of graph
     paper colored in with the stunt pictures.  Using these as a guide,
     they made new instructions for three of the stunts on the
     duplicated blanks.  Finally, they broke in once more, replacing the
     stolen master plans and substituting the stack of diddled
     instruction sheets for the original set.

     The result was that three of the pictures were totally different.
     Instead of `WASHINGTON', the word ``CALTECH' was flashed.  Another
     stunt showed the word `HUSKIES', the Washington nickname, but
     spelled it backwards.  And what was supposed to have been a picture
     of a husky instead showed a beaver.  (Both Caltech and MIT use the
     beaver --- nature's engineer --- as a mascot.)

     After the game, the Washington faculty athletic representative
     said: "Some thought it ingenious; others were indignant."  The
     Washington student body president remarked: "No hard feelings, but
     at the time it was unbelievable.  We were amazed."

This is now considered a classic hack, particularly because revising the
direction sheets constituted a form of programming.

Here is another classic hack:

     On November 20, 1982, MIT hacked the Harvard-Yale football game.
     Just after Harvard's second touchdown against Yale, in the first
     quarter, a small black ball popped up out of the ground at the
     40-yard line, and grew bigger, and bigger, and bigger.  The letters
     `MIT' appeared all over the ball.  As the players and officials
     stood around gawking, the ball grew to six feet in diameter and
     then burst with a bang and a cloud of white smoke.

     The `Boston Globe' later reported: "If you want to know the truth,
     MIT won The Game."

     The prank had taken weeks of careful planning by members of MIT's
     Delta Kappa Epsilon fraternity.  The device consisted of a weather
     balloon, a hydraulic ram powered by Freon gas to lift it out of the
     ground, and a vacuum-cleaner motor to inflate it.  They made eight
     separate expeditions to Harvard Stadium between 1 and 5 A.M.,
     locating an unused 110-volt circuit in the stadium and running
     buried wires from the stadium circuit to the 40-yard line, where
     they buried the balloon device.  When the time came to activate the
     device, two fraternity members had merely to flip a circuit breaker
     and push a plug into an outlet.

     This stunt had all the earmarks of a perfect hack: surprise,
     publicity, the ingenious use of technology, safety, and
     harmlessness.  The use of manual control allowed the prank to be
     timed so as not to disrupt the game (it was set off between plays,
     so the outcome of the game would not be unduly affected).  The
     perpetrators had even thoughtfully attached a note to the balloon
     explaining that the device was not dangerous and contained no
     explosives.

     Harvard president Derek Bok commented: "They have an awful lot of
     clever people down there at MIT, and they did it again."  President
     Paul E. Gray of MIT said: "There is absolutely no truth to the
     rumor that I had anything to do with it, but I wish there were."

The hacks above are verifiable history; they can be proved to have
happened.  Many other classic-hack stories from MIT and elsewhere,
though retold as history, have the characteristics of what Jan Brunvand
has called `urban folklore' (see {FOAF}).  Perhaps the best known of
these is the legend of the infamous trolley-car hack, an alleged
incident in which engineering students are said to have welded a trolley
car to its tracks with thermite.  Numerous versions of this have been
recorded from the 1940s to the present, most set at MIT but at least one
very detailed version set at CMU.

Brian Leibowitz has researched MIT hacks both real and mythical
extensively; the interested reader is referred to his delightful
pictorial compendium `The Journal of the Institute for Hacks,
Tomfoolery, and Pranks' (MIT Museum, 1990; ISBN 0-917027-03-5).

Finally, here is a story about one of the classic computer hacks.

     Back in the mid-1970s, several of the system support staff at
     Motorola discovered a relatively simple way to crack system
     security on the Xerox CP-V timesharing system.  Through a simple
     programming strategy, it was possible for a user program to trick
     the system into running a portion of the program in `master mode'
     (supervisor state), in which memory protection does not apply.  The
     program could then poke a large value into its `privilege level'
     byte (normally write-protected) and could then proceed to bypass
     all levels of security within the file-management system, patch the
     system monitor, and do numerous other interesting things.  In
     short, the barn door was wide open.

     Motorola quite properly reported this problem to Xerox via an
     official `level 1 SIDR' (a bug report with an intended urgency of
     `needs to be fixed yesterday').  Because the text of each SIDR was
     entered into a database that could be viewed by quite a number of
     people, Motorola followed the approved procedure: they simply
     reported the problem as `Security SIDR', and attached all of the
     necessary documentation, ways-to-reproduce, etc.

     The CP-V people at Xerox sat on their thumbs; they either didn't
     realize the severity of the problem, or didn't assign the necessary
     operating-system-staff resources to develop and distribute an
     official patch.

     Months passed.  The Motorola guys pestered their Xerox
     field-support rep, to no avail.  Finally they decided to take
     direct action, to demonstrate to Xerox management just how easily
     the system could be cracked and just how thoroughly the security
     safeguards could be subverted.

     They dug around in the operating-system listings and devised a
     thoroughly devilish set of patches.  These patches were then
     incorporated into a pair of programs called `Robin Hood' and `Friar
     Tuck'.  Robin Hood and Friar Tuck were designed to run as `ghost
     jobs' (daemons, in UNIX terminology); they would use the existing
     loophole to subvert system security, install the necessary patches,
     and then keep an eye on one another's statuses in order to keep the
     system operator (in effect, the superuser) from aborting them.

     One fine day, the system operator on the main CP-V software
     development system in El Segundo was surprised by a number of
     unusual phenomena.  These included the following:

        * Tape drives would rewind and dismount their tapes in the
          middle of a job.
        * Disk drives would seek back and forth so rapidly that they
          would attempt to walk across the floor (see {walking
          drives}).
        * The card-punch output device would occasionally start up of
          itself and punch a {lace card}.  These would usually jam in
          the punch.
        * The console would print snide and insulting messages from
          Robin Hood to Friar Tuck, or vice versa.
        * The Xerox card reader had two output stackers; it could be
          instructed to stack into A, stack into B, or stack into A
          (unless a card was unreadable, in which case the bad card was
          placed into stacker B).  One of the patches installed by the
          ghosts added some code to the card-reader driver... after
          reading a card, it would flip over to the opposite stacker.
          As a result, card decks would divide themselves in half when
          they were read, leaving the operator to recollate them
          manually.

     Naturally, the operator called in the operating-system developers.
     They found the bandit ghost jobs running, and X'ed them... and were
     once again surprised.  When Robin Hood was X'ed, the following
     sequence of events took place:

          !X id1

          id1: Friar Tuck... I am under attack!  Pray save me!
          id1: Off (aborted)

          id2: Fear not, friend Robin!  I shall rout the Sheriff
               of Nottingham's men!

          id1: Thank you, my good fellow!

     Each ghost-job would detect the fact that the other had been
     killed, and would start a new copy of the recently slain program
     within a few milliseconds.  The only way to kill both ghosts was to
     kill them simultaneously (very difficult) or to deliberately crash
     the system.

     Finally, the system programmers did the latter --- only to find
     that the bandits appeared once again when the system rebooted!  It
     turned out that these two programs had patched the boot-time OS
     image (the kernel file, in UNIX terms) and had added themselves to
     the list of programs that were to be started at boot time.

     The Robin Hood and Friar Tuck ghosts were finally eradicated when
     the system staff rebooted the system from a clean boot-tape and
     reinstalled the monitor.  Not long thereafter, Xerox released a
     patch for this problem.

     It is alleged that Xerox filed a complaint with Motorola's management
     about the merry-prankster actions of the two employees in question.
     It is not recorded that any serious disciplinary action was taken
     against either of them.

:TV Typewriters: A Tale of Hackish Ingenuity
============================================

Here is a true story about a glass tty: One day an MIT hacker was in a
motorcycle accident and broke his leg.  He had to stay in the hospital
quite a while, and got restless because he couldn't {hack}.  Two of his
friends therefore took a terminal and a modem for it to the hospital, so
that he could use the computer by telephone from his hospital bed.

Now this happened some years before the spread of home computers, and
computer terminals were not a familiar sight to the average person.
When the two friends got to the hospital, a guard stopped them and asked
what they were carrying.  They explained that they wanted to take a
computer terminal to their friend who was a patient.

The guard got out his list of things that patients were permitted to
have in their rooms: TV, radio, electric razor, typewriter, tape player,
... no computer terminals.  Computer terminals weren't on the list, so
the guard wouldn't let it in.  Rules are rules, you know.  (This guard
was clearly a {droid}.)

Fair enough, said the two friends, and they left again.  They were
frustrated, of course, because they knew that the terminal was as
harmless as a TV or anything else on the list... which gave them an
idea.

The next day they returned, and the same thing happened: a guard stopped
them and asked what they were carrying.  They said: "This is a TV
typewriter!"  The guard was skeptical, so they plugged it in and
demonstrated it.  "See?  You just type on the keyboard and what you type
shows up on the TV screen."  Now the guard didn't stop to think about
how utterly useless a typewriter would be that didn't produce any paper
copies of what you typed; but this was clearly a TV typewriter, no doubt
about it.  So he checked his list: "A TV is all right, a typewriter is
all right ... okay, take it on in!"

[Historical note: Many years ago, `Popular Electronics' published
solder-it-yourself plans for a TV typewriter.  Despite the essential
uselessness of the device, it was an enormously popular project.
Steve Ciarcia, the man behind `Byte' magazine's "Circuit Cellar"
feature, resurrected this ghost in one of his books of the early
1980s.  He ascribed its popularity (no doubt correctly) to the
feeling of power the builder could achieve by being able to decide
himself what would be shown on the TV. --- ESR]

[Antihistorical note: On September 23rd, 1992, the L.A. Times ran
the following bit of filler:

     Solomon Waters of Altadena, a 6-year-old first-grader, came home from
     his first day of school and excitedly told his mother how he had
     written on "a machine that looks like a computer -- but without the
     TV screen."  She asked him if it could have been a "typewriter."
     "Yeah! Yeah!" he said.  "That's what it was called."

I have since investigated this matter and determined that many of
today's teenagers have never seen a slide rule, either.... -- ESR]

:A Story About `Magic': (by GLS)
================================

Some years ago, I was snooping around in the cabinets that housed the
MIT AI Lab's PDP-10, and noticed a little switch glued to the frame of
one cabinet.  It was obviously a homebrew job, added by one of the lab's
hardware hackers (no one knows who).

You don't touch an unknown switch on a computer without knowing what it
does, because you might crash the computer.  The switch was labeled in a
most unhelpful way.  It had two positions, and scrawled in pencil on the
metal switch body were the words `magic' and `more magic'.  The switch
was in the `more magic' position.

I called another hacker over to look at it.  He had never seen the
switch before either.  Closer examination revealed that the switch had
only one wire running to it!  The other end of the wire did disappear
into the maze of wires inside the computer, but it's a basic fact of
electricity that a switch can't do anything unless there are two wires
connected to it.  This switch had a wire connected on one side and no
wire on its other side.

It was clear that this switch was someone's idea of a silly joke.
Convinced by our reasoning that the switch was inoperative, we flipped
it.  The computer instantly crashed.

Imagine our utter astonishment.  We wrote it off as coincidence, but
nevertheless restored the switch to the `more magic' position before
reviving the computer.

A year later, I told this story to yet another hacker, David Moon as I
recall.  He clearly doubted my sanity, or suspected me of a supernatural
belief in the power of this switch, or perhaps thought I was fooling him
with a bogus saga.  To prove it to him, I showed him the very switch,
still glued to the cabinet frame with only one wire connected to it,
still in the `more magic' position.  We scrutinized the switch and its
lone connection, and found that the other end of the wire, though
connected to the computer wiring, was connected to a ground pin.  That
clearly made the switch doubly useless: not only was it electrically
nonoperative, but it was connected to a place that couldn't affect
anything anyway.  So we flipped the switch.

The computer promptly crashed.

This time we ran for Richard Greenblatt, a long-time MIT hacker, who was
close at hand.  He had never noticed the switch before, either.  He
inspected it, concluded it was useless, got some diagonal cutters and
{dike}d it out.  We then revived the computer and it has run fine ever
since.

We still don't know how the switch crashed the machine.  There is a
theory that some circuit near the ground pin was marginal, and
flipping the switch changed the electrical capacitance enough to upset
the circuit as millionth-of-a-second pulses went through it.  But
we'll never know for sure; all we can really say is that the switch
was {magic}.

I still have that switch in my basement.  Maybe I'm silly, but I
usually keep it set on `more magic'.

:A Selection of AI Koans:
=========================

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

                                 * * *

   A novice was trying to fix a broken Lisp machine by turning the power
off and on.

   Knight, seeing what the student was doing, spoke sternly: "You cannot
fix a machine by just power-cycling it with no understanding of what is
going wrong."

   Knight turned the machine off and on.

   The machine worked.

                                 * * *

   One day a student came to Moon and said: "I understand how to make a
better garbage collector.  We must keep a reference count of the
pointers to each cons."

Moon patiently told the student the following story:

     "One day a student came to Moon and said: `I understand how to make
     a better garbage collector...

[Ed. note: Pure reference-count garbage collectors have problems with
circular structures that point to themselves.]

                                 * * *

In the days when Sussman was a novice, Minsky once came to him as he sat
hacking at the PDP-6.

   "What are you doing?", asked Minsky.

   "I am training a randomly wired neural net to play Tic-Tac-Toe"
Sussman replied.

   "Why is the net wired randomly?", asked Minsky.

   "I do not want it to have any preconceptions of how to play", Sussman
said.

   Minsky then shut his eyes.

   "Why do you close your eyes?", Sussman asked his teacher.

   "So that the room will be empty."

   At that moment, Sussman was enlightened.

                                 * * *

   A disciple of another sect once came to Drescher as he was eating his
morning meal.

   "I would like to give you this personality test", said the outsider,
"because I want you to be happy."

   Drescher took the paper that was offered him and put it into the
toaster, saying: "I wish the toaster to be happy, too."

:OS and JEDGAR:
===============

This story says a lot about the the ITS ethos. 

On the ITS system there was a program that allowed you to see what was
being printed on someone else's terminal.  It spied on the other guy's
output by examining the insides of the monitor system.  The output spy
program was called OS.  Throughout the rest of the computer science (and
at IBM too) OS means `operating system', but among old-time ITS hackers
it almost always meant `output spy'.

OS could work because ITS purposely had very little in the way of
`protection' that prevented one user from trespassing on another's
areas.  Fair is fair, however.  There was another program that would
automatically notify you if anyone started to spy on your output.  It
worked in exactly the same way, by looking at the insides of the
operating system to see if anyone else was looking at the insides that
had to do with your output.  This `counterspy' program was called JEDGAR
(a six-letterism pronounced as two syllables: /jed'gr/), in honor of the
former head of the FBI.

But there's more.  JEDGAR would ask the user for `license to kill'.  If
the user said yes, then JEDGAR would actually {gun} the job of the
{luser} who was spying.  Unfortunately, people found that this made life
too violent, especially when tourists learned about it.  One of the
systems hackers solved the problem by replacing JEDGAR with another
program that only pretended to do its job.  It took a long time to do
this, because every copy of JEDGAR had to be patched.  To this day no
one knows how many people never figured out that JEDGAR had been
defanged.

:The Story of Mel, a Real Programmer:
=====================================

This was posted to USENET by its author, Ed Nather (utastro!nather), on
May 21, 1983.


     A recent article devoted to the *macho* side of programming
     made the bald and unvarnished statement:

         Real Programmers write in FORTRAN.

     Maybe they do now,
     in this decadent era of
     Lite beer, hand calculators, and "user-friendly" software
     but back in the Good Old Days,
     when the term "software" sounded funny
     and Real Computers were made out of drums and vacuum tubes,
     Real Programmers wrote in machine code.
     Not FORTRAN.  Not RATFOR.  Not, even, assembly language.
     Machine Code.
     Raw, unadorned, inscrutable hexadecimal numbers.
     Directly.

     Lest a whole new generation of programmers
     grow up in ignorance of this glorious past,
     I feel duty-bound to describe,
     as best I can through the generation gap,
     how a Real Programmer wrote code.
     I'll call him Mel,
     because that was his name.

     I first met Mel when I went to work for Royal McBee Computer Corp.,
     a now-defunct subsidiary of the typewriter company.
     The firm manufactured the LGP-30,
     a small, cheap (by the standards of the day)
     drum-memory computer,
     and had just started to manufacture
     the RPC-4000, a much-improved,
     bigger, better, faster --- drum-memory computer.
     Cores cost too much,
     and weren't here to stay, anyway.
     (That's why you haven't heard of the company, or the computer.)

     I had been hired to write a FORTRAN compiler
     for this new marvel and Mel was my guide to its wonders.
     Mel didn't approve of compilers.

     "If a program can't rewrite its own code",
     he asked, "what good is it?"

     Mel had written,
     in hexadecimal,
     the most popular computer program the company owned.
     It ran on the LGP-30
     and played blackjack with potential customers
     at computer shows.
     Its effect was always dramatic.
     The LGP-30 booth was packed at every show,
     and the IBM salesmen stood around
     talking to each other.
     Whether or not this actually sold computers
     was a question we never discussed.

     Mel's job was to re-write
     the blackjack program for the RPC-4000.
     (Port?  What does that mean?)
     The new computer had a one-plus-one
     addressing scheme,
     in which each machine instruction,
     in addition to the operation code
     and the address of the needed operand,
     had a second address that indicated where, on the revolving drum,
     the next instruction was located.

     In modern parlance,
     every single instruction was followed by a GO TO!
     Put *that* in Pascal's pipe and smoke it.

     Mel loved the RPC-4000
     because he could optimize his code:
     that is, locate instructions on the drum
     so that just as one finished its job,
     the next would be just arriving at the "read head"
     and available for immediate execution.
     There was a program to do that job,
     an "optimizing assembler",
     but Mel refused to use it.

     "You never know where it's going to put things",
     he explained, "so you'd have to use separate constants".

     It was a long time before I understood that remark.
     Since Mel knew the numerical value
     of every operation code,
     and assigned his own drum addresses,
     every instruction he wrote could also be considered
     a numerical constant.
     He could pick up an earlier "add" instruction, say,
     and multiply by it,
     if it had the right numeric value.
     His code was not easy for someone else to modify.

     I compared Mel's hand-optimized programs
     with the same code massaged by the optimizing assembler program,
     and Mel's always ran faster.
     That was because the "top-down" method of program design
     hadn't been invented yet,
     and Mel wouldn't have used it anyway.
     He wrote the innermost parts of his program loops first,
     so they would get first choice
     of the optimum address locations on the drum.
     The optimizing assembler wasn't smart enough to do it that way.

     Mel never wrote time-delay loops, either,
     even when the balky Flexowriter
     required a delay between output characters to work right.
     He just located instructions on the drum
     so each successive one was just *past* the read head
     when it was needed;
     the drum had to execute another complete revolution
     to find the next instruction.
     He coined an unforgettable term for this procedure.
     Although "optimum" is an absolute term,
     like "unique", it became common verbal practice
     to make it relative:
     "not quite optimum" or "less optimum"
     or "not very optimum".
     Mel called the maximum time-delay locations
     the "most pessimum".

     After he finished the blackjack program
     and got it to run
     ("Even the initializer is optimized",
     he said proudly),
     he got a Change Request from the sales department.
     The program used an elegant (optimized)
     random number generator
     to shuffle the "cards" and deal from the "deck",
     and some of the salesmen felt it was too fair,
     since sometimes the customers lost.
     They wanted Mel to modify the program
     so, at the setting of a sense switch on the console,
     they could change the odds and let the customer win.

     Mel balked.
     He felt this was patently dishonest,
     which it was,
     and that it impinged on his personal integrity as a programmer,
     which it did,
     so he refused to do it.
     The Head Salesman talked to Mel,
     as did the Big Boss and, at the boss's urging,
     a few Fellow Programmers.
     Mel finally gave in and wrote the code,
     but he got the test backwards,
     and, when the sense switch was turned on,
     the program would cheat, winning every time.
     Mel was delighted with this,
     claiming his subconscious was uncontrollably ethical,
     and adamantly refused to fix it.

     After Mel had left the company for greener pa$ture$,
     the Big Boss asked me to look at the code
     and see if I could find the test and reverse it.
     Somewhat reluctantly, I agreed to look.
     Tracking Mel's code was a real adventure.

     I have often felt that programming is an art form,
     whose real value can only be appreciated
     by another versed in the same arcane art;
     there are lovely gems and brilliant coups
     hidden from human view and admiration, sometimes forever,
     by the very nature of the process.
     You can learn a lot about an individual
     just by reading through his code,
     even in hexadecimal.
     Mel was, I think, an unsung genius.

     Perhaps my greatest shock came
     when I found an innocent loop that had no test in it.
     No test.  *None*.
     Common sense said it had to be a closed loop,
     where the program would circle, forever, endlessly.
     Program control passed right through it, however,
     and safely out the other side.
     It took me two weeks to figure it out.

     The RPC-4000 computer had a really modern facility
     called an index register.
     It allowed the programmer to write a program loop
     that used an indexed instruction inside;
     each time through,
     the number in the index register
     was added to the address of that instruction,
     so it would refer
     to the next datum in a series.
     He had only to increment the index register
     each time through.
     Mel never used it.

     Instead, he would pull the instruction into a machine register,
     add one to its address,
     and store it back.
     He would then execute the modified instruction
     right from the register.
     The loop was written so this additional execution time
     was taken into account ---
     just as this instruction finished,
     the next one was right under the drum's read head,
     ready to go.
     But the loop had no test in it.

     The vital clue came when I noticed
     the index register bit,
     the bit that lay between the address
     and the operation code in the instruction word,
     was turned on ---
     yet Mel never used the index register,
     leaving it zero all the time.
     When the light went on it nearly blinded me.

     He had located the data he was working on
     near the top of memory ---
     the largest locations the instructions could address ---
     so, after the last datum was handled,
     incrementing the instruction address
     would make it overflow.
     The carry would add one to the
     operation code, changing it to the next one in the instruction set:
     a jump instruction.
     Sure enough, the next program instruction was
     in address location zero,
     and the program went happily on its way.

     I haven't kept in touch with Mel,
     so I don't know if he ever gave in to the flood of
     change that has washed over programming techniques
     since those long-gone days.
     I like to think he didn't.
     In any event,
     I was impressed enough that I quit looking for the
     offending test,
     telling the Big Boss I couldn't find it.
     He didn't seem surprised.

     When I left the company,
     the blackjack program would still cheat
     if you turned on the right sense switch,
     and I think that's how it should be.
     I didn't feel comfortable
     hacking up the code of a Real Programmer.


This is one of hackerdom's great heroic epics, free verse or no.  In a
few spare images it captures more about the esthetics and psychology of
hacking than all the scholarly volumes on the subject put together.  For
an opposing point of view, see the entry for {real programmer}.

[1992 postscript --- the author writes: "The original submission to
the net was not in free verse, nor any approximation to it --- it was
straight prose style, in non-justified paragraphs.  In bouncing around
the net it apparently got modified into the `free verse' form now
popular.  In other words, it got hacked on the net.  That seems
appropriate, somehow."]

:Appendix B: A Portrait of J. Random Hacker
*******************************************

This profile reflects detailed comments on an earlier `trial balloon'
version from about a hundred USENET respondents.  Where comparatives are
used, the implicit `other' is a randomly selected segment of the
non-hacker population of the same size as hackerdom.

An important point: Except in some relatively minor respects such as
slang vocabulary, hackers don't get to be the way they are by imitating
each other.  Rather, it seems to be the case that the combination of
personality traits that makes a hacker so conditions one's outlook on
life that one tends to end up being like other hackers whether one wants
to or not (much as bizarrely detailed similarities in behavior and
preferences are found in genetic twins raised separately).


:General Appearance:
====================

Intelligent.  Scruffy.  Intense.  Abstracted.  Surprisingly for a
sedentary profession, more hackers run to skinny than fat; both
extremes are more common than elsewhere.  Tans are rare.


:Dress:
=======

Casual, vaguely post-hippie; T-shirts, jeans, running shoes,
Birk-enstocks (or bare feet).  Long hair, beards, and moustaches are
common.  High incidence of tie-dye and intellectual or humorous `slogan'
T-shirts (only rarely computer related; that would be too obvious).

A substantial minority prefers `outdoorsy' clothing --- hiking boots
("in case a mountain should suddenly spring up in the machine room", as
one famous parody put it), khakis, lumberjack or chamois shirts, and the
like.

Very few actually fit the `National Lampoon' Nerd stereotype, though it
lingers on at MIT and may have been more common before 1975.  These
days, backpacks are more common than briefcases, and the hacker `look'
is more whole-earth than whole-polyester.

Hackers dress for comfort, function, and minimal maintenance hassles
rather than for appearance (some, perhaps unfortunately, take this to
extremes and neglect personal hygiene).  They have a very low tolerance
of suits and other `business' attire; in fact, it is not uncommon for
hackers to quit a job rather than conform to a dress code.

Female hackers almost never wear visible makeup, and many use none at
all.


:Reading Habits:
================

Omnivorous, but usually includes lots of science and science fiction.
The typical hacker household might subscribe to `Analog', `Scientific
American', `Co-Evolution Quarterly', and `Smithsonian'.  Hackers often
have a reading range that astonishes liberal arts people but tend not to
talk about it as much.  Many hackers spend as much of their spare time
reading as the average American burns up watching TV, and often keep
shelves and shelves of well-thumbed books in their homes.


:Other Interests:
=================

Some hobbies are widely shared and recognized as going with the culture:
science fiction, music, medievalism (in the active form practiced by the
Society for Creative Anachronism and similar organizations), chess, go,
backgammon, wargames, and intellectual games of all kinds.
(Role-playing games such as Dungeons and Dragons used to be extremely
popular among hackers but they lost a bit of their luster as they moved
into the mainstream and became heavily commercialized.)  Logic puzzles.
Ham radio.  Other interests that seem to correlate less strongly but
positively with hackerdom include linguistics and theater teching.


:Physical Activity and Sports:
==============================

Many (perhaps even most) hackers don't follow or do sports at all and
are determinedly anti-physical.  Among those who do, interest in
spectator sports is low to non-existent; sports are something one
*does*, not something one watches on TV.

Further, hackers avoid most team sports like the plague (volleyball is a
notable exception, perhaps because it's non-contact and relatively
friendly).  Hacker sports are almost always primarily self-competitive
ones involving concentration, stamina, and micromotor skills: martial
arts, bicycling, auto racing, kite flying, hiking, rock climbing,
aviation, target-shooting, sailing, caving, juggling, skiing, skating
(ice and roller).  Hackers' delight in techno-toys also tends to draw
them towards hobbies with nifty complicated equipment that they can
tinker with.


:Education:
===========

Nearly all hackers past their teens are either college-degreed or
self-educated to an equivalent level.  The self-taught hacker is often
considered (at least by other hackers) to be better-motivated, and may
be more respected, than his school-shaped counterpart.  Academic areas
from which people often gravitate into hackerdom include (besides the
obvious computer science and electrical engineering) physics,
mathematics, linguistics, and philosophy.


:Things Hackers Detest and Avoid:
=================================

IBM mainframes.  Smurfs, Ewoks, and other forms of offensive cuteness.
Bureaucracies.  Stupid people.  Easy listening music.  Television
(except for cartoons, movies, the old "Star Trek", and the new
"Simpsons").  Business suits.  Dishonesty.  Incompetence.
Boredom.  COBOL. BASIC.  Character-based menu interfaces.


:Food:
======

Ethnic.  Spicy.  Oriental, esp. Chinese and most esp. Szechuan, Hunan,
and Mandarin (hackers consider Cantonese vaguely d'eclass'e).  Hackers
prefer the exotic; for example, the Japanese-food fans among them will
eat with gusto such delicacies as fugu (poisonous pufferfish) and
whale.  Thai food has experienced flurries of popularity.  Where
available, high-quality Jewish delicatessen food is much esteemed.  A
visible minority of Southwestern and Pacific Coast hackers prefers
Mexican.

For those all-night hacks, pizza and microwaved burritos are big.
Interestingly, though the mainstream culture has tended to think of
hackers as incorrigible junk-food junkies, many have at least mildly
health-foodist attitudes and are fairly discriminating about what they
eat.  This may be generational; anecdotal evidence suggests that the
stereotype was more on the mark 10--15 years ago.


:Politics:
==========

Vaguely left of center, except for the strong libertarian contingent
which rejects conventional left-right politics entirely.  The only safe
generalization is that hackers tend to be rather anti-authoritarian;
thus, both conventional conservatism and `hard' leftism are rare.
Hackers are far more likely than most non-hackers to either (a) be
aggressively apolitical or (b) entertain peculiar or idiosyncratic
political ideas and actually try to live by them day-to-day.


:Gender and Ethnicity:
======================

Hackerdom is still predominantly male.  However, the percentage of women
is clearly higher than the low-single-digit range typical for technical
professions, and female hackers are generally respected and dealt with
as equals.

In the U.S., hackerdom is predominantly Caucasian with strong minorities
of Jews (East Coast) and Orientals (West Coast).  The Jewish contingent
has exerted a particularly pervasive cultural influence (see {Food},
above, and note that several common jargon terms are obviously mutated
Yiddish).

The ethnic distribution of hackers is understood by them to be a
function of which ethnic groups tend to seek and value education.
Racial and ethnic prejudice is notably uncommon and tends to be met with
freezing contempt.

When asked, hackers often ascribe their culture's gender- and
color-blindness to a positive effect of text-only network channels,
and this is doubtless a powerful influence.  Also, the ties many
hackers have to AI research and SF literature may have helped them to
develop an idea of personhood that is inclusive rather than exclusive
--- after all, if one's imagination readily grants full human rights to AI
programs, robots, dolphins, and extraterrestrial aliens, mere color and
gender can't seem very important any more.


:Religion:
==========


Agnostic.  Atheist.  Non-observant Jewish.  Neo-pagan.  Very commonly,
three or more of these are combined in the same person.  Conventional
faith-holding Christianity is rare though not unknown.

Even hackers who identify with a religious affiliation tend to be
relaxed about it, hostile to organized religion in general and all forms
of religious bigotry in particular.  Many enjoy `parody' religions such
as Discordianism and the Church of the SubGenius.

Also, many hackers are influenced to varying degrees by Zen Buddhism or
(less commonly) Taoism, and blend them easily with their `native'
religions.

There is a definite strain of mystical, almost Gnostic sensibility that
shows up even among those hackers not actively involved with
neo-paganism, Discordianism, or Zen.  Hacker folklore that pays homage
to `wizards' and speaks of incantations and demons has too much
psychological truthfulness about it to be entirely a joke.


:Ceremonial Chemicals:
======================

Most hackers don't smoke tobacco, and use alcohol in moderation if at
all (though there is a visible contingent of exotic-beer fanciers, and a
few hackers are serious oenophiles).  Limited use of non-addictive
psychedelic drugs, such as cannabis, LSD, psilocybin, and nitrous oxide,
etc., used to be relatively common and is still regarded with more
tolerance than in the mainstream culture.  Use of `downers' and opiates,
on the other hand, appears to be particularly rare; hackers seem in
general to dislike drugs that `dumb them down'.  On the third hand, many
hackers regularly wire up on caffeine and/or sugar for all-night hacking
runs.


:Communication Style:
=====================

See the discussions of speech and writing styles near the beginning of
this File.  Though hackers often have poor person-to-person
communication skills, they are as a rule extremely sensitive to nuances
of language and very precise in their use of it.  They are often better
at writing than at speaking.


:Geographical Distribution:
===========================

In the United States, hackerdom revolves on a Bay Area-to-Boston axis;
about half of the hard core seems to live within a hundred miles of
Cambridge (Massachusetts) or Berkeley (California), although there are
significant contingents in Los Angeles, in the Pacific Northwest, and
around Washington DC.  Hackers tend to cluster around large cities,
especially `university towns' such as the Raleigh-Durham area in North
Carolina or Princeton, New Jersey (this may simply reflect the fact that
many are students or ex-students living near their alma maters).


:Sexual Habits:
===============

Hackerdom tolerates a much wider range of sexual and lifestyle variation
than the mainstream culture.  It includes a relatively large gay and bi
contingent.  Hackers are somewhat more likely to live in polygynous or
polyandrous relationships, practice open marriage, or live in communes
or group houses.  In this, as in general appearance, hackerdom
semi-consciously maintains `counterculture' values.


:Personality Characteristics:
=============================

The most obvious common `personality' characteristics of hackers are
high intelligence, consuming curiosity, and facility with intellectual
abstractions.  Also, most hackers are `neophiles', stimulated by and
appreciative of novelty (especially intellectual novelty).  Most are
also relatively individualistic and anti-conformist.

Although high general intelligence is common among hackers, it is not
the sine qua non one might expect.  Another trait is probably even more
important: the ability to mentally absorb, retain, and reference large
amounts of `meaningless' detail, trusting to later experience to give it
context and meaning.  A person of merely average analytical intelligence
who has this trait can become an effective hacker, but a creative genius
who lacks it will swiftly find himself outdistanced by people who
routinely upload the contents of thick reference manuals into their
brains.  [During the production of the book version of this document,
for example, I learned most of the rather complex typesetting language
TeX over about four working days, mainly by inhaling Knuth's 477-page
manual.  My editor's flabbergasted reaction to this genuinely surprised
me, because years of associating with hackers have conditioned me to
consider such performances routine and to be expected. --- ESR]

Contrary to stereotype, hackers are *not* usually intellectually narrow;
they tend to be interested in any subject that can provide mental
stimulation, and can often discourse knowledgeably and even
interestingly on any number of obscure subjects --- if you can get them
to talk at all, as opposed to, say, going back to their hacking.

It is noticeable (and contrary to many outsiders' expectations) that the
better a hacker is at hacking, the more likely he or she is to have
outside interests at which he or she is more than merely competent.

Hackers are `control freaks' in a way that has nothing to do with the
usual coercive or authoritarian connotations of the term.  In the same
way that children delight in making model trains go forward and back by
moving a switch, hackers love making complicated things like computers
do nifty stuff for them.  But it has to be *their* nifty stuff.  They
don't like tedium, nondeterminism, or most of the fussy, boring,
ill-defined little tasks that go with maintaining a normal existence.
Accordingly, they tend to be careful and orderly in their intellectual
lives and chaotic elsewhere.  Their code will be beautiful, even if
their desks are buried in 3 feet of crap.

Hackers are generally only very weakly motivated by conventional rewards
such as social approval or money.  They tend to be attracted by
challenges and excited by interesting toys, and to judge the interest of
work or other activities in terms of the challenges offered and the toys
they get to play with.

In terms of Myers-Briggs and equivalent psychometric systems, hackerdom
appears to concentrate the relatively rare INTJ and INTP types; that is,
introverted, intuitive, and thinker types (as opposed to the
extroverted-sensate personalities that predominate in the mainstream
culture).  ENT[JP] types are also concentrated among hackers but are in
a minority.


:Weaknesses of the Hacker Personality:
======================================

Hackers have relatively little ability to identify emotionally with
other people.  This may be because hackers generally aren't much like
`other people'.  Unsurprisingly, hackers also tend towards
self-absorption, intellectual arrogance, and impatience with people and
tasks perceived to be wasting their time.

As cynical as hackers sometimes wax about the amount of idiocy in the
world, they tend by reflex to assume that everyone is as rational,
`cool', and imaginative as they consider themselves.  This bias often
contributes to weakness in communication skills.  Hackers tend to be
especially poor at confrontation and negotiation.

Because of their passionate embrace of (what they consider to be) the
{Right Thing}, hackers can be unfortunately intolerant and bigoted on
technical issues, in marked contrast to their general spirit of
camaraderie and tolerance of alternative viewpoints otherwise.  Old-time
{{ITS}} partisans look down on the ever-growing hordes of {{UNIX}}
hackers; UNIX aficionados despise {VMS} and {{MS-DOS}}; and hackers who
are used to conventional command-line user interfaces loathe
mouse-and-menu based systems such as the Macintosh.  Hackers who don't
indulge in {USENET} consider it a huge waste of time and {bandwidth};
fans of old adventure games such as {ADVENT} and {Zork} consider {MUD}s
to be glorified chat systems devoid of atmosphere or interesting
puzzles; hackers who are willing to devote endless hours to USENET or
MUDs consider {IRC} to be a *real* waste of time; IRCies think MUDs
might be okay if there weren't all those silly puzzles in the way.  And,
of course, there are the perennial {holy wars} --- {EMACS} vs. {vi},
{big-endian} vs.  {little-endian}, RISC vs. CISC, etc., etc., etc.  As
in society at large, the intensity and duration of these debates is
usually inversely proportional to the number of objective, factual
arguments available to buttress any position.

As a result of all the above traits, many hackers have difficulty
maintaining stable relationships.  At worst, they can produce the
classic {computer geek}: withdrawn, relationally incompetent, sexually
frustrated, and desperately unhappy when not submerged in his or her
craft.  Fortunately, this extreme is far less common than mainstream
folklore paints it --- but almost all hackers will recognize something
of themselves in the unflattering paragraphs above.

Hackers are often monumentally disorganized and sloppy about dealing
with the physical world.  Bills don't get paid on time, clutter piles up
to incredible heights in homes and offices, and minor maintenance tasks
get deferred indefinitely.

The sort of person who uses phrases like `incompletely socialized'
usually thinks hackers are.  Hackers regard such people with contempt
when they notice them at all.


:Miscellaneous:
===============

Hackers are more likely to have cats than dogs (in fact, it is widely
grokked that cats have the hacker nature).  Many drive incredibly
decrepit heaps and forget to wash them; richer ones drive spiffy
Porsches and RX-7s and then forget to have them washed.  Almost all
hackers have terribly bad handwriting, and often fall into the habit of
block-printing everything like junior draftsmen.

:Appendix C: Bibliography
*************************

Here are some other books you can read to help you understand the hacker
mindset.


:G"odel, Escher, Bach: An Eternal Golden Braid:
Douglas Hofstadter
Basic Books, 1979
ISBN 0-394-74502-7

This book reads like an intellectual Grand Tour of hacker
preoccupations.  Music, mathematical logic, programming, speculations on
the nature of intelligence, biology, and Zen are woven into a brilliant
tapestry themed on the concept of encoded self-reference.  The perfect
left-brain companion to `Illuminatus'.


:Illuminatus!:
    I.   `The Eye in the Pyramid'
    II.  `The Golden Apple'
    III. `Leviathan'.
Robert Shea and Robert Anton Wilson
Dell, 1988
ISBN 0-440-53981-1

This work of alleged fiction is an incredible berserko-surrealist
rollercoaster of world-girdling conspiracies, intelligent dolphins, the
fall of Atlantis, who really killed JFK, sex, drugs, rock'n'roll, and
the Cosmic Giggle Factor.  First published in three volumes, but there
is now a one-volume trade paperback, carried by most chain bookstores
under SF.  The perfect right-brain companion to Hofstadter's `G"odel,
Escher, Bach'.  See {Eris}, {Discordianism}, {random numbers}, {Church
of the SubGenius}.


:The Hitchhiker's Guide to the Galaxy:
Douglas Adams
Pocket Books, 1981
ISBN 0-671-46149-4

This `Monty Python in Space' spoof of SF genre traditions has been
popular among hackers ever since the original British radio show.  Read
it if only to learn about Vogons (see {bogon}) and the significance of
the number 42 (see {random numbers}) --- and why the winningest chess
program of 1990 was called `Deep Thought'.


:The Tao of Programming:
James Geoffrey
Infobooks, 1987
ISBN 0-931137-07-1

This gentle, funny spoof of the `Tao Te Ching' contains much that is
illuminating about the hacker way of thought.  "When you have learned to
snatch the error code from the trap frame, it will be time for you to
leave."


:Hackers:
Steven Levy
Anchor/Doubleday 1984
ISBN 0-385-19195-2

Levy's book is at its best in describing the early MIT hackers at the
Model Railroad Club and the early days of the microcomputer revolution.
He never understood UNIX or the networks, though, and his enshrinement
of Richard Stallman as "the last true hacker" turns out (thankfully) to
have been quite misleading.  Numerous minor factual errors also mar the
text; for example, Levy's claim that the original Jargon File derived
from the TMRC Dictionary (the File originated at Stanford and was
brought to MIT in 1976; the co-authors of the first edition had never
seen the dictionary in question).  There are also numerous misspellings
in the book that inflame the passions of old-timers; as Dan Murphy, the
author of TECO, once said: "You would have thought he'd take the trouble
to spell the name of a winning editor right."  Nevertheless, this
remains a useful and stimulating book that captures the feel of several
important hackish subcultures.


:The Devil's DP Dictionary:
Stan Kelly-Bootle
McGraw-Hill, 1981
ISBN 0-07-034022-6

This pastiche of Ambrose Bierce's famous work is similar in format to
the Jargon File (and quotes several entries from jargon-1) but somewhat
different in tone and intent.  It is more satirical and less
anthropological, and is largely a product of the author's literate and
quirky imagination.  For example, it defines `computer science' as "a
study akin to numerology and astrology, but lacking the precision of the
former and the success of the latter" and "the boring art of coping with
a large number of trivialities."


:The Devouring Fungus: Tales from the Computer Age:
Karla Jennings
Norton, 1990
ISBN 0-393-30732-8

The author of this pioneering compendium knits together a great deal of
computer- and hacker-related folklore with good writing and a few
well-chosen cartoons.  She has a keen eye for the human aspects of the
lore and is very good at illuminating the psychology and evolution of
hackerdom.  Unfortunately, a number of small errors and awkwardnesses
suggest that she didn't have the final manuscript checked over by a
native speaker; the glossary in the back is particularly embarrassing,
and at least one classic tale (the Magic Switch story, retold here under
{A Story About `Magic'} in {appendix A}) is given in incomplete and
badly mangled form.  Nevertheless, this book is a win overall and can be
enjoyed by hacker and non-hacker alike.


:The Soul of a New Machine:
Tracy Kidder
Little, Brown, 1981
(paperback: Avon, 1982
ISBN 0-380-59931-7)

This book (a 1982 Pulitzer Prize winner) documents the adventure of the
design of a new Data General computer, the Eclipse.  It is an amazingly
well-done portrait of the hacker mindset --- although largely the
hardware hacker --- done by a complete outsider.  It is a bit thin in
spots, but with enough technical information to be entertaining to the
serious hacker while providing non-technical people a view of what
day-to-day life can be like --- the fun, the excitement, the disasters.
During one period, when the microcode and logic were glitching at the
nanosecond level, one of the overworked engineers departed the company,
leaving behind a note on his terminal as his letter of resignation: "I
am going to a commune in Vermont and will deal with no unit of time
shorter than a season."


:Life with UNIX: a Guide for Everyone:
Don Libes and Sandy Ressler
Prentice-Hall, 1989
ISBN 0-13-536657-7

The authors of this book set out to tell you all the things about UNIX
that tutorials and technical books won't.  The result is gossipy, funny,
opinionated, downright weird in spots, and invaluable.  Along the way
they expose you to enough of UNIX's history, folklore and humor to
qualify as a first-class source for these things.  Because so much of
today's hackerdom is involved with UNIX, this in turn illuminates many
of its in-jokes and preoccupations.


:True Names ... and Other Dangers:
Vernor Vinge
Baen Books, 1987
ISBN 0-671-65363-6

Hacker demigod Richard Stallman believes the title story of this book
"expresses the spirit of hacking best".  This may well be true; it's
certainly difficult to recall a better job.  The other stories in this
collection are also fine work by an author who is perhaps one of today's
very best practitioners of hard SF.


:Cyberpunk: Outlaws and Hackers on the Computer Frontier:
Katie Hafner & John Markoff
Simon & Schuster 1991
ISBN 0-671-68322-5

This book gathers narratives about the careers of three notorious
crackers into a clear-eyed but sympathetic portrait of hackerdom's dark
side.  The principals are Kevin Mitnick, "Pengo" and "Hagbard" of the
Chaos Computer Club, and Robert T. Morris (see {RTM}, sense 2) .
Markoff and Hafner focus as much on their psychologies and motivations
as on the details of their exploits, but don't slight the latter.  The
result is a balanced and fascinating account, particularly useful when
read immediately before or after Cliff Stoll's {The Cuckoo's Egg}.  It
is especially instructive to compare RTM, a true hacker who blundered,
with the sociopathic phone-freak Mitnick and the alienated, drug-addled
crackers who made the Chaos Club notorious.  The gulf between {wizard}
and {wannabee} has seldom been made more obvious.


:Technobabble:
John Barry
MIT Press 1991
ISBN 0-262-02333-4

Barry's book takes a critical and humorous look at the `technobabble' of
acronyms, neologisms, hyperbole, and metaphor spawned by the computer
industry.  Though he discusses some of the same mechanisms of jargon
formation that occur in hackish, most of what he chronicles is actually
suit-speak --- the obfuscatory language of press releases, marketroids,
and Silicon Valley CEOs rather than the playful jargon of hackers (most
of whom wouldn't be caught dead uttering the kind of pompous,
passive-voiced word salad he deplores).


:The Cuckoo's Egg:
Clifford Stoll
Doubleday 1989
ISBN 0-385-24946-2

Clifford Stoll's absorbing tale of how he tracked Markus Hess and the
Chaos Club cracking ring nicely illustrates the difference between
`hacker' and `cracker'.  Stoll's portrait of himself, his lady Martha,
and his friends at Berkeley and on the Internet paints a marvelously
vivid picture of how hackers and the people around them like to live and
what they think.

#====================== THE JARGON FILE ENDS HERE ======================#
