This page has officially moved tohttp://www.verify-it.de/sub/jargon.html
Please update your bookmarks.23/12/2001
Hyperlinked monolithic version constructed on Sun Sep 23 15:44:02 2001

#======= THIS IS THE JARGON FILE, VERSION 4.3.1, 29 JUN 2001 =======#

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 4.3.1" or "The on-line hacker Jargon File, version
4.3.1, 29 JUN 2001".)

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 <esr@snark.thyrsus.com>

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:
**************

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 40 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.

Hacker 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
since the early 1970s. 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 slang definitions.

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
the Portrait of J. Random Hacker in Appendix B. Appendix C, the
Bibliography, lists some 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
hacker slang is traditionally `the jargon'. When talking about the jargon
there is therefore no convenient way to distinguish it from 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 hacker 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-technical
     subcultures (bikers, rock fans, surfers, etc).

   * `jargon': without qualifier, denotes informal `slangy' language
     peculiar to or predominantly found among hackers -- the subject of
     this lexicon.

   * `techspeak': the formal technical vocabulary of programming,
     computer science, 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.

Despite these problems, the organized collection of jargon-related oral
history for the new compilations has enabled us to put to rest quite a
number of folk etymologies, place credit where credit is due, and
illuminate the early history of many important hackerisms such as kluge,
cruft, and foo. We believe specialist lexicographers will find many of
the historical notes more than casually instructive.

: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, FTPed 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 `>' caused versioning under
ITS) 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 Stewart Brand's "CoEvolution Quarterly" (issue 29, 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 hacker
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 Some 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 <esr@snark.thyrsus.com> maintains the new File with
assistance from Guy L. Steele Jr. <gls@think.com>; 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>.

(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 3.0.0 version was published in September 1993 as the second edition
of "The New Hacker's Dictionary", again from MIT Press (ISBN
0-262-18154-1).

If you want the book, you should be able to find it at any of the major
bookstore chains. Failing that, you can order by mail from

The MIT Press 55 Hayward Street Cambridge, MA 02142

or order by phone at (800)-356-0343 or (617)-625-8481.

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.

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.7, Oct 28 1991: first markup for hypertext browser. This
version had 19432 lines, 152132 words, 999595 characters, and 1750 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 2.9.11, Jan 01 1993: lots of new historical material. This
version had 21725 lines, 171169 words, 1125880 characters, and 1922
entries.

Version 2.9.12, May 10 1993: a few new entries & changes, marginal
MUD/IRC slang and some borderline techspeak removed, all in preparation for
2nd Edition of TNHD. This version had 22238 lines, 175114 words, 1152467
characters, and 1946 entries.

Version 3.0.0, Jul 27 1993: manuscript freeze for 2nd edition of TNHD.
This version had 22548 lines, 177520 words, 1169372 characters, and 1961
entries.

Version 3.1.0, Oct 15 1994: interim release to test WWW conversion. This
version had 23197 lines, 181001 words, 1193818 characters, and 1990
entries.

Version 3.2.0, Mar 15 1995: Spring 1995 update. This version had 23822
lines, 185961 words, 1226358 characters, and 2031 entries.

Version 3.3.0, Jan 20 1996: Winter 1996 update. This version had 24055
lines, 187957 words, 1239604 characters, and 2045 entries.

Version 3.3.1, Jan 25 1996: Copy-corrected improvement on 3.3.0 shipped
to MIT Press as a step towards TNHD III. This version had 24147 lines,
188728 words, 1244554 characters, and 2050 entries.

Version 3.3.2, Mar 20 1996: A number of new entries pursuant on 3.3.2.
This version had 24442 lines, 190867 words, 1262468 characters, and 2061
entries.

Version 3.3.3, Mar 25 1996: Cleanup before TNHD III manuscript freeze.
This version had 24584 lines, 191932 words, 1269996 characters, and 2064
entries.

Version 4.0.0, Jul 25 1996: The actual TNHD III version after copy-edit.
This version had 24801 lines, 193697 words, 1281402 characters, and 2067
entries.

Version 4.1.0, 8 Apr 1999: The Jargon File rides again after three years.
This version had 25777 lines, 206825 words, 1359992 characters, and 2217
entries.

Version 4.1.1, 18 Apr 1999: Corrections for minor errors in 4.1.0, and
some new entries. This version had 25921 lines, 208483 words, 1371279
characters, and 2225 entries.

Version 4.1.2, 28 Apr 1999: Moving texi2html out of the production path.
This version had 26006 lines, 209479 words, 1377687 characters, and 2225
entries.

Version 4.1.3, 14 Jun 1999: Minor updates and markup fixes. This version
had 26108 lines, 210480 words, 1384546 characters, and 2234 entries.

Version 4.1.4, 17 Jun 1999: Markup fixes for framed HTML. This version
had 26117 lines, 210527 words, 1384902 characters, and 2234 entries.

Version 4.2.0, 31 Jan 2000: Fix processing of URLs. This version had
26598 lines, 214639 words, 1412243 characters, and 2267 entries.

Version 4.2.1, 5 Mar 2000: Point release to test new production
machinery. This version had 26647 lines, 215040 words, 1414942 characters,
and 2269 entries.

Version 4.2.2, 12 Aug 2000: This version had 27171 lines, 219630 words,
1444887 characters, and 2302 entries.

Version 4.2.3, 23 Nov 2000: This version had 27452 lines, 222085 words,
1460972 characters, and 2318 entries.

Version 4.3.0, 30 Apr 2001: Special edition in honor of the first
implementation of RFC 1149. Also cleaned up a number of obsolete entries.
This version had 27805 lines, 224978 words, 1480215 characters, and 2319
entries.

Version 4.3.1, 29 Jun 2001: This version had 27862 lines, 225517 words,
1483664 characters, and 2321 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.) leading up to and
including the second paper edition. From now on, major version number N.00
will probably correspond to the Nth paper edition. 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 <jn11+@andrew.cmu.edu>, Bernie Cosell <cosell@bbn.com>,
Earl Boebert <boebert@SCTC.com>, and Joe Morris
<jcmorris@mwunix.mitre.org>.

We were fortunate enough to have the aid of some accomplished linguists.
David Stampe <stampe@hawaii.edu> and Charles Hoequist <hoequist@bnr.ca>
contributed valuable criticism; Joe Keane <jgk@osc.osc.com> helped us
improve the pronunciation guides.

A few bits of this text quote previous works. We are indebted to Brian A.
LaMacchia <bal@zurich.ai.mit.edu> for obtaining permission for us to use
material from the "TMRC Dictionary"; also, Don Libes <libes@cme.nist.gov>
contributed some appropriate material from his excellent book "Life With
UNIX". We thank Per Lindberg <per@front.se>, 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 <Marc_Weiser.PARC@xerox.com>
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 and Steve Summit <scs@eskimo.com> to the File and Dictionary;
they have read and reread many drafts, checked facts, caught typos,
submitted an amazing number of thoughtful comments, and done yeoman service
in catching typos and minor usage bobbles. Their rare combination of
enthusiasm, persistence, wide-ranging technical knowledge, and precisionism
in matters of language has been of invaluable help. Indeed, the sustained
volume and quality of Mr. Brader's input over several years and several
different editions has only allowed him to escape co-editor credit by the
slimmest of margins.

Finally, George V. Reilly <georgere@microsoft.com> helped with TeX
arcana and painstakingly proofread some 2.7 and 2.8 versions, and Eric
Tiedemann <est@thyrsus.com> 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 verb doubling,
soundalike slang, the `-P' convention, overgeneralization, spoken
inarticulations, and anthropomorphization. Each is discussed below. We also
cover the standard comparatives for design quality.

Of these six, verb doubling, overgeneralization, anthropomorphization,
and (especially) spoken inarticulations have become quite general; but
soundalike slang is still largely confined to MIT and other large
universities, and the `-P' convention is found only where LISPers flourish.

: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 infamous examples have included:

     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
     alt.sadistic.dentists.drill.drill.drill

These two traditions fuse in the newsgroup
alt.adjective.noun.verb.verb.verb, devoted to humor based on deliberately
confounding parts of speech. Several observers have noted that the contents
of this group is excellently representative of the peculiarities of hacker
humor.

: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
         Wall Street Journal => Wall Street Urinal

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
         Microsoft => Microsloth
         Internet Explorer => Internet Exploiter

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

Another class of common construction uses the suffix `-itude' to abstract
a quality from just about any adjective or noun. This usage arises
especially in cases where mainstream English would perform the same
abstraction through `-iness' or `-ingness'. Thus:

     win => winnitude (a common exclamation)
     loss => lossitude
     cruft => cruftitude
     lame => lameitude

