THIS IS THE JARGON FILE, VERSION 2.9.10, 01 JUL 1992


This is the Jargon File, a comprehensive compendium of hacker slang
illuminating many aspects of hackish tradition, folklore, and humor.

This document (the Jargon File) is in the public domain, to be freely
used, shared, and modified.  There are (by intention) no legal
restraints on what you can do with it, but there are traditions about
its proper use to which many hackers are quite strongly attached.
Please extend the courtesy of proper citation when you quote the File,
ideally with a version number, as it will change and grow over time.
(Examples of appropriate citation form: "Jargon File 2.9.10" or
"The on-line hacker Jargon File, version 2.9.10, 01 JUL 1992".)

The Jargon File is a common heritage of the hacker culture.
Over the years a number of individuals have volunteered considerable
time to maintaining the File and been recognized by the net at large
as editors of it.  Editorial responsibilities include: to collate
contributions and suggestions from others; to seek out corroborating
information; to cross-reference related entries; to keep the file in a
consistent format; and to announce and distribute updated versions
periodically.  Current volunteer editors include:

       Eric Raymond    eric@snark.thyrsus.com  (215)-296-5718

Although there is no requirement that you do so, it is considered good
form to check with an editor before quoting the File in a published work
or commercial product.  We may have additional information that would be
helpful to you and can assist you in framing your quote to reflect
not only the letter of the File but its spirit as well.

All contributions and suggestions about this file sent to a volunteer
editor are gratefully received and will be regarded, unless otherwise
labelled, as freely given donations for possible use as part of this
public-domain file.

From time to time a snapshot of this file has been polished, edited,
and formatted for commercial publication with the cooperation of the
volunteer editors and the hacker community at large.  If you wish to
have a bound paper copy of this file, you may find it convenient to
purchase one of these.  They often contain additional material not
found in on-line versions.  The two `authorized' editions so far are
described in the Revision History section; there may be more in the
future.

:Introduction:
**************

:About This File:
=================

This document is a collection of slang terms used by various subcultures
of computer hackers.  Though some technical material is included for
background and flavor, it is not a technical dictionary; what we
describe here is the language hackers use among themselves for fun,
social communication, and technical debate.

The `hacker culture' is actually a loosely networked collection of
subcultures that is nevertheless conscious of some important shared
experiences, shared roots, and shared values.  It has its own myths,
heroes, villains, folk epics, in-jokes, taboos, and dreams.  Because
hackers as a group are particularly creative people who define
themselves partly by rejection of `normal' values and working habits, it
has unusually rich and conscious traditions for an intentional culture
less than 35 years old.

As usual with slang, the special vocabulary of hackers helps hold their
culture together --- it helps hackers recognize each other's places in
the community and expresses shared values and experiences.  Also as
usual, *not* knowing the slang (or using it inappropriately) defines one
as an outsider, a mundane, or (worst of all in hackish vocabulary)
possibly even a {suit}.  All human cultures use slang in this threefold
way --- as a tool of communication, and of inclusion, and of exclusion.

Among hackers, though, slang has a subtler aspect, paralleled perhaps in
the slang of jazz musicians and some kinds of fine artists but hard to
detect in most technical or scientific cultures; parts of it are code
for shared states of *consciousness*.  There is a whole range of altered
states and problem-solving mental stances basic to high-level hacking
which don't fit into conventional linguistic reality any better than a
Coltrane solo or one of Maurits Escher's `trompe l'oeil' compositions
(Escher is a favorite of hackers), and hacker slang encodes these
subtleties in many unobvious ways.  As a simple example, take the
distinction between a {kluge} and an {elegant} solution, and the
differing connotations attached to each.  The distinction is not only of
engineering significance; it reaches right back into the nature of the
generative processes in program design and asserts something important
about two different kinds of relationship between the hacker and the
hack.  Hacker slang is unusually rich in implications of this kind, of
overtones and undertones that illuminate the hackish psyche.

But there is more.  Hackers, as a rule, love wordplay and are very
conscious and inventive in their use of language.  These traits seem to
be common in young children, but the conformity-enforcing machine we are
pleased to call an educational system bludgeons them out of most of us
before adolescence.  Thus, linguistic invention in most subcultures of
the modern West is a halting and largely unconscious process.  Hackers,
by contrast, regard slang formation and use as a game to be played for
conscious pleasure.  Their inventions thus display an almost unique
combination of the neotenous enjoyment of language-play with the
discrimination of educated and powerful intelligence.  Further, the
electronic media which knit them together are fluid, `hot' connections,
well adapted to both the dissemination of new slang and the ruthless
culling of weak and superannuated specimens.  The results of this
process give us perhaps a uniquely intense and accelerated view of
linguistic evolution in action.

Hackish slang also challenges some common linguistic and
anthropological assumptions.  For example, it has recently become
fashionable to speak of `low-context' versus `high-context'
communication, and to classify cultures by the preferred context level
of their languages and art forms.  It is usually claimed that
low-context communication (characterized by precision, clarity, and
completeness of self-contained utterances) is typical in cultures
which value logic, objectivity, individualism, and competition; by
contrast, high-context communication (elliptical, emotive,
nuance-filled, multi-modal, heavily coded) is associated with cultures
which value subjectivity, consensus, cooperation, and tradition.  What
then are we to make of hackerdom, which is themed around extremely
low-context interaction with computers and exhibits primarily
"low-context" values, but cultivates an almost absurdly high-context
slang style?

The intensity and consciousness of hackish invention make a compilation
of hacker slang a particularly effective window into the surrounding
culture --- and, in fact, this one is the latest version of an evolving
compilation called the `Jargon File', maintained by hackers themselves
for over 15 years.  This one (like its ancestors) is primarily a
lexicon, but also includes `topic entries' which collect background or
sidelight information on hacker culture that would be awkward to try to
subsume under individual entries.

Though the format is that of a reference volume, it is intended that the
material be enjoyable to browse.  Even a complete outsider should find
at least a chuckle on nearly every page, and much that is amusingly
thought-provoking.  But it is also true that hackers use humorous
wordplay to make strong, sometimes combative statements about what they
feel.  Some of these entries reflect the views of opposing sides in
disputes that have been genuinely passionate; this is deliberate.  We
have not tried to moderate or pretty up these disputes; rather we have
attempted to ensure that *everyone's* sacred cows get gored,
impartially.  Compromise is not particularly a hackish virtue, but the
honest presentation of divergent viewpoints is.

The reader with minimal computer background who finds some references
incomprehensibly technical can safely ignore them.  We have not felt it
either necessary or desirable to eliminate all such; they, too,
contribute flavor, and one of this document's major intended audiences
--- fledgling hackers already partway inside the culture --- will
benefit from them.

A selection of longer items of hacker folklore and humor is included in
{appendix A}.  The `outside' reader's attention is particularly directed
to {appendix B}, "A Portrait of J. Random Hacker".  {Appendix C} is a
bibliography of non-technical works which have either influenced or
described the hacker culture.

Because hackerdom is an intentional culture (one each individual must
choose by action to join), one should not be surprised that the line
between description and influence can become more than a little blurred.
Earlier versions of the Jargon File have played a central role in
spreading hacker language and the culture that goes with it to
successively larger populations, and we hope and expect that this one
will do likewise.

:Of Slang, Jargon, and Techspeak:
=================================

Linguists usually refer to informal language as `slang' and reserve the
term `jargon' for the technical vocabularies of various occupations.
However, the ancestor of this collection was called the `Jargon File',
and hackish slang is traditionally `the jargon'.  When talking about the
jargon there is therefore no convenient way to distinguish what a
*linguist* would call hackers' jargon --- the formal vocabulary they
learn from textbooks, technical papers, and manuals.

To make a confused situation worse, the line between hackish slang and
the vocabulary of technical programming and computer science is fuzzy,
and shifts over time.  Further, this vocabulary is shared with a wider
technical culture of programmers, many of whom are not hackers and do
not speak or recognize hackish slang.


Accordingly, this lexicon will try to be as precise as the facts of
usage permit about the distinctions among three categories:
  *`slang': informal language from mainstream English or non-technicalsubcultures (bikers, rock fans, surfers, etc).
  *`jargon': without qualifier, denotes informal `slangy' languagepeculiar to hackers --- the subject of this lexicon.
  *`techspeak': the formal technical vocabulary of programming, computerscience, electronics, and other fields connected to hacking.

This terminology will be consistently used throughout the remainder of
this lexicon.

The jargon/techspeak distinction is the delicate one.  A lot of
techspeak originated as jargon, and there is a steady continuing uptake
of jargon into techspeak.  On the other hand, a lot of jargon arises
from overgeneralization of techspeak terms (there is more about this in
the "Jargon Construction" section below).

In general, we have considered techspeak any term that communicates
primarily by a denotation well established in textbooks, technical
dictionaries, or standards documents.

A few obviously techspeak terms (names of operating systems, languages,
or documents) are listed when they are tied to hacker folklore that
isn't covered in formal sources, or sometimes to convey critical
historical background necessary to understand other entries to which
they are cross-referenced.  Some other techspeak senses of jargon words
are listed in order to make the jargon senses clear; where the text does
not specify that a straight technical sense is under discussion, these
are marked with `[techspeak]' as an etymology.  Some entries have a
primary sense marked this way, with subsequent jargon meanings explained
in terms of it.

