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:
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.
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.
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.
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.
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.
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:
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.
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.
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]
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
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:
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.
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!"
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.
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:
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:
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.
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.
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).
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!").
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.
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.
* 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.
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'!)
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
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
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)
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.
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!
/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?
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.
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.
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."
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".
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.
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
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.
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: <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: hat; control; uparrow; caret; <circumflex>. Rare: xor
sign, chevron; [shark (or shark-fin)]; to the (`to the power of');
fang; pointer (in Pascal).
`
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].
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
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:
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.
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)'.
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]
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.
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/'.
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.
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]
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:
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 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.
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:
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:
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 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.
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.
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 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.)
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:
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).
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.
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'.
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!"
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.
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 DECVAX 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.
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
blocks. 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 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.
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.
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 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]
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'.
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.
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).
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 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.
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.
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".
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 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.
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.
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).
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).
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