Some hackers cheerfully reverse this transformation; they argue, for
example, that the horizontal degree lines on a globe ought to be called
`lats' -- after all, they're measuring latitude!

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.

The suffix "-full" can also be applied in generalized and fanciful ways,
as in "As soon as you have more than one cachefull of data, the system
starts thrashing," or "As soon as I have more than one headfull of ideas, I
start writing it all down." A common use is "screenfull", meaning the
amount of text that will fit on one screen, usually in text mode where you
have no choice as to character size. Another common form is "bufferfull".

However, 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 includes an
entry which implies that the plural of `mouse' is meeces, and notes that
the defined plural of `caboose' is `cabeese'. This latter has apparently
been standard (or at least a standard joke) among railfans (railroad
enthusiasts) for many years.

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 the Hebrew-style `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 `Twenexen' was never used, and `Unixen' was not sighted in
the wild until the year 2000, thirty years after it might logically have
come into use; 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, MUDs, and IRC channels (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!"

:Anthropomorphization:
----------------------

Semantically, one rich source of jargon constructions is the hackish
tendency to anthropomorphize hardware and software. English purists and
academic computer scientists frequently look down on others for
anthropomorphizing hardware and software, considering this sort of behavior
to be characteristic of naive misunderstanding. But most hackers
anthropomorphize freely, frequently describing program behavior in terms of
wants and desires.

Thus it is common 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". Or: "You can't run those two cards on the same bus; they fight over
interrupt 9."

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'.

At first glance, to anyone who understands how these programs actually
work, this seems like an absurdity. As hackers are among the people who
know best how these phenomena work, it seems odd that they would use
language that seems to ascribe conciousness to them. The mind-set behind
this tendency thus demands examination.

The key to understanding this kind of usage is that it isn't done in a
naive way; hackers don't personalize their stuff in the sense of feeling
empathy with it, nor do they mystically believe that the things they work
on every day are `alive'. To the contrary: hackers who anthropomorphize are
expressing not a vitalistic view of program behavior but a mechanistic view
of human behavior.

Almost all hackers subscribe to the mechanistic, materialistic ontology
of science (this is in practice true even of most of the minority with
contrary religious theories). In this view, people are biological machines
- consciousness is an interesting and valuable epiphenomenon, but mind is
implemented in machinery which is not fundamentally different in
information-processing capacity from computers.

Hackers tend to take this a step further and argue that the difference
between a substrate of CHON atoms and water and a substrate of silicon and
metal is a relatively unimportant one; what matters, what makes a thing
`alive', is information and richness of pattern. This is animism from the
flip side; it implies that humans and computers and dolphins and rocks are
all machines exhibiting a continuum of modes of `consciousness' according
to their information-processing capacity.

Because hackers accept that a human machine can have intentions, it is
therefore easy for them to ascribe consciousness and intention to complex
patterned systems such as computers. If consciousness is mechanical, it is
neither more or less absurd to say that "The program wants to go into an
infinite loop" than it is to say that "I want to go eat some chocolate" -
and even defensible to say that "The stone, once dropped, wants to move
towards the center of the earth".

This viewpoint has respectable company in academic philosophy. Daniel
Dennett organizes explanations of behavior using three stances: the
"physical stance" (thing-to-be-explained as a physical object), the "design
stance" (thing-to-be-explained as an artifact), and the "intentional
stance" (thing-to-be-explained as an agent with desires and intentions).
Which stances are appropriate is a matter not of truth but of utility.
Hackers typically view simple programs from the design stance, but more
complex ones are often modelled using the intentional stance.

It has also been argued that the anthropomorphization of software and
hardware reflects a blurring of the boundary between the programmer and his
artifacts - the human qualities belong to the programmer and the code
merely expresses these qualities as his/her proxy. On this view, a hacker
saying a piece of code 'got confused' is really saying that _he_ (or she)
was confused about exactly what he wanted the computer to do, the code
naturally incorporated this confusion, and the code expressed the
programmer's confusion when executed by crashing or otherwise misbehaving.

Note that by displacing from "I got confused" to "It got confused", the
programmer is not avoiding responsibility, but rather getting some
analytical distance in order to be able to consider the bug
dispassionately.

Both explanations accurately model hacker psychology, and should be
considered complementary rather than competing.

:Comparatives:
--------------

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 "Too repetetetive", 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. This returns British English to the style many other languages
(including Spanish, French, Italian, Catalan, and German) have been using
all along.

Another hacker habit 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). On FidoNet, you might see #bright# and ^dark^ text,
which was actually interpreted by some reader software. 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*.

One might also see the above sound effects as <bang>, <hic>, <ring>,
<grin>, <kick>, <stomp>, <mumble>. This use of angle brackets to mark their
contents originally derives from conventions used in BNF, but since about
1993 it has been reinforced by the HTML markup used on the World Wide Web.

Angle-bracket enclosure is also used to indicate that a term stands for
some random member of a larger class (this is straight from BNF).
Examples like the following are common:

     So this <ethnic> walks into a bar one day...

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

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

reads roughly as "Be nice to this fool, er, gentleman...", with irony
emphasized. The digraph ^H is often used as a print representation for a
backspace, and was actually very visible on old-style printing terminals.
As the text was being composed the characters would be echoed and printed
immediately, and when a correction was made the backspace keystrokes would
be echoed with the string '^H'. Of course, the final composed text would
have no trace of the backspace characters (or the original erroneous text).

Accidental writing under erasure occurs when using the Unix "talk"
program to chat interactively to another user. On a PC-style keyboard most
users instinctively press the backspace key to delete mistakes, but this
may not achieve the desired effect, and merely displays a ^H symbol. The
user typically presses backspace a few times before their brain realises
the problem - especially likely if the user is a touch-typist - and since
each character is transmitted as soon as it is typed, Freudian slips and
other inadvertant admissions are (barring network delays) clearly visible
for the other user to see.

Deliberate use of ^H for writing under erasure parallels (and may have
been influenced by) the ironic use of `slashouts' in science-fiction
fanzines.

A related habit uses editor commands to signify corrections to previous
text. This custom faded in email as more mailers got good editing
capabilities, only to take on new life on IRCs and other line-based chat
systems.

     charlie: I've seen that term used on alt.foobar often.
     lisa: Send it to Erik for the File.
     lisa: Oops...s/Erik/Eric/.

The s/Erik/Eric/ says "change Erik to Eric in the preceding". This syntax
is borrowed from the Unix editing tools `ed' and `sed', but is widely
recognized by non-Unix hackers as well.

In a formula, `*' signifies multiplication but two asterisks in a row are
a shorthand for exponentiation (this derives from FORTRAN, and is also used
in Ada). 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.
(TeX math mode also uses ^ for exponention.) The notation is mildly
confusing to C programmers, because `^' means bitwise exclusive-or in C.
Despite this, it was favored 3:1 over ** in a late-1990 snapshot of Usenet.
It is used consistently in this lexicon.

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 `<=' 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:

     In <jrh578689@thudpucker.com> J. R. Hacker wrote:
     >I recently 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.

     Yeah, I tried one out too.

     #ifdef FLAME
     Hasn't anyone told those idiots that you can't get
     decent bogon suppression with AFJ filters at today's
     net volumes?
     #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 <disclaimer.h>
     --
                      == 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."

The top section in the example, with > at the left margin, is an example
of an inclusion convention we'll discuss below.

More recently, following on the huge popularity of the World Wide Web,
pseudo-HTML markup has become popular for similar purposes:

     <flame>
     Your father was a hamster and your mother smelt of elderberries!
     </flame>

You'll even see this with an HTML-style modifier:

     <flame intensity="100%">
     You seem well-suited for a career in government.
     </flame>

Another recent (late 1990s) construction now common on Usenet seems to be
borrowed from Unix shell syntax or Perl. It consists of using a dollar sign
before an uppercased form of a word or acronym to suggest any random
member of the class indicated by the word. Thus: `$PHB' means "any random
member of the class `Pointy-Haired Boss'".

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.

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.
A good one is that it encourages honesty and tends to break down
hierarchical authority relationships; a bad one 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.

:Email Quotes and Inclusion Conventions:
========================================

One area where 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 a practice 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.

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.

Inclusion practice is still evolving, and disputes over the `correct'
inclusion style occasionally lead to holy wars.

Most netters view an inclusion as a promise that comment on it will
immediately follow. The preferred, conversational style looks like this,

          > relevant excerpt 1
          response to excerpt
          > relevant excerpt 2
          response to excerpt
          > relevant excerpt 3
          response to excerpt

or for short messages like this:

          > entire message
          response to message

Thanks to poor design of some PC-based mail agents, one will occasionally
see the entire quoted message _after_ the response, like this

          response to message
          > entire message

but this practice is strongly deprecated.

Though `>' remains the standard inclusion leader, `|' is occasionally
used for extended quotations where original variations in indentation are
being retained (one mailer even combines these and uses `|>'). 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).

: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 may seem to be
asking the opposite question from "Are you going?", and so to merit 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', German
`doch', or Dutch `jawel' - a word with which one could unambiguously answer
`yes' to a negative question. (See also mu)

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.

In a related vein, hackers sometimes make a game of answering questions
containing logical connectives with a strictly literal rather than
colloquial interpretation. 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 hackish'. 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 report that they
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.

On the other hand, English often gives rise to grammatical and vocabulary
mutations in the native language. For example, Italian hackers often use
the nonexistent verbs `scrollare' (to scroll) and `deletare' (to delete)
rather than native Italian `scorrere' and `cancellare'. Similarly, the
English verb `to hack' has been seen conjugated in Swedish. In German, many
Unix terms in English are casually declined as if they were German verbs -
thus: mount/mounten/gemountet; grep/grepen/gegrept; fork/forken/geforkt;
core dump/core-dumpen, core-gedumpt. And Spanish-speaking hackers use
`linkear' (to link), `debugear' (to debug), and `lockear' (to lock).

European hackers report that this happens partly because the English
terms make finer distinctions than are available in their native
vocabularies, and partly because deliberate language-crossing makes for
amusing wordplay.

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

:Crackers, Phreaks, and Lamers:
===============================

From the early 1980s onward, a flourishing culture of local, MS-DOS-based
bulletin boards developed separately from Internet hackerdom. The BBS
culture has, as its seamy underside, a stratum of `pirate boards' inhabited
by crackers, phone phreaks, and warez d00dz. These people (mostly
teenagers running IBM-PC clones from their bedrooms) have developed their
own characteristic jargon, heavily influenced by skateboard lingo and
underground-rock slang.

Though crackers often call themselves `hackers', they aren't (they
typically have neither significant programming ability, nor Internet
expertise, nor experience with UNIX or other true multi-user systems).
Their vocabulary has little overlap with hackerdom's. Nevertheless, this
lexicon covers much of it so the reader will be able to understand what
goes by on bulletin-board systems.

Here is a brief guide to cracker and warez d00dz usage:

   * Misspell frequently.  The substitutions

               phone => fone
               freak => phreak

     are obligatory.

   * Always substitute `z's for `s's.  (i.e. "codes" -> "codez").  The
     substitution of 'z' for 's' has evolved so that a 'z' is now
     systematically put at the end of words to denote an illegal or
     cracking connection. Examples : Appz, passwordz, passez, utilz,
     MP3z, distroz, pornz, sitez, gamez, crackz, serialz, downloadz,
     FTPz, etc.

   * Type random emphasis characters after a post line (i.e. "Hey
     Dudes!#!$#$!#!$").

   * Use the emphatic `k' prefix ("k-kool", "k-rad", "k-awesome")
     frequently.

   * Abbreviate compulsively ("I got lotsa warez w/ docs").

   * Substitute `0' for `o' ("r0dent", "l0zer").

   * TYPE ALL IN CAPS LOCK, SO IT LOOKS LIKE YOU'RE YELLING ALL THE
     TIME.

These traits are similar to those of B1FF, who originated as a parody
of naive BBS users; also of his latter-day equivalent Jeff K..
Occasionally, this sort of distortion may be used as heavy sarcasm by a
real hacker, as in:

         > I got X Windows running under Linux!

         d00d!  u R an 31337 hax0r

The only practice resembling this in actual hacker usage is the
substitution of a dollar sign of `s' in names of products or service felt
to be excessively expensive, e.g. Compu$erve, Micro$oft.

For further discussion of the pirate-board subculture, see lamer,
elite, leech, poser, cracker, and especially warez d00dz, banner
site
, ratio site, leech mode.

: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).  If
     no accent is given, the word is pronounced with equal accentuation
     on all syllables (this is common for abbreviations).

  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".  The digraph 'gh' is the aspirated g+h of
     "bughouse" or "ragheap" (rare in English).

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

  4. Vowels are represented as follows:

    /a/
          back, that

    /ah/
          father, palm (see note)

    /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/
          block, stock (see note)

    /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/)

The glyph /*/ 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/.

Note that the above table reflects mainly distinctions found in standard
American English (that is, the neutral dialect spoken by TV network
announcers and typical of educated speech in the Upper Midwest, Chicago,
Minneapolis/St. Paul and Philadelphia). However, we separate /o/ from /ah/,
which tend to merge in standard American. This may help readers accustomed
to accents resembling British Received Pronunciation.

The intent of this scheme is to permit as many readers as possible to map
the pronunciations into their local dialect by ignoring some subset of the
distinctions we make. Speakers of British RP, for example, can smash
terminal /r/ and all unstressed vowels. Speakers of many varieties of
southern American will automatically map /o/ to /aw/; and so forth.
(Standard American makes a good reference dialect for this purpose because
it has crisp consonants and more vowel distinctions than other major
dialects, and tends to retain distinctions between unstressed vowels. It
also happens to be what your editor speaks.)

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 before A. 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 open source 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

conj.
     conjunction

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:

Amateur Packet Radio

     A technical culture of ham-radio sites using AX.25 and TCP/IP for
     wide-area networking and BBS systems.

Berkeley
     University of California at Berkeley

BBN
     Bolt, Beranek & Newman

Cambridge
     the university in England (_not_ the city in Massachusetts where
     MIT happens to be located!)

CMU
     Carnegie-Mellon University

Commodore
     Commodore Business Machines

DEC
     The Digital Equipment Corporation (now Compaq).

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 Syste`me 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

WWW
     The World-Wide-Web.

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:
========================

You can mail submissions for the Jargon File to
<jargon@snark.thyrsus.com>.

We welcome new jargon, and corrections to or amplifications of existing
entries. You can improve your submission's chances of being included by
adding background information on user population and years of currency.
References to actual usage via URLs and/or DejaNews pointers are
particularly welcomed.

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.

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.

An HTML version of the File is available at http://www.tuxedo.org/jargon.
Please send us URLs for materials related to the entries, so we can enrich
the File's link structure.

The Jargon File will be regularly maintained and made available for
browsing on the World Wide Web, and will include a version number. Read it,
pass it around, contribute -- this is _your_ monument!

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

= 0 =
=====

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

0 Numeric zero, as opposed to the letter `O' (the 15th letter of the
   English alphabet). In their unmodified forms they look a lot alike, and
   various kluges invented to make them visually distinct have compounded
   the confusion. If your zero is center-dotted and letter-O is not, or if
   letter-O looks almost rectangular but zero looks more like an American
   football stood on end (or the reverse), you're probably looking at a
   modern character display (though the dotted zero seems to have
   originated as an option on IBM 3270 controllers). If your zero is
   slashed but letter-O is not, you're probably looking at an old-style
   ASCII graphic set descended from the default typewheel on the venerable
   ASR-33 Teletype (Scandinavians, for whom /O is a letter, curse this
   arrangement). (Interestingly, the slashed zero long predates computers;
   Florian Cajori's monumental "A History of Mathematical Notations" notes
   that it was used in the twelfth and thirteenth centuries.) If letter-O
   has a slash across it and the zero does not, your display is tuned for a
   very old convention used at IBM and a few other early mainframe makers
   (Scandinavians curse _this_ arrangement even more, because it means two
   of their letters collide). Some Burroughs/Unisys equipment displays a
   zero with a _reversed_ slash. Old CDC computers rendered letter O as an
   unbroken oval and 0 as an oval broken at upper right and lower left. And
   yet another convention common on early line printers left zero
   unornamented but added a tail or hook to the letter-O so that it
   resembled an inverted Q or cursive capital letter-O (this was endorsed
   by a draft ANSI standard for how to draw ASCII characters, but the final
   standard changed the distinguisher to a tick-mark in the upper-left
   corner). Are we sufficiently confused yet?

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

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

2 infix. In translation software written by hackers, infix 2 often
   represents the syllable _to_ with the connotation `translate to': as in
   dvi2ps (DVI to PostScript), int2string (integer to string), and
   texi2roff (Texinfo to [nt]roff). Several versions of a joke have floated
   around the internet in which some idiot programmer fixes the Y2K bug by
   changing all the Y's in something to K's, as in Januark, Februark, etc.

404 // n. [from the HTTP error "file not found on server"] Extended to
   humans to convey that the subject has no idea or no clue - sapience not
   found. May be used reflexively; "Uh, I'm 404ing" means "I'm drawing a
   blank".

404 compliant adj. The status of a website which has been completely
   removed, usually by the administrators of the hosting site as a result
   of net abuse by the website operators. The term is a tongue-in-cheek
   reference to the standard "301 compliant" Murkowski Bill disclaimer used
   by spammers. See also: spam, spamvertize.

4.2 /for' poynt too'/ n. Without a prefix, this almost invariably
   refers to BSD Unix release 4.2. Note that it is an indication of
   cluelessness to say "version 4.2", and "release 4.2" is rare; the number
   stands on its own, or is used in the more explicit forms 4.2BSD or (less
   commonly) BSD 4.2. Similar remarks apply to "4.3", "4.4" and to earlier,
   less-widespread releases 4.1 and 2.9.

pred // [Usenet; orig. fr Oxford University] Abbreviation for
   "predictable", used to signify or preempt reponses that are extremely
   predictable but have to be filled in for the sake of form (the phrase is
   bracketed by <pred>...</pred>). X-Pred headers in mail or news serve the
   same end. Figuring out the connection between the X-Pred tagline and the
   thread is part of the entertainment. For example, it is said that any
   thread about taxation must contain a reference to Raquel Welch, if only
   to stop other people from mentioning her. This is allegedly due to a
   Monty Python sketch where a character declares that he would tax Raquel
   Welch, and he has a feeling she would tax him.

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

   The first recorded @-party was held at the Westercon (a U.S. western
   regional SF convention) over the July 4th weekend in 1980. It is not
   clear exactly when the canonical @-party venue shifted to the Worldcon
   but it had certainly become established by Constellation in 1983. Sadly,
   the @-party tradition has been in decline since about 1996, mainly
   because having an @-address no longer functions as an effective lodge
   pin.

   We are informed, however, that rec.skydiving members have maintained a
   tradition of formation jumps in the shape of an @; picture at
   `http://www.birdwalk.com/DevilsWorkshop/favorites/source/6.html'.

= A =
=====

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

ABEND /a'bend/, /*-bend'/ n. [ABnormal END] 1. Abnormal termination (of
   software); crash; lossage. Derives from an error message on the IBM
   360; used jokingly by hackers but seriously mainly by code grinders.
   Usually capitalized, but may appear as `abend'. Hackers will try to
   persuade you that ABEND is called `abend' because it is what system
   operators do to the machine late on Friday when they want to call it a
   day, and hence is from the German `Abend' = `Evening'. 2.
   [alt.callahans] Absent By Enforced Net Deprivation - used in the subject
   lines of postings warning friends of an imminent loss of Internet
   access. (This can be because of computer downtime, loss of provider,
   moving or illness.) Variants of this also appear: ABVND = `Absent By
   Voluntary Net Deprivation' and ABSEND = `Absent By Self-Enforced Net
   Deprivation' have been sighted.

accumulator n. obs. 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. [common; 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". 4. An affirmative. "Think we ought
   to ditch that damn NT server for a Linux box?" "ACK!"

   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 1), i.e., "I'm not here").

Acme n. [from Greek `akme', highest point of perfection or achievement]
   The canonical supplier of bizarre, elaborate, and non-functional
   gadgetry - where Rube Goldberg and Heath Robinson (two cartoonists who
   specialized in elaborate contraptions) shop. The name has been
   humorously expanded as A (or American) Company Making Everything. (In
   fact, Acme was a real brand sold from Sears Roebuck catalogs in the
   early 1900s.) Describing some X as an "Acme X" either means "This is
   insanely great", or, more likely, "This looks insanely great on
   paper, but in practice it's really easy to shoot yourself in the foot
   with it." Compare pistol.

   This term, specially cherished by American hackers and explained here
   for the benefit of our overseas brethren, comes from the Warner
   Brothers' series of "Roadrunner" cartoons. In these cartoons, the
   famished Wile E. Coyote was forever attempting to catch up with, trap,
   and eat the Roadrunner. His attempts usually involved one or more
   high-technology Rube Goldberg devices - rocket jetpacks, catapults,
   magnetic traps, high-powered slingshots, etc. These were usually
   delivered in large wooden crates labeled prominently with the Acme name
   - which, probably not by coincidence, was the trade name of the
   animation rotation board used by cartoonists since forever. Acme devices
   invariably malfunctioned in improbable and violent ways.

acolyte n. obs. [TMRC] An OSU privileged enough to submit data and
   programs to a member of the priesthood.

ad-hockery /ad-hok'*r-ee/ n. [Purdue] 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 of 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 was at one time 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 was
   "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.

address harvester n. A robot that searches web pages and/or filters
   netnews traffic looking for valid email addresses. Some address
   harvesters are benign, used only for compiling address directories.
   Most, unfortunately, are run by miscreants compiling address lists to
   spam. Address harvesters can be foiled by a teergrube.

adger /aj'r/ vt. [UCLA mutant of nadger, poss. also from the middle
   name of an infamous tenured graduate student] To make a bonehead move
   with consequences that could have been foreseen with even slight mental
   effort. E.g., "He started removing files and promptly adgered the whole
   project". Compare dumbass attack.

admin /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
   designed by Will Crowther on the PDP-10 in the mid-1970s as an attempt
   at computer-refereed fantasy gaming, and expanded into a puzzle-oriented
   game by Don Woods at Stanford in 1976. (Woods had been one of the
   authors of INTERCAL.) Now better known as Adventure or Colossal Cave
   Adventure, but the TOPS-10 operating system permitted only
   six-letter filenames. See also vadding, Zork, and Infocom.

   This game defined the terse, dryly humorous style since 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.

   ADVENT sources are available for FTP at
   `ftp://ftp.wustl.edu/doc/misc/if-archive/games/source/advent.tar.Z'.
   There is a Colossal Cave Adventure page
   (http://people.delphi.com/rickadams/adventure/index.html).

AFAIK // n. [Usenet] Abbrev. for "As Far As I Know".

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

AFK [MUD] Abbrev. for "Away From Keyboard". Used to notify others that
   you will be momentarily unavailable online. eg. "Let's not go kill that
   frost giant yet, I need to go AFK to make a phone call". Often MUDs will
   have a command to politely inform others of your absence when they try
   to talk with you. The term is not restricted to MUDs, however, and has
   become common in many chat situations, from IRC to Unix talk.

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

AI-complete /A-I k*m-pleet'/ adj. [MIT, Stanford: by analogy with
   `NP-complete' (see NP-)] 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 (1999) 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 Some AI Koans
   in Appendix A). See also ha ha only serious, mu, and hacker
   humor
.

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

AIDX /ayd'k*z/ n. Derogatory term for IBM's perverted version of Unix,
   AIX, especially for the AIX 3.? used in the IBM RS/6000 series (some
   hackers think it is funnier just to pronounce "AIX" as "aches"). A
   victim of the dreaded "hybridism" disease, this attempt to combine the
   two main currents of the Unix stream (BSD and USG Unix) became a
   monstrosity to haunt system administrators' dreams. For example, if
   new accounts are created while many users are logged on, the load
   average jumps quickly over 20 due to silly implementation of the user
   databases. For a quite similar disease, compare HP-SUX. Also, compare
   Macintrash, Nominal Semidestructor, 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. It is correspondingly
   argued that the right way to build reliable systems is to put all your
   eggs in one basket, after making sure that you've built a really _good_
   basket. See also KISS Principle, elegant.

Alderson loop n. [Intel] A special version of an infinite loop where
   there is an exit condition available, but inaccessible in the current
   implementation of the code. Typically this is created while debugging
   user interface code. An example would be when there is a menu stating,
   "Select 1-3 or 9 to quit" and 9 is not allowed by the function that
   takes the selection from the user.

   This term received its name from a programmer who had coded a modal
   message box in MSAccess with no Ok or Cancel buttons, thereby disabling
   the entire program whenever the box came up. The message box had the
   proper code for dismissal and even was set up so that when the
   non-existent Ok button was pressed the proper code would be called.

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

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

Alice and Bob n. The archetypal individuals used as examples in
   discussions of cryptographic protocols. Originally, theorists would say
   something like: "A communicates with someone who claims to be B, So to
   be sure, A tests that B knows a secret number K. So A sends to B a
   random number X. B then forms Y by encrypting X under key K and sends Y
   back to A" Because this sort of thing is quite hard to follow, theorists
   stopped using the unadorned letters A and B to represent the main
   players and started calling them Alice and Bob. So now we say "Alice
   communicates with someone claiming to be Bob, and to be sure, Alice
   tests that Bob knows a secret number K. Alice sends to Bob a random
   number X. Bob then forms Y by encrypting X under key K and sends Y back
   to Alice". A whole mythology rapidly grew up around the metasyntactic
   names; see
   `http://www.conceptlabs.co.uk/extras/ZurichSeminarSpeech3.htm'.

   In Bruce Schneier's definitive introductory text "Applied
   Cryptography" (2nd ed., 1996, John Wiley & Sons, ISBN 0-471-11709-9) he
   introduces a table of dramatis personae headed by Alice and Bob. Others
   include Carol (a participant in three- and four-party protocols), Dave
   (a participant in four-party protocols), Eve (an eavesdropper), Mallory
   (a malicious active attacker), Trent (a trusted arbitrator), Walter (a
   warden), Peggy (a prover) and Victor (a verifier). These names for roles
   are either already standard or, given the wide popularity of the book,
   may be expected to quickly become so.

all your base are belong to us A declaration of victory or superiority.
   The phrase stems from a 1991 adaptation of Toaplan's "Zero Wing"
   shoot-'em-up arcade game for the Sega Genesis game console. A brief
   introduction was added to the opening screen, and it has what many
   consider to be the worst Japanese-to-English translation in video game
   history. The introduction shows the bridge of a starship in chaos as a
   Borg-like figure named CATS materializes and says, "How are you
   gentlemen!! All your base are belong to us." [sic] In 2001, this amusing
   mistranslation spread virally through the internet, bringing with it a
   slew of JPEGs and a movie of hacked photographs, each showing a street
   sign, store front, package label, etc. hacked to read "All your base are
   belong to us" or one of the other dopy lines from the game. When the
   phrase is used properly, the overall effect is both screamingly funny
   and somewhat chilling, reminiscent of the B movie "They Live".

   The original has been generalized to "All your X are belong to us",
   where X is filled in to connote a sinister takeover of some sort. Thus,
   "When Joe signed up for his new job at Yoyodyne, he had to sign a
   draconian NDA. It basically said, `All your code are belong to us.'" Has
   many of the connotations of "Resistance is futile; you will be
   assimilated" (see Borg). Considered silly, and most likely to be used
   by the type of person that finds Jeff K. hilarious.

all-elbows adj. [MS-DOS] 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 geek n. [from animal ethologists' `alpha male'] The most
   technically accomplished or skillful person in some implied context.
   "Ask Larry, he's the alpha geek here."

alpha particles n. See bit rot.

alt /awlt/ 1. n. The alt shift key on an IBM PC or clone keyboard;
   see bucky bits, sense 2 (though typical PC usage does not simply set
   the 0200 bit). 2. n. The `option' key on a Macintosh; use of this term
   usually reveals that the speaker hacked PCs before coming to the Mac
   (see also feature key, which is sometimes _incorrectly_ called `alt').
   3. n.,obs. [PDP-10; often capitalized to ALT] Alternate name for the
   ASCII ESC character (ASCII 0011011), after the keycap labeling on some
   older terminals; also `altmode' (/awlt'mohd/). This character was almost
   never pronounced `escape' on an ITS system, in TECO, or under TOPS-10
   -- always alt, as in "Type alt alt to end a TECO command" or "alt-U onto
   the system" (for "log onto the [ITS] system"). This usage probably arose
   because alt is more convenient to say than `escape', especially when
   followed by another alt or a character (or another alt _and_ a
   character, for that matter). 4. The alt hierarchy on Usenet, the tree of
   newsgroups created by users without a formal vote and approval
   procedure. There is a myth, not entirely implausible, that alt is
   acronymic for "anarchists, lunatics, and terrorists"; but in fact it is
   simply short for "alternative".

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

Aluminum Book n. [MIT] "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.

ambimouseterous /am-b*-mows'ter-us/ or /am-b*-mows'trus/ adj. [modeled
   on ambidextrous] Able to use a mouse with either hand.

Amiga n A series of personal computer models originally sold by
   Commodore, based on 680x0 processors, custom support chips and an
   operating system that combined some of the best features of Macintosh
   and Unix with compatibility with neither.

   The Amiga was released just as the personal computing world
   standardized on IBM-PC clones. This prevented it from gaining serious
   market share, despite the fact that the first Amigas had a substantial
   technological lead on the IBM XTs of the time. Instead, it acquired a
   small but zealous population of enthusiastic hackers who dreamt of one
   day unseating the clones (see Amiga Persecution Complex). The traits
   of this culture are both spoofed and illuminated in The BLAZE Humor
   Viewer (http://www.blazemonger.com/BM/). The strength of the Amiga
   platform seeded a small industry of companies building software and
   hardware for the platform, especially in graphics and video applications
   (see video toaster).

   Due to spectacular mismanagement, Commodore did hardly any R&D,
   allowing the competition to close Amiga's technological lead. After
   Commodore went bankrupt in 1994 the technology passed through several
   hands, none of whom did much with it. However, the Amiga is still being
   produced in Europe under license and has a substantial number of fans,
   which will probably extend the platform's life considerably.

Amiga Persecution Complex n. The disorder suffered by a particularly
   egregious variety of bigot, those who believe that the marginality of
   their preferred machine is the result of some kind of industry-wide
   conspiracy (for without a conspiracy of some kind, the eminent
   superiority of their beloved shining jewel of a platform would obviously
   win over all, market pressures be damned!) Those afflicted are prone to
   engaging in flame wars and calling for boycotts and mailbombings.
   Amiga Persecution Complex is by no means limited to Amiga users; NeXT,
   NeWS, OS/2, Macintosh, LISP, and GNU users are also common
   victims. Linux users used to display symptoms very frequently before
   Linux started winning; some still do. See also newbie, troll, holy
   wars
, weenie, Get a life!.

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

amp off vt. [Purdue] 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.

Angband n. /ang'band/ Like nethack, moria, and rogue, one of the
   large freely distributed Dungeons-and-Dragons-like simulation games,
   available for a wide range of machines and operating systems. The name
   is from Tolkien's Pits of Angband (compare elder days, elvish). Has
   been described as "Moria on steroids"; but, unlike Moria, many aspects
   of the game are customizable. This leads many hackers and would-be
   hackers into fooling with these instead of doing productive work. There
   are many Angband variants, of which the most notorious is probably the
   rather whimsical Zangband. In this game, when a key that does not
   correspond to a command is pressed, the game will display "Type ? for
   help" 50% of the time. The other 50% of the time, random error messages
   including "An error has occurred because an error of type 42 has
   occurred" and "Windows 95 uninstalled successfully" will be displayed.
   Zangband also allows the player to kill Santa Claus (who has some really
   good stuff, but also has a lot of friends), "Bull Gates", and Barney the
   Dinosaur (but be watchful; Barney has a nasty case of halitosis). There
   is an official angband home page at `http://www.phial.com/angband' and a
   zangband one at `http://thangorodrim.angband.org'. See also Random
   Number God
.

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

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

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

annoyware n. A type of shareware that frequently disrupts normal
   program operation to display requests for payment to the author in
   return for the ability to disable the request messages. (Also called
   `nagware') The requests generally require user action to acknowledge the
   message before normal operation is resumed and are often tied to the
   most frequently used features of the software. See also careware,
   charityware, crippleware, freeware, FRS, guiltware,
   postcardware, and -ware; compare payware.

ANSI /an'see/ 1. n. [techspeak] The American National Standards
   Institute. ANSI, along with the International Organization for Standards
   (ISO), standardized the C programming language (see K&R, Classic C),
   and promulgates many other important software standards. 2. n.
   [techspeak] A terminal may be said to be `ANSI' if it meets the ANSI
   X3.64 standard for terminal control. Unfortunately, this standard was
   both over-complicated and too permissive. It has been retired and
   replaced by the ECMA-48 standard, which shares both flaws. 3. n. [BBS
   jargon] The set of screen-painting codes that most MS-DOS and Amiga
   computers accept. This comes from the ANSI.SYS device driver that must
   be loaded on an MS-DOS computer to view such codes. Unfortunately,
   neither DOS ANSI nor the BBS ANSIs derived from it exactly match the
   ANSI X3.64 terminal standard. For example, the ESC-[1m code turns on the
   bold highlight on large machines, but in IBM PC/MS-DOS ANSI, it turns on
   `intense' (bright) colors. Also, in BBS-land, the term `ANSI' is often
   used to imply that a particular computer uses or can emulate the IBM
   high-half character set from MS-DOS. Particular use depends on context.
   Occasionally, the vanilla ASCII character set is used with the color
   codes, but on BBSs, ANSI and `IBM characters' tend to go together.

ANSI standard /an'see stan'd*rd/ The ANSI standard usage of `ANSI
   standard' refers to any practice which is typical or broadly done. It's
   most appropriately applied to things that everyone does that are not
   quite regulation. For example: ANSI standard shaking of a laser printer
   cartridge to get extra life from it, or the ANSI standard word tripling
   in names of usenet alt groups.

ANSI standard pizza /an'see stan'd*rd peet'z*/ [CMU] Pepperoni and
   mushroom pizza. Coined allegedly because most pizzas ordered by CMU
   hackers during some period leading up to mid-1990 were of that flavor.
   See also rotary debugger; compare ISO standard cup of tea.

AOL! n. [Usenet] Common synonym for "Me, too!" alluding to the
   legendary propensity of America Online users to utter contentless "Me,
   too!" postings. The number of exclamation points following varies from
   zero to five or so. The pseudo-HTML

        <AOL>Me, too!</AOL>
  
   is also frequently seen. See also September that never ended.

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

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

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

ARMM n. [acronym, `Automated Retroactive Minimal Moderation'] A Usenet
   cancelbot created by Dick Depew of Munroe Falls, Ohio. ARMM was
   intended to automatically cancel posts from anonymous-posting sites.
   Unfortunately, the robot's recognizer for anonymous postings triggered
   on its own automatically-generated control messages! Transformed by this
   stroke of programming ineptitude into a monster of Frankensteinian
   proportions, it broke loose on the night of March 31, 1993 and proceeded
   to spam news.admin.policy with a recursive explosion of over 200
   messages.

   ARMM's bug produced a recursive cascade of messages each of which
   mechanically added text to the ID and Subject and some other headers of
   its parent. This produced a flood of messages in which each header took
   up several screens and each message ID and subject line got longer and
   longer and longer.

   Reactions varied from amusement to outrage. The pathological messages
   crashed at least one mail system, and upset people paying line charges
   for their Usenet feeds. One poster described the ARMM debacle as
   "instant Usenet history" (also establishing the term despew), and it
   has since been widely cited as a cautionary example of the havoc the
   combination of good intentions and incompetence can wreak on a network.
   Compare Great Worm; sorcerer's apprentice mode. See also software
   laser
, network meltdown.

armor-plated n. Syn. for bulletproof.

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

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

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

ASCII: /as'kee/ n. [originally an acronym (American Standard Code for
   Information Interchange) but now merely conventional] The predominant
   character set encoding of present-day computers. The standard version
   uses 7 bits for each character, whereas most earlier codes (including
   early drafts of ASCII prior to June 1961) used fewer. This change
   allowed the inclusion of lowercase letters -- a major win -- but it
   did not provide for accented letters or any other letterforms not used
   in English (such as the German sharp-S or the ae-ligature which is a
   letter in, for example, Norwegian). It could be worse, though. It could
   be much worse. See EBCDIC to understand how. A history of ASCII and
   its ancestors is at `http://www.wps.com/texts/codes/index.html'.

   Computers are much pickier and less flexible about spelling than
   humans; thus, hackers need to be very precise when talking about
   characters, and have developed a considerable amount of verbal shorthand
   for them. Every character has one or more names -- some formal, some
   concise, some silly. Common jargon names for ASCII characters are
   collected here. See also individual entries for bang, excl, open,
   ques, semi, shriek, splat, twiddle, and Yu-Shiang Whole
   Fish
.

   This list derives from revision 2.3 of the Usenet ASCII pronunciation
   guide. Single characters are listed in ASCII order; character pairs are
   sorted in by first member. For each character, common names are given in
   rough order of popularity, followed by names that are reported but
   rarely seen; official ANSI/CCITT names are surrounded by brokets: <>.
   Square brackets mark the particularly silly names introduced by
   INTERCAL. The abbreviations "l/r" and "o/c" stand for left/right and
   "open/close" respectively. Ordinary parentheticals provide some usage
   information.

   !
     Common: bang; pling; excl; not; shriek; ball-bat; <exclamation
     mark>.  Rare: factorial; exclam; smash; cuss; boing; yell; wow;
     hey; wham; eureka; [spark-spot]; soldier, control.
  
   "
     Common: double quote; quote.  Rare: literal mark; double-glitch;
     <quotation marks>; <dieresis>; dirk; [rabbit-ears]; double prime.
  
   #
     Common: number sign; pound; pound sign; hash; sharp; crunch; hex;
     [mesh].  Rare: grid; crosshatch; octothorpe; flash; <square>,
     pig-pen; tictactoe; scratchmark; thud; thump; splat.
  
   $
     Common: dollar; <dollar sign>.  Rare: currency symbol; buck; cash;
     string (from BASIC); escape (when used as the echo of ASCII ESC);
     ding; cache; [big money].
  
   %
     Common: percent; <percent sign>; mod; grapes.  Rare:
     [double-oh-seven].
  
   &
     Common: <ampersand>; amp; amper; and, and sign.  Rare: address
     (from C); reference (from C++); andpersand; bitand; background
     (from `sh(1)'); pretzel.  [INTERCAL called this `ampersand'; what
     could be sillier?]
  
   '
     Common: single quote; quote; <apostrophe>.  Rare: prime; glitch;
     tick; irk; pop; [spark]; <closing single quotation mark>; <acute
     accent>.
  
   ( )

     Common: l/r paren; l/r parenthesis; left/right; open/close;
     paren/thesis; o/c paren; o/c parenthesis; l/r parenthesis; l/r
     banana.  Rare: so/already; lparen/rparen; <opening/closing
     parenthesis>; o/c round bracket, l/r round bracket, [wax/wane];
     parenthisey/unparenthisey; l/r ear.
  
   *
     Common: star; [splat]; <asterisk>.  Rare: wildcard; gear; dingle;
     mult; spider; aster; times; twinkle; glob (see glob); Nathan
     Hale
.
  
   +
     Common: <plus>; add.  Rare: cross; [intersection].
  
   ,
     Common: <comma>.  Rare: <cedilla>; [tail].
  
   -
     Common: dash; <hyphen>; <minus>.  Rare: [worm]; option; dak;
     bithorpe.
  
   .
     Common: dot; point; <period>; <decimal point>.  Rare: radix point;
     full stop; [spot].
  
   /
     Common: slash; stroke; <slant>; forward slash.  Rare: diagonal;
     solidus; over; slak; virgule; [slat].
  
   :
     Common: <colon>.  Rare: dots; [two-spot].
  
   ;
     Common: <semicolon>; semi.  Rare: weenie; [hybrid], pit-thwong.
  
   < >

     Common: <less/greater than>; bra/ket; l/r angle; l/r angle
     bracket; l/r broket.  Rare: from/{into, towards}; read from/write
     to; suck/blow; comes-from/gozinta; in/out; crunch/zap (all from
     UNIX); tic/tac; [angle/right angle].
  
   =
     Common: <equals>; gets; takes.  Rare: quadrathorpe; [half-mesh].
  
   ?
     Common: query; <question mark>; ques.  Rare: quiz; whatmark;
     [what]; wildchar; huh; hook; buttonhook; hunchback.
  
   @
     Common: at sign; at; strudel.  Rare: each; vortex; whorl;
     [whirlpool]; cyclone; snail; ape; cat; rose; cabbage; <commercial
     at>.
  
   V
     Rare: [book].
  
   [ ]

     Common: l/r square bracket; l/r bracket; <opening/closing
     bracket>; bracket/unbracket.  Rare: square/unsquare; [U turn/U
     turn back].
  
   \
     Common: backslash, hack, whack; escape (from C/UNIX); reverse
     slash; slosh; backslant; backwhack.  Rare: bash; <reverse slant>;
     reversed virgule; [backslat].
  
   ^
     Common: hat; control; uparrow; caret; <circumflex>.  Rare: xor
     sign, chevron; [shark (or shark-fin)]; to the (`to the power of');
     fang; pointer (in Pascal).
  
   _
     Common: <underline>; underscore; underbar; under.  Rare: score;
     backarrow; skid; [flatworm].
  
   `
     Common: backquote; left quote; left single quote; open quote;
     <grave accent>; grave.  Rare: backprime; [backspark];
     unapostrophe; birk; blugle; back tick; back glitch; push; <opening
     single quotation mark>; quasiquote.
  
  

     Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
     bracket/brace; l/r curly bracket/brace; <opening/closing brace>.
     Rare: brace/unbrace; curly/uncurly; leftit/rytit; l/r squirrelly;
     [embrace/bracelet].  A balanced pair of these may be called
     `curlies'.
  
   |
     Common: bar; or; or-bar; v-bar; pipe; vertical bar.  Rare:
     <vertical line>; gozinta; thru; pipesinta (last three from UNIX);
     [spike].
  
   ~
     Common: <tilde>; 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. There are more culture wars over the
   correct pronunciation of this character than any other, which has led to
   the ha ha only serious suggestion that it be pronounced `shibboleth'
   (see Judges 12:6 in an Old Testament or Tanakh).

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

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

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

   The inability of ASCII text to correctly represent any of the world's
   other major languages makes the designers' choice of 7 bits look more
   and more like a serious misfeature as the use of international
   networks continues to increase (see software rot). Hardware and
   software from the U.S. still tends to embody the assumption that ASCII
   is the universal character set and that characters have 7 bits; this is
   a 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
  
   And here are some very silly examples:

       |\/\/\/|     ____/|              ___    |\_/|    ___
       |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
       |      |      =(_)=  THPHTH!   /      \/     \/      \
       | (o)(o)        U             /                       \
       C      _)  (__)                \/\/\/\  _____  /\/\/\/
       | ,___|    (oo)                       \/     \/
       |   /       \/-------\         U                  (__)
      /____\        ||     | \    /---V  `v'-            oo )
     /      \       ||---W||  *  * |--|   || |`.         |_/\
  
                    //-o-\\
             ____---=======---____
         ====___\   /.. ..\   /___====      Klingons rule OK!
       //        ---\__O__/---        \\
       \_\                           /_/
  
   There is an important subgenre of ASCII art that puns on the standard
   character names in the fashion of a rebus.

     +--------------------------------------------------------+
     |      ^^^^^^^^^^^^                                      |
     | ^^^^^^^^^^^            ^^^^^^^^^                       |
     |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
     |        ^^^^^^^         B       ^^^^^^^^^               |
     |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
     +--------------------------------------------------------+
                  " A Bee in the Carrot Patch "
  
   Within humorous ASCII art, there is for some reason an entire
   flourishing subgenre of pictures of silly cows. Four of these are
   reproduced in the examples above, here are three more:

              (__)              (__)              (__)
              (\/)              ($$)              (**)
       /-------\/        /-------\/        /-------\/
      / | 666 ||        / |=====||        / |     ||
     *  ||----||       *  ||----||       *  ||----||
        ~~    ~~          ~~    ~~          ~~    ~~
     Satanic cow    This cow is a Yuppie   Cow in love
  
   Finally, here's a magnificent example of ASCII art depicting an
   Edwardian train station in Dunedin, New Zealand:

                                       .-.
                                      /___\
                                      |___|
                                      |]_[|
                                      / I \
                                   JL/  |  \JL
        .-.                    i   ()   |   ()   i                    .-.
        |_|     .^.           /_\  LJ=======LJ  /_\           .^.     |_|
     ._/___\._./___\_._._._._.L_J_/.-.     .-.\_L_J._._._._._/___\._./___\._._._
            ., |-,-| .,       L_J  |_| [I] |_|  L_J       ., |-,-| .,        .,
            JL |-O-| JL       L_J%%%%%%%%%%%%%%%L_J       JL |-O-| JL        JL
     IIIIII_HH_'-'-'_HH_IIIIII|_|=======H=======|_|IIIIII_HH_'-'-'_HH_IIIIII_HH_
     -------[]-------[]-------[_]----\.=I=./----[_]-------[]-------[]--------[]-
      _/\_  ||\\_I_//||  _/\_ [_] []_/_L_J_\_[] [_] _/\_  ||\\_I_//||  _/\_  ||\
      |__|  ||=/_|_\=||  |__|_|_|   _L_L_J_J_   |_|_|__|  ||=/_|_\=||  |__|  ||-
      |__|  |||__|__|||  |__[___]__--__===__--__[___]__|  |||__|__|||  |__|  |||
     IIIIIII[_]IIIII[_]IIIIIL___J__II__|_|__II__L___JIIIII[_]IIIII[_]IIIIIIII[_]
      \_I_/ [_]\_I_/[_] \_I_[_]\II/[]\_\I/_/[]\II/[_]\_I_/ [_]\_I_/[_] \_I_/ [_]
     ./   \.L_J/   \L_J./   L_JI  I[]/     \[]I  IL_J    \.L_J/   \L_J./   \.L_J
     |     |L_J|   |L_J|    L_J|  |[]|     |[]|  |L_J     |L_J|   |L_J|     |L_J
     |_____JL_JL___JL_JL____|-||  |[]|     |[]|  ||-|_____JL_JL___JL_JL_____JL_J
  
   There is a newsgroup, alt.ascii-art, devoted to this genre; however,
   see also warlording.

ASCIIbetical order /as'kee-be'-t*-kl or'dr/ adj.,n. Used to indicate
   that data is sorted in ASCII collated order rather than alphabetical
   order. This lexicon is sorted in something close to ASCIIbetical order,
   but with case ignored and entries beginning with non-alphabetic
   characters moved to the beginning. "At my video store, they used their
   computer to sort the videos into ASCIIbetical order, so I couldn't find
   `"Crocodile" Dundee' until I thought to look before `2001' and `48
   HRS.'!"

astroturfing n. The use of paid shills to create the impression of a
   popular movement, through means like letters to newspapers from
   soi-disant `concerned citizens', paid opinion pieces, and the formation
   of grass-roots lobbying groups that are actually funded by a PR group
   (astroturf is fake grass; hence the term). This term became common among
   hackers after it came to light in early 1998 that Microsoft had
   attempted to use such tactics to forestall the U.S. Department of
   Justice's antitrust action against the company.

   This backfired horribly, angering a number of state attorneys-general
   enough to induce them to go public with plans to join the Federal suit.
   It also set anybody defending Microsoft on the net for the accusation
   "You're just astroturfing!".

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

   Computer usage, in either of the above senses, has none of the
   connotations that `atomic' has in mainstream English (i.e. of particles
   of matter, nuclear explosions etc.).

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

AUP /A-U-P/ Abbreviation, "Acceptable Use Policy". The policy of a
   given ISP which sets out what the ISP considers to be (un)acceptable
   uses of its Internet resources.

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

autoconfiscate [originally from Cygnus Solutions, later Red Hat
   Software] To set up or modify a source-code distribution so that it
   configures and builds using the GNU project's autoconf/automake/libtools
   suite. Among open-source hackers, a mere running binary of a program is
   not considered a full release; what's interesting is a source tree that
   can be built into binaries using standard tools. Since the mid-1990s,
   autoconf and friends been the standard way to adapt a distribution for
   portability so that it casn be built on multiple operating systems
   without change.

automagically /aw-toh-maj'i-klee/ 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."

   This term is quite old, going back at least to the mid-70s in jargon
   and probably much earlier. The word `automagic' occurred in advertising
   (for a shirt-ironing gadget) as far back as the late 1940s.

avatar n. Syn. [in Hindu mythology, the incarnation of a god] 1. Among
   people working on virtual reality and cyberspace interfaces, an
   "avatar" is an icon or representation of a user in a shared virtual
   reality. The term is sometimes used on MUDs. 2. [CMU, Tektronix]
   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 found the terms `root' and
   `superuser' unimaginative, and thought `avatar' might better impress
   people with the responsibility they were accepting.

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

= B =
=====

B5 // [common] Abbreviation for "Babylon 5", a science-fiction TV
   series as revered among hackers as was the original Star Trek.

back door n. [common] A hole in the security of a system deliberately
   left in place by designers or maintainers. The motivation for such holes
   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. Syn. trap door;
   may also be called a `wormhole'. See also iron box, cracker, worm,
   logic bomb.

   Historically, back doors have often lurked in systems longer than
   anyone expected or planned, and a few have become widely known. Ken
   Thompson's 1983 Turing Award lecture to the ACM admitted the existence
   of a back door in early Unix versions that may have qualified as the
   most fiendishly clever security hack of all time. In this scheme, 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; the hack
   perpetuated itself invisibly, leaving the back door in place and active
   but with no trace in the sources.

   The Turing lecture that suggested this truly moby hack was later
   published as "Reflections on Trusting Trust", "Communications of the ACM
   27", 8 (August 1984), pp. 761-763 (text available at
   `http://www.acm.org/classics'). Ken Thompson has since confirmed that
   this hack was implemented and that the Trojan Horse code did appear in
   the login binary of a Unix Support group machine. Ken says the crocked
   compiler was never distributed. Your editor has heard two separate
   reports that suggest that the crocked login did make it out of Bell
   Labs, notably to BBN, and that it enabled at least one late-night login
   across the network by someone using the login name `kt'.

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. During most of its lifetime, the Cabal (as it was
   sometimes capitalized) steadfastly denied its own existence; it was
   almost obligatory for anyone privy to their secrets to respond "There is
   no Cabal" whenever the existence or activities of the group were
   speculated on in public.

   The result of this policy was an attractive aura of mystery. Even a
   decade after the cabal mailing list disbanded in late 1988 following a
   bitter internal catfight, many people believed (or claimed to believe)
   that it had not actually disbanded but only gone deeper underground with
   its power intact.

   This belief became a model for various paranoid theories about various
   Cabals with dark nefarious objectives beginning with taking over the
   Usenet or Internet. These paranoias were later satirized in ways that
   took on a life of their own. See Eric Conspiracy for one example.

   See NANA for the subsequent history of "the Cabal".

backbone site n.,obs. Formerly, 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 1993, when this sense of the term was
   beginning to pass out of general use due to wide availability of cheap
   Internet connections, included 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
.

   [2001 update: This term has passed into history. The UUCP network
   world that gave it meaning is gone; everyone is on the Internet now and
   network traffic is distributed in very different patterns. Today one
   might see references to a `backbone router' instead --ESR]

backgammon: See bignum (sense 3), moby (sense 4), and
   pseudoprime.

background n.,adj.,vt. [common] 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.

backreference n. 1. In a regular expression or pattern match, the text
   which was matched within grouping parentheses 2. The part of the pattern
   which refers back to the matched text. 3. By extension, anything which
   refers back to something which has been seen or discussed before. "When
   you said `she' just now, who were you backreferencing?"

backronym n. [portmanteau of back + acronym] A word interpreted as an
   acronym that was not originally so intended. This is a special case of
   what linguists call `back formation'. Examples are given under BASIC,
   recursive acronym (Cygnus), Acme, and mung. Discovering backronyms
   is a common form of wordplay among hackers. Compare retcon.

backspace and overstrike interj. [rare] Whoa! Back up. Used to suggest
   that someone just said or did something wrong. Once common among APL
   programmers; may now be obsolete.

backward combatability /bak'w*rd k*m-bat'*-bil'*-tee/ n. [CMU,
   Tektronix: from `backward compatibility'] A property of hardware or
   software revisions in which previous protocols, formats, layouts, etc.
   are irrevocably discarded in favor of `new and improved' protocols,
   formats, and layouts, leaving the previous ones not merely deprecated
   but actively defeated. (Too often, the old and new versions cannot
   definitively be distinguished, such that lingering instances of the
   previous ones yield crashes or other infelicitous effects, as opposed to
   a simple "version mismatch" message.) A backwards compatible change, on
   the other hand, allows old versions to coexist without crashes or error
   messages, but too many major changes incorporating elaborate backwards
   compatibility processing can lead to extreme software bloat. See also
   flag day.

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

Bad and Wrong adj. [Durham, UK] Said of something that is both badly
   designed and wrongly executed. This common term is the prototype of, and
   is used by contrast with, three less common terms - Bad and Right (a
   kludge, something ugly but functional); Good and Wrong (an overblown GUI
   or other attractive nuisance); and (rare praise) Good and Right. These
   terms entered common use at Durham c.1994 and may have been imported
   from elsewhere; they are also in use at Oxford, and the emphatic form
   "Evil and Bad and Wrong" (abbreviated EBW) is reported from there. There
   are standard abbreviations: they start with B&R, a typo for "Bad and
   Wrong". Consequently, B&W is actually "Bad and Right", G&R = "Good and
   Wrong", and G&W = "Good and Right". Compare evil and rude, Good
   Thing
, Bad Thing.

Bad Thing n. [very common; always pronounced as if capitalized. Orig.
   fr. the 1930 Sellar & Yeatman parody of British history "1066 And All
   That", but well-established among hackers in the U.S. as well.]
   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. It is very common among American hackers, but
   not in mainstream usage here. Compare Bad and Wrong.

bag on the side n. [prob. originally related to a colostomy bag] 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. `bite the
   bag' vi. To fail in some manner. "The computer keeps crashing every five
   minutes." "Yes, the disk controller is really biting the bag."

   The original loading of these terms was almost undoubtedly obscene,
   possibly referring to a douche bag or the scrotum (we have reports of
   "Bite the douche bag!" being used as a taunt at MIT 1970-1976, and we
   have another report that "Bite the bag!" was in common use at least as
   early as 1965), but in their current usage they have become almost
   completely sanitized.

   ITS's lexiphage program was the first and to date only known example
   of a program _intended_ to be a bagbiter.

bagbiting adj. 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).

baggy pantsing v. [Georgia Tech] A "baggy pantsing" is used to
   reprimand hackers who incautiously leave their terminals unlocked. The
   affected user will come back to find a post from them on internal
   newsgroups discussing exactly how baggy their pants are, an accepted
   stand-in for "unattentive user who left their work unprotected in the
   clusters". A properly-done baggy pantsing is highly mocking and
   humorous. It is considered bad form to post a baggy pantsing to
   off-campus newsgroups or the more technical, serious groups. A
   particularly nice baggy pantsing may be "claimed" by immediately quoting
   the message in full, followed by your sig; this has the added benefit of
   keeping the embarassed victim from being able to delete the post.
   Interesting baggy-pantsings have been done involving adding commands to
   login scripts to repost the message every time the unlucky user logs in;
   Unix boxes on the residential network, when cracked, oftentimes have
   their homepages replaced (after being politely backedup to another file)
   with a baggy-pants message; .plan files are also occasionally targeted.
   Usage: "Prof. Greenlee fell asleep in the Solaris cluster again; we
   baggy-pantsed him to git.cc.class.2430.flame." Compare derf.

balloonian variable n. [Commodore users; perh. a deliberate phonetic
   mangling of `boolean variable'?] Any variable that doesn't actually hold
   or control state, but must nevertheless be declared, checked, or set. A
   typical balloonian variable started out as a flag attached to some
   environment feature that either became obsolete or was planned but never
   implemented. Compatibility concerns (or politics attached to same) may
   require that such a flag be treated as though it were live.

bamf /bamf/ 1. [from X-Men comics; originally "bampf"] 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
   MUDs. 3. In MUD circles, "bamf" is also used to refer to the act by
   which a MUD server sends a special notification to the MUD client to
   switch its connection to another server ("I'll set up the old site to
   just bamf people over to our new location."). 4. Used by MUDders on
   occasion in a more general sense related to sense 3, to refer to
   directing someone to another location or resource ("A user was asking
   about some technobabble so I bamfed them to
   `http://www.tuxedo.org/jargon/'".)

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. [common] 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; see also brainwidth. This generalized
   usage began to go mainstream after the Internet population explosion of
   1993-1994. 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. [now historical] 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
, the network, 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. This is probably now the commonest
   sense.

banner ad n. Any of the annoying graphical advertisements that span the
   tops of way too many Web pages.

banner site n. [warez d00dz] An FTP site storing pirated files where
   one must first click on several banners and/or subscribe to various
   `free' services, usually generating some form of revenues for the site
   owner, to be able to access the site. More often than not, the
   username/password painfully obtained by clicking on banners and
   subscribing to bogus services or mailing lists turns out to be
   non-working or gives access to a site that always responds busy. See
   ratio site, leech mode.

bar /bar/ n. 1. [very common] 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. [common] 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
   (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, and in the
   code of hackers who just can't let go of that low-level control. 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 well are held in high regard.

barf /barf/ n.,v. [common; from mainstream slang meaning `vomit'] 1.
   interj. Term of disgust. This is the closest hackish equivalent of the
   Valspeak "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, perhaps with a suitable error message, perhaps not.
   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 messages 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.

barn n. [uncommon; prob. from the nuclear military] An unexpectedly
   large quantity of something: a unit of measurement. "Why is /var/adm
   taking up so much space?" "The logs have grown to several barns." The
   source of this is clear: when physicists were first studying nuclear
   interactions, the probability was thought to be proportional to the
   cross-sectional area of the nucleus (this probability is still called
   the cross-section). Upon experimenting, they discovered the interactions
   were far more probable than expected; the nuclei were `as big as a
   barn'. The units for cross-sections were christened Barns, (10^-24 cm^2)
   and the book containing cross-sections has a picture of a barn on the
   cover.

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. [common] 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.

BASIC /bay'-sic/ n. A programming language, originally designed for
   Dartmouth's experimental timesharing system in the early 1960s, which
   for many years was the leading cause of brain damage in proto-hackers.
   Edsger W. Dijkstra observed in "Selected Writings on Computing: A
   Personal Perspective" that "It is practically impossible to teach good
   programming style to students that have had prior exposure to BASIC: as
   potential programmers they are mentally mutilated beyond hope of
   regeneration." This is another case (like Pascal) of the cascading
   lossage that happens 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 (a) is very painful, and (b) encourages bad habits that will make
   it harder to use more powerful languages well. This wouldn't be so bad
   if historical accidents hadn't made BASIC so common on low-end micros in
   the 1980s. As it is, it probably ruined tens of thousands of potential
   wizards.

   [1995: Some languages called `BASIC' aren't quite this nasty any more,
   having acquired Pascal- and C-like procedures and control structures and
   shed their line numbers. --ESR]

   BASIC stands for "Beginner's All-purpose Symbolic Instruction Code".
   Earlier versions of this entry claiming this was a later backronym
   were incorrect.

batbelt n. Many hackers routinely hang numerous devices such as pagers,
   cell-phones, personal organizers, leatherman multitools, pocket knives,
   flashlights, walkie-talkies, even miniature computers from their belts.
   When many of these devices are worn at once, the hacker's belt somewhat
   resembles Batman's utility belt; hence it is referred to as a batbelt.

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. `batching up': 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.

Batman factor n. 1. An integer number representing the number of items
   hanging from a batbelt. In most settings, a Batman factor of more than
   3 is not acceptable without odd stares and whispering. This encourages
   the hacker in question to choose items for the batbelt carefully to
   avoid awkward social situations, usually amongst non-hackers. 2. A
   somewhat more vaguely defined index of contribution to sense 1. Devices
   that are especially obtrusive, such as large, older model cell phones,
   "Pocket" PC devices and walkie talkies are said to have a high batman
   factor. Sleeker devices such as a later-model Palm or StarTac phone are
   prized for their low batman factor and lessened obtrusiveness and
   weight.

baud /bawd/ n. [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.

   Historical note: `baud' was originally a unit of telegraph signalling
   speed, set at one pulse per second. It was proposed at the November,
   1926 conference of the Comite' Consultatif International Des
   Communications Te'le'graphiques as an improvement on the then standard
   practice of referring to line speeds in terms of words per minute, and
   named for Jean Maurice Emile Baudot (1845-1903), a French engineer who
   did a lot of pioneering work in early teleprinters.

baud barf /bawd barf/ n. The garbage one gets on a terminal (or
   terminal emulator) 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. [common] 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)."

bazaar n.,adj. In 1997, after meditating on the success of Linux for
   three years, the Jargon File's own editor ESR wrote an analytical paper
   on hacker culture and development models titled The Cathedral and the
   Bazaar (http://www.tuxedo.org/~esr/writings/cathedral-bazaar/). The main
   argument of the paper was that Brooks's Law is not the whole story;
   given the right social machinery, debugging can be efficiently
   parallelized across large numbers of programmers. The title metaphor
   caught on (see also cathedral), and the style of development typical
   in the Linux community is now often referred to as the bazaar mode. Its
   characteristics include releasing code early and often, and actively
   seeking the largest possible pool of peer reviewers. After 1998, the
   evident success of this way of doing things became one of the strongest
   arguments for open source.

bboard /bee'bord/ n. [contraction of `bulletin board'] 1. Any
   electronic bulletin board; esp. used of BBS systems running on
   personal micros, less frequently of a Usenet newsgroup (in fact, use
   of this 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 an old-fashioned, non-electronic cork-and-thumbtack
   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/ n. [common; abbreviation, `Bulletin Board System'] 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 groups. The term was especially applied to the
   thousands of local BBS systems that operated during the pre-Internet
   microcomputer era of roughly 1980 to 1995, 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 tended to consider local BBSes the low-rent
   district of the hacker culture, but they served a valuable function by
   knitting together lots of hackers and users in the personal-micro world
   who would otherwise have been unable to exchange code at all.
   Post-Internet, BBSs are likely to be local newsgroups on an ISP;
   efficiency has increased but a certain flavor has been lost. See also
   bboard.

BCPL // n. [abbreviation, `Basic Combined Programming Language') A
   programming language developed by Martin Richards in Cambridge in 1967.
   It is remarkable for its rich syntax, small size of compiler (it can be
   run in 16k) and extreme portability. It reached break-even point at a
   very early stage, and was the language in which the original hello
   world
program was written. It has been ported to so many different
   systems that its creator confesses to having lost count. It has only one
   data type (a machine word) which can be used as an integer, a character,
   a floating point number, a pointer, or almost anything else, depending
   on context. BCPL was a precursor of C, which inherited some of its
   features.

beam vt. [from Star Trek Classic's "Beam me up, Scotty!"] 1. 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'. 2. Palm
   Pilot users very commonly use this term for the act of exchanging bits
   via the infrared links on their machines (this term seems to have
   originated with the ill-fated Newton Message Pad). Compare blast,
   snarf, BLT.

beanie key n. [Mac users] See command key.

beep n.,v. Syn. feep. This term is techspeak under MS-DOS and OS/2,
   and seems to be generally preferred among micro hobbyists.

Befunge n. A worthy companion to INTERCAL; a computer language family
   which escapes the quotidian limitation of linear control flow and
   embraces program counters flying through multiple dimensions with exotic
   topologies. The Befunge home page is at
   `http://www.catseye.mb.ca/esoteric/befunge/'.

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

bells and whistles n. [common] 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. The recognized emphatic form is "bells, whistles, and gongs".

   It used to be thought that this term derived from the toyboxes on
   theater organs. However, the "and gongs" strongly suggests a different
   origin, at sea. Before powered horns, ships routinely used bells,
   whistles, and gongs to signal each other over longer distances than
   voice can carry.

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 n. [techspeak] 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.

   Note to British and Commonwealth readers: that's /berk'lee/, not
   /bark'lee/ as in British Received Pronunciation.

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

Berzerkeley /b*r-zer'klee/ n. [from `berserk', via the name of a
   now-deceased record label; poss. originated by famed columnist Herb
   Caen] Humorous distortion of `Berkeley' used esp. to refer to the
   practices or products of the BSD Unix hackers. See software bloat,
   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. Mostly working,
   but still under test; usu. used with `in': `in beta'. In the Real
   World
, hardware or software systems often go through two stages of
   release testing: Alpha (in-house) and Beta (out-house?). Beta releases
   are generally made to a group of lucky (or unlucky) trusted customers.
   2. Anything that is new and experimental. "His girlfriend is in beta"
   means that he is still testing for compatibility and reserving judgment.
   3. Flaky; dubious; suspect (since beta software is notoriously buggy).

   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 (or self-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, and the D test was
   the C test repeated after the model had been in production a while.

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'. In some parts of the U.S. this abbreviation
   was probably reinforced by a company called Browning-Ferris Industries
   in the waste-management business; a large BFI logo in white-on-blue
   could be seen on the sides of garbage trucks.

bible n. 1. One of a small number of fundamental source books such as
   Knuth, K&R, or the Camel Book. 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, InterCaps.

B1FF /bif/ [Usenet] (alt. `BIFF') n. The most famous pseudo, and the
   prototypical newbie. Articles from B1FF feature 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 naivete. B1FF posts articles using his elder
   brother's VIC-20. B1FF'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 B1FF is a denizen of BITNET is
   supported by B1FF's (unfortunately invalid) electronic mail address:
   B1FF@BIT.NET.

   [1993: Now It Can Be Told! My spies inform me that B1FF was originally
   created by Joe Talmadge <jat@cup.hp.com>, also the author of the
   infamous and much-plagiarized "Flamer's Bible". The BIFF filter he wrote
   was later passed to Richard Sexton, who posted BIFFisms much more
   widely. Versions have since been posted for the amusement of the net at
   large. See also Jeff K. --ESR]

BI // Common written abbreviation for Breidbart Index.

biff /bif/ vt. To notify someone of incoming mail. From the BSD utility
   `biff(1)', which was in turn named after a friendly dog who used to
   chase frisbees in the halls at UCB while 4.2BSD was in development.
   There was a legend that it had a habit of barking whenever the mailman
   came, but the author of `biff' says this is not true. No relation to
   B1FF.

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) 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. [common] 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 n. [IBM] 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 TLAs, 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 mainframes 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 n. (Also `Big Blue Room') 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. 1. [common] Major success. 2. [MIT] 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 adj. [common; 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] 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 are big-endian. Big-endian byte order is also sometimes
   called `network order'. See little-endian, middle-endian, NUXI
   problem
, swab. 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.
   Most gateway sites have ad-hockery in their mailers to handle this,
   but can still be confused. In particular, the address
   me@uk.ac.bris.pys.as could be interpreted in JANET's big-endian way as
   one in the U.K. (domain uk) or in the standard little-endian way as one
   in the domain as (American Samoa) on the opposite side of the world.

bignum /big'nuhm/ n. [common; orig. from MIT MacLISP] 1. [techspeak] A
   multiple-precision computer representation for very large integers. 2.
   More generally, any very large number. "Have you ever looked at the
   United States Budget? There's bignums for you!" 3. [Stanford] In
   backgammon, large numbers on the dice 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 2^(31)
   (2,147,483,648) or (on a 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. [common] 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'. Real 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 truly said
   "You can tell a bigot, but you can't tell him much." Compare weenie,
   Amiga Persecution Complex.

binary four n. [Usenet] The finger, in the sense of `digitus
   impudicus'. This comes from an analogy between binary and the hand, i.e.
   1=00001=thumb, 2=00010=index finger, 3=00011=index and thumb, 4=00100.
   Considered silly. Prob. from humorous derivative of finger, sense 4.

bit n. [from the mainstream meaning and `Binary digIT'] 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 a 1948 paper by information theorist Claude Shannon, and was there
   credited to the early computer scientist John Tukey (who also seems to
   have coined the term `software'). Tukey records that `bit' evolved over
   a lunch table as a handier alternative to `bigit' or `binit', at a
   conference in the winter of 1943-44.

bit bang n. Transmission of data on a serial line, when accomplished by
   rapidly tweaking a single output bit, in software, 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 wannabees.

   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 returned to use in the early 1990s on
   some RISC architectures because it consumes such an infinitesimal part
   of the processor that it actually makes sense not to have a UART.
   Compare cycle of reincarnation.

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. [very common] 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 landed 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 variant for the analogy with particle decay. See also
   computron, quantum bogodynamics.

bit rot n. [common] 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. [very common] 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 becomes 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 even more of a 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). The Teletype
   Model 33 was actually designed before ASCII existed, and was originally
   intended to use a code that contained these two rows:

           low bits
     high  0000  0010  0100  0110  1000  1010  1100  1110
     bits     0001  0011  0101  0111  1001  1011  1101  1111
       10   )  ! bel #  $  % wru &  *  (  "  :  ?  _  ,   .
       11   0  1  2  3  4  5  6  7  8  9  '  ;  /  - esc del
  
   The result would have been something closer to a normal keyboard. But
   as it happened, Teletype had to use a lot of persuasion just to keep
   ASCII, and the Model 33 keyboard, from looking like this instead:

               !  "  ?  $  '  &  -  (  )  ;  :  *  /  ,  .
            0  1  2  3  4  5  6  7  8  9  +  ~  <  >  ×  |
  
   Teletype's 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. Either choice was supported by the ANSI
   computer keyboard standard, X4.14-1971, which referred to the
   alternatives as `logical bit pairing' and `typewriter pairing'. 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, X4.14 was superseded by
   X4.23-1982, `bit-paired' hardware was quickly junked or relegated to
   dusty corners, and both terms passed into disuse.

   However, in countries without a long history of touch typing, the
   argument against the bit-paired keyboard layout was weak or nonexistent.
   As a result, the standard Japanese keyboard, used on PCs, Unix boxen
   etc. still has all of the !"#$%&'() characters above the numbers in the
   ASR-33 layout.

bitblt /bit'blit/ n. [from BLT, q.v.] 1. [common] 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/ n., obs. [acronym: Because It's Time NETwork]
   Everybody's least favorite piece of the network (see the network) -
   until AOL happened. The BITNET hosts were 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 was also notorious as the apparent home of B1FF. By 1995 it
   had, much to everyone's relief, been obsolesced and absorbed into the
   Internet. Unfortunately, around this time we also got AOL.

bits pl.n. 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.

bixen pl.n. Users of BIX (the BIX Information eXchange, formerly the
   Byte Information eXchange). Parallels other plurals like boxen, VAXen,
   oxen.

bixie /bik'see/ n. Variant emoticons used on BIX (the BIX Information
   eXchange). The most common (smiley) bixie is <@_@>, representing two
   cartoon eyes and a mouth. These were originally invented in an SF
   fanzine called APA-L and imported to BIX by one of the earliest users.

black art n. [common] 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 hat [common among security specialists] A cracker, someone bent
   on breaking into the system you are protecting. Oppose the less comon
   `white hat' for an ally or friendly security specialist; the term `gray
   hat' is in occasional use for people with cracker skills operating
   within the law, e.g. in doing security evaluations. All three terms
   derive from the dress code of formulaic Westerns, in which bad guys wore
   black hats and good guys white ones.

black hole n.,vt. [common] What data (a piece of email or netnews, or a
   stream of TCP/IP packets) has fallen into if it disappears mysteriously
   between its origin and destination sites (that is, without returning a
   bounce message). "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. Readily verbed as
   `blackhole': "That router is blackholing IDP packets." Compare bit
   bucket
and see RBL.

black magic n. [common] 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).

Black Screen of Death n. [prob. related to the Floating Head of Death
   in a famous "Far Side" cartoon.] A failure mode of Microsloth Windows.
   On an attempt to launch a DOS box, a networked Windows system not
   uncommonly blanks the screen and locks up the PC so hard that it
   requires a cold boot to recover. This unhappy phenomenon is known as
   The Black Screen of Death. See also Blue Screen of Death, which has
   become rather more common.

Black Thursday n. February 8th, 1996 - the day of the signing into law
   of the CDA, so called by analogy with the catastrophic "Black Friday"
   in 1929 that began the Great Depression.

blammo v. [Oxford Brookes University and alumni, UK] To forcibly remove
   someone from any interactive system, especially talker systems. The
   operators, who may remain hidden, may `blammo' a user who is
   misbehaving. Very similar to MIT gun; in fact, the `blammo-gun' is a
   notional device used to `blammo' someone. While in actual fact the only
   incarnation of the blammo-gun is the command used to forcibly eject a
   user, operators speak of different levels of blammo-gun fire; e.g., a
   blammo-gun to `stun' will temporarily remove someone, but a blammo-gun
   set to `maim' will stop someone coming back on for a while.

blargh /blarg/ n. [MIT; now common] 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. v.,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/ interj. [very common; from Yiddish/German `brechen', to
   vomit, poss. via comic-strip exclamation `blech'] 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, bagbiting, 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.

blink vi.,n. To use a navigator or off-line message reader to minimize
   time spent on-line to a commercial network service (a necessity in many
   places outside the U.S. where the telecoms monopolies charge per-minute
   for local calls). This term attained wide use in the UK, but is rare or
   unknown in the US.

blinkenlights /blink'*n-li:tz/ n. [common] Front-panel diagnostic
   lights on a computer, esp. a dinosaur. Now that dinosaurs are rare,
   this term usually refers to status lights on a modem, network hub, or
   the like.

   This term 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.

   Old-time hackers sometimes get nostalgic for blinkenlights because
   they were so much more fun to look at than a blank panel. Sadly, very
   few computers still have them (the three LEDs on a PC keyboard certainly
   don't count). The obvious reasons (cost of wiring, cost of front-panel
   cutouts, almost nobody needs or wants to interpret machine-register
   states on the fly anymore) are only part of the story. Another part of
   it is that radio-frequency leakage from the lamp wiring was beginning to
   be a problem as far back as transistor machines. But the most
   fundamental fact is that there are very few signals slow enough to blink
   an LED these days! With slow CPUs, you could watch the bus register or
   instruction counter tick, but at 33/66/150MHz it's all a blur.

   Despite this, a couple of relatively recent computer designs of note
   have featured programmable blinkenlights that were added just because
   they looked cool. The Connection Machine, a 65,536-processor parallel
   computer designed in the mid-1980s, was a black cube with one side
   covered with a grid of red blinkenlights; the sales demo had them
   evolving life patterns. A few years later the ill-fated BeBox (a
   personal computer designed to run the BeOS operating system) featured
   twin rows of blinkenlights on the case front. When Be, Inc. decided to
   get out of the hardware business in 1996 and instead ported their OS to
   the PowerPC and later to the Intel architecture, many users severly
   suffered from the absence of their beloved blinkenlights. Before long an
   external version of the blinkenlights driven by a PC serial port became
   available; there is some sort of plot symmetry in the fact that it was
   assembled by a German.

   Finally, a version updated for the Internet has been seen on
   news.admin.net-abuse.email:

                    ACHTUNG! ALLES LOOKENSPEEPERS!
  
     Das Internet is nicht fuer gefingerclicken und giffengrabben. Ist
     easy droppenpacket der routers und overloaden der backbone mit der
     spammen und der me-tooen.  Ist nicht fuer gewerken bei das
     dumpkopfen. Das mausklicken sichtseeren keepen das bandwit-spewin
     hans in das pockets muss; relaxen und watchen das cursorblinken.
  
   This newest version partly reflects reports that the word
   `blinkenlights' is (in 1999) undergoing something of a revival in usage,
   but applied to networking equipment. The transmit and receive lights on
   routers, activity lights on switches and hubs, and other network
   equipment often blink in visually pleasing and seemingly coordinated
   ways. Although this is different in some ways from register readings, a
   tall stack of Cisco equipment or a 19-inch rack of ISDN terminals can
   provoke a similar feeling of hypnotic awe, especially in a darkened
   network operations center or server room.

blit /blit/ vt. 1. [common] 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.
   [historical, rare] Sometimes 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. Its creators liked to claim
   that "Blit" stood for the Bacon, Lettuce, and Interactive Tomato.)

blitter /blit'r/ n. [common] 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 since 1990 the trend has been away from them (however, see
   cycle of reincarnation). Syn. raster blaster.

blivet /bliv'*t/ n. [allegedly from a World War II military term
   meaning "ten pounds of manure in a five-pound bag"] 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. 6. In the subjargon of computer
   security specialists, a denial-of-service attack performed by hogging
   limited resources that have no access controls (for example, shared
   spool space on a multi-user system).

   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.

bloatware n. [common] Software that provides minimal functionality
   while requiring a disproportionate amount of diskspace and memory.
   Especially used for application and OS upgrades. This term is very
   common in the Windows/NT world. So is its cause.

BLOB 1. n. [acronym: Binary Large OBject] Used by database people to
   refer to any random large block of bits that 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 that cannot be interpreted within the
   database itself. 2. v. To mailbomb someone by sending a BLOB to
   him/her; esp. used as a mild threat. "If that program crashes again, I'm
   going to BLOB the core dump to you."

block v. [common; 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."

Bloggs Family n. An imaginary family consisting of Fred and Mary Bloggs
   and their children. Used as a standard example in knowledge
   representation to show the difference between extensional and
   intensional objects. For example, every occurrence of "Fred Bloggs" is
   the same unique person, whereas occurrences of "person" may refer to
   different people. Members of the Bloggs family have been known to pop up
   in bizarre places such as the old DEC Telephone Directory. Compare
   Dr. Fred Mbogo; J. Random Hacker; Fred Foobar.

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 arose 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. The usage lives on (it's too
   vivid and expressive to discard) 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. [prob. from mining and tunneling jargon] 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 four 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
   three 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 book also has green and red siblings). 3. Any of
   the 1988 standards issued by the CCITT's ninth plenary assembly. These
   include, among other things, the X.400 email spec and the Group 1
   through 4 fax standards. See also book titles.

blue box n. 1. obs. Once upon a time, before all-digital switches made
   it possible for the phone companies to move them out of band, one could
   actually hear the switching tones used to route long-distance calls.
   Early phreakers built devices called `blue boxes' that could reproduce
   these tones, which could be used to commandeer portions of the phone
   network. (This was not as hard as it may sound; one early phreak
   acquired the sobriquet `Captain Crunch' after he proved that he could
   generate switching tones with a plastic whistle pulled out of a box of
   Captain Crunch cereal!) There were other colors of box with more
   specialized phreaking uses; red boxes, black boxes, silver boxes, etc.
   There were boxes of other colors
   (http://www.ElfQrin.com/docs/hakref/phrkbox/phreakboxes.html) as well,
   but the blue box was the original and archetype. 2. n. An IBM machine,
   especially a large (non-PC) one.

Blue Glue n. [IBM; obs.] IBM's SNA (Systems Network Architecture), an
   incredibly losing and bletcherous communications protocol once
   widely favored at commercial shops that didn't know any better (like
   other proprietary networking protocols, it became obsolete and
   effectively disappeared after the Internet explosion c.1994). The
   official IBM definition is "that which binds blue boxes together." See
   fear and loathing. It may not be irrelevant that Blue Glue is the
   trade name of a 3M product that is commonly used to hold down the carpet
   squares to the removable panel floors common in dinosaur pens. A
   correspondent at U. Minn. reports that the CS department there has about
   80 bottles of the stuff hanging about, so they often refer to any messy
   work to be done as `using the blue glue'.

blue goo n. Term for `police' nanobots 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. The term `Blue Goo' can be found in Dr. Seuss's "Fox
   In Socks" to refer to a substance much like bubblegum. `Would you like
   to chew blue goo, sir?'. See nanotechnology.

Blue Screen of Death n. [common] This term is closely related to the
   older Black Screen of Death but much more common (many non-hackers
   have picked it up). Due to the extreme fragility and bugginess of
   Microsoft Windows, misbehaving applications can readily crash the OS
   (and the OS sometimes crashes itself spontaneously). The Blue Screen of
   Death, sometimes decorated with hex error codes, is what you get when
   this happens. (Commonly abbreviated BSOD.)

   The following entry from the Salon Haiku Contest
   (http://www.salonmagazine.com/21st/chal/1998/02/10chal2.html), seems to
   have predated popular use of the term:

             Windows NT crashed.
             I am the Blue Screen of Death
             No one hears your screams.
  
blue wire n. [IBM] Patch wires (esp. 30 AWG gauge) added to circuit
   boards at the factory to correct design or fabrication problems. Blue
   wire is not necessarily blue, the term describes function rather than
   color. These may be necessary if there hasn't been time to design and
   qualify another board version. In Great Britain this can be `bodge
   wire', after mainstream slang `bodge' for a clumsy improvisation or
   sloppy job of work. Compare purple wire, red wire, yellow wire,
   pink wire.

blurgle /bler'gl/ n. [UK] Spoken metasyntactic variable, to indicate
   some text that is obvious from context, or which is already known. If
   several words are to be replaced, blurgle may well be doubled or
   tripled. "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
   7.

BNF /B-N-F/ n. 1. [techspeak] Acronym for `Backus Normal Form' (later
   retronymed to `Backus-Naur Form' because BNF was not in fact a normal
   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:

      <postal-address> ::= <name-part> <street-address> <zip-part>
  
      <personal-part> ::= <name> | <initial> "."
  
      <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
                    | <personal-part> <name-part>
  
      <street-address> ::= [<apt>] <house-num> <street-name> <EOL>
  
      <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
  
   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. Any of a number of variants and
   extensions of BNF proper, 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, a `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 (but see usage note under bboard, sense 1). 2. An
   electronic circuit board.

boat anchor n. [common; from ham radio] 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. 3.
   Obsolete but still working hardware, especially when used of an old
   S100-bus hobbyist system; originally a term of annoyance, but became
   more and more affectionate as the hardware became more and more
   obsolete.

bob n. At Demon Internet (http://www.demon.net/), all tech support
   personnel are called "Bob". (Female support personnel have an option on
   "Bobette"). This has nothing to do with Bob the divine
   drilling-equipment salesman of the Church of the SubGenius. Nor is it
   acronymized from "Brother Of BOFH", though all parties agree it could
   have been. Rather, it was triggered by an unusually large draft of new
   tech-support people in 1995. It was observed that there would be much
   duplication of names. To ease the confusion, it was decided that all
   support techs would henceforth be known as "Bob", and identity badges
   were created labelled "Bob 1" and "Bob 2". ("No, we never got any
   further" reports a witness).

   The reason for "Bob" rather than anything else is due to a luser
   calling and asking to speak to "Bob", despite the fact that no "Bob" was
   currently working for Tech Support. Since we all know "the customer is
   always right", it was decided that there had to be at least one "Bob" on
   duty at all times, just in case.

   This sillyness inexorably snowballed. Shift leaders and managers began
   to refer to their groups of "bobs". Whole ranks of support machines were
   set up (and still exist in the DNS as of 1999) as bob1 through bobN.
   Then came alt.tech-support.recovery, and it was filled with Demon
   support personnel. They all referred to themselves, and to others, as
   `bob', and after a while it caught on.There is now a Bob Code
   (http://bob.bob.bofh.org/~giolla/bobcode.html) describing the Bob
   nature.

BOF /B-O-F/ or /bof/ n. 1. [common] 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. 2.
   Acronym, `Beginning of File'.

BOFH // n. [common] Acronym, Bastard Operator From Hell. A system
   administrator with absolutely no tolerance for lusers. "You say you
   need more filespace? <massive-global-delete> Seems to me you have plenty
   left..." Many BOFHs (and others who would be BOFHs if they could get
   away with it) hang out in the newsgroup alt.sysadmin.recovery, although
   there has also been created a top-level newsgroup hierarchy (bofh.*) of
   their own.

   Several people have written stories about BOFHs. The set usually
   considered canonical is by Simon Travaglia and may be found at the
   Bastard Home Page (http://bofh.ntk.net/Bastard.html). BOFHs and BOFH
   wannabes hang out on scary devil monastery and wield LARTs.

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." Esp. appropriate
   for algorithms with factorial or super-exponential running time in the
   average case and probabilistically infinite worst-case running time.
   Compare bogus, brute force, lasherism.

   A spectacular variant of bogo-sort has been proposed which has the
   interesting property that, if the Many Worlds interpretation of quantum
   mechanics is true, it can sort an arbitrarily large array in linear
   time. (In the Many-Worlds model, the result of any quantum action is to
   split the universe-before into a sheaf of universes-after, one for each
   possible way the state vector can collapse; in any one of the
   universes-after the result appears random.) The steps are: 1. Permute
   the array randomly using a quantum process, 2. If the array is not
   sorted, destroy the universe (checking that it is sorted requires O(n)
   time). Implementation of step 2 is left as an exercise for the reader.

bogometer /boh-gom'-*t-er/ n. A notional instrument for measuring
   bogosity. Compare the Troll-O-Meter and the `wankometer' described
   in the wank entry; see also bogus.

BogoMIPS /bo'go-mips/ n. The number of million times a second a
   processor can do absolutely nothing. The Linux OS measures BogoMIPS at
   startup in order to calibrate some soft timing loops that will be used
   later on; details at the BogoMIPS mini-HOWTO (http://www.clifton.nl/).
   The name Linus chose, of course, is an ironic comment on the uselessness
   of all _other_ MIPS figures.

bogon /boh'gon/ n. [very common; 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 and note that Arthur Dent actually mispronounces `Vogons' as
   `Bogons' at one point] 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, or sometimes of lameness). 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. [orig. CMU, now very common] The degree
   to which something is bogus. 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. 2. The potential field generated by a bogon flux; see
   quantum bogodynamics. See also bogon flux, bogon filter, bogus.

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 there about
   1975-76. These coinages spread into hackerdom from CMU and MIT. Most of
   them remained wordplay objects rather than actual vocabulary items or
   live metaphors. Examples: `amboguous' (having multiple bogus
   interpretations); `bogotissimo' (in a gloriously bogus manner);
   `bogotophile' (one who is pathologically fascinated by the bogus);
   `paleobogology' (the study of primeval bogosity).

   Some bogowords, however, obtained sufficient live currency to be
   listed elsewhere in this lexicon; see bogometer, bogon, bogotify,
   and quantum bogodynamics and the related but unlisted Dr. Fred
   Mbogo
.

   By the early 1980s `bogus' was also current in something like hacker
   usage 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".
   According to Merriam-Webster, the word dates back to 1825 and originally
   referred to a counterfeiting machine.

Bohr bug /bohr buhg/ n. [from quantum physics] 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: variously ascribed to the TV series "Cheers"
   "Moonlighting", and "Soap"] 1. v. To have sex with; compare bounce,
   sense 3. (This is mainstream slang.) In Commonwealth hackish the variant
   `bonk' is more common. 2. n. 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 meditation, in which 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 n. 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 U.S. MUD community, it has
   become traditional to express pique or censure by `bonking' the
   offending person. Convention holds that one should acknowledge a bonk by
   saying `oif!' and there is 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. Note: in parts of the U.K. `bonk' is a sexually loaded slang
   term; care is advised in transatlantic conversations (see boink).
   Commonwealth hackers report a similar convention involving the
   `fish/bang' balance. See also talk mode.

book titles: There is a tradition in hackerdom of informally tagging
   important textbooks and standards documents with the dominant color of
   their covers or with some other conspicuous feature of the cover. Many
   of these are described in this lexicon under their own entries. See
   Aluminum Book, Blue Book, Camel Book, Cinderella Book, Devil
   Book
, Dragon Book, Green Book, Orange Book, Purple Book, Red
   Book
, Silver Book, White Book, Wizard Book, Yellow Book, and
   bible; see also rainbow series. Since about 1983 this tradition has
   gotten a boost from the popular O'Reilly and Associates line of
   technical books, which usually feature some kind of exotic animal on the
   cover.

boot v.,n. [techspeak; from `by one's bootstraps'] 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 (sense 4) 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.

Borg n. In "Star Trek: The Next Generation" the Borg is a species of
   cyborg that ruthlessly seeks to incorporate all sentient life into
   itself; their slogan is "You will be assimilated. Resistance is futile."
   In hacker parlance, the Borg is usually Microsoft, which is thought to
   be trying just as ruthlessly to assimilate all computers and the entire
   Internet to itself (there is a widely circulated image of Bill Gates as
   a Borg). Being forced to use Windows or NT is often referred to as being
   "Borged". Interestingly, the Halloween Documents reveal that this
   jargon is live within Microsoft itself. (Other companies, notably Intel
   and UUNet, have also occasionally been equated to the Borg.) See also
   Evil Empire, Internet Exploiter.

   In IETF circles, where direct pressure from Microsoft is not a daily
   reality, the Borg is sometimes Cisco. This usage commemmorates their
   tendency to pay any price to hire talent away from their competitors. In
   fact, at the Spring 1997 IETF, a large number of ex-Cisco employees, all
   former members of Routing Geeks, showed up with t-shirts printed with
   "Recovering Borg".

borken adj. (also `borked') Common deliberate typo for `broken'.

bot n [common on IRC, MUD and among gamers; from `robot'] 1. An IRC
   or MUD user who is actually a program. On IRC, typically the robot
   provides some useful service. Examples are NickServ, which tries to
   prevent random users from adopting nicks already claimed by others,
   and MsgServ, which allows one to send asynchronous messages to be
   delivered when the recipient signs on. Also common are `annoybots', such
   as KissServ, which perform no useful function except to send cute
   messages to other people. Service bots are less common on MUDs; but some
   others, such as the `Julia' bot active in 1990-91, have been remarkably
   impressive Turing-test experiments, able to pass as human for as long as
   ten or fifteen minutes of conversation. 2. An AI-controlled player in a
   computer game (especially a first-person shooter such as Quake) which,
   unlike ordinary monsters, operates like a human-controlled player, with
   access to a player's weapons and abilities. An example can be found at
   `http://www.telefragged.com/thefatal/'. 3. Term used, though less
   commonly, for a web spider. The file for controlling spider behavior
   on your site is officially the "Robots Exclusion File" and its URL is
   "http://<somehost>/robots.txt")

   Note that bots in all senses were `robots' when the terms first
   appeared in the early 1990s, but the shortened form is now habitual.

bottom feeder n. 1. An Internet user that leeches off ISPs - the sort
   you can never provide good enough services for, always complains about
   the price, no matter how low it may be, and will bolt off to another
   service the moment there is even the slimmest price difference. While
   most bottom feeders infest free or almost free services such as AOL,
   MSN, and Hotmail, too many flock to whomever happens to be the cheapest
   regional ISP at the time. Bottom feeders are often the classic problem
   user, known for unleashing spam, flamage, and other breaches of
   netiquette. 2. Syn. for slopsucker, derived from the fishermen's and
   naturalists' term for finny creatures who subsist on the primordial
   ooze. (This sense is older.)

bottom-up implementation n. Hackish opposite of the techspeak term
   `top-down design'. It has been 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. Naively
   applied, this leads to hacked-together bottom-up implementations; a more
   sophisticated response is `middle-out implementation', in which scratch
   code within primitives at the mid-level of the system is gradually
   replaced with a more polished version of the lowest level at the same
   time the structure above the midlevel is being built.

bounce v. 1. [common; perhaps by analogy to a bouncing check] 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. The now-demolished D. C.
   Power Lab
building used by the Stanford AI Lab in the 1970s had 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
   would come over the intercom the 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 (possibly editing a
   configuration file in the process, if it is one that is only re-read at
   boot time). Reported primarily among VMS and Unix users. 5. [VM/CMS
   programmers] _Automatic_ warm-start of a machine after an error. "I
   logged on this morning and found it had bounced 7 times during the
   night" 6. [IBM] To power cycle a peripheral in order to reset it.

bounce message n. [common] 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, sense 1).
   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 and software laser. The
   terms `bounce mail' and `barfmail' are also common.

boustrophedon n. [from a Greek word for turning like an ox while
   plowing] An ancient method of writing using alternate left-to-right and
   right-to-left lines. This term is actually philologists' techspeak and
   typesetters' jargon. Erudite hackers use it for an optimization
   performed by some computer typesetting software and moving-head
   printers. 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. [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, 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/ pl.n. [very common; by analogy with VAXen] 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/ adj. [from the name of a TV clown
   even more losing than Ronald McDonald] 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. [common] 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 that is the braino itself. E.g., typing `dir' on a Unix box after
   a session with DOS.

brain-damaged adj. 1. [common; 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 product it is intended to sell. Syn.
   crippleware.

brain-dead adj. [common] 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.

brainwidth n.[Great Britain] Analagous to bandwidth but used strictly
   for human capacity to process information and especially to multitask.
   "Writing email is taking up most of my brainwidth right now, I can't
   look at that Flash animation."

bread crumbs n. 1. 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 or the older French folktale of Thumbelina; in several
   variants of these, a character leaves a trail of bread crumbs so as not
   to get lost in the woods. 2. In user-interface design, any feature that
   allows some tracking of where you've been, like coloring visited links
   purple rather than blue in Netscape (also called `footprinting').

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), delete or control-C 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 working versions of
   FOOGOL to develop newer ones. This is an important milestone; see
   MFTL.

   Since this entry was first written, several correspondents have
   reported that there actually was a compiler for a tiny Algol-like
   language called Foogol floating around on various VAXen in the early
   and mid-1980s. A FOOGOL implementation is available at the
   Retrocomputing Museum `http://www.tuxedo.org/retro'.

breath-of-life packet n. [XEROX PARC] An Ethernet packet that contains
   bootstrap (see boot) code, periodically sent out from a working
   computer to infuse the `breath of life' into any computer on the network
   that has 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.

   The notional `kiss-of-death packet', with a function complementary to
   that of a breath-of-life packet, is recommended for dealing with hosts
   that consume too many network resources. Though `kiss-of-death packet'
   is usually used in jest, there is at least one documented instance of an
   Internet subnet with limited address-table slots in a gateway machine in
   which such packets were routinely used to compete for slots, rather like
   Christmas shoppers competing for scarce parking spaces.

breedle n. See feep.

Breidbart Index /bri:d'bart ind*ks/ A measurement of the severity of
   spam invented by long-time hacker Seth Breidbart, used for programming
   cancelbots. The Breidbart Index takes into account the fact that
   excessive multi-posting EMP is worse than excessive cross-posting
   ECP. The Breidbart Index is computed as follows: For each article in a
   spam, take the square-root of the number of newsgroups to which the
   article is posted. The Breidbart Index is the sum of the square roots of
   all of the posts in the spam. For example, one article posted to nine
   newsgroups and again to sixteen would have BI = sqrt(9) + sqrt(16) = 7.
   It is generally agreed that a spam is cancelable if the Breidbart Index
   exceeds 20.

   The Breidbart Index accumulates over a 45-day window. Ten articles
   yesterday and ten articles today and ten articles tomorrow add up to a
   30-article spam. Spam fighters will often reset the count if you can
   convince them that the spam was accidental and/or you have seen the
   error of your ways and won't repeat it. Breidbart Index can accumulate
   over multiple authors. For example, the "Make Money Fast" pyramid scheme
   exceeded a BI of 20 a long time ago, and is now considered "cancel on
   sight".

bring X to its knees v. [common] 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 abnormal but 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 commercial software, which (due to closed-source development)
   displays the quality far more often than it ought to. Oppose robust.

broadcast storm n. [common] 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;
   compare mail storm.

brochureware n. Planned but non-existent product like vaporware, but
   with the added implication that marketing is actively selling and
   promoting it (they've printed brochures). Brochureware is often deployed
   as a strategic weapon; the idea is to con customers into not committing
   to an existing product of the competition's. It is a safe bet that when
   a brochureware product finally becomes real, it will be more expensive
   than and inferior to the alternatives that had been available for years.

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

broken arrow n. [IBM] 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.

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

broken-ring networkPejorative hackerism for "token-ring network", an
   early LAN technology from IBM that lost the standards war to Ethernet.
   Though token-ring survives in a few niche markets (such as factory
   automation) that put a high premium on resistance to electrical noise,
   the term is now (2000) primarily historical.

BrokenWindows n. Abusive hackerism for the crufty and elephantine
   X environment on Sun machines; properly called `OpenWindows'.

broket /broh'k*t/ or /broh'ket`/ n. [rare; by analogy with `bracket': a
   `broken bracket'] 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 expected advantage from
   splitting development 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
   (though it's not the whole story; see bazaar); too often, management
   still does. See also creationism, second-system effect, optimism.

brown-paper-bag bug n. A bug in a public software release that is so
   embarrassing that the author notionally wears a brown paper bag over his
   head for a while so he won't be recognized on the net. Entered popular
   usage after the early-1999 release of the first Linux 2.2, which had
   one. The phrase was used in Linus Torvalds's apology posting.

browser n. A program specifically designed to help users view and
   navigate hypertext, on-line documentation, or a database. While this
   general sense has been present in jargon for a long time, the
   proliferation of browsers for the World Wide Web after 1992 has made it
   much more popular and provided a central or default techspeak meaning of
   the word previously lacking in hacker usage. Nowadays, if someone
   mentions using a `browser' without qualification, one may assume it is a
   Web browser.

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 naive methods suited to small
   problems directly to large ones. The term can also be used in reference
   to programming style: brute-force programs are written in a heavyhanded,
   tedious way, full of repetition and devoid of any elegance or useful
   abstraction (see also brute force and ignorance).

   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 the cities be visited 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). Sometimes,
   unfortunately, there is no better general solution than brute force. 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 actually be considered stupid
   or not depends on the context; if the problem is not terribly 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 this sort of thing.
   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 Software Distribution'] a
   family of Unix versions for the DEC VAX and PDP-11 developed by
   Bill Joy and others at Berzerkeley starting around 1977, 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; descendants including Free/Open/NetBSD, BSD/OS
   and MacOS X are still widely popular. Note that BSD versions going back
   to 2.9 are often referred to by their version numbers alone, without the
   BSD prefix. See 4.2, and Unix.

BSOD /B-S-O-D/ Very common abbreviation for Blue Screen of Death.
   Both spoken and written.

BUAF // n. [abbreviation, from alt.fan.warlord] 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 // n. [abbreviation, from alt.fan.warlord] 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 blocks. 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 naive and untutored programmers, hackers
   consider it the canonical example of a naive algorithm. (However, it's
   been shown by repeated experiment that below about 5000 records
   bubble-sort is OK anyway.) 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 has long been rumored that `bucky bits' were named for Buckminster
   Fuller during a period when he was consulting at Stanford. Actually,
   bucky bits were invented by Niklaus Wirth when _he_ was at Stanford in
   1964-65; he first suggested the idea of an EDIT key to set the 8th bit
   of an otherwise 7-bit ASCII character). It seems that, unknown to Wirth,
   certain Stanford hackers had privately nicknamed him `Bucky' after a
   prominent portion of his dental anatomy, and this nickname transferred
   to the bit. Bucky-bit commands were used in a number of editors written
   at Stanford, including most notably TV-EDIT and NLS.

   The term spread to MIT and CMU early and is now in general use.
   Ironically, Wirth himself remained unaware of its derivation for nearly
   30 years, until GLS dug up this history in early 1993! See double
   bucky
, quadruple bucky.

buffer chuck n. Shorter and ruder syn. for buffer overflow.

buffer overflow n. What happens when you try to stuff more data into a
   buffer (holding area) than it can handle. This problem is commonly
   exploited by crackers to get arbitrary commands executed by a program
   running with root permissions. 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 crunches 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: Admiral Grace Hopper (an early computing pioneer
   better known for inventing COBOL) liked to tell a story in which a
   technician solved a 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 (NSWC). 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, 1947), reads "1545 Relay
   #70 Panel F (moth) in relay. First actual case of bug being found". This
   wording establishes 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 a more specific and rather
   modern use can be found in an electrical handbook from 1896 ("Hawkin's
   New Catechism of Electricity", Theo. Audel & Co.) which says: "The term
   `bug' is used to a limited extent to designate any fault or trouble in
   the connections or working of electric apparatus." It further notes that
   the term is "said to have originated in quadruplex telegraphy and have
   been transferred to all electric apparatus."

   The latter observation may explain a common folk etymology of the
   term; that it came from telephone company usage, in which "bugs in a
   telephone cable" were blamed for noisy lines. Though this derivation
   seems to be mistaken, it may well be a distorted memory of a joke first
   current among _telegraph_ operators more than a century ago!

   Or perhaps not a joke. Historians of the field inform us that the term
   "bug" was regularly used in the early days of telegraphy to refer to a
   variety of semi-automatic telegraphy keyers that would send a string of
   dots if you held them down. In fact, the Vibroplex keyers (which were
   among the most common of this type) even had a graphic of a beetle on
   them (and still do)! While the ability to send repeated dots
   automatically was very useful for professional morse code operators,
   these were also significantly trickier to use than the older manual
   keyers, and it could take some practice to ensure one didn't introduce
   extraneous dots into the code by holding the key down a fraction too
   long. In the hands of an inexperienced operator, a Vibroplex "bug" on
   the line could mean that a lot of garbled Morse would soon be coming
   your way.

   Further, the term "bug" has long been used among radio technicians to
   describe a device that converts electromagnetic field variations into
   acoustic signals. It is used to trace radio interference and look for
   dangerous radio emissions. Radio community usage derives from the
   roach-like shape of the first versions used by 19th century physicists.
   The first versions consisted of a coil of wire (roach body), with the
   two wire ends sticking out and bent back to nearly touch forming a spark
   gap (roach antennae). The bug is to the radio technician what the
   stethoscope is to the stereotypical medical doctor. This sense is almost
   certainly ancestral to modern use of "bug" for a covert monitoring
   device, but may also have contributed to the use of "bug" for the
   effects of radio interference itself.

   Actually, use of `bug' in the general sense of a disruptive event goes
   back to Shakespeare! (Henry VI, part III - Act V, Scene II: King Edward:
   "So, lie thou there. Die thou; and die our fear; For Warwick was a bug
   that fear'd us all.") 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."

   A careful discussion of the etymological issues can be found in a
   paper by Fred R. Shapiro, 1987, "Entomology of the Computer Bug: History
   and Folklore", American Speech 62(4):376-378.

   [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, but due to space and money constraints was not actually
   exhibited for years afterwards. Thus, the process of investigating the
   original-computer-bug bug fixed it in an entirely unexpected way, by
   making the myth true! --ESR]

bug-compatible adj. [common] Said of a design or revision that has been
   badly compromised by a requirement to be compatible with fossils or
   misfeatures 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.

bug-of-the-month club n. [from "book-of-the-month club", a time-honored
   mail-order-marketing technique in the U.S.] A mythical club which users
   of `sendmail(8)' (the Unix mail daemon) belong to; this was coined on
   the Usenet newsgroup comp.security.unix at a time when sendmail security
   holes, which allowed outside crackers access to the system, were being
   uncovered at an alarming rate, forcing sysadmins to update very often.
   Also, more completely, `fatal security bug-of-the-month club'. See also
   kernel-of-the-week club.

buglix /buhg'liks/ n. [uncommon] Pejorative term referring to DEC's
   ULTRIX operating system in its earlier _severely_ buggy versions. Still
   used to describe ULTRIX, but without nearly so much 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 -- a rare and valued quality.
   Implies that the programmer has thought of all possible errors, and
   added code to protect against each one. Thus, in some cases, this can
   imply code that is too heavyweight, due to excessive paranoia on the
   part of the programmer. Syn. armor-plated.

bullschildt /bul'shilt/ n. [comp.lang.c on USENET] A confident, but
   incorrect, statement about a programming language. This immortalizes a
   very bad book about C, Herbert Schildt's "C - The Complete Reference".
   One reviewer commented "The naive errors in this book would be
   embarassing even in a programming assignment turned in by a computer
   science college sophomore."

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
   1996, this term and the practice it describes are semi-obsolete. 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 the noun `bum' is a
   rude synonym for `buttocks' and the verb `bum' for buggery.

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 v. [from Lewis Carroll's "Jabberwocky"] 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." This is mainstream slang in some parts of England.

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 a CD v. To write a software or document distribution on writable
   CDROM. Coined from the fact that a laser is used to inscribe the
   information by burning small pits in the medium, and from the fact that
   disk comes out of the drive warm to the touch. Writable CDs can be done
   on a normal desk-top machine with a suitable drive (so there is no
   protracted release cycle associated with making them) but each one takes
   a long time to make, so they are not appropriate for volume production.
   Writable CDs are suitable for software backups and for
   short-turnaround-time low-volume software distribution, such as sending
   a beta release version to a few selected field test sites. Compare cut
   a tape
.

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.

   Historical note: the origin of "burn-in" (sense 1) is apparently the
   practice of setting a new-model airplane's brakes on fire, then
   extinguishing the fire, in order to make them hold better. This was done
   on the first version of the U.S. spy-plane, the U-2.

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 spinning
   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. In applications this is a
   wasteful technique, and best avoided on time-sharing systems where a
   busy-waiting program may hog the processor. However, it is often
   unavoidable in kernel programming. In the Linux world, kernel busy-waits
   are usually referred to as `spinlocks'.

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 never gets 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, esp. by applying an AC rather than DC
   signal. Some wire faults will pass DC tests but fail an AC 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."

buzzword-compliant [also `buzzword-enabled'] Used (disparagingly) of
   products that seem to have been specified to incorporate all of this
   month's trendy technologies. Key buzzwords that often show up in
   buzzword-compliant specifications as of 2001 include `XML', `Java',
   `peer-to-peer', `distributed', and `open'.

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

by hand adv. [common] 1. 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. 2. By extension, writing code which does
   something in an explicit or low-level way for which a presupplied
   library routine ought to have been available. "This cretinous B-tree
   library doesn't supply a decent iterator, so I'm having to walk the
   trees by hand."

byte: /bi:t/ n. [techspeak] 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 was coined by Werner Buchholz 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 word was coined by mutating the word `bite' so it would
   not be accidentally misspelled as bit. See also nybble.

byte sex n. [common] The byte sex of hardware is big-endian or
   little-endian; see those entries.

bytesexual /bi:t`sek'shu-*l/ adj. [rare] 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/ excl. [common; Usenet/Internet; punctuation
   varies] 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. (BCPL was in turn descended from an
   earlier Algol-derived language, CPL.) 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 or she 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 made the effort 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.

C&C // [common, esp. on news.admin.net-abuse.email] Contraction of
   "Coffee & Cats". This frequently occurs as a warning label on USENET
   posts that are likely to cause you to snarf coffee onto your keyboard
   and startle the cat off your lap.

C++ /C'-pluhs-pluhs/ n. Designed by Bjarne Stroustrup of AT&T Bell Labs
   as a successor to C. Now one of the languages of choice, although
   many hackers still grumble that it is the successor to either Algol 68
   or Ada (depending on generation), and a prime example of
   second-system effect. Almost anything that can be done in any language
   can be done in C++, but it requires a language lawyer to know what is
   and what is not legal-- the design is _almost_ too large to hold in even
   hackers' heads. Much of the cruft results from C++'s attempt to be
   backward compatible with C. Stroustrup himself has said in his
   retrospective book "The Design and Evolution of C++" (p. 207), "Within
   C++, there is a much smaller and cleaner language struggling to get
   out." [Many hackers would now add "Yes, and it's called Java" --ESR]

calculator [Cambridge] n. Syn. for bitty box.

Camel Book n. Universally recognized nickname for the book "Programming
   Perl", by Larry Wall and Randal L. Schwartz, O'Reilly and Associates
   1991, ISBN 0-937175-64-1 (second edition 1996, ISBN 1-56592-149-6; third
   edition 2000, 0-596-00027-8, adding as auhors Tom Christiansen and Jon
   Orwant but dropping Randal Schwartz). The definitive reference on
   Perl.

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, but this is more likely to be
   short for `cancel'. Alternatively, this term may derive from mainstream
   slang `canned' for being laid off or fired.

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. Some case variant of "can't happen" 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
   frequently they are triggered during development and how many headaches
   checking for them turns out to head off. See also firewall code (sense
   2).

cancelbot /kan'sel-bot/ [Usenet: compound, cancel + robot] 1.
   Mythically, a robocanceller 2. In reality, most cancelbots are
   manually operated by being fed lists of spam message IDs.

Cancelmoose[tm] /kan'sel-moos/ [Usenet] The archetype and model of all
   good spam-fighters. Once upon a time, the 'Moose would send out
   spam-cancels and then post notice anonymously to news.admin.policy,
   news.admin.misc, and alt.current-events.net-abuse. The 'Moose stepped to
   the fore on its own initiative, at a time (mid-1994) when spam-cancels
   were irregular and disorganized, and behaved altogether admirably -
   fair, even-handed, and quick to respond to comments and criticism, all
   without self-aggrandizement or martyrdom. Cancelmoose[tm] quickly gained
   near-unanimous support from the readership of all three above-mentioned
   groups.

   Nobody knows who Cancelmoose[tm] really is, and there aren't even any
   good rumors. However, the 'Moose now has an e-mail address
   (<moose@cm.org>) and a web site (`http://www.cm.org'.)

   By early 1995, others had stepped into the spam-cancel business, and
   appeared to be comporting themselves well, after the 'Moose's manner.
   The 'Moose has now gotten out of the business, and is more interested in
   ending spam (and cancels) entirely.

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 share this property. 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 similar gag in
   "Blazing Saddles" --ESR] 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 adj. [very common; historically, `according to religious
   law'] 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.

   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' has an interesting history. It 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 incessant use of
   jargon. Over his loud objections, GLS and RMS made a point of using as
   much of it 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 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. A variety of 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. Too frequently, one trivial
   syntax error (such as a missing `)' or `}') 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 or 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 n. [from `cut and paste'] 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.

   At DEC (now Compaq), this is sometimes called `clone-and-hack'
   coding.

casters-up mode n. [IBM, prob. fr. slang belly up] 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 "Some AI Koans" (Appendix A).

   A correspondent from England tells us that one of ICL's most talented
   systems designers used to be called out occasionally to service machines
   which the field circus had given up on. Since he knew the design
   inside out, he could often find faults simply by listening to a quick
   outline of the symptoms. He used to play on this by going to some site
   where the field circus had just spent the last two weeks solid trying to
   find a fault, and spreading a diagram of the system out on a table top.
   He'd then shake some chicken bones and cast them over the diagram, peer
   at the bones intently for a minute, and then tell them that a certain
   module needed replacing. The system would start working again
   immediately upon the replacement.

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
   (syn. blast). 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 delivers 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, because of its woefully unobvious name. It
   is far 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.... See also UUOC.

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.

cathedral n.,adj. [see bazaar for derivation] The `classical' mode of
   software engineering long thought to be necessarily implied by Brooks's
   Law
. Features small teams, tight project control, and long release
   intervals. This term came into use after analysis of the Linux
   experience suggested there might be something wrong (or at least
   incomplete) in the classical assumptions.

cd tilde /C-D til-d*/ vi. To go home. From the Unix C-shell and
   Korn-shell command `cd ~', which takes one to one's `$HOME' (`cd' with
   no arguments happens to do the same thing). 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."

CDA /C-D-A/ The "Communications Decency Act" of 1996, passed on Black
   Thursday
as section 502 of a major telecommunications reform bill. The
   CDA made it a federal crime in the USA to send a communication which is
   "obscene, lewd, lascivious, filthy, or indecent, with intent to annoy,
   abuse, threaten, or harass another person." It also threatened with
   imprisonment anyone who "knowingly" makes accessible to minors any
   message that "describes, in terms patently offensive as measured by
   contemporary community standards, sexual or excretory activities or
   organs".

   While the CDA was sold as a measure to protect minors from the
   putative evils of pornography, the repressive political aims of the bill
   were laid bare by the Hyde amendment, which intended to outlaw
   discussion of abortion on the Internet.

   To say that this direct attack on First Amendment free-speech rights
   was not well received on the Internet would be putting it mildly. A
   firestorm of protest followed, including a February 29th mass
   demonstration by thousands of netters who turned their home pages
   black for 48 hours. Several civil-rights groups and
   computing/telecommunications companies mounted a constitutional
   challenge. The CDA was demolished by a strongly-worded decision handed
   down in 8th-circuit Federal court and subsequently affirmed by the U.S.
   Supreme Court on 26 June 1997 (`White Thursday'). See also Exon.

cdr /ku'dr/ or /kuh'dr/ vt. [from LISP] 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 704 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. [common] The perforated edge strips on printer paper,
   after they have been separated from the printed portion. Also called
   selvage, perf, and ripoff. 2. The confetti-like paper bits punched
   out of cards or paper tape; this has also been called `chaff', `computer
   confetti', and `keypunch droppings'. It's reported that this was very
   old Army slang (associated with teletypewriters before the computer
   era), and has been occasionally sighted in directions for punched-card
   vote tabulators long after it passed out of live use among computer
   programmers in the late 1970s. This sense of `chad' returned to the
   mainstream during the finale of the hotly disputed U.S. presidential
   election in 2000 via stories about the Florida vote recounts. Note
   however that in the revived mainstream usage chad is not a mass noun and
   `a chad' is a single piece of the stuff.

   There is an urban legend that `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'. However, serious attempts to track down "Chadless" as a
   personal name or U.S. trademark have failed, casting doubt on this
   etymology - and the U.S. Patent Classification System uses "chadless"
   (small c) as an adjective, suggesting that "chadless" derives from
   "chad" and not the other way around. There is another legend that the
   word was originally acronymic, standing for "Card Hole Aggregate
   Debris", but this has all the earmarks of a backronym. It has also
   been noted that the word "chad" is Scots dialect for gravel, but nobody
   has proposed any plausible reason that card chaff should be thought of
   as gravel. None of these etymologies is really plausible.

chad box n. A metal box about the size of a lunchbox (or in some models
   a large wastebasket), for collecting the chad (sense 2) that
   accumulated in Iron Age card punches. 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. vi. [orig. from BASIC's `CHAIN' statement] 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. n. 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 n. [IRC] The basic unit of discussion on IRC. Once one joins
   a channel, everything one types is read by others on that channel.
   Channels are named 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',
   `callahans', and `#report'. At times of international crisis, `#report'
   has hundreds of members, some of whom take turns listening to various
   news services and typing in summaries of 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 n. [common; IRC, GEnie] To rapidly switch channels on
   IRC, or a GEnie chat board, just as a social butterfly might hop from
   one group to another at a party. This term may derive from the TV
   watcher's idiom, `channel surfing'.

channel op /chan'l op/ n. [IRC] Someone who is endowed with privileges
   on a particular IRC channel; commonly abbreviated `chanop' or `CHOP'
   or just `op' (as of 2000 these short forms have almost crowded out the
   parent usage). These privileges include the right to kick users, to
   change various status bits, and to make others into CHOPs.

chanop /chan'-op/ n. [IRC] 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 /cha'rit-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 core dump (sense 1),
   interactively or on a large piece of paper printed with hex runes,
   following dynamic data-structures. Used only in a debugging context.

chawmp n. [University of Florida] 16 or 18 bits (half of a machine
   word). This term was used by FORTH hackers during the late 1970s/early
   1980s; it is said to have been archaic then, and may now be obsolete. It
   was coined in revolt against the promiscuous use of `word' for anything
   between 16 and 32 bits; `word' has an additional special meaning for
   FORTH hacks that made the overloading intolerable. For similar reasons,
   /gaw'bl/ (spelled `gawble' or possibly `gawbul') was in use as a term
   for 32 or 48 bits (presumably a full machine word, but our sources are
   unclear on this). These terms are more easily understood if one thinks
   of them as faithful phonetic spellings of `chomp' and `gobble'
   pronounced in a Florida or other Southern U.S. dialect. For general
   discussion of similar terms, see nybble.

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 the word 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-guards).

cheerfully adv.See happily.

chemist n. [Cambridge] 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
   a broadcast storm and/or network meltdown, 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 n. [Commodore] The Commodore Business Machines logo, which
   strongly resembles a poultry part (within Commodore itself the logo was
   always called `chicken lips'). Rendered in ASCII as `C='. With the
   arguable exception of the Amiga (see amoeba), Commodore's machines
   were notoriously crocky little bitty boxes (see also PETSCII),
   albeit people have written multitasking Unix-like operating systems with
   TCP/IP networking for them. 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"; the novel is now sold under that title), in
   which a `chickenhead' is a mutant with below-average intelligence.

chiclet keyboard n. A keyboard with a small, flat 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.

Chinese Army technique n. Syn. Mongolian Hordes technique.

choad /chohd/ n. Synonym for `penis' used in alt.tasteless and
   popularized by the denizens thereof. They say: "We think maybe it's from
   Middle English but we're all too damned lazy to check the OED." [I'm
   not. It isn't. --ESR] This term is alleged to have been inherited
   through 1960s underground comics, and to have been recently sighted in
   the Beavis and Butthead cartoons. Speakers of the Hindi, Bengali and
   Gujarati languages have confirmed that `choad' is in fact an Indian
   vernacular word equivalent to `fuck'; it is therefore likely to have
   entered English slang via the British Raj.

choke v. 1. [common] 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. 1. To lose; specifically, to chew on something of which
   more was bitten off than one can. Probably related to gnashing of teeth.
   2. To bite the bag; 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/ n. [IRC] 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.)
   Compare Godzillagram.

chrome n. [from automotive slang via wargaming] 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. There is a home page at `http://www.subgenius.com/'.

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. On the back cover, the device is in shambles
   after she has (inevitably) 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 blocks just before a CompuServe address. Syn. {Compu$erve}.

Classic C /klas'ik C/ n. [a play on `Coke Classic'] 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'.

   An analogous construction 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.

clock 1. n 1. [techspeak] The master oscillator that steps a CPU or
   other digital circuit through its paces. This has nothing to do with the
   time of day, although the software counter that keeps track of the
   latter may be derived from the former. 2. vt. To run a CPU or other
   digital circuit at a particular rate. "If you clock it at 100MHz, it
   gets warm.". See overclock. 3. vt. To force a digital circuit from one
   state to the next by applying a single clock pulse. "The data must be
   stable 10ns before you clock the latch."

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,
   jiffy.

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. [obs] `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. This term fell out of use in the 1990s;
   the class of machines it describes are now simply `PCs' or `Intel
   machines'. 5. [obs.] 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. Linux and the free BSDs killed off this product category
   and the term with it. 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".

clone-and-hack coding n. [DEC] Syn. case and paste.

clover key n. [Mac users] See feature key.

clue-by-four [Usenet: portmanteau, clue + two-by-four] The notional
   stick with which one whacks an aggressively clueless person. This term
   derives from a western American folk saying about training a mule
   "First, you got to hit him with a two-by-four. That's to get his
   attention." The clue-by-four is a close relative of the LART. Syn.
   `clue stick'. This metaphor is commonly elaborated; your editor once
   heard a hacker say "I smite you with the great sword Cluebringer!"

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

co-lo /koh'loh`/ n. [very common; first heard c.1995] Short for
   `co-location', used of a machine you own that is physically sited on the
   premises of an ISP in order to take advantage of the ISP's direct access
   to lots of network bandwidthm. Often in the phrases `co-lo box' or
   `co-lo machines'. Co-lo boxes are typically web and FTP servers
   remote-administered by their owners, who may seldom or never visit the
   actual site.

coaster n. 1. Unuseable CD produced during failed attempt at writing to
   writeable or re-writeable CD media. Certainly related to the
   coaster-like shape of a CD, and the relative value of these failures. "I
   made a lot of coasters before I got a good CD." 2. Useless CDs received
   in the mail from the likes of AOL, MSN, CI$, Prodigy, ad nauseam.

   In the U.K., `beermat' is often used in these senses.

coaster toaster A writer for recordable CD-ROMs, especially cheap IDE
   models that tend to produce a high proportion of coasters.

COBOL /koh'bol/ n. [COmmon Business-Oriented Language] (Synonymous with
   evil.) A weak, verbose, and flabby language used by card wallopers
   to do boring mindless things on dinosaur mainframes. Hackers believe
   that all COBOL programmers are suits or code grinders, 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. One popular one is Edsger W. Dijkstra's famous observation that
   "The use of COBOL cripples the mind; its teaching should, therefore, be
   regarded as a criminal offense." (from "Selected Writings on Computing:
   A Personal Perspective") 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 (see candygrammar); 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!"

cobweb site n. A World Wide Web Site that hasn't been updated so long
   it has figuratively grown cobwebs.

code n. The stuff that software writers write, either in source form or
   after translation by a compiler or assembler. Often used in opposition
   to "data", which is the stuff that code operates on. This is a mass
   noun, as in "How much code does it take to do a bubble sort?", or "The
   code is loaded at the high end of RAM." Anyone referring to software as
   "the software codes" is probably a newbie or a suit.

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 monkey n 1. A person only capable of grinding out code, but unable
   to perform the higher-primate tasks of software architecture, analysis,
   and design. Mildly insulting. Often applied to the most junior people on
   a programming team. 2. Anyone who writes code for a living; a
   programmer. 3. A self-deprecating way of denying responsibility for a
   management decision, or of complaining about having to live with such
   decisions. As in "Don't ask me why we need to write a compiler in COBOL,
   I'm just a code monkey."

Code of the Geeks n. see geek code.

code police n. [by analogy with George Orwell's `thought police'] 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 weenies. "Dike out
   that goto or the code police will get you!" The ironic usage is perhaps
   more common.

codes n. [scientific computing] Programs. This usage is common in
   people who hack supercomputers and heavy-duty number-crunching, rare
   to unknown elsewhere (if you say "codes" to hackers outside scientific
   computing, their first association is likely to be "and cyphers").

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 heavy use of
   pseudo-mathematical metaphors. Four particularly important ones involve
   the terms `coefficient', `factor', `index of X', 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 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 `escape-escape-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' <label> would cause the referenced label to act as a sort of
   trapdoor, so that if the program ever reached it control would quietly
   and automagically be transferred to the statement following the `COME
   FROM'. `COME FROM' was first proposed in R. Lawrence Clark's "A
   Linguistic Contribution to GOTO-less programming", which appeared in a
   1973 Datamation issue (and was reprinted in the April 1984 issue of
   "Communications of the ACM"). This parodied the then-raging `structured
   programming' holy wars (see considered harmful). Mythically, some
   variants are the `assigned COME FROM' and the `computed COME FROM'
   (parodying some nasty control constructs in FORTRAN and some extended
   BASICs). Of course, multi-tasking (or non-determinism) could be
   implemented by having more than one `COME FROM' statement coming from
   the same label.

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

           DO 10 I=1,LIMIT
     C imagine many lines of code here, leaving the
     C original DO statement lost in the spaghetti...
           WRITE(6,10) I,FROB(I)
      10   FORMAT(1X,I5,G10.4)
  
   in which the trapdoor is just after the statement labeled 10. (This is
   particularly surprising because the label doesn't appear to have
   anything to do with the flow of control at all!)

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

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

comm mode /kom mohd/ n. [ITS: from the feature supporting on-line chat;
   the first word may be spelled with one or two m's] Syn. for talk mode.

command key n. [Mac users] Syn. feature key.

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

Commonwealth Hackish: n. Hacker jargon as spoken in English outside the
   U.S., esp. in the British Commonwealth. It is reported that Commonwealth
   speakers are more likely to pronounce truncations like `char' and `soc',
   etc., as spelled (/char/, /sok/), as opposed to American /keir/ and
   /sohsh/. Dots in newsgroup names (especially two-component names) tend
   to be pronounced more often (so soc.wibble is /sok dot wib'l/ rather
   than /sohsh wib'l/).

   Preferred metasyntactic variables include blurgle, `eek', `ook',
   `frodo', and `bilbo'; wibble, `wobble', and in emergencies `wubble';
   `flob', `banana', `tom', `dick', `harry', `wombat', `frog', fish,
   womble and so on and on (see foo, sense 4). Alternatives to verb
   doubling include suffixes `-o-rama', `frenzy' (as in feeding frenzy),
   and `city' (examples: "barf city!" "hack-o-rama!" "core dump frenzy!").

   All the generic differences within the anglophone world inevitably
   show themselves in the associated hackish dialects. The Greek letters
   beta and zeta are usually pronounced /bee't*/ and /zee't*/; meta may
   also be pronounced /mee't*/. Various punctuators (and even letters - Z
   is called `zed', not `zee') are named differently: most crucially, for
   hackish, where Americans use `parens', `brackets' and `braces' for (),
   [] and , Commonwealth English uses `brackets', `square brackets' and
   `curly brackets', though `parentheses' may be used for the first; the
   exclamation mark, `!', is called pling rather than bang and the pound
   sign, `#', is called hash; furthermore, the term `the pound sign' is
   understood to mean the pound currency symbol (of course).

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

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

compiler jock n. See jock (sense 2).

compo n. [demoscene] Finnish-originated slang for `competition'. Demo
   compos are held at a demoparty. The usual protocol is that several
   groups make demos for a compo, they are shown on a big screen, and then
   the party participants vote for the best one. Prizes (from sponsors and
   party entrance fees) are given. Standard compo formats include intro
   compos (4k or 64k demos), music compos, graphics compos, quick demo
   compos (build a demo within 4 hours for example), etc.

compress [Unix] vt. When used without a qualifier, generally refers to
   crunching of a file using a particular C implementation of compression
   by Joseph M. Orost et al. and widely circulated via Usenet; use of
   crunch itself in this sense is rare among Unix hackers. Specifically,
   compress is built around the Lempel-Ziv-Welch algorithm as described in
   "A Technique for High Performance Data Compression", Terry A. Welch,
   "IEEE Computer", vol. 17, no. 6 (June 1984), pp. 8-19.

Compu$erve n. See {CI$}. Synonyms CompuSpend and Compu$pend are also
   reported.

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

   [2001 update: this term has passed out of use for two reasons; (1) the
   stuff it describes is now quite rare, and (2) the term chad, which was
   half-forgotten in 1990, has enjoyed a revival. --ESR]

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

con n. [from SF fandom] A science-fiction convention. Not used of other
   sorts of conventions, such as professional meetings. This term, unlike
   many others imported from SF-fan slang, is widely recognized even by
   hackers who aren't fans. "We'd been corresponding on the net for
   months, then we met face-to-face at a con."

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

condom n. 1. The protective plastic bag that accompanies 3.5-inch
   microfloppy diskettes. Rarely, also used of (paper) disk envelopes.
   Unlike the write protect tab, the condom (when left on) not only impedes
   the practice of SEX but has also been shown to have a high failure
   rate as drive mechanisms attempt to access the disk -- and can even
   fatally frustrate insertion. 2. The protective cladding on a light
   pipe
. 3. `keyboard condom': A flexible, transparent plastic cover for a
   keyboard, designed to provide some protection against dust and
   programming fluid without impeding typing. 4. `elephant condom': the
   plastic shipping bags used inside cardboard boxes to protect hardware in
   transit. 5. n. obs. A dummy directory `/usr/tmp/sh', created to foil the
   Great Worm by exploiting a portability bug in one of its parts. So
   named in the title of a comp.risks article by Gene Spafford during the
   Worm crisis, and again in the text of "The Internet Worm Program: An
   Analysis", Purdue Technical Report CSD-TR-823.

confuser n. Common soundalike slang for `computer'. Usually encountered
   in compounds such as `confuser room', `personal confuser', `confuser
   guru'. Usage: silly.

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

   (A closely related phenomenon, with a slightly different intent, is
   the habit manufacturers have of inventing new screw heads so that only
   Designated Persons, possessing the magic screwdrivers, can remove covers
   and make repairs or install options. A good 1990s example is the use of
   Torx screws for cable-TV set-top boxes. Older Apple Macintoshes took
   this one step further, requiring not only a long Torx screwdriver but a
   specialized case-cracking tool to open the box.)

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

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