We have also tried to indicate (where known) the apparent origins of
terms.  The results are probably the least reliable information in the
lexicon, for several reasons.  For one thing, it is well known that many
hackish usages have been independently reinvented multiple times, even
among the more obscure and intricate neologisms.  It often seems that
the generative processes underlying hackish jargon formation have an
internal logic so powerful as to create substantial parallelism across
separate cultures and even in different languages!  For another, the
networks tend to propagate innovations so quickly that `first use' is
often impossible to pin down.  And, finally, compendia like this one
alter what they observe by implicitly stamping cultural approval on
terms and widening their use.

:Revision History:
==================

The original Jargon File was a collection of hacker jargon from
technical cultures including the MIT AI Lab, the Stanford AI lab (SAIL),
and others of the old ARPANET AI/LISP/PDP-10 communities including Bolt,
Beranek and Newman (BBN), Carnegie-Mellon University (CMU), and
Worcester Polytechnic Institute (WPI).

The Jargon File (hereafter referred to as `jargon-1' or `the File') was
begun by Raphael Finkel at Stanford in 1975.  From this time until the
plug was finally pulled on the SAIL computer in 1991, the File was named
AIWORD.RF[UP,DOC] there.  Some terms in it date back considerably
earlier ({frob} and some senses of {moby}, for instance, go back to the
Tech Model Railroad Club at MIT and are believed to date at least back
to the early 1960s).  The revisions of jargon-1 were all unnumbered and
may be collectively considered `Version 1'.

In 1976, Mark Crispin, having seen an announcement about the File on the
SAIL computer, {FTP}ed a copy of the File to MIT.  He noticed that it
was hardly restricted to `AI words' and so stored the file on his
directory as AI:MRC;SAIL JARGON.

The file was quickly renamed JARGON > (the `>' means numbered with a
version number) as a flurry of enhancements were made by Mark Crispin
and Guy L. Steele Jr.  Unfortunately, amidst all this activity, nobody
thought of correcting the term `jargon' to `slang' until the compendium
had already become widely known as the Jargon File.

Raphael Finkel dropped out of active participation shortly thereafter
and Don Woods became the SAIL contact for the File (which was
subsequently kept in duplicate at SAIL and MIT, with periodic
resynchronizations).

The File expanded by fits and starts until about 1983; Richard Stallman
was prominent among the contributors, adding many MIT and ITS-related
coinages.

In Spring 1981, a hacker named Charles Spurgeon got a large chunk of the
File published in Russell Brand's `CoEvolution Quarterly' (pages 26-35)
with illustrations by Phil Wadler and Guy Steele (including a couple of
the Crunchly cartoons).  This appears to have been the File's first
paper publication.

A late version of jargon-1, expanded with commentary for the mass
market, was edited by Guy Steele into a book published in 1983 as `The
Hacker's Dictionary' (Harper & Row CN 1082, ISBN 0-06-091082-8).  The
other jargon-1 editors (Raphael Finkel, Don Woods, and Mark Crispin)
contributed to this revision, as did Richard M. Stallman and Geoff
Goodfellow.  This book (now out of print) is hereafter referred to as
`Steele-1983' and those six as the Steele-1983 coauthors.

Shortly after the publication of Steele-1983, the File effectively
stopped growing and changing.  Originally, this was due to a desire to
freeze the file temporarily to facilitate the production of Steele-1983,
but external conditions caused the `temporary' freeze to become
permanent.

The AI Lab culture had been hit hard in the late 1970s by funding cuts
and the resulting administrative decision to use vendor-supported
hardware and software instead of homebrew whenever possible.  At MIT,
most AI work had turned to dedicated LISP Machines.  At the same time,
the commercialization of AI technology lured some of the AI Lab's best
and brightest away to startups along the Route 128 strip in
Massachusetts and out West in Silicon Valley.  The startups built LISP
machines for MIT; the central MIT-AI computer became a {TWENEX} system
rather than a host for the AI hackers' beloved {ITS}.

The Stanford AI Lab had effectively ceased to exist by 1980, although
the SAIL computer continued as a Computer Science Department resource
until 1991.  Stanford became a major {TWENEX} site, at one point
operating more than a dozen TOPS-20 systems; but by the mid-1980s most
of the interesting software work was being done on the emerging BSD UNIX
standard.

In April 1983, the PDP-10-centered cultures that had nourished the File
were dealt a death-blow by the cancellation of the Jupiter project at
Digital Equipment Corporation.  The File's compilers, already dispersed,
moved on to other things.  Steele-1983 was partly a monument to what its
authors thought was a dying tradition; no one involved realized at the
time just how wide its influence was to be.

By the mid-1980s the File's content was dated, but the legend that had
grown up around it never quite died out.  The book, and softcopies
obtained off the ARPANET, circulated even in cultures far removed from
MIT and Stanford; the content exerted a strong and continuing influence
on hackish language and humor.  Even as the advent of the microcomputer
and other trends fueled a tremendous expansion of hackerdom, the File
(and related materials such as the AI Koans in Appendix A) came to be
seen as a sort of sacred epic, a hacker-culture Matter of Britain
chronicling the heroic exploits of the Knights of the Lab.  The pace of
change in hackerdom at large accelerated tremendously --- but the Jargon
File, having passed from living document to icon, remained essentially
untouched for seven years.

This revision contains nearly the entire text of a late version of
jargon-1 (a few obsolete PDP-10-related entries were dropped after
careful consultation with the editors of Steele-1983).  It merges in
about 80% of the Steele-1983 text, omitting some framing material and a
very few entries introduced in Steele-1983 that are now also obsolete.

This new version casts a wider net than the old Jargon File; its aim is
to cover not just AI or PDP-10 hacker culture but all the technical
computing cultures wherein the true hacker-nature is manifested.  More
than half of the entries now derive from {USENET} and represent jargon
now current in the C and UNIX communities, but special efforts have been
made to collect jargon from other cultures including IBM PC programmers,
Amiga fans, Mac enthusiasts, and even the IBM mainframe world.

Eric S. Raymond maintains the new File with
assistance from Guy L. Steele Jr. ; these are the persons
primarily reflected in the File's editorial `we', though we take
pleasure in acknowledging the special contribution of the other
coauthors of Steele-1983.  Please email all additions, corrections, and
correspondence relating to the Jargon File to jargon@thyrsus.com
(UUCP-only sites without connections to an autorouting smart site can
use ...!uunet!snark!jargon).

(Warning: other email addresses appear in this file *but are not
guaranteed to be correct* later than the revision date on the first
line.  *Don't* email us if an attempt to reach your idol bounces --- we
have no magic way of checking addresses or looking up people.)

The 2.9.6 version became the main text of `The New Hacker's Dictionary',
by Eric Raymond (ed.), MIT Press 1991, ISBN 0-262-68069-6.  The
maintainers are committed to updating the on-line version of the Jargon
File through and beyond paper publication, and will continue to make it
available to archives and public-access sites as a trust of the hacker
community.

Here is a chronology of the high points in the recent on-line revisions:

Version 2.1.1, Jun 12 1990: the Jargon File comes alive again after a
seven-year hiatus.  Reorganization and massive additions were by Eric S.
Raymond, approved by Guy Steele.  Many items of UNIX, C, USENET, and
microcomputer-based jargon were added at that time (as well as The
Untimely Demise of Mabel The Monkey).

Version 2.9.6, Aug 16 1991: corresponds to reproduction copy for book.
This version had 18952 lines, 148629 words, 975551 characters, and 1702
entries.

Version 2.9.8, Jan 01 1992: first public release since the book,
including over fifty new entries and numerous corrections/additions to
old ones.  Packaged with version 1.1 of vh(1) hypertext reader.  This
version had 19509 lines, 153108 words, 1006023 characters, and 1760
entries.

Version 2.9.9, Apr 01 1992: folded in XEROX PARC lexicon.  This version
had 20298 lines, 159651 words, 1048909 characters, and 1821 entries.

Version 2.9.10, Jul 01 1992: lots of new historical material.  This
version had 21349 lines, 168330 words, 1106991 characters, and 1891
entries.

Version numbering: Version numbers should be read as
major.minor.revision.  Major version 1 is reserved for the `old' (ITS)
Jargon File, jargon-1.  Major version 2 encompasses revisions by ESR
(Eric S. Raymond) with assistance from GLS (Guy L.  Steele, Jr.).
Someday, the next maintainer will take over and spawn `version 3'.
Usually later versions will either completely supersede or incorporate
earlier versions, so there is generally no point in keeping old versions
around.

Our thanks to the coauthors of Steele-1983 for oversight and assistance,
and to the hundreds of USENETters (too many to name here) who
contributed entries and encouragement.  More thanks go to several of the
old-timers on the USENET group alt.folklore.computers, who contributed
much useful commentary and many corrections and valuable historical
perspective: Joseph M. Newcomer , Bernie Cosell
, Earl Boebert , and Joe Morris
.

We were fortunate enough to have the aid of some accomplished linguists.
David Stampe and Charles Hoequist
contributed valuable criticism; Joe Keane
helped us improve the pronunciation guides.

A few bits of this text quote previous works.  We are indebted to Brian
A. LaMacchia for obtaining permission for us to
use material from the `TMRC Dictionary'; also, Don Libes
contributed some appropriate material from his
excellent book `Life With UNIX'.  We thank Per Lindberg ,
author of the remarkable Swedish-language 'zine `Hackerbladet', for
bringing `FOO!' comics to our attention and smuggling one of the IBM
hacker underground's own baby jargon files out to us.  Thanks also to
Maarten Litmaath for generously allowing the inclusion of the ASCII
pronunciation guide he formerly maintained.  And our gratitude to Marc
Weiser of XEROX PARC for securing us
permission to quote from PARC's own jargon lexicon and shipping us a
copy.

It is a particular pleasure to acknowledge the major contributions of
Mark Brader to the final manuscript; he read and reread
many drafts, checked facts, caught typos, submitted an amazing number of
thoughtful comments, and did yeoman service in catching typos and minor
usage bobbles.  Mr. Brader's rare combination of enthusiasm,
persistence, wide-ranging technical knowledge, and precisionism in
matters of language made his help invaluable, and the sustained volume
and quality of his input over many months only allowed him to escape
co-editor credit by the slimmest of margins.

Finally, George V.  Reilly helped with TeX arcana and
painstakingly proofread some 2.7 and 2.8 versions; Steve Summit
contributed a number of excellent new entries and
many small improvements to 2.9.10; and Eric Tiedemann
contributed sage advice throughout on rhetoric, amphigory, and
philosophunculism.

:How Jargon Works:
******************

:Jargon Construction:
=====================

There are some standard methods of jargonification that became
established quite early (i.e., before 1970), spreading from such sources
as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers, and John
McCarthy's original crew of LISPers.  These include the following:


:Verb Doubling: --------------- A standard construction in English is to
double a verb and use it as an exclamation, such as "Bang, bang!" or
"Quack, quack!".  Most of these are names for noises.  Hackers also
double verbs as a concise, sometimes sarcastic comment on what the
implied subject does.  Also, a doubled verb is often used to terminate a
conversation, in the process remarking on the current state of affairs
or what the speaker intends to do next.  Typical examples involve {win},
{lose}, {hack}, {flame}, {barf}, {chomp}:

    "The disk heads just crashed."  "Lose, lose."
    "Mostly he talked about his latest crock.  Flame, flame."
    "Boy, what a bagbiter!  Chomp, chomp!"

Some verb-doubled constructions have special meanings not immediately
obvious from the verb.  These have their own listings in the lexicon.

The USENET culture has one *tripling* convention unrelated to this; the
names of `joke' topic groups often have a tripled last element.  The
first and paradigmatic example was alt.swedish.chef.bork.bork.bork (a
"Muppet Show" reference); other classics include
alt.french.captain.borg.borg.borg, alt.wesley.crusher.die.die.die,
comp.unix.internals.system.calls.brk.brk.brk,
sci.physics.edward.teller.boom.boom.boom, and
alt.sadistic.dentists.drill.drill.drill.


:Soundalike slang: ------------------ Hackers will often make rhymes or
puns in order to convert an ordinary word or phrase into something more
interesting.  It is considered particularly {flavorful} if the phrase is
bent so as to include some other jargon word; thus the computer hobbyist
magazine `Dr. Dobb's Journal' is almost always referred to among hackers
as `Dr. Frob's Journal' or simply `Dr. Frob's'.  Terms of this kind that
have been in fairly wide use include names for newspapers:

    Boston Herald => Horrid (or Harried)
    Boston Globe => Boston Glob
    Houston (or San Francisco) Chronicle
           => the Crocknicle (or the Comical)
    New York Times => New York Slime

However, terms like these are often made up on the spur of the moment.
Standard examples include:

    Data General => Dirty Genitals
    IBM 360 => IBM Three-Sickly
    Government Property --- Do Not Duplicate (on keys)
           => Government Duplicity --- Do Not Propagate
    for historical reasons => for hysterical raisins
    Margaret Jacks Hall (the CS building at Stanford)
           => Marginal Hacks Hall

This is not really similar to the Cockney rhyming slang it has been
compared to in the past, because Cockney substitutions are opaque
whereas hacker punning jargon is intentionally transparent.


:The `-P' convention: --------------------- Turning a word into a
question by appending the syllable `P'; from the LISP convention of
appending the letter `P' to denote a predicate (a boolean-valued
function).  The question should expect a yes/no answer, though it
needn't.  (See {T} and {NIL}.)

    At dinnertime:
          Q: "Foodp?"
          A: "Yeah, I'm pretty hungry." or "T!"

    At any time:
          Q: "State-of-the-world-P?"
          A: (Straight) "I'm about to go home."
          A: (Humorous) "Yes, the world has a state."

    On the phone to Florida:
          Q: "State-p Florida?"
          A: "Been reading JARGON.TXT again, eh?"

[One of the best of these is a {Gosperism}.  Once, when we were at a
Chinese restaurant, Bill Gosper wanted to know whether someone would
like to share with him a two-person-sized bowl of soup.  His inquiry
was: "Split-p soup?" --- GLS]


:Overgeneralization: -------------------- A very conspicuous feature of
jargon is the frequency with which techspeak items such as names of
program tools, command language primitives, and even assembler opcodes
are applied to contexts outside of computing wherever hackers find
amusing analogies to them.  Thus (to cite one of the best-known
examples) UNIX hackers often {grep} for things rather than searching for
them.  Many of the lexicon entries are generalizations of exactly this
kind.

Hackers enjoy overgeneralization on the grammatical level as well.  Many
hackers love to take various words and add the wrong endings to them to
make nouns and verbs, often by extending a standard rule to nonuniform
cases (or vice versa).  For example, because

    porous => porosity
    generous => generosity

hackers happily generalize:

    mysterious => mysteriosity
    ferrous => ferrosity
    obvious => obviosity
    dubious => dubiosity

Also, note that all nouns can be verbed.  E.g.: "All nouns can be
verbed", "I'll mouse it up", "Hang on while I clipboard it over", "I'm
grepping the files".  English as a whole is already heading in this
direction (towards pure-positional grammar like Chinese); hackers are
simply a bit ahead of the curve.

However, note that hackers avoid the unimaginative verb-making
techniques characteristic of marketroids, bean-counters, and the
Pentagon; a hacker would never, for example, `productize', `prioritize',
or `securitize' things.  Hackers have a strong aversion to bureaucratic
bafflegab and regard those who use it with contempt.

Similarly, all verbs can be nouned.  This is only a slight
overgeneralization in modern English; in hackish, however, it is good
form to mark them in some standard nonstandard way.  Thus:

    win => winnitude, winnage
    disgust => disgustitude
    hack => hackification

Further, note the prevalence of certain kinds of nonstandard plural
forms.  Some of these go back quite a ways; the TMRC Dictionary noted
that the defined plural of `caboose' is `cabeese', and includes an entry
which implies that the plural of `mouse' is {meeces}.  On a similarly
Anglo-Saxon note, almost anything ending in `x' may form plurals in
`-xen' (see {VAXen} and {boxen} in the main text).  Even words ending in
phonetic /k/ alone are sometimes treated this way; e.g., `soxen' for a
bunch of socks.  Other funny plurals are `frobbotzim' for the plural of
`frobbozz' (see {frobnitz}) and `Unices' and `Twenices' (rather than
`Unixes' and `Twenexes'; see {UNIX}, {TWENEX} in main text).  But note
that `Unixen' and `Twenexen' are never used; it has been suggested that
this is because `-ix' and `-ex' are Latin singular endings that attract
a Latinate plural.  Finally, it has been suggested to general approval
that the plural of `mongoose' ought to be `polygoose'.

The pattern here, as with other hackish grammatical quirks, is
generalization of an inflectional rule that in English is either an
import or a fossil (such as the Hebrew plural ending `-im', or the
Anglo-Saxon plural suffix `-en') to cases where it isn't normally
considered to apply.

This is not `poor grammar', as hackers are generally quite well aware of
what they are doing when they distort the language.  It is grammatical
creativity, a form of playfulness.  It is done not to impress but to
amuse, and never at the expense of clarity.


:Spoken inarticulations: ------------------------ Words such as
`mumble', `sigh', and `groan' are spoken in places where their referent
might more naturally be used.  It has been suggested that this usage
derives from the impossibility of representing such noises on a comm
link or in electronic mail (interestingly, the same sorts of
constructions have been showing up with increasing frequency in comic
strips).  Another expression sometimes heard is "Complain!", meaning "I
have a complaint!"


:Anthromorphization: -------------------- Semantically, one rich source
of jargon constructions is the hackish tendency to anthropomorphize
hardware and software.  This isn't done in a na"ive way; hackers don't
personalize their stuff in the sense of feeling empathy with it, nor do
they mystically believe that the things they work on every day are
`alive'.  What *is* common is to hear hardware or software talked about
as though it has homunculi talking to each other inside it, with
intentions and desires.  Thus, one hears "The protocol handler got
confused", or that programs "are trying" to do things, or one may say of
a routine that "its goal in life is to X".  One even hears explanations
like "...  and its poor little brain couldn't understand X, and it
died."  Sometimes modelling things this way actually seems to make them
easier to understand, perhaps because it's instinctively natural to
think of anything with a really complex behavioral repertoire as `like a
person' rather than `like a thing'.



Of the six listed constructions, verb doubling, peculiar noun
formations, anthromorphization, and (especially) spoken inarticulations
have become quite general; but punning jargon is still largely confined
to MIT and other large universities, and the `-P' convention is found
only where LISPers flourish.

Finally, note that many words in hacker jargon have to be understood as
members of sets of comparatives.  This is especially true of the
adjectives and nouns used to describe the beauty and functional quality
of code.  Here is an approximately correct spectrum:

    monstrosity  brain-damage  screw  bug  lose  misfeature
    crock  kluge  hack  win  feature  elegance  perfection

The last is spoken of as a mythical absolute, approximated but never
actually attained.  Another similar scale is used for describing the
reliability of software:

    broken  flaky  dodgy  fragile  brittle
    solid  robust  bulletproof  armor-plated

Note, however, that `dodgy' is primarily Commonwealth hackish (it is
rare in the U.S.) and may change places with `flaky' for some speakers.

Coinages for describing {lossage} seem to call forth the very finest in
hackish linguistic inventiveness; it has been truly said that hackers
have even more words for equipment failures than Yiddish has for
obnoxious people.

:Hacker Writing Style:
======================

We've already seen that hackers often coin jargon by overgeneralizing
grammatical rules.  This is one aspect of a more general fondness for
form-versus-content language jokes that shows up particularly in hackish
writing.  One correspondent reports that he consistently misspells
`wrong' as `worng'.  Others have been known to criticize glitches in
Jargon File drafts by observing (in the mode of Douglas Hofstadter)
"This sentence no verb", or "Bad speling", or "Incorrectspa cing."
Similarly, intentional spoonerisms are often made of phrases relating to
confusion or things that are confusing; `dain bramage' for `brain
damage' is perhaps the most common (similarly, a hacker would be likely
to write "Excuse me, I'm cixelsyd today", rather than "I'm dyslexic
today").  This sort of thing is quite common and is enjoyed by all
concerned.

Hackers tend to use quotes as balanced delimiters like parentheses, much
to the dismay of American editors.  Thus, if "Jim is going" is a phrase,
and so are "Bill runs" and "Spock groks", then hackers generally prefer
to write: "Jim is going", "Bill runs", and "Spock groks".  This is
incorrect according to standard American usage (which would put the
continuation commas and the final period inside the string quotes);
however, it is counter-intuitive to hackers to mutilate literal strings
with characters that don't belong in them.  Given the sorts of examples
that can come up in discussions of programming, American-style quoting
can even be grossly misleading.  When communicating command lines or
small pieces of code, extra characters can be a real pain in the neck.

Consider, for example, a sentence in a {vi} tutorial that looks like this:

    Then delete a line from the file by typing "dd".

Standard usage would make this

    Then delete a line from the file by typing "dd."

but that would be very bad -- because the reader would be prone to type
the string d-d-dot, and it happens that in `vi(1)' dot repeats the last
command accepted.  The net result would be to delete *two* lines!

The Jargon File follows hackish usage throughout.

Interestingly, a similar style is now preferred practice in Great
Britain, though the older style (which became established for
typographical reasons having to do with the aesthetics of comma and
quotes in typeset text) is still accepted there.  `Hart's Rules' and the
`Oxford Dictionary for Writers and Editors' call the hacker-like style
`new' or `logical' quoting.

Another hacker quirk is a tendency to distinguish between `scare' quotes
and `speech' quotes; that is, to use British-style single quotes for
marking and reserve American-style double quotes for actual reports of
speech or text included from elsewhere.  Interestingly, some authorities
describe this as correct general usage, but mainstream American English
has gone to using double-quotes indiscriminately enough that hacker
usage appears marked [and, in fact, I thought this was a personal quirk
of mine until I checked with USENET --- ESR].  One further permutation
that is definitely *not* standard is a hackish tendency to do marking
quotes by using apostrophes (single quotes) in pairs; that is, 'like
this'.  This is modelled on string and character literal syntax in some
programming languages (reinforced by the fact that many character-only
terminals display the apostrophe in typewriter style, as a vertical
single quote).

One quirk that shows up frequently in the {email} style of UNIX hackers
in particular is a tendency for some things that are normally
all-lowercase (including usernames and the names of commands and C
routines) to remain uncapitalized even when they occur at the beginning
of sentences.  It is clear that, for many hackers, the case of such
identifiers becomes a part of their internal representation (the
`spelling') and cannot be overridden without mental effort (an
appropriate reflex because UNIX and C both distinguish cases and
confusing them can lead to {lossage}).  A way of escaping this dilemma
is simply to avoid using these constructions at the beginning of
sentences.

There seems to be a meta-rule behind these nonstandard hackerisms to the
effect that precision of expression is more important than conformance
to traditional rules; where the latter create ambiguity or lose
information they can be discarded without a second thought.  It is
notable in this respect that other hackish inventions (for example, in
vocabulary) also tend to carry very precise shades of meaning even when
constructed to appear slangy and loose.  In fact, to a hacker, the
contrast between `loose' form and `tight' content in jargon is a
substantial part of its humor!

Hackers have also developed a number of punctuation and emphasis
conventions adapted to single-font all-ASCII communications links, and
these are occasionally carried over into written documents even when
normal means of font changes, underlining, and the like are available.

One of these is that TEXT IN ALL CAPS IS INTERPRETED AS `LOUD', and this
becomes such an ingrained synesthetic reflex that a person who goes to
caps-lock while in {talk mode} may be asked to "stop shouting, please,
you're hurting my ears!".

Also, it is common to use bracketing with unusual characters to signify
emphasis.  The asterisk is most common, as in "What the *hell*?" even
though this interferes with the common use of the asterisk suffix as a
footnote mark.  The underscore is also common, suggesting underlining
(this is particularly common with book titles; for example, "It is often
alleged that Joe Haldeman wrote _The_Forever_War_ as a rebuttal to
Robert Heinlein's earlier novel of the future military,
_Starship_Troopers_.").  Other forms exemplified by "=hell=", "\hell/",
or "/hell/" are occasionally seen (it's claimed that in the last example
the first slash pushes the letters over to the right to make them
italic, and the second keeps them from falling over).  Finally, words
may also be emphasized L I K E T H I S, or by a series of carets (^)
under them on the next line of the text.

There is a semantic difference between *emphasis like this* (which
emphasizes the phrase as a whole), and *emphasis* *like* *this* (which
suggests the writer speaking very slowly and distinctly, as if to a
very young child or a mentally impaired person).  Bracketing a word with
the `*' character may also indicate that the writer wishes readers to
consider that an action is taking place or that a sound is being made.
Examples: *bang*, *hic*, *ring*, *grin*, *kick*, *stomp*, *mumble*.

There is also an accepted convention for `writing under erasure'; the
text

    Be nice to this fool^H^H^H^Hgentleman, he's in from corporate HQ.

would be read as "Be nice to this fool, I mean this gentleman...".  This
comes from the fact that the digraph ^H is often used as a print
representation for a backspace.  It parallels (and may have been
influenced by) the ironic use of `slashouts' in science-fiction
fanzines.

In a formula, `*' signifies multiplication but two asterisks in a row
are a shorthand for exponentiation (this derives from FORTRAN).  Thus,
one might write 2 ** 8 = 256.

Another notation for exponentiation one sees more frequently uses the
caret (^, ASCII 1011110); one might write instead `2^8 = 256'.  This
goes all the way back to Algol-60, which used the archaic ASCII
`up-arrow' that later became the caret; this was picked up by Kemeny and
Kurtz's original BASIC, which in turn influenced the design of the
`bc(1)' and `dc(1)' UNIX tools, which have probably done most to
reinforce the convention on USENET.  The notation is mildly confusing to
C programmers, because `^' means bitwise {XOR} in C.  Despite this, it
was favored 3:1 over ** in a late-1990 snapshot of USENET.  It is used
consistently in this text.

In on-line exchanges, hackers tend to use decimal forms or improper
fractions (`3.5' or `7/2') rather than `typewriter style' mixed
fractions (`3-1/2').  The major motive here is probably that the former
are more readable in a monospaced font, together with a desire to avoid
the risk that the latter might be read as `three minus one-half'.  The
decimal form is definitely preferred for fractions with a terminating
decimal representation; there may be some cultural influence here from
the high status of scientific notation.

Another on-line convention, used especially for very large or very small
numbers, is taken from C (which derived it from FORTRAN).  This is a
form of `scientific notation' using `e' to replace `*10^'; for example,
one year is about 3e7 seconds long.

The tilde (~) is commonly used in a quantifying sense of
`approximately'; that is, `~50' means `about fifty'.

On USENET and in the {MUD} world, common C boolean, logical, and
relational operators such as `|', `&', `||', `&&', `!', `==', `!=', `>',
and `<', `>=', and `=<' are often combined with English.  The Pascal
not-equals, `<>', is also recognized, and occasionally one sees `/=' for
not-equals (from Ada, Common Lisp, and Fortran 90).  The use of prefix
`!' as a loose synonym for `not-' or `no-' is particularly common; thus,
`!clue' is read `no-clue' or `clueless'.

A related practice borrows syntax from preferred programming languages
to express ideas in a natural-language text.  For example, one might
see the following:

    I resently had occasion to field-test the Snafu
    Systems 2300E adaptive gonkulator.  The price was
    right, and the racing stripe on the case looked kind
    of neat, but its performance left something to be
    desired.

    #ifdef FLAME
    Hasn't anyone told those idiots that you can't get
    decent bogon suppression with AFJ filters at today's
    net speeds?
    #endif /* FLAME */

    I guess they figured the price premium for true
    frame-based semantic analysis was too high.
    Unfortunately, it's also the only workable approach.
    I wouldn't recommend purchase of this product unless
    you're on a *very* tight budget.

    #include
    --
                          == Frank Foonly (Fubarco Systems)

In the above, the `#ifdef'/`#endif' pair is a conditional
compilation syntax from C; here, it implies that the text between
(which is a {flame}) should be evaluated only if you have turned on
(or defined on) the switch FLAME.  The `#include' at the end is C
for "include standard disclaimer here"; the `standard disclaimer' is
understood to read, roughly, "These are my personal opinions and not
to be construed as the official position of my employer."

Another habit is that of using angle-bracket enclosure to genericize a
term; this derives from conventions used in {BNF}.  Uses like the
following are common:

    So this walks into a bar one day, and...

Hackers also mix letters and numbers more freely than in mainstream
usage.  In particular, it is good hackish style to write a digit
sequence where you intend the reader to understand the text string that
names that number in English.  So, hackers prefer to write `1970s'
rather than `nineteen-seventies' or `1970's' (the latter looks like a
possessive).

It should also be noted that hackers exhibit much less reluctance to use
multiply nested parentheses than is normal in English.  Part of this is
almost certainly due to influence from LISP (which uses deeply nested
parentheses (like this (see?)) in its syntax a lot), but it has also
been suggested that a more basic hacker trait of enjoying playing with
complexity and pushing systems to their limits is in operation.

One area where hackish conventions for on-line writing are still in some
flux is the marking of included material from earlier messages --- what
would be called `block quotations' in ordinary English.  From the usual
typographic convention employed for these (smaller font at an extra
indent), there derived the notation of included text being indented by
one ASCII TAB (0001001) character, which under UNIX and many other
environments gives the appearance of an 8-space indent.

Early mail and netnews readers had no facility for including messages
this way, so people had to paste in copy manually.  BSD `Mail(1)' was
the first message agent to support inclusion, and early USENETters
emulated its style.  But the TAB character tended to push included text
too far to the right (especially in multiply nested inclusions), leading
to ugly wraparounds.  After a brief period of confusion (during which an
inclusion leader consisting of three or four spaces became established
in EMACS and a few mailers), the use of leading `>' or `> ' became
standard, perhaps owing to its use in `ed(1)' to display tabs
(alternatively, it may derive from the `>' that some early UNIX mailers
used to quote lines starting with "From" in text, so they wouldn't look
like the beginnings of new message headers).  Inclusions within
inclusions keep their `>' leaders, so the `nesting level' of a quotation
is visually apparent.

A few other idiosyncratic quoting styles survive because they are
automatically generated.  One particularly ugly one looks like this:

    /* Written hh:mm pm  Mmm dd, yyyy by user@site in */
    /* ---------- "Article subject, chopped to 35 ch" ---------- */
       
    /* End of text from local:group */

It is generated by an elderly, variant news-reading system called
`notesfiles'.  The overall trend, however, is definitely away from such
verbosity.

The practice of including text from the parent article when posting a
followup helped solve what had been a major nuisance on USENET: the fact
that articles do not arrive at different sites in the same order.
Careless posters used to post articles that would begin with, or even
consist entirely of, "No, that's wrong" or "I agree" or the like.  It
was hard to see who was responding to what.  Consequently, around 1984,
new news-posting software evolved a facility to automatically include
the text of a previous article, marked with "> " or whatever the poster
chose.  The poster was expected to delete all but the relevant lines.
The result has been that, now, careless posters post articles containing
the *entire* text of a preceding article, *followed* only by "No, that's
wrong" or "I agree".

Many people feel that this cure is worse than the original disease, and
there soon appeared newsreader software designed to let the reader skip
over included text if desired.  Today, some posting software rejects
articles containing too high a proportion of lines beginning with `>' --
but this too has led to undesirable workarounds, such as the deliberate
inclusion of zero-content filler lines which aren't quoted and thus pull
the message below the rejection threshold.

Because the default mailers supplied with UNIX and other operating
systems haven't evolved as quickly as human usage, the older conventions
using a leading TAB or three or four spaces are still alive; however,
>-inclusion is now clearly the prevalent form in both netnews and mail.

In 1991 practice is still evolving, and disputes over the `correct'
inclusion style occasionally lead to {holy wars}.  One variant style
reported uses the citation character `|' in place of `>' for extended
quotations where original variations in indentation are being retained.
One also sees different styles of quoting a number of authors in the
same message: one (deprecated because it loses information) uses a
leader of `> ' for everyone, another (the most common) is `> > > > ', `>
> > ', etc. (or `>>>> ', `>>> ', etc., depending on line length and
nesting depth) reflecting the original order of messages, and yet
another is to use a different citation leader for each author, say `> ',
`: ', `| ', `} ' (preserving nesting so that the inclusion order of
messages is still apparent, or tagging the inclusions with authors'
names).  Yet *another* style is to use each poster's initials (or login
name) as a citation leader for that poster.  Occasionally one sees a `#
' leader used for quotations from authoritative sources such as
standards documents; the intended allusion is to the root prompt (the
special UNIX command prompt issued when one is running as the privileged
super-user).

Finally, it is worth mentioning that many studies of on-line
communication have shown that electronic links have a de-inhibiting
effect on people.  Deprived of the body-language cues through which
emotional state is expressed, people tend to forget everything about
other parties except what is presented over that ASCII link.  This has
both good and bad effects.  The good one is that it encourages honesty
and tends to break down hierarchical authority relationships; the bad is
that it may encourage depersonalization and gratuitous rudeness.
Perhaps in response to this, experienced netters often display a sort of
conscious formal politesse in their writing that has passed out of
fashion in other spoken and written media (for example, the phrase "Well
said, sir!" is not uncommon).

Many introverted hackers who are next to inarticulate in person
communicate with considerable fluency over the net, perhaps precisely
because they can forget on an unconscious level that they are dealing
with people and thus don't feel stressed and anxious as they would face
to face.

Though it is considered gauche to publicly criticize posters for poor
spelling or grammar, the network places a premium on literacy and
clarity of expression.  It may well be that future historians of
literature will see in it a revival of the great tradition of personal
letters as art.

:Hacker Speech Style:
=====================

Hackish speech generally features extremely precise diction, careful
word choice, a relatively large working vocabulary, and relatively
little use of contractions or street slang.  Dry humor, irony, puns, and
a mildly flippant attitude are highly valued --- but an underlying
seriousness and intelligence are essential.  One should use just enough
jargon to communicate precisely and identify oneself as a member of the
culture; overuse of jargon or a breathless, excessively gung-ho attitude
is considered tacky and the mark of a loser.

This speech style is a variety of the precisionist English normally
spoken by scientists, design engineers, and academics in technical
fields.  In contrast with the methods of jargon construction, it is
fairly constant throughout hackerdom.

It has been observed that many hackers are confused by negative
questions --- or, at least, that the people to whom they are talking are
often confused by the sense of their answers.  The problem is that they
have done so much programming that distinguishes between

    if (going) {

and

    if (!going) {

that when they parse the question "Aren't you going?" it seems to be
asking the opposite question from "Are you going?", and so merits an
answer in the opposite sense.  This confuses English-speaking
non-hackers because they were taught to answer as though the negative
part weren't there.  In some other languages (including Russian,
Chinese, and Japanese) the hackish interpretation is standard and the
problem wouldn't arise.  Hackers often find themselves wishing for a
word like French `si' or German `doch' with which one could
unambiguously answer `yes' to a negative question.

For similar reasons, English-speaking hackers almost never use double
negatives, even if they live in a region where colloquial usage allows
them.  The thought of uttering something that logically ought to be an
affirmative knowing it will be misparsed as a negative tends to disturb
them.

Here's a related quirk.  A non-hacker who is indelicate enough to ask
a question like "So, are you working on finding that bug *now*
or leaving it until later?"  is likely to get the perfectly correct
answer "Yes!" (that is, "Yes, I'm doing it either now or later, and
you didn't ask which!").

:International Style:
=====================

Although the Jargon File remains primarily a lexicon of hacker usage in
American English, we have made some effort to get input from abroad.
Though the hacker-speak of other languages often uses translations of
jargon from English (often as transmitted to them by earlier Jargon File
versions!), the local variations are interesting, and knowledge of them
may be of some use to travelling hackers.

There are some references herein to `Commonwealth English'.  These are
intended to describe some variations in hacker usage as reported in the
English spoken in Great Britain and the Commonwealth (Canada, Australia,
India, etc. --- though Canada is heavily influenced by American usage).
There is also an entry on {{Commonwealth Hackish}} reporting some
general phonetic and vocabulary differences from U.S. hackish.

Hackers in Western Europe and (especially) Scandinavia are reported to
often use a mixture of English and their native languages for technical
conversation.  Occasionally they develop idioms in their English usage
that are influenced by their native-language styles.  Some of these are
reported here.

A few notes on hackish usages in Russian have been added where they are
parallel with English idioms and thus comprehensible to
English-speakers.

:How to Use the Lexicon:
************************

:Pronunciation Guide:
=====================

Pronunciation keys are provided in the jargon listings for all entries
that are neither dictionary words pronounced as in standard English nor
obvious compounds thereof.  Slashes bracket phonetic pronunciations,
which are to be interpreted using the following conventions:

 1. Syllables are hyphen-separated, except that an accent or back-accent
    follows each accented syllable (the back-accent marks a secondary
    accent in some words of four or more syllables).

 2. Consonants are pronounced as in American English.  The letter `g' is
    always hard (as in "got" rather than "giant"); `ch' is soft
    ("church" rather than "chemist").  The letter `j' is the sound
    that occurs twice in "judge".  The letter `s' is always as in
    "pass", never a z sound.  The digraph `kh' is the guttural of
    "loch" or "l'chaim".

 3. Uppercase letters are pronounced as their English letter names; thus
    (for example) /H-L-L/ is equivalent to /aitch el el/.  /Z/ may
    be pronounced /zee/ or /zed/ depending on your local dialect.

 4. Vowels are represented as follows:

    a
           back, that
    ar
           far, mark
    aw
           flaw, caught
    ay
           bake, rain
    e
           less, men
    ee
           easy, ski
    eir
           their, software
    i
           trip, hit
    i:
           life, sky
    o
           father, palm
    oh
           flow, sew
    oo
           loot, through
    or
           more, door
    ow
           out, how
    oy
           boy, coin
    uh
           but, some
    u
           put, foot
    y
           yet, young
    yoo
           few, chew
    [y]oo
           /oo/ with optional fronting as in `news' (/nooz/ or /nyooz/)

A /*/ is used for the `schwa' sound of unstressed or occluded vowels
(the one that is often written with an upside-down `e').  The schwa
vowel is omitted in syllables containing vocalic r, l, m or n; that is,
`kitten' and `color' would be rendered /kit'n/ and /kuhl'r/, not
/kit'*n/ and /kuhl'*r/.

Entries with a pronunciation of `//' are written-only usages.  (No, UNIX
weenies, this does *not* mean `pronounce like previous pronunciation'!)

:Other Lexicon Conventions:
===========================

Entries are sorted in case-blind ASCII collation order (rather than the
letter-by-letter order ignoring interword spacing common in mainstream
dictionaries), except that all entries beginning with nonalphabetic
characters are sorted after Z.  The case-blindness is a feature, not a
bug.

The beginning of each entry is marked by a colon (`:') at the
left margin.  This convention helps out tools like hypertext browsers
that benefit from knowing where entry boundaries are, but aren't as
context-sensitive as humans.

In pure ASCII renderings of the Jargon File, you will see {} used to
bracket words which themselves have entries in the File.  This isn't
done all the time for every such word, but it is done everywhere that a
reminder seems useful that the term has a jargon meaning and one might
wish to refer to its entry.

In this all-ASCII version, headwords for topic entries are distinguished
from those for ordinary entries by being followed by "::" rather than
":"; similarly, references are surrounded by "{{" and "}}" rather than
"{" and "}".

Defining instances of terms and phrases appear in `slanted type'.  A
defining instance is one which occurs near to or as part of an
explanation of it.

Prefix * is used as linguists do; to mark examples of incorrect usage.

We follow the `logical' quoting convention described in the Writing
Style section above.  In addition, we reserve double quotes for actual
excerpts of text or (sometimes invented) speech.  Scare quotes (which
mark a word being used in a nonstandard way), and philosopher's quotes
(which turn an utterance into the string of letters or words that name
it) are both rendered with single quotes.

References such as `malloc(3)' and `patch(1)' are to UNIX facilities
(some of which, such as `patch(1)', are actually freeware distributed
over USENET).  The UNIX manuals use `foo(n)' to refer to item foo in
section (n) of the manual, where n=1 is utilities, n=2 is system calls,
n=3 is C library routines, n=6 is games, and n=8 (where present) is
system administration utilities.  Sections 4, 5, and 7 of the manuals
have changed roles frequently and in any case are not referred to in any
of the entries.

Various abbreviations used frequently in the lexicon are summarized here:

abbrev.
    abbreviation
adj.
    adjective
adv.
    adverb
alt.
    alternate
cav.
    caveat
esp.
    especially
excl.
    exclamation
imp.
    imperative
interj.
    interjection
n.
    noun
obs.
    obsolete
pl.
    plural
poss.
    possibly
pref.
    prefix
prob.
    probably
prov.
    proverbial
quant.
    quantifier
suff.
    suffix
syn.
    synonym (or synonymous with)
v.
    verb (may be transitive or intransitive)
var.
    variant
vi.
    intransitive verb
vt.
    transitive verb

Where alternate spellings or pronunciations are given, alt.
separates two possibilities with nearly equal distribution, while
var. prefixes one that is markedly less common than the primary.

Where a term can be attributed to a particular subculture or is known
to have originated there, we have tried to so indicate.  Here is a
list of abbreviations used in etymologies:

Berkeley
    University of California at Berkeley
Cambridge
    the university in England (*not* the city in Massachusetts where
    MIT happens to be located!)
BBN
    Bolt, Beranek & Newman
CMU
    Carnegie-Mellon University
Commodore
    Commodore Business Machines
DEC
    The Digital Equipment Corporation
Fairchild
    The Fairchild Instruments Palo Alto development group
Fidonet
    See the {Fidonet} entry
IBM
    International Business Machines
MIT
    Massachusetts Institute of Technology; esp. the legendary MIT AI Lab
    culture of roughly 1971 to 1983 and its feeder groups, including the
    Tech Model Railroad Club
NRL
    Naval Research Laboratories
NYU
    New York University
OED
    The Oxford English Dictionary
Purdue
    Purdue University
SAIL
    Stanford Artificial Intelligence Laboratory (at Stanford
    University)
SI
    From Syst`eme International, the name for the standard
    conventions of metric nomenclature used in the sciences
Stanford
    Stanford University
Sun
    Sun Microsystems
TMRC
    Some MITisms go back as far as the Tech Model Railroad Club (TMRC) at
    MIT c. 1960.  Material marked TMRC is from `An Abridged Dictionary
    of the TMRC Language', originally compiled by Pete Samson in 1959
UCLA
    University of California at Los Angeles
UK
    the United Kingdom (England, Wales, Scotland, Northern Ireland)
USENET
    See the {USENET} entry
WPI
    Worcester Polytechnic Institute, site of a very active community of
    PDP-10 hackers during the 1970s
XEROX PARC
    XEROX's Palo Alto Research Center, site of much pioneering research in
    user interface design and networking
Yale
    Yale University


Some other etymology abbreviations such as {UNIX} and {PDP-10}
refer to technical cultures surrounding specific operating systems,
processors, or other environments.  The fact that a term is labelled
with any one of these abbreviations does not necessarily mean its use
is confined to that culture.  In particular, many terms labelled `MIT'
and `Stanford' are in quite general use.  We have tried to give some
indication of the distribution of speakers in the usage notes;
however, a number of factors mentioned in the introduction conspire to
make these indications less definite than might be desirable.

A few new definitions attached to entries are marked [proposed].
These are usually generalizations suggested by editors or USENET
respondents in the process of commenting on previous definitions of
those entries.  These are *not* represented as established
jargon.

:Format For New Entries:
========================

All contributions and suggestions about the Jargon File will be
considered donations to be placed in the public domain as part of this
File, and may be used in subsequent paper editions.  Submissions may
be edited for accuracy, clarity and concision.

Try to conform to the format already being used --- head-words
separated from text by a colon (double colon for topic entries),
cross-references in curly brackets (doubled for topic entries),
pronunciations in slashes, etymologies in square brackets,
single-space after definition numbers and word classes, etc.  Stick to
the standard ASCII character set (7-bit printable, no high-half
characters or [nt]roff/TeX/Scribe escapes), as one of the versions
generated from the master file is an info document that has to be
viewable on a character tty.

We are looking to expand the file's range of technical specialties covered.
There are doubtless rich veins of jargon yet untapped in the scientific
computing, graphics, and networking hacker communities; also in numerical
analysis, computer architectures and VLSI design, language design, and many
other related fields.  Send us your jargon!

We are *not* interested in straight technical terms explained by
textbooks or technical dictionaries unless an entry illuminates
`underground' meanings or aspects not covered by official histories.
We are also not interested in `joke' entries --- there is a lot of
humor in the file but it must flow naturally out of the explanations
of what hackers do and how they think.

It is OK to submit items of jargon you have originated if they have spread
to the point of being used by people who are not personally acquainted with
you.  We prefer items to be attested by independent submission from two
different sites.

The Jargon File will be regularly maintained and re-posted from now on
and will include a version number.  Read it, pass it around,
contribute --- this is *your* monument!

The Jargon Lexicon
******************

= A =
=====

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:alpha particles: n. See {bit rot}.

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

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

:altmode: n. Syn. {alt} sense 3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ,
         Common: .  Rare: ; [tail].

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

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

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

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

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

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

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

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

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

    V
         Rare: [book].

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

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

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

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

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

    {}
         Common: open/close brace; left/right brace; left/right
         squiggly; left/right squiggly bracket/brace; left/right curly
         bracket/brace; .  Rare: brace/unbrace;
         curly/uncurly; leftit/rytit; left/right squirrelly;
         [embrace/bracelet].

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

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

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

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

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

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

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

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


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

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

                              Figure 1.

  And here are some very silly examples:


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

                              Figure 2.

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

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

                              Figure 3.

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


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

                              Figure 4.

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

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

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

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

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

= B =
=====

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:barfmail: n. Multiple {bounce message}s accumulating to the
  level of serious annoyance, or worse.  The sort of thing that
  happens when an inter-network mail gateway goes down or
  wonky.

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

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

:barney: n. In Commonwealth hackish, `barney' is to {fred}
  (sense #1) as {bar} is to {foo}.  That is, people who
  commonly use `fred' as their first metasyntactic variable will
  often use `barney' second.  The reference is, of course, to Fred
  Flintstone and Barney Rubble in the Flintstones cartoons.

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

:BartleMUD: /bar'tl-muhd/ n. Any of the MUDs derived from the
  original MUD game by Richard Bartle and Roy Trubshaw (see
  {MUD}).  BartleMUDs are noted for their (usually slightly
  offbeat) humor, dry but friendly syntax, and lack of adjectives in
  object descriptions, so a player is likely to come across
  `brand172', for instance (see {brand brand brand}).  Bartle has
  taken a bad rap in some MUDding circles for supposedly originating
  this term, but (like the story that MUD is a trademark) this
  appears to be a myth; he uses `MUD1'.

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

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

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

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

  Histotical note: this was originally a unit of telegraph signalling
  speed, set at one pulse per second.  It was proposed at the
  International Telegraph Conference of 1927, and named after J.M.E.
  Baudot (1845-1903), the French engineer who constructed the first
  successful teleprinter.

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

:baz: /baz/ n. 1. The third {metasyntactic variable} "Suppose we
  have three functions: FOO, BAR, and BAZ.  FOO calls BAR, which
  calls BAZ...." (See also {fum}) 2. interj. A term of mild
  annoyance.  In this usage the term is often drawn out for 2 or 3
  seconds, producing an effect not unlike the bleating of a sheep;
  /baaaaaaz/.  3. Occasionally appended to {foo} to produce
  `foobaz'.

  Earlier versions of this lexicon derived `baz' as a Stanford
  corruption of {bar}.  However, Pete Samson (compiler of the
  {TMRC} lexicon) reports it was already current when he joined TMRC
  in 1958.  He says "It came from `Pogo'.  Albert the Alligator,
  when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!'
  The club layout was said to model the (mythical) New England
  counties of Rowrfolk and Bassex (Rowrbazzle mingled with
  (Norfolk/Suffolk/Middlesex/Essex)."

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:biff: /bif/ vt. To notify someone of incoming mail.  From the
  BSD utility `biff(1)', which was in turn named after a
  friendly golden Labrador who used to chase frisbees in the halls at
  UCB while 4.2BSD was in development (it had a well-known habit of
  barking whenever the mailman came).  No relation to
  {BIFF}.

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

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

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

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

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

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

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

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

    40238726007709377354370243392300398571937486421071
    46325437999104299385123986290205920442084869694048
    00479988610197196058631666872994808558901323829669
    94459099742450408707375991882362772718873251977950
    59509952761208749754624970436014182780946464962910
    56393887437886487337119181045825783647849977012476
    63288983595573543251318532395846307555740911426241
    74743493475534286465766116677973966688202912073791
    43853719588249808126867838374559731746136085379534
    52422158659320192809087829730843139284440328123155
    86110369768013573042161687476096758713483120254785
    89320767169132448426236131412508780208000261683151
    02734182797770478463586817016436502415369139828126
    48102130927612448963599287051149649754199093422215
    66832572080821333186116811553615836546984046708975
    60290095053761647584772842188967964624494516076535
    34081989013854424879849599533191017233555566021394
    50399736280750137837615307127761926849034352625200
    01588853514733161170210396817592151090778801939317
    81141945452572238655414610628921879602238389714760
    88506276862967146674697562911234082439208160153780
    88989396451826324367161676217916890977991190375403
    12746222899880051954444142820121873617459926429565
    81746628302955570299024324153181617210465832036786
    90611726015878352075151628422554026517048330422614
    39742869330616908979684825901254583271682264580665
    26769958652682272807075781391858178889652208164348
    34482599326604336766017699961283186078838615027946
    59551311565520360939881806121385586003014356945272
    24206344631797460594682573103790084024432438465657
    24501440282188525247093519062092902313649327349756
    55139587205596542287497740114133469627154228458623
    77387538230483865688976461927383814900140767310446
    64025989949022222176590433990188601856652648506179
    97023561938970178600408118897299183110211712298459
    01641921068884387121855646124960798722908519296819
    37238864261483965738229112312502418664935314397013
    74285319266498753372189406942814341185201580141233
    44828015051399694290153483077644569099073152433278
    28826986460278986432113908350621709500259738986355
    42771967428222487575867657523442202075736305694988
    25087968928162753848863396909959826280956121450994
    87170124451646126037902930912088908694202851064018
    21543994571568059418727489980942547421735824010636
    77404595741785160829230135358081840096996372524230
    56085590370062427124341690900415369010593398383577
    79394109700277534720000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    000000000000000000.

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

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

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

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

  The term `bit' first appeared in print in the computer-science
  sense in 1949, and seems to have been coined by early computer
  scientist John Tukey.  Tukey records that it evolved over a lunch
  table as a handier alternative to `bigit' or `binit'.

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

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

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

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

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

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

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

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

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

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

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

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

  Looking at the ASCII chart, we find:

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

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

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

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

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

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

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

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

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

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

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

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

:blargh: /blarg/ [MIT] n. The opposite of {ping}, sense 5; an
  exclamation indicating that one has absorbed or is emitting a
  quantum of unhappiness.  Less common than {ping}.

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

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

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

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

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

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


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

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

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

  See also {geef}.

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

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

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

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

:BLOB: [acronym, Binary Large OBject] n. Used by database people to
  refer to any random large block of bits which needs to be stored in
  a database, such as a picture or sound file.  The essential point
  about a BLOB is that it's an object you can't interpret within the
  database itself.

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

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

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

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

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

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

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

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

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

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

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

:blue wire: [IBM] n. Patch wires added to circuit boards at the factory to
  correct design or fabrication problems.  This may be necessary if
  there hasn't been time to design and qualify another board version.
  Compare {purple wire}, {red wire}, {yellow wire}.

:blurgle: /bler'gl/ [Great Britain] n. Spoken {metasyntactic
  variable}, to indicate some text which is obvious from context, or
  which is already known. If several words are to be replaced,
  blurgle may well be doubled or trebled. "To look for something in
  several files use `grep string blurgle blurgle'."  In each case,
  "blurgle blurgle" would be understood to be replaced by the file
  you wished to search.  Compare {mumble}, sense 6.

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

      ::=

      ::= | "."

      ::= []
                   |

      ::= []

      ::= ","

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

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

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

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

:BOF: /B-O-F/ or /bof/ n. Abbreviation for the phrase "Birds
  Of a Feather" (flocking together), an informal discussion group
  and/or bull session scheduled on a conference program.  It is not
  clear where or when this term originated, but it is now associated
  with the USENIX conferences for UNIX techies and was already
  established there by 1984.  It was used earlier than that at DECUS
  conferences, and is reported to have been common at SHARE meetings
  as far back as the early 1960s.

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

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

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

  The bogon has become the type case for a whole bestiary of nonce
  particle names, including the `clutron' or `cluon' (indivisible
  particle of cluefulness, obviously the antiparticle of the bogon)
  and the futon (elementary particle of {randomness}).  These are
  not so much live usages in themselves as examples of a live
  meta-usage: that is, it has become a standard joke or linguistic
  maneuver to "explain" otherwise mysterious circumstances by inventing
  nonce particle names.  And these imply nonce particle theories, with
  all their dignity or lack thereof (we might note *parenthetically* that
  this is a generalization from "(bogus particle) theories" to "bogus
  (particle theories)"!).  Perhaps such particles are the modern-day
  equivalents of trolls and wood-nymphs as standard starting-points
  around which to construct explanatory myths.  Of course, playing on
  an existing word (as in the `futon') yields additional flavor.
  Compare {magic smoke}.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Opposed to this there is `hard boot', which connotes hostility
  towards or frustration with the machine being booted:  "I'll have
  to hard-boot this losing Sun."  "I recommend booting it
  hard."  One often hard-boots by performing a {power cycle}.

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

:bottom feeder: n. syn. for {slopsucker} derived from the
  fisherman's and naturalist's term for finny creatures who subsist
  on the primordial ooze.

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

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

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

:boustrophedon: [from a Greek word for turning like an ox while
  plowing] n. An ancient method of writing using alternate
  left-to-right and right-to-left lines.  This term is actually
  philologists' techspeak and typesetter's jargon.  Erudite hackers
  use it for an optimization performed by some computer typesetting
  software (notably UNIX `troff(1)').  The adverbial form
  `boustrophedonically' is also found (hackers purely love
  constructions like this).

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

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

    /*************************************************
     *
     * This is a boxed comment in C style
     *
     *************************************************/

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

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

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

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

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

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

:brain fart: n. The actual result of a {braino}, as opposed to
  the mental glitch which is the braino itself.  E.g. typing
  `dir' on a UNIX box after a session with DOS.

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

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

:braino: /bray'no/ n. Syn. for {thinko}. See also {brain
  fart}.

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

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

:bread crumbs: n. Debugging statements inserted into a program that
  emit output or log indicators of the program's {state} to a file
  so you can see where it dies, or pin down the cause of surprising
  behavior. The term is probably a reference to the Hansel and Gretel
  story from the Brothers Grimm; in several variants, a character
  leaves a trail of breadcrumbs so as not to get lost in the
  woods.

:break: 1. vt. To cause to be broken (in any sense).  "Your latest
  patch to the editor broke the paragraph commands."  2. v.  (of a
  program) To stop temporarily, so that it may debugged.  The place
  where it stops is a `breakpoint'.  3. [techspeak] vi. To send an
  RS-232 break (two character widths of line high) over a serial comm
  line.  4. [UNIX] vi. To strike whatever key currently causes the
  tty driver to send SIGINT to the current process.  Normally, break
  (sense 3) or delete does this.  5. `break break' may be said to
  interrupt a conversation (this is an example of verb doubling).
  This usage comes from radio communications, which in turn probably
  came from landline telegraph/teleprinter usage, as badly abused in
  the Citizen's Band craze a few years ago.

:break-even point: n. in the process of implementing a new computer
  language, the point at which the language is sufficiently effective
  that one can implement the language in itself.  That is, for a new
  language called, hypothetically, FOOGOL, one has reached break-even
  when one can write a demonstration compiler for FOOGOL in FOOGOL,
  discard the original implementation language, and thereafter use
  older versions of FOOGOL to develop newer ones.  This is an
  important milestone; see {MFTL}.

:breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
  contained bootstrap (see {boot}) code, periodically sent out
  from a working computer to infuse the `breath of life' into any
  computer on the network that had happened to crash.  Machines
  depending on such packets have sufficient hardware or firmware code
  to wait for (or request) such a packet during the reboot process.
  See also {dickless workstation}.

:breedle: n. See {feep}.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:BUAF: // [abbreviation, from the alt.fan.warlord] n.  Big
  Ugly ASCII Font --- a special form of {ASCII art}.  Various
  programs exist for rendering text strings into block, bloob, and
  pseudo-script fonts in cells between four and six character cells
  on a side; this is smaller than the letters generated by older
  {banner} (sense 2) programs.  These are sometimes used to render
  one's name in a {sig block}, and are critically referred to as
  `BUAF's.  See {warlording}.

:BUAG: // [abbreviation, from the alt.fan.warlord] n.  Big
  Ugly ASCII Graphic.  Pejorative term for ugly {ASCII ART},
  especially as found in {sig block}s.  For some reason, mutations
  of the head of Bart Simpson are particularly common in the least
  imaginative {sig block}s. See {warlording}.

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

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

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

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

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

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

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

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

  "There is a bug in this ant farm!"

  "What do you mean?  I don't see any ants in it."

  "That's the bug."

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

  [1992 update: the plot thickens!  A usually reliable source reports
  having seen The Bug at the Smithsonian in 1978.  I am unable to
  reconcile the conflicting histories I have been offered, and merely
  report this fact here. --- ESR.]

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

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

:buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX
  operating system in its earlier *severely* buggy versions.
  Still used to describe ULTRIX, but without venom.  Compare
  {AIDX}, {HP-SUX}, {Nominal Semidestructor}, {Telerat},
  {sun-stools}.

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

:bum: 1. vt. To make highly efficient, either in time or space,
  often at the expense of clarity.  "I managed to bum three more
  instructions out of that code."  "I spent half the night bumming
  the interrupt code."  In {elder days}, John McCarthy (inventor
  of {LISP}) used to compare some efficiency-obsessed hackers
  among his students to "ski bums"; thus, optimization became
  "program bumming", and eventually just "bumming".  2. To
  squeeze out excess; to remove something in order to improve
  whatever it was removed from (without changing function; this
  distinguishes the process from a {featurectomy}).  3. n. A small
  change to an algorithm, program, or hardware device to make it more
  efficient.  "This hardware bum makes the jump instruction
  faster."  Usage: now uncommon, largely superseded by v. {tune}
  (and n. {tweak}, {hack}), though none of these exactly
  capture sense 2.  All these uses are rare in Commonwealth hackish,
  because in the parent dialects of English `bum' is a rude synonym
  for `buttocks'.

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

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

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

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

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

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

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

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

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

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

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

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

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

:bzzzt, wrong: /bzt rong/ [USENET/Internet] From a Robin Williams
  routine in the movie "Dead Poets Society" spoofing radio or
  TV quiz programs, such as *Truth or Consequences*, where an
  incorrect answer earns one a blast from the buzzer and condolences
  from the interlocutor.  A way of expressing mock-rude disagreement,
  usually immediately following an included quote from another
  poster.  The less abbreviated "*Bzzzzt*, wrong, but thank you for
  playing" is also common; capitalization and emphasis of the
  buzzer sound varies.

= C =
=====

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

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

:C Programmer's Disease: n. The tendency of the undisciplined C
  programmer to set arbitrary but supposedly generous static limits
  on table sizes (defined, if you're lucky, by constants in header
  files) rather than taking the trouble to do proper dynamic storage
  allocation.  If an application user later needs to put 68 elements
  into a table of size 50, the afflicted programmer reasons that he
  can easily reset the table size to 68 (or even as much as 70, to
  allow for future expansion), and recompile.  This gives the
  programmer the comfortable feeling of having done his bit to
  satisfy the user's (unreasonable) demands, and often affords the
  user multiple opportunities to explore the marvelous consequences
  of {fandango on core}.  In severe cases of the disease, the
  programmer cannot comprehend why each fix of this kind seems only
  to further disgruntle the user.

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

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

:can't happen: The traditional program comment for code executed
  under a condition that should never be true, for example a file
  size computed as negative.  Often, such a condition being true
  indicates data corruption or a faulty algorithm; it is almost
  always handled by emitting a fatal error message and terminating or
  crashing, since there is little else that can be done.  This is
  also often the text emitted if the `impossible' error actually
  happens!  Although "can't happen" events are genuinely infrequent
  in production code, programmers wise enough to check for them
  habitually are often surprised at how often they are triggered
  during development and how many headaches checking for them turns
  out to head off.

:candygrammar: n. A programming-language grammar that is mostly
  {syntactic sugar}; the term is also a play on `candygram'.
  {COBOL}, Apple's Hypertalk language, and a lot of the so-called
  `4GL' database languages are like this.  The usual intent of such
  designs is that they be as English-like as possible, on the theory
  that they will then be easier for unskilled people to program.
  This intention comes to grief on the reality that syntax isn't what
  makes programming hard; it's the mental effort and organization
  required to specify an algorithm precisely that costs.  Thus the
  invariable result is that `candygrammar' languages are just as
  difficult to program in as terser ones, and far more painful for
  the experienced hacker.

  [The overtones from the old Chevy Chase skit on Saturday Night Live
  should not be overlooked.  (This was a "Jaws" parody.
  Someone lurking outside an apartment door tries all kinds of bogus
  ways to get the occupant to open up, while ominous music plays in
  the background.  The last attempt is a half-hearted "Candygram!"
  When the door is opened, a shark bursts in and chomps the poor
  occupant.  There is a moral here for those attracted to
  candygrammars.  Note that, in many circles, pretty much the same
  ones who remember Monty Python sketches, all it takes is the word
  "Candygram!", suitably timed, to get people rolling on the
  floor.) --- GLS]

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

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

  The word `canon' derives ultimately from the Greek
  `kanon'
  (akin to the English `cane') referring to a reed.  Reeds were used
  for measurement, and in Latin and later Greek the word `canon'
  meant a rule or a standard.  The establishment of a canon of
  scriptures within Christianity was meant to define a standard or a
  rule for the religion.  The above non-techspeak academic usages
  stem from this instance of a defined and accepted body of work.
  Alongside this usage was the promulgation of `canons' (`rules')
  for the government of the Catholic Church.  The techspeak usages
  ("according to religious law") derive from this use of the Latin
  `canon'.

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

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

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

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

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

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

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

:cascade: n. 1. A huge volume of spurious error-message output
  produced by a compiler with poor error recovery.  This can happen
  when one initial error throws the parser out of synch so that much
  of the remaining program text is interpreted as garbaged or
  ill-formed.  2. A chain of USENET followups each adding some
  trivial variation of riposte to the text of the previous one, all
  of which is reproduced in the new message; an {include war} in which
  the object is to create a sort of communal graffito.

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

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

:casters-up mode: [IBM] n. Yet another synonym for `broken' or
  `down'.  Usually connotes a major failure.  A system (hardware or
  software) which is `down' may be already being restarted before
  the failure is noticed, whereas one which is `casters up' is
  usually a good excuse to take the rest of the day off (as long as
  you're not responsible for fixing it).

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

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

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

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

  Of such oppositions are {holy wars} made....

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

:cd tilde: /see-dee til-d*/ vi.  To go home.  From the UNIX
  C-shell and Korn-shell command `cd ~', which takes
  one `$HOME'.  By extension, may be used with other arguments;
  thus, over an electronic chat link, `cd ~coffee'
  would mean "I'm going to the coffee machine."

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

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

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

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

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

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

:chain: 1. [orig. from BASIC's `CHAIN' statement] vi. To hand
  off execution to a child or successor without going through the
  {OS} command interpreter that invoked it.  The state of the
  parent program is lost and there is no returning to it.  Though
  this facility used to be common on memory-limited micros and is
  still widely supported for backward compatibility, the jargon usage
  is semi-obsolescent; in particular, most UNIX programmers will
  think of this as an {exec}.  Oppose the more modern
  {subshell}.  2. A series of linked data areas within an
  operating system or application.  `Chain rattling' is the process
  of repeatedly running through the linked data areas searching for
  one which is of interest to the executing program.  The implication
  is that there is a very large number of links on the chain.

:channel: [IRC] n.  The basic unit of discussion on {IRC}.  Once
  one joins a channel, everything one types is read by others on that
  channel.  Channels can either be named with numbers or with strings
  that begin with a `#' sign, and can have topic descriptions (which
  are generally irrelevant to the actual subject of discussion).
  Some notable channels are `#initgame', `#hottub', and
  `#report'.  At times of international crisis, `#report'
  has hundreds of members, some of whom take turns listening to
  various news services and summarizing the news, or in some cases,
  giving first-hand accounts of the action (e.g., Scud missile
  attacks in Tel Aviv during the Gulf War in 1991).
 
:channel hopping: [IRC, GEnie] n.  To rapidly switch channels on
  {IRC}, or GEnie chat board, just as a social butterfly might hop
  from one group to another at a party.  This may derive from the TV
  watcher's idiom `channel surfing'.

:channel op: /chan'l op/ [IRC] n. Someone who is endowed with
  privileges on a particular {IRC} channel; commonly abbreviated
  `chanop' or `CHOP'.  These privileges include the right to
  {kick} users, to change various status bits, and to make others
  into CHOPs.
 
:chanop: /chan'-op/ [IRC] n. See {channel op}.

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

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

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

:check: n. A hardware-detected error condition, most commonly used
  to refer to actual hardware failures rather than software-induced
  traps.  E.g., a `parity check' is the result of a
  hardware-detected parity error.  Recorded here because it's often
  humorously extended to non-technical problems. For example, the
  term `child check' has been used to refer to the problems caused
  by a small child who is curious to know what happens when s/he
  presses all the cute buttons on a computer's console (of course,
  this particular problem could have been prevented with
  {molly-guard}s).

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

:Chernobyl chicken: n. See {laser chicken}.

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

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

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

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

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

:choke: v. 1. To reject input, often ungracefully.  "NULs make System
  V's `lpr(1)' choke."  "I tried building an {EMACS} binary to
  use {X}, but `cpp(1)' choked on all those `#define's."
  See {barf}, {gag}, {vi}.   2. [MIT] More generally, to fail at any
  endeavor, but with some flair or bravado; the popular definition is
  "to snatch defeat from the jaws of victory."

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

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

:CHOP: /chop/ [IRC] n. See {channel op}.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:cold boot: n. See {boot}.

:COME FROM: n. A semi-mythical language construct dual to the `go
  to'; `COME FROM'