Category : Various Text files
Archive   : HACKDIC1.ZIP
Filename : JARGON1
This is the Jargon File, a comprehensive compendium of hacker slang
illuminating many aspects of hackish tradition, folklore, and humor.
This document (the Jargon File) is in the public domain, to be freely
used, shared, and modified. There are (by intention) no legal
restraints on what you can do with it, but there are traditions about
its proper use to which many hackers are quite strongly attached.
Please extend the courtesy of proper citation when you quote the File,
ideally with a version number, as it will change and grow over time.
(Examples of appropriate citation form: "Jargon File 2.9.12" or
"The on-line hacker Jargon File, version 2.9.12, 10 MAY 1993".)
The Jargon File is a common heritage of the hacker culture.
Over the years a number of individuals have volunteered considerable
time to maintaining the File and been recognized by the net at large
as editors of it. Editorial responsibilities include: to collate
contributions and suggestions from others; to seek out corroborating
information; to cross-reference related entries; to keep the file in a
consistent format; and to announce and distribute updated versions
periodically. Current volunteer editors include:
Eric Raymond [email protected] (215)-296-5718
Although there is no requirement that you do so, it is considered good
form to check with an editor before quoting the File in a published work
or commercial product. We may have additional information that would be
helpful to you and can assist you in framing your quote to reflect
not only the letter of the File but its spirit as well.
All contributions and suggestions about this file sent to a volunteer
editor are gratefully received and will be regarded, unless otherwise
labelled, as freely given donations for possible use as part of this
public-domain file.
From time to time a snapshot of this file has been polished, edited,
and formatted for commercial publication with the cooperation of the
volunteer editors and the hacker community at large. If you wish to
have a bound paper copy of this file, you may find it convenient to
purchase one of these. They often contain additional material not
found in on-line versions. The two `authorized' editions so far are
described in the Revision History section; there may be more in the
future.
:Introduction:
**************
:About This File:
=================
This document is a collection of slang terms used by various subcultures
of computer hackers. Though some technical material is included for
background and flavor, it is not a technical dictionary; what we
describe here is the language hackers use among themselves for fun,
social communication, and technical debate.
The `hacker culture' is actually a loosely networked collection of
subcultures that is nevertheless conscious of some important shared
experiences, shared roots, and shared values. It has its own myths,
heroes, villains, folk epics, in-jokes, taboos, and dreams. Because
hackers as a group are particularly creative people who define
themselves partly by rejection of `normal' values and working habits, it
has unusually rich and conscious traditions for an intentional culture
less than 35 years old.
As usual with slang, the special vocabulary of hackers helps hold their
culture together --- it helps hackers recognize each other's places in
the community and expresses shared values and experiences. Also as
usual, *not* knowing the slang (or using it inappropriately) defines one
as an outsider, a mundane, or (worst of all in hackish vocabulary)
possibly even a {suit}. All human cultures use slang in this threefold
way --- as a tool of communication, and of inclusion, and of exclusion.
Among hackers, though, slang has a subtler aspect, paralleled perhaps in
the slang of jazz musicians and some kinds of fine artists but hard to
detect in most technical or scientific cultures; parts of it are code
for shared states of *consciousness*. There is a whole range of altered
states and problem-solving mental stances basic to high-level hacking
which don't fit into conventional linguistic reality any better than a
Coltrane solo or one of Maurits Escher's `trompe l'oeil' compositions
(Escher is a favorite of hackers), and hacker slang encodes these
subtleties in many unobvious ways. As a simple example, take the
distinction between a {kluge} and an {elegant} solution, and the
differing connotations attached to each. The distinction is not only of
engineering significance; it reaches right back into the nature of the
generative processes in program design and asserts something important
about two different kinds of relationship between the hacker and the
hack. Hacker slang is unusually rich in implications of this kind, of
overtones and undertones that illuminate the hackish psyche.
But there is more. Hackers, as a rule, love wordplay and are very
conscious and inventive in their use of language. These traits seem to
be common in young children, but the conformity-enforcing machine we are
pleased to call an educational system bludgeons them out of most of us
before adolescence. Thus, linguistic invention in most subcultures of
the modern West is a halting and largely unconscious process. Hackers,
by contrast, regard slang formation and use as a game to be played for
conscious pleasure. Their inventions thus display an almost unique
combination of the neotenous enjoyment of language-play with the
discrimination of educated and powerful intelligence. Further, the
electronic media which knit them together are fluid, `hot' connections,
well adapted to both the dissemination of new slang and the ruthless
culling of weak and superannuated specimens. The results of this
process give us perhaps a uniquely intense and accelerated view of
linguistic evolution in action.
Hackish slang also challenges some common linguistic and
anthropological assumptions. For example, it has recently become
fashionable to speak of `low-context' versus `high-context'
communication, and to classify cultures by the preferred context level
of their languages and art forms. It is usually claimed that
low-context communication (characterized by precision, clarity, and
completeness of self-contained utterances) is typical in cultures
which value logic, objectivity, individualism, and competition; by
contrast, high-context communication (elliptical, emotive,
nuance-filled, multi-modal, heavily coded) is associated with cultures
which value subjectivity, consensus, cooperation, and tradition. What
then are we to make of hackerdom, which is themed around extremely
low-context interaction with computers and exhibits primarily
"low-context" values, but cultivates an almost absurdly high-context
slang style?
The intensity and consciousness of hackish invention make a compilation
of hacker slang a particularly effective window into the surrounding
culture --- and, in fact, this one is the latest version of an evolving
compilation called the `Jargon File', maintained by hackers themselves
for over 15 years. This one (like its ancestors) is primarily a
lexicon, but also includes `topic entries' which collect background or
sidelight information on hacker culture that would be awkward to try to
subsume under individual entries.
Though the format is that of a reference volume, it is intended that the
material be enjoyable to browse. Even a complete outsider should find
at least a chuckle on nearly every page, and much that is amusingly
thought-provoking. But it is also true that hackers use humorous
wordplay to make strong, sometimes combative statements about what they
feel. Some of these entries reflect the views of opposing sides in
disputes that have been genuinely passionate; this is deliberate. We
have not tried to moderate or pretty up these disputes; rather we have
attempted to ensure that *everyone's* sacred cows get gored,
impartially. Compromise is not particularly a hackish virtue, but the
honest presentation of divergent viewpoints is.
The reader with minimal computer background who finds some references
incomprehensibly technical can safely ignore them. We have not felt it
either necessary or desirable to eliminate all such; they, too,
contribute flavor, and one of this document's major intended audiences
--- fledgling hackers already partway inside the culture --- will
benefit from them.
A selection of longer items of hacker folklore and humor is included in
{appendix A}. The `outside' reader's attention is particularly directed
to {appendix B}, "A Portrait of J. Random Hacker". {Appendix C} is a
bibliography of non-technical works which have either influenced or
described the hacker culture.
Because hackerdom is an intentional culture (one each individual must
choose by action to join), one should not be surprised that the line
between description and influence can become more than a little
blurred. Earlier versions of the Jargon File have played a central role
in spreading hacker language and the culture that goes with it to
successively larger populations, and we hope and expect that this one
will do likewise.
:Of Slang, Jargon, and Techspeak:
=================================
Linguists usually refer to informal language as `slang' and reserve the
term `jargon' for the technical vocabularies of various occupations.
However, the ancestor of this collection was called the `Jargon File',
and hackish slang is traditionally `the jargon'. When talking about the
jargon there is therefore no convenient way to distinguish 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 hackish slang and
the vocabulary of technical programming and computer science is fuzzy,
and shifts over time. Further, this vocabulary is shared with a wider
technical culture of programmers, many of whom are not hackers and do
not speak or recognize hackish slang.
Accordingly, this lexicon will try to be as precise as the facts of
usage permit about the distinctions among three categories:
* `slang': informal language from mainstream English or non-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 File's 2.x.x versions has enabled us to put to rest
quite a number of folk etymologies, place credit where credit is due,
and illuminate the early history of many important hackerisms such as
{kluge}, {cruft}, and {foo}. We believe specialist lexicographers will
find many of the historical notes more than casually instructive.
:Revision History:
==================
The original Jargon File was a collection of hacker jargon from
technical cultures including the MIT AI Lab, the Stanford AI lab (SAIL),
and others of the old ARPANET AI/LISP/PDP-10 communities including Bolt,
Beranek and Newman (BBN), Carnegie-Mellon University (CMU), and
Worcester Polytechnic Institute (WPI).
The Jargon File (hereafter referred to as `jargon-1' or `the File') was
begun by Raphael Finkel at Stanford in 1975. From this time until the
plug was finally pulled on the SAIL computer in 1991, the File was named
AIWORD.RF[UP,DOC] there. Some terms in it date back considerably
earlier ({frob} and some senses of {moby}, for instance, go back to the
Tech Model Railroad Club at MIT and are believed to date at least back
to the early 1960s). The revisions of jargon-1 were all unnumbered and
may be collectively considered `Version 1'.
In 1976, Mark Crispin, having seen an announcement about the File on the
SAIL computer, {FTP}ed a copy of the File to MIT. He noticed that it
was hardly restricted to `AI words' and so stored the file on his
directory as AI:MRC;SAIL JARGON.
The file was quickly renamed JARGON > (the `>' 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 hackish language and humor. Even as the advent of the microcomputer
and other trends fueled a tremendous expansion of hackerdom, the File
(and related materials such as the AI Koans in Appendix A) came to be
seen as a sort of sacred epic, a hacker-culture Matter of Britain
chronicling the heroic exploits of the Knights of the Lab. The pace of
change in hackerdom at large accelerated tremendously --- but the Jargon
File, having passed from living document to icon, remained essentially
untouched for seven years.
This revision contains nearly the entire text of a late version of
jargon-1 (a few obsolete PDP-10-related entries were dropped after
careful consultation with the editors of Steele-1983). It merges in
about 80% of the Steele-1983 text, omitting some framing material and a
very few entries introduced in Steele-1983 that are now also obsolete.
This new version casts a wider net than the old Jargon File; its aim is
to cover not just AI or PDP-10 hacker culture but all the technical
computing cultures wherein the true hacker-nature is manifested. More
than half of the entries now derive from {USENET} and represent jargon
now current in the C and UNIX communities, but special efforts have been
made to collect jargon from other cultures including IBM PC programmers,
Amiga fans, Mac enthusiasts, and even the IBM mainframe world.
Eric S. Raymond
assistance from Guy L. Steele Jr.
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 [email protected]
(UUCP-only sites without connections to an autorouting smart site can
use ...!uunet!snark!jargon).
(Warning: other email addresses appear in this file *but are not
guaranteed to be correct* later than the revision date on the first
line. *Don't* email us if an attempt to reach your idol bounces --- we
have no magic way of checking addresses or looking up people.)
The 2.9.6 version became the main text of `The New Hacker's Dictionary',
by Eric Raymond (ed.), MIT Press 1991, ISBN 0-262-68069-6. The
maintainers are committed to updating the on-line version of the Jargon
File through and beyond paper publication, and will continue to make it
available to archives and public-access sites as a trust of the hacker
community.
Here is a chronology of the high points in the recent on-line revisions:
Version 2.1.1, Jun 12 1990: the Jargon File comes alive again after a
seven-year hiatus. Reorganization and massive additions were by Eric
S. Raymond, approved by Guy Steele. Many items of UNIX, C, USENET, and
microcomputer-based jargon were added at that time (as well as The
Untimely Demise of Mabel The Monkey).
Version 2.9.6, Aug 16 1991: corresponds to reproduction copy for book.
This version had 18952 lines, 148629 words, 975551 characters, and 1702
entries.
Version 2.9.8, Jan 01 1992: first public release since the book,
including over fifty new entries and numerous corrections/additions to
old ones. Packaged with version 1.1 of vh(1) hypertext reader. This
version had 19509 lines, 153108 words, 1006023 characters, and 1760
entries.
Version 2.9.9, Apr 01 1992: folded in XEROX PARC lexicon. This version
had 20298 lines, 159651 words, 1048909 characters, and 1821 entries.
Version 2.9.10, Jul 01 1992: lots of new historical material. This
version had 21349 lines, 168330 words, 1106991 characters, and 1891
entries.
Version 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 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
We were fortunate enough to have the aid of some accomplished
linguists. David Stampe
Hoequist
A few bits of this text quote previous works. We are indebted to Brian
A. LaMacchia
use material from the `TMRC Dictionary'; also, Don Libes
excellent book `Life With UNIX'. We thank Per Lindberg
author of the remarkable Swedish-language 'zine `Hackerbladet', for
bringing `FOO!' comics to our attention and smuggling one of the IBM
hacker underground's own baby jargon files out to us. Thanks also to
Maarten Litmaath for generously allowing the inclusion of the ASCII
pronunciation guide he formerly maintained. And our gratitude to Marc
Weiser of XEROX PARC
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
many drafts, checked facts, caught typos, submitted an amazing number of
thoughtful comments, and did yeoman service in catching typos and minor
usage bobbles. Mr. Brader's rare combination of enthusiasm,
persistence, wide-ranging technical knowledge, and precisionism in
matters of language made his help invaluable, and the sustained volume
and quality of his input over many months only allowed him to escape
co-editor credit by the slimmest of margins.
Finally, George V. Reilly
painstakingly proofread some 2.7 and 2.8 versions; Steve Summit
many small improvements to 2.9.10; and Eric Tiedemann
contributed sage advice throughout on rhetoric, amphigory, and
philosophunculism.
:How Jargon Works:
******************
:Jargon Construction:
=====================
There are some standard methods of jargonification that became
established quite early (i.e., before 1970), spreading from such sources
as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers, and John
McCarthy's original crew of LISPers. These include the following:
:Verb Doubling: --------------- A standard construction in English is to
double a verb and use it as an exclamation, such as "Bang, bang!" or
"Quack, quack!". Most of these are names for noises. Hackers also
double verbs as a concise, sometimes sarcastic comment on what the
implied subject does. Also, a doubled verb is often used to terminate a
conversation, in the process remarking on the current state of affairs
or what the speaker intends to do next. Typical examples involve {win},
{lose}, {hack}, {flame}, {barf}, {chomp}:
"The disk heads just crashed." "Lose, lose."
"Mostly he talked about his latest crock. Flame, flame."
"Boy, what a bagbiter! Chomp, chomp!"
Some verb-doubled constructions have special meanings not immediately
obvious from the verb. These have their own listings in the lexicon.
The {USENET} culture has one *tripling* convention unrelated to
this; the names of `joke' topic groups often have a tripled last
element. The first and paradigmatic example was
alt.swedish.chef.bork.bork.bork (a "Muppet Show" reference);
other infamous examples have included:
alt.french.captain.borg.borg.borg
alt.wesley.crusher.die.die.die
comp.unix.internals.system.calls.brk.brk.brk
sci.physics.edward.teller.boom.boom.boom
alt.sadistic.dentists.drill.drill.drill
:Soundalike slang: ------------------ Hackers will often make rhymes or
puns in order to convert an ordinary word or phrase into something more
interesting. It is considered particularly {flavorful} if the phrase is
bent so as to include some other jargon word; thus the computer hobbyist
magazine `Dr. Dobb's Journal' is almost always referred to among hackers
as `Dr. Frob's Journal' or simply `Dr. Frob's'. Terms of this kind that
have been in fairly wide use include names for newspapers:
Boston Herald => Horrid (or Harried)
Boston Globe => Boston Glob
Houston (or San Francisco) Chronicle
=> the Crocknicle (or the Comical)
New York Times => New York Slime
However, terms like these are often made up on the spur of the moment.
Standard examples include:
Data General => Dirty Genitals
IBM 360 => IBM Three-Sickly
Government Property --- Do Not Duplicate (on keys)
=> Government Duplicity --- Do Not Propagate
for historical reasons => for hysterical raisins
Margaret Jacks Hall (the CS building at Stanford)
=> Marginal Hacks Hall
This is not really similar to the Cockney rhyming slang it has been
compared to in the past, because Cockney substitutions are opaque
whereas hacker punning jargon is intentionally transparent.
:The `-P' convention: --------------------- Turning a word into a
question by appending the syllable `P'; from the LISP convention of
appending the letter `P' to denote a predicate (a boolean-valued
function). The question should expect a yes/no answer, though it
needn't. (See {T} and {NIL}.)
At dinnertime:
Q: "Foodp?"
A: "Yeah, I'm pretty hungry." or "T!"
At any time:
Q: "State-of-the-world-P?"
A: (Straight) "I'm about to go home."
A: (Humorous) "Yes, the world has a state."
On the phone to Florida:
Q: "State-p Florida?"
A: "Been reading JARGON.TXT again, eh?"
[One of the best of these is a {Gosperism}. Once, when we were at a
Chinese restaurant, Bill Gosper wanted to know whether someone would
like to share with him a two-person-sized bowl of soup. His inquiry
was: "Split-p soup?" --- GLS]
:Overgeneralization: -------------------- A very conspicuous feature of
jargon is the frequency with which techspeak items such as names of
program tools, command language primitives, and even assembler opcodes
are applied to contexts outside of computing wherever hackers find
amusing analogies to them. Thus (to cite one of the best-known
examples) UNIX hackers often {grep} for things rather than searching for
them. Many of the lexicon entries are generalizations of exactly this
kind.
Hackers enjoy overgeneralization on the grammatical level as well. Many
hackers love to take various words and add the wrong endings to them to
make nouns and verbs, often by extending a standard rule to nonuniform
cases (or vice versa). For example, because
porous => porosity
generous => generosity
hackers happily generalize:
mysterious => mysteriosity
ferrous => ferrosity
obvious => obviosity
dubious => dubiosity
Another class of common construction uses the suffix `-itude' to
abstract a quality from just about any adjective or noun. This
is used especially in cases where mainstream English would perform the
same abstraction through `-iness' or `-ingness'. Thus:
win =>winnitude (a common exclamation)loss =>lossitudecruft =>cruftitudelame =>lameitude
Some hackers cheerfully reverse this; 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.
However, hackers avoid the unimaginative verb-making techniques
characteristic of marketroids, bean-counters, and the Pentagon; a hacker
would never, for example, `productize', `prioritize', or `securitize'
things. Hackers have a strong aversion to bureaucratic bafflegab and
regard those who use it with contempt.
Similarly, all verbs can be nouned. This is only a slight
overgeneralization in modern English; in hackish, however, it is good
form to mark them in some standard nonstandard way. Thus:
win => winnitude, winnage
disgust => disgustitude
hack => hackification
Further, note the prevalence of certain kinds of nonstandard plural
forms. Some of these go back quite a ways; the TMRC Dictionary includes
an entry which implies that the plural of `mouse' is {meeces}, and notes
that the defined plural of `caboose' is `cabeese'. This latter has
apparently been standard (or at least a standard joke) among railfans
(railroad enthusiasts) for many years.
On a similarly Anglo-Saxon note, almost anything ending in `x' may form
plurals in `-xen' (see {VAXen} and {boxen} in the main text). Even
words ending in phonetic /k/ alone are sometimes treated this way; e.g.,
`soxen' for a bunch of socks. Other funny plurals are `frobbotzim' for
the plural of `frobbozz' (see {frobnitz}) and `Unices' and `Twenices'
(rather than `Unixes' and `Twenexes'; see {UNIX}, {TWENEX} in main
text). But note that `Unixen' and `Twenexen' are never used; it has
been suggested that this is because `-ix' and `-ex' are Latin singular
endings that attract a Latinate plural. Finally, it has been suggested
to general approval that the plural of `mongoose' ought to be
`polygoose'.
The pattern here, as with other hackish grammatical quirks, is
generalization of an inflectional rule that in English is either an
import or a fossil (such as the Hebrew plural ending `-im', or the
Anglo-Saxon plural suffix `-en') to cases where it isn't normally
considered to apply.
This is not `poor grammar', as hackers are generally quite well aware of
what they are doing when they distort the language. It is grammatical
creativity, a form of playfulness. It is done not to impress but to
amuse, and never at the expense of clarity.
:Spoken inarticulations: ------------------------ Words such as
`mumble', `sigh', and `groan' are spoken in places where their referent
might more naturally be used. It has been suggested that this usage
derives from the impossibility of representing such noises on a comm
link or in electronic mail (interestingly, the same sorts of
constructions have been showing up with increasing frequency in comic
strips). Another expression sometimes heard is "Complain!", meaning "I
have a complaint!"
:Anthromorphization: -------------------- Semantically, one rich source
of jargon constructions is the hackish tendency to anthropomorphize
hardware and software. This isn't done in a 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'. What *is* common is to hear hardware or software talked about
as though it has homunculi talking to each other inside it, with
intentions and desires. Thus, one hears "The protocol handler got
confused", or that programs "are trying" to do things, or one may say of
a routine that "its goal in life is to X". One even hears explanations
like "... and its poor little brain couldn't understand X, and it
died." Sometimes modelling things this way actually seems to make them
easier to understand, perhaps because it's instinctively natural to
think of anything with a really complex behavioral repertoire as `like a
person' rather than `like a thing'.
Of the six listed constructions, verb doubling, peculiar noun
formations, anthromorphization, and (especially) spoken inarticulations
have become quite general; but punning jargon is still largely confined
to MIT and other large universities, and the `-P' convention is found
only where LISPers flourish.
Finally, note that many words in hacker jargon have to be understood as
members of sets of comparatives. This is especially true of the
adjectives and nouns used to describe the beauty and functional quality
of code. Here is an approximately correct spectrum:
monstrosity brain-damage screw bug lose misfeature
crock kluge hack win feature elegance perfection
The last is spoken of as a mythical absolute, approximated but never
actually attained. Another similar scale is used for describing the
reliability of software:
broken flaky dodgy fragile brittle
solid robust bulletproof armor-plated
Note, however, that `dodgy' is primarily Commonwealth hackish (it is
rare in the U.S.) and may change places with `flaky' for some speakers.
Coinages for describing {lossage} seem to call forth the very finest in
hackish linguistic inventiveness; it has been truly said that hackers
have even more words for equipment failures than Yiddish has for
obnoxious people.
:Hacker Writing Style:
======================
We've already seen that hackers often coin jargon by overgeneralizing
grammatical rules. This is one aspect of a more general fondness for
form-versus-content language jokes that shows up particularly in hackish
writing. One correspondent reports that he consistently misspells
`wrong' as `worng'. Others have been known to criticize glitches in
Jargon File drafts by observing (in the mode of Douglas Hofstadter)
"This sentence no verb", or "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.
Another hacker quirk is a tendency to distinguish between `scare' quotes
and `speech' quotes; that is, to use British-style single quotes for
marking and reserve American-style double quotes for actual reports of
speech or text included from elsewhere. Interestingly, some authorities
describe this as correct general usage, but mainstream American English
has gone to using double-quotes indiscriminately enough that hacker
usage appears marked [and, in fact, I thought this was a personal quirk
of mine until I checked with USENET --- ESR]. One further permutation
that is definitely *not* standard is a hackish tendency to do marking
quotes by using apostrophes (single quotes) in pairs; that is, 'like
this'. This is modelled on string and character literal syntax in some
programming languages (reinforced by the fact that many character-only
terminals display the apostrophe in typewriter style, as a vertical
single quote).
One quirk that shows up frequently in the {email} style of UNIX hackers
in particular is a tendency for some things that are normally
all-lowercase (including usernames and the names of commands and C
routines) to remain uncapitalized even when they occur at the beginning
of sentences. It is clear that, for many hackers, the case of such
identifiers becomes a part of their internal representation (the
`spelling') and cannot be overridden without mental effort (an
appropriate reflex because UNIX and C both distinguish cases and
confusing them can lead to {lossage}). A way of escaping this dilemma
is simply to avoid using these constructions at the beginning of
sentences.
There seems to be a meta-rule behind these nonstandard hackerisms to the
effect that precision of expression is more important than conformance
to traditional rules; where the latter create ambiguity or lose
information they can be discarded without a second thought. It is
notable in this respect that other hackish inventions (for example, in
vocabulary) also tend to carry very precise shades of meaning even when
constructed to appear slangy and loose. In fact, to a hacker, the
contrast between `loose' form and `tight' content in jargon is a
substantial part of its humor!
Hackers have also developed a number of punctuation and emphasis
conventions adapted to single-font all-ASCII communications links, and
these are occasionally carried over into written documents even when
normal means of font changes, underlining, and the like are available.
One of these is that TEXT IN ALL CAPS IS INTERPRETED AS `LOUD', and this
becomes such an ingrained synesthetic reflex that a person who goes to
caps-lock while in {talk mode} may be asked to "stop shouting, please,
you're hurting my ears!".
Also, it is common to use bracketing with unusual characters to signify
emphasis. The asterisk is most common, as in "What the *hell*?" even
though this interferes with the common use of the asterisk suffix as a
footnote mark. The underscore is also common, suggesting underlining
(this is particularly common with book titles; for example, "It is often
alleged that Joe Haldeman wrote _The_Forever_War_ as a rebuttal to
Robert Heinlein's earlier novel of the future military,
_Starship_Troopers_."). Other forms exemplified by "=hell=", "\hell/",
or "/hell/" are occasionally seen (it's claimed that in the last example
the first slash pushes the letters over to the right to make them
italic, and the second keeps them from falling over). Finally, words
may also be emphasized L I K E T H I S, or by a series of carets (^)
under them on the next line of the text.
There is a semantic difference between *emphasis like this* (which
emphasizes the phrase as a whole), and *emphasis* *like* *this* (which
suggests the writer speaking very slowly and distinctly, as if to a
very young child or a mentally impaired person). Bracketing a word with
the `*' character may also indicate that the writer wishes readers to
consider that an action is taking place or that a sound is being made.
Examples: *bang*, *hic*, *ring*, *grin*, *kick*, *stomp*, *mumble*.
Another habit is that of using angle-bracket enclosure to genericize a
term; this derives from conventions used in {BNF}. Uses like the
following are common:
So this
There is also an accepted convention for `writing under erasure'; the
text
Be nice to this fool^H^H^H^Hgentleman, he's in from corporate HQ.
would be read as "Be nice to this fool, I mean this gentleman...". This
comes from the fact that the digraph ^H is often used as a print
representation for a backspace. It parallels (and may have been
influenced by) the ironic use of `slashouts' in science-fiction
fanzines.
In a formula, `*' signifies multiplication but two asterisks in a row
are a shorthand for exponentiation (this derives from FORTRAN). Thus,
one might write 2 ** 8 = 256.
Another notation for exponentiation one sees more frequently uses the
caret (^, ASCII 1011110); one might write instead `2^8 = 256'. This
goes all the way back to Algol-60, which used the archaic ASCII
`up-arrow' that later became the caret; this was picked up by Kemeny and
Kurtz's original BASIC, which in turn influenced the design of the
`bc(1)' and `dc(1)' UNIX tools, which have probably done most to
reinforce the convention on USENET. The notation is mildly confusing to
C programmers, because `^' means bitwise {XOR} in C. Despite this, it
was favored 3:1 over ** in a late-1990 snapshot of USENET. It is used
consistently in this text.
In on-line exchanges, hackers tend to use decimal forms or improper
fractions (`3.5' or `7/2') rather than `typewriter style' mixed
fractions (`3-1/2'). The major motive here is probably that the former
are more readable in a monospaced font, together with a desire to avoid
the risk that the latter might be read as `three minus one-half'. The
decimal form is definitely preferred for fractions with a terminating
decimal representation; there may be some cultural influence here from
the high status of scientific notation.
Another on-line convention, used especially for very large or very small
numbers, is taken from C (which derived it from FORTRAN). This is a
form of `scientific notation' using `e' to replace `*10^'; for example,
one year is about 3e7 seconds long.
The tilde (~) is commonly used in a quantifying sense of
`approximately'; that is, `~50' means `about fifty'.
On USENET and in the {MUD} world, common C boolean, logical, and
relational operators such as `|', `&', `||', `&&', `!', `==', `!=', `>',
`<', `>=', and `=<' 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
>I resently had occasion to field-test the Snafu
>Systems 2300E adaptive gonkulator. The price was
>right, and the racing stripe on the case looked
>kind of neat, but its performance left something
>to be desired.
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
--
== 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.
Hackers also mix letters and numbers more freely than in mainstream
usage. In particular, it is good hackish style to write a digit
sequence where you intend the reader to understand the text string that
names that number in English. So, hackers prefer to write `1970s'
rather than `nineteen-seventies' or `1970's' (the latter looks like a
possessive).
It should also be noted that hackers exhibit much less reluctance to use
multiply nested parentheses than is normal in English. Part of this is
almost certainly due to influence from LISP (which uses deeply nested
parentheses (like this (see?)) in its syntax a lot), but it has also
been suggested that a more basic hacker trait of enjoying playing with
complexity and pushing systems to their limits is in operation.
Finally, it is worth mentioning that many studies of on-line
communication have shown that electronic links have a de-inhibiting
effect on people. Deprived of the body-language cues through which
emotional state is expressed, people tend to forget everything about
other parties except what is presented over that ASCII link. This has
both good and bad effects. A good one is that it encourages honesty and
tends to break down hierarchical authority relationships; a bad one is
that it may encourage depersonalization and gratuitous rudeness.
Perhaps in response to this, experienced netters often display a sort of
conscious formal politesse in their writing that has passed out of
fashion in other spoken and written media (for example, the phrase "Well
said, sir!" is not uncommon).
Many introverted hackers who are next to inarticulate in person
communicate with considerable fluency over the net, perhaps precisely
because they can forget on an unconscious level that they are dealing
with people and thus don't feel stressed and anxious as they would face
to face.
Though it is considered gauche to publicly criticize posters for poor
spelling or grammar, the network places a premium on literacy and
clarity of expression. It may well be that future historians of
literature will see in it a revival of the great tradition of personal
letters as art.
:Email Quotes and Inclusion Conventions:
========================================
One area where hackish conventions for on-line writing are still in some
flux is the marking of included material from earlier messages --- what
would be called `block quotations' in ordinary English. From the usual
typographic convention employed for these (smaller font at an extra
indent), there derived the notation of included text being indented by
one ASCII TAB (0001001) character, which under UNIX and many other
environments gives the appearance of an 8-space indent.
Early mail and netnews readers had no facility for including messages
this way, so people had to paste in copy manually. BSD `Mail(1)' was
the first message agent to support inclusion, and early USENETters
emulated its style. But the TAB character tended to push included text
too far to the right (especially in multiply nested inclusions), leading
to ugly wraparounds. After a brief period of confusion (during which an
inclusion leader consisting of three or four spaces became established
in EMACS and a few mailers), the use of leading `>' or `> ' became
standard, perhaps owing to its use in `ed(1)' to display tabs
(alternatively, it may derive from the `>' that some early UNIX mailers
used to quote lines starting with "From" in text, so they wouldn't look
like the beginnings of new message headers). Inclusions within
inclusions keep their `>' leaders, so the `nesting level' of a quotation
is visually apparent.
The practice of including text from the parent article when posting a
followup helped solve what had been a major nuisance on USENET: the fact
that articles do not arrive at different sites in the same order.
Careless posters used to post articles that would begin with, or even
consist entirely of, "No, that's wrong" or "I agree" or the like. It
was hard to see who was responding to what. Consequently, around 1984,
new news-posting software evolved a facility to automatically include
the text of a previous article, marked with "> " or whatever the poster
chose. The poster was expected to delete all but the relevant lines.
The result has been that, now, careless posters post articles containing
the *entire* text of a preceding article, *followed* only by "No, that's
wrong" or "I agree".
Many people feel that this cure is worse than the original disease, and
there soon appeared newsreader software designed to let the reader skip
over included text if desired. Today, some posting software rejects
articles containing too high a proportion of lines beginning with `>'
--- but this too has led to undesirable workarounds, such as the
deliberate inclusion of zero-content filler lines which aren't quoted
and thus pull the message below the rejection threshold.
Because the default mailers supplied with UNIX and other operating
systems haven't evolved as quickly as human usage, the older conventions
using a leading TAB or three or four spaces are still alive; however,
>-inclusion is now clearly the prevalent form in both netnews and mail.
In 1991 practice is still evolving, and disputes over the `correct'
inclusion style occasionally lead to {holy wars}. One variant style
reported uses the citation character `|' in place of `>' for extended
quotations where original variations in indentation are being retained.
One also sees different styles of quoting a number of authors in the
same message: one (deprecated because it loses information) uses a
leader of `> ' for everyone, another (the most common) is `> > > > ', `>
> > ', etc. (or `>>>> ', `>>> ', etc., depending on line length and
nesting depth) reflecting the original order of messages, and yet
another is to use a different citation leader for each author, say `> ',
`: ', `| ', `} ' (preserving nesting so that the inclusion order of
messages is still apparent, or tagging the inclusions with authors'
names). Yet *another* style is to use each poster's initials (or login
name) as a citation leader for that poster. Occasionally one sees a `#
' leader used for quotations from authoritative sources such as
standards documents; the intended allusion is to the root prompt (the
special UNIX command prompt issued when one is running as the privileged
super-user).
:Hacker Speech Style:
=====================
Hackish speech generally features extremely precise diction, careful
word choice, a relatively large working vocabulary, and relatively
little use of contractions or street slang. Dry humor, irony, puns, and
a mildly flippant attitude are highly valued --- but an underlying
seriousness and intelligence are essential. One should use just enough
jargon to communicate precisely and identify oneself as a member of the
culture; overuse of jargon or a breathless, excessively gung-ho attitude
is considered tacky and the mark of a loser.
This speech style is a variety of the precisionist English normally
spoken by scientists, design engineers, and academics in technical
fields. In contrast with the methods of jargon construction, it is
fairly constant throughout hackerdom.
It has been observed that many hackers are confused by negative
questions --- or, at least, that the people to whom they are talking are
often confused by the sense of their answers. The problem is that they
have done so much programming that distinguishes between
if (going) ...
and
if (!going) ...
that when they parse the question "Aren't you going?" it seems to be
asking the opposite question from "Are you going?", and so merits an
answer in the opposite sense. This confuses English-speaking
non-hackers because they were taught to answer as though the negative
part weren't there. In some other languages (including Russian,
Chinese, and Japanese) the hackish interpretation is standard and the
problem wouldn't arise. Hackers often find themselves wishing for a
word like French `si' or German `doch' with which one could
unambiguously answer `yes' to a negative question.
For similar reasons, English-speaking hackers almost never use double
negatives, even if they live in a region where colloquial usage allows
them. The thought of uttering something that logically ought to be an
affirmative knowing it will be misparsed as a negative tends to disturb
them.
In a related vein, hackers sometimes make a game of answering
questions containing logical connectives with a strictly literal
rather than colloquial interpretation. A non-hacker who is indelicate
enough to ask a question like "So, are you working on finding that
bug *now* or leaving it until later?" is likely to get the
perfectly correct answer "Yes!" (that is, "Yes, I'm doing it either
now or later, and you didn't ask which!").
:International Style:
=====================
Although the Jargon File remains primarily a lexicon of hacker usage in
American English, we have made some effort to get input from abroad.
Though the hacker-speak of other languages often uses translations of
jargon from English (often as transmitted to them by earlier Jargon File
versions!), the local variations are interesting, and knowledge of them
may be of some use to travelling hackers.
There are some references herein to `Commonwealth English'. These are
intended to describe some variations in hacker usage as reported in the
English spoken in Great Britain and the Commonwealth (Canada, Australia,
India, etc. --- though Canada is heavily influenced by American usage).
There is also an entry on {{Commonwealth Hackish}} reporting some
general phonetic and vocabulary differences from U.S. hackish.
Hackers in Western Europe and (especially) Scandinavia 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.
A few notes on hackish usages in Russian have been added where they are
parallel with English idioms and thus comprehensible to
English-speakers.
:How to Use the Lexicon:
************************
:Pronunciation Guide:
=====================
Pronunciation keys are provided in the jargon listings for all entries
that are neither dictionary words pronounced as in standard English nor
obvious compounds thereof. Slashes bracket phonetic pronunciations,
which are to be interpreted using the following conventions:
1. Syllables are hyphen-separated, except that an accent or back-accent
follows each accented syllable (the back-accent marks a secondary
accent in some words of four or more syllables).
2. Consonants are pronounced as in American English. The letter `g' is
always hard (as in "got" rather than "giant"); `ch' is soft
("church" rather than "chemist"). The letter `j' is the sound
that occurs twice in "judge". The letter `s' is always as in
"pass", never a z sound. The digraph `kh' is the guttural of
"loch" or "l'chaim". 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 /aitch el el/. /Z/ may
be pronounced /zee/ or /zed/ depending on your local dialect.
4. Vowels are represented as follows:
a
back, that
ar
far, mark
aw
flaw, caught
ay
bake, rain
e
less, men
ee
easy, ski
eir
their, software
i
trip, hit
i:
life, sky
o
father, palm
oh
flow, sew
oo
loot, through
or
more, door
ow
out, how
oy
boy, coin
uh
but, some
u
put, foot
y
yet, young
yoo
few, chew
[y]oo
/oo/ with optional fronting as in `news' (/nooz/ or /nyooz/)
A /*/ is used for the `schwa' sound of unstressed or occluded vowels
(the one that is often written with an upside-down `e'). The schwa
vowel is omitted in syllables containing vocalic r, l, m or n; that is,
`kitten' and `color' would be rendered /kit'n/ and /kuhl'r/, not
/kit'*n/ and /kuhl'*r/.
Note that the above table reflects only 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). Many American and British
dialects make different distinctions. One that's caused particular
comment is that our /o/ represents two different sounds in most other
dialects, one of which is often rendered as /ah/.
Entries with a pronunciation of `//' are written-only usages. (No, UNIX
weenies, this does *not* mean `pronounce like previous pronunciation'!)
:Other Lexicon Conventions:
===========================
Entries are sorted in case-blind ASCII collation order (rather than the
letter-by-letter order ignoring interword spacing common in mainstream
dictionaries), except that all entries beginning with nonalphabetic
characters are sorted after Z. The case-blindness is a feature, not a
bug.
The beginning of each entry is marked by a colon (`:') at the
left margin. This convention helps out tools like hypertext browsers
that benefit from knowing where entry boundaries are, but aren't as
context-sensitive as humans.
In pure ASCII renderings of the Jargon File, you will see {} used to
bracket words which themselves have entries in the File. This isn't
done all the time for every such word, but it is done everywhere that a
reminder seems useful that the term has a jargon meaning and one might
wish to refer to its entry.
In this all-ASCII version, headwords for topic entries are distinguished
from those for ordinary entries by being followed by "::" rather than
":"; similarly, references are surrounded by "{{" and "}}" rather than
"{" and "}".
Defining instances of terms and phrases appear in `slanted type'. A
defining instance is one which occurs near to or as part of an
explanation of it.
Prefix ** is used as linguists do; to mark examples of incorrect usage.
We follow the `logical' quoting convention described in the Writing
Style section above. In addition, we reserve double quotes for actual
excerpts of text or (sometimes invented) speech. Scare quotes (which
mark a word being used in a nonstandard way), and philosopher's quotes
(which turn an utterance into the string of letters or words that name
it) are both rendered with single quotes.
References such as `malloc(3)' and `patch(1)' are to UNIX facilities
(some of which, such as `patch(1)', are actually freeware distributed
over USENET). The UNIX manuals use `foo(n)' to refer to item foo in
section (n) of the manual, where n=1 is utilities, n=2 is system calls,
n=3 is C library routines, n=6 is games, and n=8 (where present) is
system administration utilities. Sections 4, 5, and 7 of the manuals
have changed roles frequently and in any case are not referred to in any
of the entries.
Various abbreviations used frequently in the lexicon are summarized here:
abbrev.
abbreviation
adj.
adjective
adv.
adverb
alt.
alternate
cav.
caveat
esp.
especially
excl.
exclamation
imp.
imperative
interj.
interjection
n.
noun
obs.
obsolete
pl.
plural
poss.
possibly
pref.
prefix
prob.
probably
prov.
proverbial
quant.
quantifier
suff.
suffix
syn.
synonym (or synonymous with)
v.
verb (may be transitive or intransitive)
var.
variant
vi.
intransitive verb
vt.
transitive verb
Where alternate spellings or pronunciations are given, alt.
separates two possibilities with nearly equal distribution, while
var. prefixes one that is markedly less common than the primary.
Where a term can be attributed to a particular subculture or is known
to have originated there, we have tried to so indicate. Here is a
list of abbreviations used in etymologies:
Berkeley
University of California at Berkeley
Cambridge
the university in England (*not* the city in Massachusetts where
MIT happens to be located!)
BBN
Bolt, Beranek & Newman
CMU
Carnegie-Mellon University
Commodore
Commodore Business Machines
DEC
The Digital Equipment Corporation
Fairchild
The Fairchild Instruments Palo Alto development group
Fidonet
See the {Fidonet} entry
IBM
International Business Machines
MIT
Massachusetts Institute of Technology; esp. the legendary MIT AI Lab
culture of roughly 1971 to 1983 and its feeder groups, including the
Tech Model Railroad Club
NRL
Naval Research Laboratories
NYU
New York University
OED
The Oxford English Dictionary
Purdue
Purdue University
SAIL
Stanford Artificial Intelligence Laboratory (at Stanford
University)
SI
From Syst`eme International, the name for the standard
conventions of metric nomenclature used in the sciences
Stanford
Stanford University
Sun
Sun Microsystems
TMRC
Some MITisms go back as far as the Tech Model Railroad Club (TMRC) at
MIT c. 1960. Material marked TMRC is from `An Abridged Dictionary
of the TMRC Language', originally compiled by Pete Samson in 1959
UCLA
University of California at Los Angeles
UK
the United Kingdom (England, Wales, Scotland, Northern Ireland)
USENET
See the {USENET} entry
WPI
Worcester Polytechnic Institute, site of a very active community of
PDP-10 hackers during the 1970s
XEROX PARC
XEROX's Palo Alto Research Center, site of much pioneering research in
user interface design and networking
Yale
Yale University
Some other etymology abbreviations such as {UNIX} and {PDP-10}
refer to technical cultures surrounding specific operating systems,
processors, or other environments. The fact that a term is labelled
with any one of these abbreviations does not necessarily mean its use
is confined to that culture. In particular, many terms labelled `MIT'
and `Stanford' are in quite general use. We have tried to give some
indication of the distribution of speakers in the usage notes;
however, a number of factors mentioned in the introduction conspire to
make these indications less definite than might be desirable.
A few new definitions attached to entries are marked [proposed].
These are usually generalizations suggested by editors or USENET
respondents in the process of commenting on previous definitions of
those entries. These are *not* represented as established
jargon.
:Format For New Entries:
========================
All contributions and suggestions about the Jargon File will be
considered donations to be placed in the public domain as part of this
File, and may be used in subsequent paper editions. Submissions may
be edited for accuracy, clarity and concision.
Try to conform to the format already being used --- head-words
separated from text by a colon (double colon for topic entries),
cross-references in curly brackets (doubled for topic entries),
pronunciations in slashes, etymologies in square brackets,
single-space after definition numbers and word classes, etc. Stick to
the standard ASCII character set (7-bit printable, no high-half
characters or [nt]roff/TeX/Scribe escapes), as one of the versions
generated from the master file is an info document that has to be
viewable on a character tty.
We are looking to expand the file's range of technical specialties covered.
There are doubtless rich veins of jargon yet untapped in the scientific
computing, graphics, and networking hacker communities; also in numerical
analysis, computer architectures and VLSI design, language design, and many
other related fields. Send us your jargon!
We are *not* interested in straight technical terms explained by
textbooks or technical dictionaries unless an entry illuminates
`underground' meanings or aspects not covered by official histories.
We are also not interested in `joke' entries --- there is a lot of
humor in the file but it must flow naturally out of the explanations
of what hackers do and how they think.
It is OK to submit items of jargon you have originated if they have spread
to the point of being used by people who are not personally acquainted with
you. We prefer items to be attested by independent submission from two
different sites.
The Jargon File will be regularly maintained and re-posted from now on
and will include a version number. Read it, pass it around,
contribute --- this is *your* monument!
The Jargon Lexicon
******************
= A =
=====
:abbrev: /*-breev'/, /*-brev'/ n. Common abbreviation for
`abbreviation'.
:ABEND: [ABnormal END] /o'bend/, /*-bend'/ n. Abnormal
termination (of software); {crash}; {lossage}. Derives from an
error message on the IBM 360; used jokingly by hackers but
seriously mainly by {code grinder}s. Usually capitalized, but may
appear as `abend'. Hackers will try to persuade you that ABEND is
called `abend' because it is what system operators do to the
machine late on Friday when they want to call it a day, and hence
is from the German `Abend' = `Evening'.
:accumulator: n. 1. Archaic term for a register. On-line use of it
as a synonym for `register' is a fairly reliable indication that
the user has been around for quite a while and/or that the
architecture under discussion is quite old. The term in full is
almost never used of microprocessor registers, for example, though
symbolic names for arithmetic registers beginning in `A' derive
from historical use of the term `accumulator' (and not, actually,
from `arithmetic'). Confusingly, though, an `A' register name
prefix may also stand for `address', as for example on the
Motorola 680x0 family. 2. A register being used for arithmetic or
logic (as opposed to addressing or a loop index), especially one
being used to accumulate a sum or count of many items. This use is
in context of a particular routine or stretch of code. "The
FOOBAZ routine uses A3 as an accumulator." 3. One's in-basket
(esp. among old-timers who might use sense 1). "You want this
reviewed? Sure, just put it in the accumulator." (See {stack}.)
:ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110]
Acknowledge. Used to register one's presence (compare mainstream
*Yo!*). An appropriate response to {ping} or {ENQ}.
2. [from the comic strip "Bloom County"] An exclamation of
surprised disgust, esp. in "Ack pffft!" Semi-humorous.
Generally this sense is not spelled in caps (ACK) and is
distinguished by a following exclamation point. 3. Used to
politely interrupt someone to tell them you understand their point
(see {NAK}). Thus, for example, you might cut off an overly
long explanation with "Ack. Ack. Ack. I get it now".
There is also a usage "ACK?" (from sense 1) meaning "Are you
there?", often used in email when earlier mail has produced no
reply, or during a lull in {talk mode} to see if the person has
gone away (the standard humorous response is of course {NAK}
(sense 2), i.e., "I'm not here").
:ad-hockery: /ad-hok'*r-ee/ [Purdue] n. 1. Gratuitous assumptions
made inside certain programs, esp. expert systems, which lead to
the appearance of semi-intelligent behavior but are in fact
entirely arbitrary. For example, fuzzy-matching against input
tokens that might be typing errors against a symbol table can make
it look as though a program knows how to spell. 2. Special-case
code to cope with some awkward input that would otherwise cause a
program to {choke}, presuming normal inputs are dealt with in
some cleaner and more regular way. Also called `ad-hackery',
`ad-hocity' (/ad-hos'*-tee/), `ad-crockery'. See also
{ELIZA effect}.
:Ada:: n. A {{Pascal}}-descended language that has been made
mandatory for Department of Defense software projects by the
Pentagon. Hackers are nearly unanimous in observing that,
technically, it is precisely what one might expect given that kind
of endorsement by fiat; designed by committee, crockish, difficult
to use, and overall a disastrous, multi-billion-dollar boondoggle
(one common description is "The PL/I of the 1980s"). Hackers
find Ada's exception-handling and inter-process communication
features particularly hilarious. Ada Lovelace (the daughter of
Lord Byron who became the world's first programmer while
cooperating with Charles Babbage on the design of his mechanical
computing engines in the mid-1800s) would almost certainly blanch
at the use to which her name has latterly been put; the kindest
thing that has been said about it is that there is probably a good
small language screaming to get out from inside its vast,
{elephantine} bulk.
:adger: /aj'r/ [UCLA] vt. To make a bonehead move with
consequences that could have been foreseen with 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
implemented on the {PDP-10} by Will Crowther as an attempt at
computer-refereed fantasy gaming, and expanded into a
puzzle-oriented game by Don Woods. Now better known as Adventure,
but the {{TOPS-10}} operating system permitted only six-letter
filenames. See also {vadding}.
This game defined the terse, dryly humorous style now expected in
text adventure games, and popularized several tag lines that have
become fixtures of hacker-speak: "A huge green fierce snake bars
the way!" "I see no X here" (for some noun X). "You are in a
maze of twisty little passages, all alike." "You are in a little
maze of twisty passages, all different." The `magic words'
{xyzzy} and {plugh} also derive from this game.
Crowther, by the way, participated in the exploration of the
Mammoth & Flint Ridge cave system; it actually *has* a
`Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that
also turns up is cavers' jargon for a map reference to a secondary
entrance.
:AFJ: // n. Written-only abbreviation for "April Fool's Joke".
Elaborate April Fool's hoaxes are a long-established tradition on
USENET and Internet; see {kremvax} for an example. In fact,
April Fool's Day is the *only* seasonal holiday marked by
customary observances on the hacker networks.
:AI: /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'/ [MIT, Stanford: by analogy with
`NP-complete' (see {NP-})] adj. Used to describe problems or
subproblems in AI, to indicate that the solution presupposes a
solution to the `strong AI problem' (that is, the synthesis of a
human-level intelligence). A problem that is AI-complete is, in
other words, just too hard.
Examples of AI-complete problems are `The Vision Problem'
(building a system that can see as well as a human) and `The
Natural Language Problem' (building a system that can understand
and speak a natural language as well as a human). These may appear
to be modular, but all attempts so far (1993) to solve them have
foundered on the amount of context information and `intelligence'
they seem to require. See also {gedanken}.
:AI koans: /A-I koh'anz/ pl.n. A series of pastiches of Zen
teaching riddles created by Danny Hillis at the MIT AI Lab around
various major figures of the Lab's culture (several are included
under "{A Selection of AI Koans}" in {Appendix
A}). See also {ha ha only serious}, {mu}, and {{Humor,
Hacker}}.
:AIDS: /aydz/ n. Short for A* Infected Disk Syndrome (`A*' is a
{glob} pattern that matches, but is not limited to, Apple),
this condition is quite often the result of practicing unsafe
{SEX}. See {virus}, {worm}, {Trojan horse},
{virgin}.
:AIDX: n. /aydkz/ n. Derogatory term for IBM's perverted version
of UNIX, AIX, especially for the AIX 3.? used in the IBM RS/6000
series. A victim of the dreaded "hybridism" disease, this
attempt to combine the two main currents of the UNIX stream
({BSD} and {USG UNIX}) became a {monstrosity} to haunt
system administrators' dreams. For example, if new accounts are
created while many users are logged on, the load average jumps
quickly over 20 due to silly implementation of the user databases.
For a quite similar disease, compare {HP-SUX}. Also, compare
{terminak}, {Macintrash} {Nominal Semidestructor},
{Open DeathTrap}, {ScumOS}, {sun-stools}.
:airplane rule: n. "Complexity increases the possibility of
failure; a twin-engine airplane has twice as many engine problems
as a single-engine airplane." By analogy, in both software and
electronics, the rule that simplicity increases robustness. 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}.
: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.
:all-elbows: [MS-DOS] adj. Of a TSR (terminate-and-stay-resident)
IBM PC program, such as the N pop-up calendar and calculator
utilities that circulate on {BBS} systems: unsociable. Used to
describe a program that rudely steals the resources that it needs
without considering that other TSRs may also be resident. One
particularly common form of rudeness is lock-up due to programs
fighting over the keyboard interrupt. See {rude}, also
{mess-dos}.
:alpha particles: n. See {bit rot}.
:alt: /awlt/ 1. n. The alt shift key on an IBM PC or {clone}
keyboard; see {bucky bits}, sense 2 (though typical PC usage does
not simply set the 0200 bit). 2. n. The `clover' or `Command'
key on a Macintosh; use of this term usually reveals that the
speaker hacked PCs before coming to the Mac (see also {feature
key}). Some Mac hackers, confusingly, reserve `alt' for the Option
key (and it is so labeled on some Mac II keyboards). 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).
:alt bit: /awlt bit/ [from alternate] adj. See {meta bit}.
:altmode: n. Syn. {alt} sense 3.
:Aluminum Book: [MIT] n. `Common LISP: The Language', by
Guy L. Steele Jr. (Digital Press, first edition 1984, second
edition 1990). Note that due to a technical screwup some printings
of the second edition are actually of a color the author describes
succinctly as "yucky green". See also {{book titles}}.
:amoeba: n. Humorous term for the Commodore Amiga personal computer.
:amp off: [Purdue] vt. To run in {background}. From the UNIX shell `&'
operator.
:amper: n. Common abbreviation for the name of the ampersand (`&',
ASCII 0100110) character. See {{ASCII}} for other synonyms.
:angle brackets: n. Either of the characters `<' (ASCII
0111100) and `>' (ASCII 0111110) (ASCII less-than or
greater-than signs). Typographers in the {Real World} use angle
brackets which are either taller and slimmer (the ISO `Bra' and
`Ket' characters), or significantly smaller (single or double
guillemets) than the less-than and greater-than signs.
See {broket}, {{ASCII}}.
:angry fruit salad: n. A bad visual-interface design that uses too
many colors. (This term derives, of course, from the bizarre
day-glo colors found in canned fruit salad.) Too often one sees
similar effects from interface designers using color window systems
such as {X}; there is a tendency to create displays that are
flashy and attention-getting but uncomfortable for long-term
use.
:annoybot: /*-noy-bot/ [IRC] n. See {robot}.
:AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a
PDP-10 increment instruction] vt.,obs. To increase the amount of
something. "AOS the campfire." Usage: considered silly, and now
obsolete. Now largely supplanted by {bump}. See {SOS}.
2. n. A {{Multics}}-derived OS supported at one time by Data
General. This was pronounced /A-O-S/ or /A-os/. A spoof of
the standard AOS system administrator's manual (`How to Load
and Generate your AOS System') was created, issued a part number,
and circulated as photocopy folklore; it was called `How to
Goad and Levitate your CHAOS System'. 3. n. Algebraic Operating
System, in reference to those calculators which use infix instead
of postfix (reverse Polish) notation.
Historical note: AOS in sense 1 was the name of a {PDP-10}
instruction that took any memory location in the computer and added
1 to it; AOS meant `Add One and do not Skip'. Why, you may ask,
does the `S' stand for `do not Skip' rather than for `Skip'? Ah,
here was a beloved piece of PDP-10 folklore. There were eight such
instructions: AOSE added 1 and then skipped the next instruction
if the result was Equal to zero; AOSG added 1 and then skipped if
the result was Greater than 0; AOSN added 1 and then skipped
if the result was Not 0; AOSA added 1 and then skipped Always;
and so on. Just plain AOS didn't say when to skip, so it never
skipped.
For similar reasons, AOJ meant `Add One and do not Jump'. Even
more bizarre, SKIP meant `do not SKIP'! If you wanted to skip the
next instruction, you had to say `SKIPA'. Likewise, JUMP meant
`do not JUMP'; the unconditional form was JUMPA. However, hackers
never did this. By some quirk of the 10's design, the {JRST}
(Jump and ReSTore flag with no flag specified) was actually faster
and so was invariably used. Such were the perverse mysteries of
assembler programming.
:app: /ap/ n. Short for `application program', as opposed to a
systems program. 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.) Oppose {tool}, {operating
system}.
:arena: [UNIX] n. The area of memory attached to a process by
`brk(2)' and `sbrk(2)' and used by `malloc(3)' as
dynamic storage. So named from a `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: [acronym, `Automated Retroactive Minimal Moderation'] n. A
USENET robot created by Dick Depew of Munroe Falls, Ohio. It 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 amusememt 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" (instantly 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,
The}; {sorcerer's apprentice mode}. See also {software
laser}, {network meltdown}.
:armor-plated: n. Syn. for {bulletproof}.
:asbestos: adj. Used as a modifier to anything intended to protect
one from {flame}s; also in other highly {flame}-suggestive
usages. See, for example, {asbestos longjohns} and {asbestos
cork award}.
:asbestos cork award: n. Once, long ago at MIT, there was a
{flamer} so consistently obnoxious that another hacker designed,
had made, and distributed posters announcing that said flamer had
been nominated for the `asbestos cork award'. (Any reader in
doubt as to the intended application of the cork should consult the
etymology under {flame}.) Since then, it is agreed that only a
select few have risen to the heights of bombast required to earn
this dubious dignity --- but there is no agreement on *which*
few.
:asbestos longjohns: n. Notional garments donned by {USENET}
posters just before emitting a remark they expect will elicit
{flamage}. This is the most common of the {asbestos}
coinages. Also `asbestos underwear', `asbestos overcoat',
etc.
:ASCII:: [American Standard Code for Information Interchange]
/as'kee/ n. The predominant character set encoding of present-day
computers. he modern version uses 7 bits for each character,
whereas most earlier codes (including an early version of ASCII)
used fewer. This change allowed the inclusion of lowercase letters
--- a major {win} --- but it did not provide for accented
letters or any other letterforms not used in English (such as the
German sharp-S
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.
Computers are much pickier and less flexible about spelling than
humans; thus, hackers need to be very precise when talking about
characters, and have developed a considerable amount of verbal
shorthand for them. Every character has one or more names --- some
formal, some concise, some silly. Common jargon names for ASCII
characters are collected here. See also individual entries for
{bang}, {excl}, {open}, {ques}, {semi}, {shriek},
{splat}, {twiddle}, and {Yu-Shiang Whole Fish}.
This list derives from revision 2.3 of the USENET ASCII
pronunciation guide. Single characters are listed in ASCII order;
character pairs are sorted in by first member. For each character,
common names are given in rough order of popularity, followed by
names that are reported but rarely seen; official ANSI/CCITT names
are surrounded by brokets: <>. Square brackets mark the
particularly silly names introduced by {INTERCAL}. The
abbreviations "l/r" and "o/c" stand for left/right and
"open/close" respectively. Ordinary parentheticals provide some
usage information.
!
Common: {bang}; pling; excl; shriek;
Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
wham; eureka; [spark-spot]; soldier.
"
Common: double quote; quote. Rare: literal mark;
double-glitch;
[rabbit-ears]; double prime.
#
Common: number sign; pound; pound sign; hash; sharp; {crunch};
hex; [mesh]. Rare: grid; cross-hatch; oc-to-thorpe; flash;
{splat}.
$
Common: dollar;
cash; string (from BASIC); escape (when used as the echo of
ASCII ESC); ding; cache; [big money].
%
Common: percent;
[double-oh-seven].
&
Common:
reference (from C++); andpersand; bitand; background (from
`sh(1)'); pretzel; amp. [INTERCAL called this `ampersand';
what could be sillier?]
'
Common: single quote; quote;
glitch; tick; irk; pop; [spark];
( )
Common: l/r paren; l/r parenthesis; left/right; o-pen-/-close;
par-en/the-sis; o/c paren; o/c par-en-the-sis; l/r
paren-the-sis; l/r ba-na-na. Rare: so/al-ready;
lparen/rparen;
bracket, l/r round bracket, [wax/wane];
par-en-this-ey/un-par-en-this-ey; l/r ear.
*
Common: star; [{splat}];
dingle; mult; spider; aster; times; twinkle; glob (see
{glob}); {Nathan Hale}.
+
Common:
,
Common:
-
Common: dash;
bithorpe.
.
Common: dot; point;
point; full stop; [spot].
/
Common: slash; stroke;
diagonal; solidus; over; slak; virgule; [slat].
:
Common:
;
Common:
pit-thwong.
< >
Common:
bracket; l/r broket. Rare: from/{into, towards}; read
from/write to; suck/blow; comes-from/gozinta; in/out;
crunch/zap (all from UNIX); [angle/right angle].
=
Common:
[half-mesh].
?
Common: query;
[what]; wildchar; huh; hook; buttonhook; hunchback.
@
Common: at sign; at; strudel. Rare: each; vortex; whorl;
[whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
V
Rare: [book].
[ ]
Common: l/r square bracket; l/r bracket;
turn/U turn back].
\
Common: backslash; escape (from C/UNIX); reverse slash; slosh;
backslant; backwhack. Rare: bash;
virgule; [backslat].
^
Common: hat; control; uparrow; caret;
chevron; [shark (or shark-fin)]; to the (`to the power of');
fang; pointer (in Pascal).
_
Common:
score; backarrow; skid; [flatworm].
`
Common: backquote; left quote; left single quote; open quote;
unapostrophe; birk; blugle; back tick; back glitch; push;
{ }
Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
bracket/brace; l/r curly bracket/brace;
l/r squirrelly; [embrace/bracelet].
|
Common: bar; or; or-bar; v-bar; pipe; vertical bar. Rare:
UNIX); [spike].
~
Common:
wiggle; swung dash; enyay; [sqiggle (sic)].
The pronunciation of `#' as `pound' is common in the U.S.
but a bad idea; {{Commonwealth Hackish}} has its own, rather more
apposite use of `pound sign' (confusingly, on British keyboards
the pound graphic
happens to replace `#'; thus Britishers sometimes
call `#' on a U.S.-ASCII keyboard `pound', compounding the
American error). The U.S. usage derives from an old-fashioned
commercial practice of using a `#' suffix to tag pound weights
on bills of lading. The character is usually pronounced `hash'
outside the U.S.
The `uparrow' name for circumflex and `leftarrow' name for
underline are historical relics from archaic ASCII (the 1963
version), which had these graphics in those character positions
rather than the modern punctuation characters.
The `swung dash' or `approximation' sign is not quite the same
as tilde in typeset material
but the ASCII tilde serves for both (compare {angle
brackets}).
Some other common usages cause odd overlaps. The `#',
`$', `>', and `&' characters, for example, are all
pronounced "hex" in different communities because various
assemblers use them as a prefix tag for hexadecimal constants (in
particular, `#' in many assembler-programming cultures,
`$' in the 6502 world, `>' at Texas Instruments, and
`&' on the BBC Micro, Sinclair, and some Z80 machines). See
also {splat}.
The inability of ASCII text to correctly represent any of the
world's other major languages makes the designers' choice of 7 bits
look more and more like a serious {misfeature} as the use of
international networks continues to increase (see {software
rot}). Hardware and software from the U.S. still tends to embody
the assumption that ASCII is the universal character set and that
characters have 7 bits; this is a a major irritant to people who
want to use a character set suited to their own languages.
Perversely, though, efforts to solve this problem by proliferating
`national' character sets produce an evolutionary pressure to use
a *smaller* subset common to all those in use.
:ASCII art: n. The fine art of drawing diagrams using the ASCII
character set (mainly `|', `-', `/', `\', and
`+'). Also known as `character graphics' or `ASCII
graphics'; see also {boxology}. Here is a serious example:
o----)||(--+--|<----+ +---------o + D O
L )||( | | | C U
A I )||( +-->|-+ | +-\/\/-+--o - T
C N )||( | | | | P
E )||( +-->|-+--)---+--)|--+-o U
)||( | | | GND T
o----)||(--+--|<----+----------+
A power supply consisting of a full
wave rectifier circuit feeding a
capacitor input filter circuit
Figure 1.
And here are some very silly examples:
|\/\/\/| ____/| ___ |\_/| ___
| | \ o.O| ACK! / \_ |` '| _/ \
| | =(_)= THPHTH! / \/ \/ \
| (o)(o) U / \
C _) (__) \/\/\/\ _____ /\/\/\/
| ,___| (oo) \/ \/
| / \/-------\ U (__)
/____\ || | \ /---V `v'- oo )
/ \ ||---W|| * * |--| || |`. |_/\
Figure 2.
There is an important subgenre of humorous ASCII art that takes
advantage of the names of the various characters to tell a
pun-based joke.
+--------------------------------------------------------+
| ^^^^^^^^^^^^ |
| ^^^^^^^^^^^ ^^^^^^^^^ |
| ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ |
| ^^^^^^^ B ^^^^^^^^^ |
| ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ |
+--------------------------------------------------------+
" A Bee in the Carrot Patch "
Figure 3.
Within humorous ASCII art, there is for some reason an entire
flourishing subgenre of pictures of silly cows. Four of these are
reproduced in Figure 2; here are three more:
(__) (__) (__)
(\/) ($$) (**)
/-------\/ /-------\/ /-------\/
/ | 666 || / |=====|| / | ||
* ||----|| * ||----|| * ||----||
~~ ~~ ~~ ~~ ~~ ~~
Satanic cow This cow is a Yuppie Cow in love
Figure 4.
: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 end.
:atomic: [from Gk. `atomos', indivisible] adj. 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. Esp. used to convey that an operation cannot be
screwed up by interrupts. "This routine locks the file and
increments the file's semaphore atomically." This usage 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-}.
:autobogotiphobia: /aw'to-boh-got`*-foh'bee-*/ n. See {bogotify}.
:automagically: /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ adv.
Automatically, but in a way that, for some reason (typically
because it is too complicated, or too ugly, or perhaps even too
trivial), the speaker doesn't feel like explaining to you. See
{magic}. "The C-INTERCAL compiler generates C, then automagically
invokes `cc(1)' to produce an executable."
:avatar: [CMU, Tektronix] n. Syn. {root}, {superuser}. There
are quite a few UNIX machines on which the name of the superuser
account is `avatar' rather than `root'. This quirk was
originated by a CMU hacker who disliked the term `superuser',
and was propagated through an ex-CMU hacker at Tektronix.
:awk: 1. n. [UNIX techspeak] An interpreted language for massaging
text data developed by Alfred Aho, Peter Weinberger, and Brian
Kernighan (the name derives from their initials). It is
characterized by C-like syntax, a declaration-free approach to
variable typing and declarations, associative arrays, and
field-oriented text processing. See also {Perl}. 2. n.
Editing term for an expression awkward to manipulate through normal
{regexp} facilities (for example, one containing a
{newline}). 3. vt. To process data using `awk(1)'.
= B =
=====
:back door: n. 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.
The infamous {RTM} worm of late 1988, for example, used a back door
in the {BSD} UNIX `sendmail(8)' utility.
Ken Thompson's 1983 Turing Award lecture to the ACM revealed the
existence of a back door in early UNIX versions that may have
qualified as the most fiendishly clever security hack of all time.
The C compiler contained code that would recognize when the
`login' command was being recompiled and insert some code
recognizing a password chosen by Thompson, giving him entry to the
system whether or not an account had been created for him.
Normally such a back door could be removed by removing it from the
source code for the compiler and recompiling the compiler. But to
recompile the compiler, you have to *use* the compiler --- so
Thompson also arranged that the compiler would *recognize when
it was compiling a version of itself*, and insert into the
recompiled compiler the code to insert into the recompiled
`login' the code to allow Thompson entry --- and, of course, the
code to recognize itself and do the whole thing again the next time
around! And having done this once, he was then able to recompile
the compiler from the original sources; the hack perpetuated itself
invisibly, leaving the back door in place and active but with no
trace in the sources.
The talk that revealed this truly moby hack was published as
"Reflections on Trusting Trust", `Communications of the
ACM 27', 8 (August 1984), pp. 761--763.
:backbone cabal: n. A group of large-site administrators who pushed
through the {Great Renaming} and reined in the chaos of {USENET}
during most of the 1980s. The cabal {mailing list} disbanded in
late 1988 after a bitter internal catfight.
:backbone site: n. A key USENET and email site; one that processes
a large amount of third-party traffic, especially if it is the home
site of any of the regional coordinators for the USENET maps.
Notable backbone sites as of early 1993 include uunet and the
mail machines at Rutgers University, UC Berkeley, DEC's Western
Research Laboratories, Ohio State University, and the University of
Texas. Compare {rib site}, {leaf site}.
:backgammon:: See {bignum} (sense 3), {moby} (sense 4), and
{pseudoprime}.
:background: n.,adj.,vt. To do a task `in background' is to do
it whenever {foreground} matters are not claiming your undivided
attention, and `to background' something means to relegate it to
a lower priority. "For now, we'll just print a list of nodes and
links; I'm working on the graph-printing problem in background."
Note that this implies ongoing activity but at a reduced level or
in spare time, in contrast to mainstream `back burner' (which
connotes benign neglect until some future resumption of activity).
Some people prefer to use the term for processing that they have
queued up for their unconscious minds (a tack that one can often
fruitfully take upon encountering an obstacle in creative work).
Compare {amp off}, {slopsucker}.
Technically, a task running in background is detached from the
terminal where it was started (and often running at a lower
priority); oppose {foreground}. Nowadays this term is primarily
associated with {{UNIX}}, but it appears to have been first used
in this sense on OS/360.
:backspace and overstrike: interj. Whoa! Back up. Used to suggest
that someone just said or did something wrong. Common among
APL programmers.
:backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ [from
`backward compatibility'] n. A property of hardware or software
revisions in which previous protocols, formats, 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/ [IBM: acronym, `Broken As Designed'] adj. Said
of a program that is {bogus} because of bad design and misfeatures
rather than because of bugginess. See {working as designed}.
:Bad Thing: [from the 1930 Sellar & Yeatman parody `1066 And
All That'] n. Something that can't possibly result in improvement
of the subject. This term is always capitalized, as in "Replacing
all of the 9600-baud modems with bicycle couriers would be a Bad
Thing". Oppose {Good Thing}. British correspondents confirm
that {Bad Thing} and {Good Thing} (and prob. therefore {Right
Thing} and {Wrong Thing}) come from the book referenced in the
etymology, which discusses rulers who were Good Kings but Bad
Things. This has apparently created a mainstream idiom on the
British side of the pond.
:bag on the side: n. An extension to an established hack that is
supposed to add some functionality to the original. Usually
derogatory, implying that the original was being overextended and
should have been thrown away, and the new product is ugly,
inelegant, or bloated. Also v. phrase, `to hang a bag on the side
[of]'. "C++? That's just a bag on the side of C ...."
"They want me to hang a bag on the side of the accounting
system."
:bagbiter: /bag'bi:t-*r/ n. 1. Something, such as a program or a
computer, that fails to work, or works in a remarkably clumsy
manner. "This text editor won't let me make a file with a line
longer than 80 characters! What a bagbiter!" 2. A person who has
caused you some trouble, inadvertently or otherwise, typically by
failing to program the computer properly. Synonyms: {loser},
{cretin}, {chomper}. 3. adj. `bagbiting' Having the
quality of a bagbiter. "This bagbiting system won't let me
compute the factorial of a negative number." Compare {losing},
{cretinous}, {bletcherous}, `barfucious' (under
{barfulous}) and `chomping' (under {chomp}). 4. `bite
the bag' vi. To fail in some manner. "The computer keeps crashing
every five minutes." "Yes, the disk controller is really biting
the bag." The original loading of these terms was almost
undoubtedly obscene, possibly referring to the scrotum, but in
their current usage they have become almost completely
sanitized.
A program called Lexiphage on the old MIT AI PDP-10 would draw on a
selected victim's bitmapped terminal the words "THE BAG" in
ornate letters, followed a pair of jaws biting pieces of it off.
This is the first and to date only known example of a program
*intended* to be a bagbiter.
:bamf: /bamf/ 1. [from old X-Men comics] interj. Notional sound
made by a person or object teleporting in or out of the hearer's
vicinity. Often used in {virtual reality} (esp. {MUD})
electronic {fora} when a character wishes to make a dramatic
entrance or exit. 2. The sound of magical transformation, used in
virtual reality {fora} like sense 1.
:banana label: n. The labels often used on the sides of {macrotape}
reels, so called because they are shaped roughly like blunt-ended
bananas. This term, like macrotapes themselves, is still current
but visibly headed for obsolescence.
:banana problem: n. [from the story of the little girl who said "I
know how to spell `banana', but I don't know when to stop"]. Not
knowing where or when to bring a production to a close (compare
{fencepost error}). One may say `there is a banana problem' of an
algorithm with poorly defined or incorrect termination conditions,
or in discussing the evolution of a design that may be succumbing
to featuritis (see also {creeping elegance}, {creeping
featuritis}). See item 176 under {HAKMEM}, which describes a
banana problem in a {Dissociated Press} implementation. Also,
see {one-banana problem} for a superficially similar but
unrelated usage.
:bandwidth: n. 1. Used by hackers (in a generalization of its
technical meaning) as the volume of information per unit time that a
computer, person, or transmission medium can handle. "Those are
amazing graphics, but I missed some of the detail --- not enough
bandwidth, I guess." Compare {low-bandwidth}. 2. Attention
span. 3. On {USENET}, a measure of network capacity that is
often wasted by people complaining about how items posted by others
are a waste of bandwidth.
:bang: 1. n. Common spoken name for `!' (ASCII 0100001),
especially when used in pronouncing a {bang path} in spoken
hackish. In {elder days} this was considered a CMUish usage,
with MIT and Stanford hackers preferring {excl} or {shriek};
but the spread of UNIX has carried `bang' with it (esp. via the
term {bang path}) and it is now certainly the most common spoken
name for `!'. Note that it is used exclusively for
non-emphatic written `!'; one would not say "Congratulations
bang" (except possibly for humorous purposes), but if one wanted
to specify the exact characters `foo!' one would speak "Eff oh oh
bang". See {shriek}, {{ASCII}}. 2. interj. An exclamation
signifying roughly "I have achieved enlightenment!", or "The
dynamite has cleared out my brain!" Often used to acknowledge
that one has perpetrated a {thinko} immediately after one has
been called on it.
:bang on: vt. To stress-test a piece of hardware or software: "I
banged on the new version of the simulator all day yesterday and it
didn't crash once. I guess it is ready for release." The term
{pound on} is synonymous.
:bang path: n. An old-style UUCP electronic-mail address specifying
hops to get from some assumed-reachable location to the addressee,
so called because each {hop} is signified by a {bang} sign.
Thus, for example, the path ...!bigsite!foovax!barbox!me
directs people to route their mail to machine bigsite (presumably
a well-known location accessible to everybody) and from there
through the machine foovax to the account of user me on
barbox.
In the bad old days of not so long ago, before autorouting mailers
became commonplace, people often published compound bang addresses
using the { } convention (see {glob}) to give paths from
*several* big machines, in the hopes that one's correspondent
might be able to get mail to one of them reliably (example:
...!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me). Bang paths
of 8 to 10 hops were not uncommon in 1981. Late-night dial-up
UUCP links would cause week-long transmission times. Bang paths
were often selected by both transmission time and reliability, as
messages would often get lost. See {{Internet address}},
{network, the}, and {sitename}.
:banner: n. 1. The title page added to printouts by most print
spoolers (see {spool}). Typically includes user or account ID
information in very large character-graphics capitals. Also called
a `burst page', because it indicates where to burst (tear apart)
fanfold paper to separate one user's printout from the next. 2. A
similar printout generated (typically on multiple pages of fan-fold
paper) from user-specified text, e.g., by a program such as UNIX's
`banner({1,6})'. 3. On interactive software, a first screen
containing a logo and/or author credits and/or a copyright notice.
:bar: /bar/ n. 1. The second {metasyntactic variable}, after {foo}
and before {baz}. "Suppose we have two functions: FOO and BAR.
FOO calls BAR...." 2. Often appended to {foo} to produce
{foobar}.
:bare metal: n. 1. New computer hardware, unadorned with such
snares and delusions as an {operating system}, an {HLL}, or
even assembler. Commonly used in the phrase `programming on the
bare metal', which refers to the arduous work of {bit bashing}
needed to create these basic tools for a new machine. Real
bare-metal programming involves things like building boot proms and
BIOS chips, implementing basic monitors used to test device
drivers, and writing the assemblers that will be used to write the
compiler back ends that will give the new machine a real
development environment. 2. `Programming on the bare metal' is
also used to describe a style of {hand-hacking} that relies on
bit-level peculiarities of a particular hardware design, esp.
tricks for speed and space optimization that rely on crocks such as
overlapping instructions (or, as in the famous case described in
{The Story of Mel, a Real Programmer} (in {Appendix A}),
interleaving of opcodes on a magnetic drum to minimize fetch delays
due to the device's rotational latency). This sort of thing has
become less common as the relative costs of programming time and
machine resources have changed, but is still found in heavily
constrained environments such as industrial embedded systems, 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/ [from mainstream slang meaning `vomit']
1. interj. Term of disgust. This is the closest hackish
equivalent of the Val\-speak "gag me with a spoon". (Like,
euwww!) See {bletch}. 2. vi. To say "Barf!" or emit some
similar expression of disgust. "I showed him my latest hack and
he barfed" means only that he complained about it, not that he
literally vomited. 3. vi. To fail to work because of unacceptable
input, 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 message}s accumulating to the
level of serious annoyance, or worse. The sort of thing that
happens when an inter-network mail gateway goes down or
wonky.
:barfulation: /bar`fyoo-lay'sh*n/ interj. Variation of {barf}
used around the Stanford area. An exclamation, expressing disgust.
On seeing some particularly bad code one might exclaim,
"Barfulation! Who wrote this, Quux?"
:barfulous: /bar'fyoo-l*s/ adj. (alt. `barfucious',
/bar-fyoo-sh*s/) Said of something that would make anyone barf,
if only for esthetic reasons.
:barney: n. In Commonwealth hackish, `barney' is to {fred}
(sense #1) as {bar} is to {foo}. That is, people who
commonly use `fred' as their first metasyntactic variable will
often use `barney' second. The reference is, of course, to Fred
Flintstone and Barney Rubble in the Flintstones cartoons.
:baroque: adj. Feature-encrusted; complex; gaudy; verging on
excessive. Said of hardware or (esp.) software designs, this has
many of the connotations of {elephantine} or {monstrosity} but is
less extreme and not pejorative in itself. "Metafont even has
features to introduce random variations to its letterform output.
Now *that* is baroque!" See also {rococo}.
:BASIC: [acronym, from Beginner's All-purpose Symbolic Instruction
Code] n. A programming language, originally designed for
Dartmouth's experimental timesharing system in the early 1960s,
which has since become the leading cause of brain-damage in
proto-hackers. This is another case (like {Pascal}) of the
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 is (a) 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. As it is, it ruins
thousands of potential wizards a year.
:batch: adj. 1. Non-interactive. Hackers use this somewhat more
loosely than the traditional technical definitions justify; in
particular, switches on a normally interactive program that prepare
it to receive non-interactive command input are often referred to
as `batch mode' switches. A `batch file' is a series of
instructions written to be handed to an interactive program running
in batch mode. 2. Performance of dreary tasks all at one sitting.
"I finally sat down in batch mode and wrote out checks for all
those bills; I guess they'll turn the electricity back on next
week..." 3. `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}.
:baud: /bawd/ [simplified from its technical meaning] n. Bits per
second. Hence kilobaud or Kbaud, thousands of bits per second.
The technical meaning is `level transitions per second'; this
coincides with bps only for two-level modulation with no framing or
stop bits. Most hackers are aware of these nuances but blithely
ignore them.
Historical note: `baud' was originally a unit of telegraph signalling
speed, set at one pulse per second. It was proposed at the
International Telegraph Conference of 1927, and named after J.M.E.
Baudot (1845--1903), the French engineer who constructed the first
successful teleprinter.
:baud barf: /bawd barf/ n. The garbage one gets on the monitor
when using a modem connection with some protocol setting (esp.
line speed) incorrect, or when someone picks up a voice extension
on the same line, or when really bad line noise disrupts the
connection. Baud barf is not completely {random}, by the way;
hackers with a lot of serial-line experience can usually tell
whether the device at the other end is expecting a higher or lower
speed than the terminal is set to. *Really* experienced ones
can identify particular speeds.
:baz: /baz/ n. 1. The third {metasyntactic variable} "Suppose we
have three functions: FOO, BAR, and BAZ. FOO calls BAR, which
calls BAZ...." (See also {fum}) 2. interj. A term of mild
annoyance. In this usage the term is often drawn out for 2 or 3
seconds, producing an effect not unlike the bleating of a sheep;
/baaaaaaz/. 3. Occasionally appended to {foo} to produce
`foobaz'.
Earlier versions of this lexicon derived `baz' as a Stanford
corruption of {bar}. However, Pete Samson (compiler of the
{TMRC} lexicon) reports it was already current when he joined TMRC
in 1958. He says "It came from `Pogo'. Albert the Alligator,
when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!'
The club layout was said to model the (mythical) New England
counties of Rowrfolk and Bassex (Rowrbazzle mingled with
(Norfolk/Suffolk/Middlesex/Essex)."
:bboard: /bee'bord/ [contraction of `bulletin board'] n.
1. Any electronic bulletin board; esp. used of {BBS} systems
running on personal micros, less frequently of a USENET
{newsgroup} (in fact, use of 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 a 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/ [abbreviation, `Bulletin Board System'] n. An electronic
bulletin board system; that is, a message database where people can
log in and leave broadcast messages for others grouped (typically)
into {topic group}s. Thousands of local BBS systems are in
operation throughout the U.S., typically run by amateurs for fun
out of their homes on MS-DOS boxes with a single modem line each.
Fans of USENET and Internet or the big commercial timesharing
bboards such as CompuServe and GEnie tend to consider local BBSes
the low-rent district of the hacker culture, but they serve a
valuable function by knitting together lots of hackers and users in
the personal-micro world who would otherwise be unable to exchange
code at all. See also {bboard}.
:beam: [from Star Trek Classic's "Beam me up, Scotty!"] vt. To
transfer {softcopy} of a file electronically; most often in
combining forms such as `beam me a copy' or `beam that over to
his site'. Compare {blast}, {snarf}, {BLT}.
:beanie key: [Mac users] n. See {command key}.
:beep: n.,v. Syn. {feep}. This term seems to be preferred among micro
hobbyists.
:beige toaster: n. A Macintosh. See {toaster}; compare
{Macintrash}, {maggotbox}.
:bells and whistles: [by analogy with the toyboxes on theater
organs] n. Features added to a program or system to make it more
{flavorful} from a hacker's point of view, without necessarily
adding to its utility for its primary function. Distinguished from
{chrome}, which is intended to attract users. "Now that we've
got the basic program working, let's go back and add some bells and
whistles." No one seems to know what distinguishes a bell from a
whistle.
:bells, whistles, and gongs: n. A standard elaborated form of
{bells and whistles}; typically said with a pronounced and ironic
accent on the `gongs'.
:benchmark: [techspeak] n. An inaccurate measure of computer
performance. "In the computer industry, there are three kinds of
lies: lies, damn lies, and benchmarks." Well-known ones include
Whetstone, Dhrystone, Rhealstone (see {h}), the Gabriel LISP
benchmarks (see {gabriel}), the SPECmark suite, and LINPACK. See
also {machoflops}, {MIPS}, {smoke and mirrors}.
:Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
in a pejorative sense to refer to software that was apparently
created by rather spaced-out hackers late at night to solve some
unique problem. It usually has nonexistent, incomplete, or
incorrect documentation, has been tested on at least two examples,
and core dumps when anyone else attempts to use it. This term was
frequently applied to early versions of the `dbx(1)' debugger.
See also {Berzerkeley}.
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
{suit}s attempting to sound like cognoscenti than among hackers,
who usually just say `BSD'.
:Berzerkeley: /b*r-zer'klee/ [from `berserk', via the name of a
now-deceased record label] n. Humorous distortion of `Berkeley'
used esp. to refer to the practices or products of the
{BSD} UNIX hackers. See {software bloat}, {Missed'em-five},
{Berkeley Quality Software}.
Mainstream use of this term in reference to the cultural and
political peculiarities of UC Berkeley as a whole has been reported
from as far back as the 1960s.
:beta: /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n.
1. Mostly working, but still under test; usu. used with `in': `in
beta'. In the {Real World}, systems (hardware or software)
software often go through two stages of release testing: Alpha
(in-house) and Beta (out-house?). Beta releases are generally made
to a small number 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 customers and users. This term
derives from early 1960s terminology for product cycle checkpoints,
first used at IBM but later standard throughout the industry.
`Alpha Test' was the unit, module, or component test phase; `Beta
Test' was initial system test. These themselves came from earlier
A- and B-tests for hardware. The A-test was a feasibility and
manufacturability evaluation done before any commitment to design
and development. The B-test was a demonstration that the
engineering model functioned as specified. The C-test
(corresponding to today's beta) was the B-test performed on early
samples of the production design.
:BFI: /B-F-I/ n. See {brute force and ignorance}. Also
encountered in the variants `BFMI', `brute force and
*massive* ignorance' and `BFBI' `brute force and bloody
ignorance'.
:bible: n. 1. One of a small number of fundamental source books
such as {Knuth} and {K&R}. 2. The most detailed and
authoritative reference for a particular language, operating
system, or other complex software system.
:BiCapitalization: n. The act said to have been performed on
trademarks (such as {PostScript}, NeXT, {NeWS}, VisiCalc,
FrameMaker, TK!solver, EasyWriter) that have been raised above the
ruck of common coinage by nonstandard capitalization. Too many
{marketroid} types think this sort of thing is really cute, even
the 2,317th time they do it. Compare {studlycaps}.
:BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
prototypical {newbie}. Articles from BIFF are characterized by
all uppercase letters sprinkled liberally with bangs, typos,
`cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A
K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE
THIS!!!), use (and often misuse) of fragments of {talk mode}
abbreviations, a long {sig block} (sometimes even a {doubled
sig}), and unbounded naivet'e. BIFF posts articles using his
elder brother's VIC-20. BIFF's location is a mystery, as his
articles appear to come from a variety of sites. However,
{BITNET} seems to be the most frequent origin. The theory that
BIFF is a denizen of BITNET is supported by BIFF's (unfortunately
invalid) electronic mail address: [email protected].
[1993: Now It Can Be Told! My spies inform me that BIFF was
originally created by Joe Talmadge
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. --- ESR]
:biff: /bif/ vt. To notify someone of incoming mail. From the
BSD utility `biff(1)', which was in turn named after a
friendly golden Labrador who used to chase frisbees in the halls at
UCB while 4.2BSD was in development (it had a well-known habit of
barking whenever the mailman came). No relation to
{BIFF}.
:Big Gray Wall: n. What faces a {VMS} user searching for
documentation. A full VMS kit comes on a pallet, the documentation
taking up around 15 feet of shelf space before the addition of
layered products such as compilers, databases, multivendor
networking, and programming tools. Recent (since VMS version 5)
DEC documentation comes with gray binders; under VMS version 4 the
binders were orange (`big orange wall'), and under version 3 they
were blue. See {VMS}. Often contracted to `Gray Wall'.
:big iron: n. Large, expensive, ultra-fast computers. Used generally
of {number-crunching} supercomputers such as Crays, but can include
more conventional big commercial IBMish mainframes. Term of
approval; compare {heavy metal}, oppose {dinosaur}.
:Big Red Switch: [IBM] n. The power switch on a computer, esp. the
`Emergency Pull' switch on an IBM {mainframe} or the power switch
on an IBM PC where it really is large and red. "This !@%$%
{bitty box} is hung again; time to hit the Big Red Switch."
Sources at IBM report that, in tune with the company's passion for
{TLA}s, this is often abbreviated as `BRS' (this has also
become established on FidoNet and in the PC {clone} world). It
is alleged that the emergency pull switch on an IBM 360/91 actually
fired a non-conducting bolt into the main power feed; the BRSes on
more recent 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, the: n. The extremely large room with the blue ceiling
and intensely bright light (during the day) or black ceiling with
lots of tiny night-lights (during the night) found outside all
computer installations. "He can't come to the phone right now,
he's somewhere out in the Big Room."
:big win: n. Serendipity. "Yes, those two physicists discovered
high-temperature superconductivity in a batch of ceramic that had
been prepared incorrectly according to their experimental schedule.
Small mistake; big win!" See {win big}.
:big-endian: [From Swift's `Gulliver's Travels' via the famous
paper `On Holy Wars and a Plea for Peace' by Danny Cohen,
USC/ISI IEN 137, dated April 1, 1980] adj. 1. Describes a computer
architecture in which, within a given multi-byte numeric
representation, the most significant byte has the lowest address
(the word is stored `big-end-first'). Most processors,
including the IBM 370 family, the {PDP-10}, the Motorola
microprocessor families, and most of the various RISC designs
current in mid-1993, are big-endian. 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; e.g., [email protected]. Most gateway sites have
{ad-hockery} in their mailers to handle this, but can still be
confused. In particular, the address above could be in the
U.K. (domain uk) or Czechoslovakia (domain cs).
:bignum: /big'nuhm/ [orig. from MIT MacLISP] n. 1. [techspeak] A
multiple-precision computer representation for very large
integers. 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 than 2^(31) (2,147,483,648) or (on a
{bitty box}) 2^(15) (32,768). If you want to work
with numbers larger than that, you have to use floating-point
numbers, which are usually accurate to only six or seven decimal
places. Computer languages that provide bignums can perform exact
calculations on very large numbers, such as 1000! (the factorial
of 1000, which is 1000 times 999 times 998 times ... times 2
times 1). For example, this value for 1000! was computed by the
MacLISP system using bignums:
40238726007709377354370243392300398571937486421071
46325437999104299385123986290205920442084869694048
00479988610197196058631666872994808558901323829669
94459099742450408707375991882362772718873251977950
59509952761208749754624970436014182780946464962910
56393887437886487337119181045825783647849977012476
63288983595573543251318532395846307555740911426241
74743493475534286465766116677973966688202912073791
43853719588249808126867838374559731746136085379534
52422158659320192809087829730843139284440328123155
86110369768013573042161687476096758713483120254785
89320767169132448426236131412508780208000261683151
02734182797770478463586817016436502415369139828126
48102130927612448963599287051149649754199093422215
66832572080821333186116811553615836546984046708975
60290095053761647584772842188967964624494516076535
34081989013854424879849599533191017233555566021394
50399736280750137837615307127761926849034352625200
01588853514733161170210396817592151090778801939317
81141945452572238655414610628921879602238389714760
88506276862967146674697562911234082439208160153780
88989396451826324367161676217916890977991190375403
12746222899880051954444142820121873617459926429565
81746628302955570299024324153181617210465832036786
90611726015878352075151628422554026517048330422614
39742869330616908979684825901254583271682264580665
26769958652682272807075781391858178889652208164348
34482599326604336766017699961283186078838615027946
59551311565520360939881806121385586003014356945272
24206344631797460594682573103790084024432438465657
24501440282188525247093519062092902313649327349756
55139587205596542287497740114133469627154228458623
77387538230483865688976461927383814900140767310446
64025989949022222176590433990188601856652648506179
97023561938970178600408118897299183110211712298459
01641921068884387121855646124960798722908519296819
37238864261483965738229112312502418664935314397013
74285319266498753372189406942814341185201580141233
44828015051399694290153483077644569099073152433278
28826986460278986432113908350621709500259738986355
42771967428222487575867657523442202075736305694988
25087968928162753848863396909959826280956121450994
87170124451646126037902930912088908694202851064018
21543994571568059418727489980942547421735824010636
77404595741785160829230135358081840096996372524230
56085590370062427124341690900415369010593398383577
79394109700277534720000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
000000000000000000.
:bigot: n. 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}.
:bit: [from the mainstream meaning and `Binary digIT'] n.
1. [techspeak] The unit of information; the amount of information
obtained by asking a yes-or-no question for which the two outcomes
are equally probable. 2. [techspeak] A computational quantity that
can take on one of two values, such as true and false or 0 and 1.
3. A mental flag: a reminder that something should be done
eventually. "I have a bit set for you." (I haven't seen you for
a while, and I'm supposed to tell or ask you something.) 4. More
generally, a (possibly incorrect) mental state of belief. "I have
a bit set that says that you were the last guy to hack on EMACS."
(Meaning "I think you were the last guy to hack on EMACS, and what
I am about to say is predicated on this, so please stop me if this
isn't true.")
"I just need one bit from you" is a polite way of indicating that
you intend only a short interruption for a question that can
presumably be answered yes or no.
A bit is said to be `set' if its value is true or 1, and
`reset' or `clear' if its value is false or 0. One speaks of
setting and clearing bits. To {toggle} or `invert' a bit is
to change it, either from 0 to 1 or from 1 to 0. See also
{flag}, {trit}, {mode bit}.
The term `bit' first appeared in print in the computer-science
sense in 1949, and seems to have been coined by early computer
scientist John Tukey. Tukey records that it evolved over a lunch
table as a handier alternative to `bigit' or `binit'.
:bit bang: n. Transmission of data on a serial line, when
accomplished by rapidly tweaking a single output bit, 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
{wannabee}s.
Bit bang was used on certain early models of Prime computers,
presumably when UARTs were too expensive, and on archaic Z80 micros
with a Zilog PIO but no SIO. In an interesting instance of the
{cycle of reincarnation}, this technique is now (1991) coming
back into use on some RISC architectures because it consumes such
an infinitesimal part of the processor that it actually makes sense
not to have a UART.
:bit bashing: n. (alt. `bit diddling' or {bit twiddling}) Term
used to describe any of several kinds of low-level programming
characterized by manipulation of {bit}, {flag}, {nybble},
and other smaller-than-character-sized pieces of data; these
include low-level device control, encryption algorithms, checksum
and error-correcting codes, hash functions, some flavors of
graphics programming (see {bitblt}), and assembler/compiler code
generation. May connote either tedium or a real technical
challenge (more usually the former). "The command decoding for
the new tape driver looks pretty solid but the bit-bashing for the
control registers still has bugs." See also {bit bang},
{mode bit}.
:bit bucket: n. 1. The universal data sink (originally, the
mythical receptacle used to catch bits when they fall off the end
of a register during a shift instruction). Discarded, lost, or
destroyed data is said to have `gone to the bit bucket'. On
{{UNIX}}, often used for {/dev/null}. Sometimes amplified as
`the Great Bit Bucket in the Sky'. 2. The place where all lost
mail and news messages eventually go. The selection is performed
according to {Finagle's Law}; important mail is much more likely
to end up in the bit bucket than junk mail, which has an almost
100% probability of getting delivered. Routing to the bit bucket
is automatically performed by mail-transfer agents, news systems,
and the lower layers of the network. 3. The ideal location for all
unwanted mail responses: "Flames about this article to the bit
bucket." Such a request is guaranteed to overflow one's mailbox
with flames. 4. Excuse for all mail that has not been sent. "I
mailed you those figures last week; they must have landed in the
bit bucket." Compare {black hole}.
This term is used purely in jest. It is based on the fanciful
notion that bits are objects that are not destroyed but only
misplaced. This appears to have been a mutation of an earlier term
`bit box', about which the same legend was current; old-time
hackers also report that trainees used to be told that when the CPU
stored bits into memory it was actually pulling them `out of the
bit box'. See also {chad box}.
Another variant of this legend has it that, as a consequence of the
`parity preservation law', the number of 1 bits that go to the bit
bucket must equal the number of 0 bits. Any imbalance results in
bits filling up the bit bucket. A qualified computer technician
can empty a full bit bucket as part of scheduled maintenance.
:bit decay: n. See {bit rot}. People with a physics background
tend to prefer this variant for the analogy with particle decay. See
also {computron}, {quantum bogodynamics}.
:bit rot: n. Also {bit decay}. Hypothetical disease the existence
of which has been deduced from the observation that unused programs
or features will often stop working after sufficient time has
passed, even if `nothing has changed'. The theory explains that
bits decay as if they were radioactive. As time passes, the
contents of a file or the code in a program will become
increasingly garbled.
There actually are physical processes that produce such effects
(alpha particles generated by trace radionuclides in ceramic chip
packages, for example, can change the contents of a computer memory
unpredictably, and various kinds of subtle media failures can
corrupt files in mass storage), but they are quite rare (and
computers are built with error-detecting circuitry to compensate
for them). The notion long favored among hackers that cosmic
rays are among the causes of such events turns out to be a myth;
see the {cosmic rays} entry for details.
The term {software rot} is almost synonymous. Software rot is
the effect, bit rot the notional cause.
:bit twiddling: n. 1. (pejorative) An exercise in tuning (see
{tune}) in which incredible amounts of time and effort go to
produce little noticeable improvement, often with the result that
the code 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 more of a Rube Goldberg kluge than
it already was, the design had to group characters that shared the
same basic bit pattern on one key.
Looking at the ASCII chart, we find:
high low bits
bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
010 ! " # $ % & ' ( )
011 0 1 2 3 4 5 6 7 8 9
This is why the characters !"#$%&'() appear where they do on a
Teletype (thankfully, they didn't use shift-0 for space). This was
*not* the weirdest variant of the {QWERTY} layout widely
seen, by the way; that prize should probably go to one of several
(differing) arrangements on IBM's even clunkier 026 and 029 card
punches.
When electronic terminals became popular, in the early 1970s, there
was no agreement in the industry over how the keyboards should be
laid out. Some vendors opted to emulate the Teletype keyboard,
while others used the flexibility of electronic circuitry to make
their product look like an office typewriter. These alternatives
became known as `bit-paired' and `typewriter-paired' keyboards. To
a hacker, the bit-paired keyboard seemed far more logical --- and
because most hackers in those days had never learned to touch-type,
there was little pressure from the pioneering users to adapt
keyboards to the typewriter standard.
The doom of the bit-paired keyboard was the large-scale
introduction of the computer terminal into the normal office
environment, where out-and-out technophobes were expected to use
the equipment. The `typewriter-paired' standard became universal,
`bit-paired' hardware was quickly junked or relegated to dusty
corners, and both terms passed into disuse.
:bitblt: /bit'blit/ n. [from {BLT}, q.v.] 1. Any of a family
of closely related algorithms for moving and copying rectangles of
bits between main and display memory on a bit-mapped device, or
between two areas of either main or display memory (the requirement
to do the {Right Thing} in the case of overlapping source and
destination rectangles is what makes BitBlt tricky). 2. Synonym
for {blit} or {BLT}. Both uses are borderline techspeak.
:BITNET: /bit'net/ [acronym: Because It's Time NETwork] n.
Everybody's least favorite piece of the network (see {network,
the}). The BITNET hosts are a collection of IBM dinosaurs and
VAXen (the latter with lobotomized comm hardware) that communicate
using 80-character {{EBCDIC}} card images (see {eighty-column
mind}); thus, they tend to mangle the headers and text of
third-party traffic from the rest of the ASCII/{RFC}-822 world with
annoying regularity. BITNET is also notorious as the apparent home
of {BIFF}.
:bits: n.pl. 1. Information. Examples: "I need some bits about file
formats." ("I need to know about file formats.") Compare {core
dump}, sense 4. 2. Machine-readable representation of a document,
specifically as contrasted with paper: "I have only a photocopy
of the Jargon File; does anyone know where I can get the bits?".
See {softcopy}, {source of all good bits} See also {bit}.
:bitty box: /bit'ee boks/ n. 1. A computer sufficiently small,
primitive, or incapable as to cause a hacker acute claustrophobia
at the thought of developing software on or for it. Especially
used of small, obsolescent, single-tasking-only personal machines
such as the Atari 800, Osborne, Sinclair, VIC-20, TRS-80, or
IBM PC. 2. [Pejorative] More generally, the opposite of `real
computer' (see {Get a real computer!}). See also {mess-dos},
{toaster}, and {toy}.
:bixie: /bik'see/ n. Variant {emoticon}s used on BIX (the Byte
Information eXchange). The {smiley} bixie is <@_@>, apparently
intending to represent two cartoon eyes and a mouth. A few others
have been reported.
:black art: n. A collection of arcane, unpublished, and (by
implication) mostly ad-hoc techniques developed for a particular
application or systems area (compare {black magic}). VLSI design
and compiler code optimization were (in their beginnings)
considered classic examples of black art; as theory developed they
became {deep magic}, and once standard textbooks had been written,
became merely {heavy wizardry}. The huge proliferation of formal
and informal channels for spreading around new computer-related
technologies during the last twenty years has made both the term
`black art' and what it describes less common than formerly. See
also {voodoo programming}.
:black hole: n. What a piece of email or netnews 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. Compare {bit
bucket}.
:black magic: n. A technique that works, though nobody really
understands why. More obscure than {voodoo programming}, which
may be done by cookbook. Compare also {black art}, {deep
magic}, and {magic number} (sense 2).
:blargh: /blarg/ [MIT] n. The opposite of {ping}, sense 5; an
exclamation indicating that one has absorbed or is emitting a
quantum of unhappiness. Less common than {ping}.
:blast: 1. vt.,n. Synonym for {BLT}, used esp. for large data
sends over a network or comm line. Opposite of {snarf}. Usage:
uncommon. The variant `blat' has been reported. 2. vt.
[HP/Apollo] Synonymous with {nuke} (sense 3). Sometimes the
message `Unable to kill all processes. Blast them (y/n)?' would
appear in the command window upon logout.
:blat: n. 1. Syn. {blast}, sense 1. 2. See {thud}.
:bletch: /blech/ [from Yiddish/German `brechen', to vomit, poss.
via comic-strip exclamation `blech'] interj. Term of disgust.
Often used in "Ugh, bletch". Compare {barf}.
:bletcherous: /blech'*-r*s/ adj. Disgusting in design or function;
esthetically unappealing. This word is seldom used of people.
"This keyboard is bletcherous!" (Perhaps the keys don't work very
well, or are misplaced.) See {losing}, {cretinous},
{bagbiter}, {bogus}, and {random}. The term {bletcherous}
applies to the esthetics of the thing so described; similarly for
{cretinous}. By contrast, something that is `losing' or
`bagbiting' may be failing to meet objective criteria. See also
{bogus} and {random}, which have richer and wider shades of
meaning than any of the above.
:blinkenlights: /blink'*n-li:tz/ n. Front-panel diagnostic lights
on a computer, esp. a {dinosaur}. Derives from the last word
of the famous blackletter-Gothic sign in mangled pseudo-German that
once graced about half the computer rooms in the English-speaking
world. One version ran in its entirety as follows:
ACHTUNG! ALLES LOOKENSPEEPERS! Das
computermachine ist nicht fuer gefingerpoken und mittengrabben.
Ist easy schnappen der springenwerk, blowenfusen und poppencorken
mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen.
Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
pockets muss; relaxen und watchen das blinkenlichten.
This silliness dates back at least as far as 1959 at Stanford
University and had already gone international by the early 1960s,
when it was reported at London University's ATLAS computing site.
There are several variants of it in circulation, some of which
actually do end with the word `blinkenlights'.
In an amusing example of turnabout-is-fair-play, German hackers
have developed their own versions of the blinkenlights poster in
fractured English, one of which is reproduced here:
ATTENTION
This room is fullfilled mit special electronische equippment.
Fingergrabbing and pressing the cnoeppkes from the computers is
allowed for die experts only! So all the "lefthanders" stay away
and do not disturben the brainstorming von here working
intelligencies. Otherwise you will be out thrown and kicked
anderswhere! Also: please keep still and only watchen astaunished
the blinkenlights.
See also {geef}.
:blit: /blit/ vt. 1. To copy a large array of bits from one part
of a computer's memory to another part, particularly when the
memory is being used to determine what is shown on a display
screen. "The storage allocator picks through the table and copies
the good parts up into high memory, and then blits it all back down
again." See {bitblt}, {BLT}, {dd}, {cat}, {blast},
{snarf}. More generally, to perform some operation (such as
toggling) on a large array of bits while moving them. 2. 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. A special-purpose chip or hardware system
built to perform {blit} operations, esp. used for fast
implementation of bit-mapped graphics. The Commodore Amiga and a
few other micros have these, but in 1991 the trend is away from
them (however, see {cycle of reincarnation}). Syn. {raster
blaster}.
:blivet: /bliv'*t/ [allegedly from a World War II military term
meaning "ten pounds of manure in a five-pound bag"] n. 1. An
intractable problem. 2. A crucial piece of hardware that can't be
fixed or replaced if it breaks. 3. A tool that has been hacked
over by so many incompetent programmers that it has become an
unmaintainable tissue of hacks. 4. An out-of-control but
unkillable development effort. 5. An embarrassing bug that pops up
during a customer demo. 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.
:BLOB: [acronym, Binary Large OBject] n. 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.
:block: [from process scheduling terminology in OS theory] 1. vi.
To delay or sit idle while waiting for something. "We're blocking
until everyone gets here." Compare {busy-wait}. 2. `block
on' vt. To block, waiting for (something). "Lunch is blocked on
Phil's arrival."
:block transfer computations: [from the television series
"Dr. Who"] n. Computations so fiendishly subtle and complex
that they could not be performed by machines. Used to refer to any
task that should be expressible as an algorithm in theory, but
isn't.
:Bloggs Family, the: 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 DEC
Telephone Directory. Compare {Mbogo, Dr. Fred}.
:blow an EPROM: /bloh *n ee'prom/ v. (alt. `blast an EPROM',
`burn an EPROM') To program a read-only memory, e.g. for use
with an embedded system. This term arose because the programming
process for the Programmable Read-Only Memories (PROMs) that
preceded present-day Erasable Programmable Read-Only Memories
(EPROMs) involved intentionally blowing tiny electrical fuses on
the chip. The usage lives on (it's too vivid and expressive to
discard) even though the write process on EPROMs is
nondestructive.
:blow away: vt. To remove (files and directories) from permanent
storage, generally by accident. "He reformatted the wrong
partition and blew away last night's netnews." Oppose {nuke}.
:blow out: [prob. from mining and tunneling jargon] vi. Of
software, to fail spectacularly; almost as serious as {crash and
burn}. See {blow past}, {blow up}, {die
horribly}.
:blow past: vt. To {blow out} despite a safeguard. "The server blew
past the 5K reserve buffer."
:blow up: vi. 1. [scientific computation] To become unstable. Suggests
that the computation is diverging so rapidly that it will soon
overflow or at least go {nonlinear}. 2. Syn. {blow out}.
:BLT: /B-L-T/, /bl*t/ or (rarely) /belt/ n.,vt. Synonym for
{blit}. This is the original form of {blit} and the ancestor
of {bitblt}. It referred to any large bit-field copy or move
operation (one resource-intensive memory-shuffling operation done
on pre-paged versions of ITS, WAITS, and TOPS-10 was sardonically
referred to as `The Big BLT'). The jargon usage has outlasted the
{PDP-10} BLock Transfer instruction from which {BLT} derives;
nowadays, the assembler mnemonic {BLT} almost always means
`Branch if Less Than zero'.
:Blue Book: n. 1. Informal name for one of the three standard
references on the page-layout and graphics-control language
{{PostScript}} (`PostScript Language Tutorial and Cookbook',
Adobe Systems, Addison-Wesley 1985, QA76.73.P67P68, ISBN
0-201-10179-3); the other 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 Glue: [IBM] n. IBM's SNA (Systems Network Architecture), an
incredibly {losing} and {bletcherous} communications protocol
widely favored at commercial shops that don't know any better. The
official IBM definition is "that which binds blue boxes
together." See {fear and loathing}. It may not be irrelevant
that {Blue Glue} is the trade name of a 3M product that is
commonly used to hold down the carpet squares to the removable
panel floors common in {dinosaur pen}s. A correspondent at
U. Minn. reports that the CS department there has about 80 bottles
of the stuff hanging about, so they often refer to any messy work
to be done as `using the blue glue'.
:blue goo: n. Term for `police' {nanobot}s intended to prevent
{gray goo}, denature hazardous waste, destroy pollution, put
ozone back into the stratosphere, prevent halitosis, and promote
truth, justice, and the American way, etc. See
{{nanotechnology}}.
:blue wire: [IBM] n. Patch wires added to circuit boards at the factory to
correct design or fabrication problems. These may be necessary if
there hasn't been time to design and qualify another board version.
Compare {purple wire}, {red wire}, {yellow wire}.
:blurgle: /bler'gl/ [Great Britain] n. Spoken {metasyntactic
variable}, to indicate some text that is obvious from context, or
which is already known. If several words are to be replaced,
blurgle may well be doubled or trebled. "To look for something in
several files use `grep string blurgle blurgle'." In each case,
"blurgle blurgle" would be understood to be replaced by the file
you wished to search. Compare {mumble}, sense 6.
:BNF: /B-N-F/ n. 1. [techspeak] Acronym for `Backus-Naur Form', a
metasyntactic notation used to specify the syntax of programming
languages, command sets, and the like. Widely used for language
descriptions but seldom documented anywhere, so that it must
usually be learned by osmosis from other hackers. Consider this
BNF for a U.S. postal address:
|
This translates into English as: "A postal-address consists of a
name-part, followed by a street-address part, followed by a
zip-code part. A personal-part consists of either a first name or
an initial followed by a dot. A name-part consists of either: a
personal-part followed by a last name followed by an optional
`jr-part' (Jr., Sr., or dynastic number) and end-of-line, or a
personal part followed by a name part (this rule illustrates the
use of recursion in BNFs, covering the case of people who use
multiple first and middle names and/or initials). A street address
consists of an optional apartment specifier, followed by a street
number, followed by a street name. A zip-part consists of a
town-name, followed by a comma, followed by a state code, followed
by a ZIP-code followed by an end-of-line." Note that many things
(such as the format of a personal-part, apartment specifier, or
ZIP-code) are left unspecified. These are presumed to be obvious
from context or detailed somewhere nearby. See also {parse}.
2. Any of a number 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. 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. (affectionate) Obsolete but still working hardware, especially
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.
:BOF: /B-O-F/ or /bof/ n. Abbreviation for the phrase "Birds
Of a Feather" (flocking together), an informal discussion group
and/or bull session scheduled on a conference program. It is not
clear where or when this term originated, but it is now associated
with the USENIX conferences for UNIX techies and was already
established there by 1984. It was used earlier than that at DECUS
conferences and is reported to have been common at SHARE meetings
as far back as the early 1960s.
:bogo-sort: /boh`goh-sort'/ n. (var. `stupid-sort') The
archetypical perversely awful algorithm (as opposed to {bubble
sort}, which is merely the generic *bad* algorithm).
Bogo-sort is equivalent to repeatedly throwing a deck of cards in
the air, picking them up at random, and then testing whether they
are in order. It serves as a sort of canonical example of
awfulness. Looking at a program and seeing a dumb algorithm, one
might say "Oh, I see, this program uses bogo-sort." Compare
{bogus}, {brute force}, {Lasherism}.
:bogometer: /boh-gom'-*t-er/ n. A notional instrument for
measuring {bogosity}. Compare the `wankometer' described in
the {wank} entry; see also {bogus}.
:bogon: /boh'gon/ [by analogy with proton/electron/neutron, but
doubtless reinforced after 1980 by the similarity to Douglas
Adams's `Vogons'; see the Bibliography in {Appendix C}] n.
1. The elementary particle of bogosity (see {quantum
bogodynamics}). For instance, "the Ethernet is emitting bogons
again" means that it is broken or acting in an erratic or bogus
fashion. 2. A query packet sent from a TCP/IP domain resolver to a
root server, having the reply bit set instead of the query bit.
3. Any bogus or incorrectly formed packet sent on a network. 4. By
synecdoche, used to refer to any bogus thing, as in "I'd like to
go to lunch with you but I've got to go to the weekly staff
bogon". 5. A person who is bogus or who says bogus things. This
was historically the original usage, but has been overtaken by its
derivative senses 1--4. See also {bogosity}, {bogus};
compare {psyton}, {fat electrons}, {magic smoke}.
The bogon has become the type case for a whole bestiary of nonce
particle names, including the `clutron' or `cluon' (indivisible
particle of cluefulness, obviously the antiparticle of the bogon)
and the futon (elementary particle of {randomness}). These are
not so much live usages in themselves as examples of a live
meta-usage: that is, it has become a standard joke or linguistic
maneuver to "explain" otherwise mysterious circumstances by inventing
nonce particle names. And these imply nonce particle theories, with
all their dignity or lack thereof (we might note parenthetically that
this is a generalization from "(bogus particle) theories" to "bogus
(particle theories)"!). Perhaps such particles are the modern-day
equivalents of trolls and wood-nymphs as standard starting-points
around which to construct explanatory myths. Of course, playing on
an existing word (as in the `futon') yields additional flavor.
Compare {magic smoke}.
:bogon filter: /boh'gon fil'tr/ n. Any device, software or hardware,
that limits or suppresses the flow and/or emission of bogons.
"Engineering hacked a bogon filter between the Cray and
the VAXen, and now we're getting fewer dropped packets." See
also {bogosity}, {bogus}.
:bogon flux: /boh'gon fluhks/ n. A measure of a supposed field of
{bogosity} emitted by a speaker, measured by a {bogometer};
as a speaker starts to wander into increasing bogosity a listener
might say "Warning, warning, bogon flux is rising". See
{quantum bogodynamics}.
:bogosity: /boh-go's*-tee/ n. 1. The degree to which something is
{bogus}. At CMU, bogosity is measured with a {bogometer}; in
a seminar, when a speaker says something bogus, a listener might
raise his hand and say "My bogometer just triggered". More
extremely, "You just pinned my bogometer" means you just said or
did something so outrageously bogus that it is off the scale,
pinning the bogometer needle at the highest possible reading (one
might also say "You just redlined my bogometer"). The
agreed-upon unit of bogosity is the microLenat /mi:k`roh-len'*t/
(uL); the consensus is that this is the largest unit practical
for everyday use. 2. The potential field generated by a {bogon
flux}; see {quantum bogodynamics}. See also {bogon flux},
{bogon filter}, {bogus}.
Historical note: The microLenat was invented as an attack against
noted computer scientist Doug Lenat by a {tenured graduate
student}. Doug had failed the student on an important exam for
giving only "AI is bogus" as his answer to the questions. The
slur is generally considered unmerited, but it has become a running
gag nevertheless. Some of Doug's friends argue that *of
course* a microLenat is bogus, since it is only one millionth of a
Lenat. Others have suggested that the unit should be redesignated
after the grad student, as the microReid.
:bogotify: /boh-go't*-fi:/ vt. To make or become bogus. A
program that has been changed so many times as to become completely
disorganized has become bogotified. If you tighten a nut too hard
and strip the threads on the bolt, the bolt has become bogotified
and you had better not use it any more. This coinage led to the
notional `autobogotiphobia' defined as `the fear of becoming
bogotified'; but is not clear that the latter has ever been
`live' jargon rather than a self-conscious joke in jargon about
jargon. See also {bogosity}, {bogus}.
:bogue out: /bohg owt/ vi. To become bogus, suddenly and
unexpectedly. "His talk was relatively sane until somebody asked
him a trick question; then he bogued out and did nothing but
{flame} afterwards." See also {bogosity}, {bogus}.
:bogus: adj. 1. Non-functional. "Your patches are bogus."
2. Useless. "OPCON is a bogus program." 3. False. "Your
arguments are bogus." 4. Incorrect. "That algorithm is bogus."
5. Unbelievable. "You claim to have solved the halting problem
for Turing Machines? That's totally bogus." 6. Silly. "Stop
writing those bogus sagas."
Astrology is bogus. So is a bolt that is obviously about to break.
So is someone who makes blatantly false claims to have solved a
scientific problem. (This word seems to have some, but not all, of
the connotations of {random} --- mostly the negative ones.)
It is claimed that `bogus' was originally used in the hackish sense
at Princeton in the late 1960s. It was spread to CMU and Yale by
Michael Shamos, a migratory Princeton alumnus. A glossary of bogus
words was compiled at Yale when the word was first popularized (see
{autobogotiphobia} under {bogotify}). The word spread into
hackerdom from CMU and MIT. By the early 1980s it was also
current in something like the hackish sense in West Coast teen
slang, and it had gone mainstream by 1985. A correspondent from
Cambridge reports, by contrast, that these uses of `bogus' grate on
British nerves; in Britain the word means, rather specifically,
`counterfeit', as in "a bogus 10-pound note".
:Bohr bug: /bohr buhg/ [from quantum physics] n. A repeatable
{bug}; one that manifests reliably under a possibly unknown but
well-defined set of conditions. Antonym of {heisenbug}; see also
{mandelbug}, {schroedinbug}.
:boink: /boynk/ [USENET: ascribed to the TV series "Cheers"
and "Moonlighting"] 1. To have sex with; compare {bounce},
sense 3. (This is mainstream slang.) In Commonwealth hackish the
variant `bonk' is more common. 2. After the original Peter Korn
`Boinkon' {USENET} parties, used for almost any net social
gathering, e.g., Miniboink, a small boink held by Nancy Gillett in
1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks,
Wednesday get-togethers held in the San Francisco Bay Area.
Compare {@-party}. 3. Var of `bonk'; see
{bonk/oif}.
:bomb: 1. v. General synonym for {crash} (sense 1) except that
it is not used as a noun; esp. used of software or OS failures.
"Don't run Empire with less than 32K stack, it'll bomb."
2. n.,v. Atari ST and Macintosh equivalents of a UNIX `panic' or
Amiga {guru} (sense 2), 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: A language (such as {{Pascal}},
{{Ada}}, APL, or Prolog) that, though ostensibly general-purpose,
is designed so as to enforce an author's theory of `right
programming' even though said theory is demonstrably inadequate for
systems hacking or even vanilla general-purpose programming. Often
abbreviated `B&D'; thus, one may speak of things "having the
B&D nature". See {{Pascal}}; oppose {languages of
choice}.
:bonk/oif: /bonk/, /oyf/ interj. In the {MUD} community, it
has become traditional to express pique or censure by `bonking'
the offending person. 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. See also {talk mode}.
:book titles:: There is a tradition in hackerdom of informally
tagging important textbooks and standards documents with the
dominant color of their covers or with some other conspicuous
feature of the cover. Many of these are described in this lexicon
under their own entries. See {Aluminum Book}, {Blue Book},
{Cinderella Book}, {Devil Book}, {Dragon Book}, {Green
Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
{Red Book}, {Silver Book}, {White Book}, {Wizard Book},
{Yellow Book}, and {bible}; see also {rainbow
series}.
:boot: [techspeak; from `by one's bootstraps'] v.,n. To load and
initialize the operating system on a machine. This usage is no
longer jargon (having passed into techspeak) but has given rise to
some derivatives that are still jargon.
The derivative `reboot' implies that the machine hasn't been
down for long, or that the boot is a {bounce} intended to clear
some state of {wedgitude}. This is sometimes used of human
thought processes, as in the following exchange: "You've lost
me." "OK, reboot. Here's the theory...."
This term is also found in the variants `cold boot' (from
power-off condition) and `warm boot' (with the CPU and all
devices already powered up, as after a hardware reset or software
crash).
Another variant: `soft boot', reinitialization of only part of a
system, under control of other software still running: "If
you're running the {mess-dos} emulator, control-alt-insert will
cause a soft-boot of the emulator, while leaving the rest of the
system running."
Opposed to this there is `hard boot', which connotes hostility
towards or frustration with the machine being booted: "I'll have
to hard-boot this losing Sun." "I recommend booting it
hard." One often hard-boots by performing a {power cycle}.
Historical note: this term derives from `bootstrap loader', a short
program that was read in from cards or paper tape, or toggled in
from the front panel switches. This program was always very short
(great efforts were expended on making it short in order to
minimize the labor and chance of error involved in toggling it in),
but was just smart enough to read in a slightly more complex
program (usually from a card or paper tape reader), to which it
handed control; this program in turn was smart enough to read the
application or operating system from a magnetic tape drive or disk
drive. Thus, in successive steps, the computer `pulled itself up
by its bootstraps' to a useful operating state. Nowadays the
bootstrap is usually found in ROM or EPROM, and reads the first
stage in from a fixed location on the disk, called the `boot
block'. When this program gains control, it is powerful enough to
load the actual OS and hand control over to it.
:bottom feeder: n. syn. for {slopsucker}, derived from the
fishermen's and naturalists' term for finny creatures who subsist
on the primordial ooze.
:bottom-up implementation: n. Hackish opposite of the techspeak term
`top-down design'. It is now received wisdom in most
programming cultures that it is best to design from higher levels
of abstraction down to lower, specifying sequences of action in
increasing detail until you get to actual code. Hackers often find
(especially in exploratory designs that cannot be closely
specified in advance) that it works best to *build* things in
the opposite order, by writing and testing a clean set of primitive
operations and then knitting them together.
:bounce: v. 1. [perhaps 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. Reported
primarily among {VMS} 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: [UNIX] n. Notification message returned to sender
by a site unable to relay {email} to the intended {{Internet
address}} recipient or the next link in a {bang path} (see
{bounce}). Reasons might include a nonexistent or misspelled
username or a {down} relay site. Bounce messages can themselves
fail, with occasionally ugly results; see {sorcerer's apprentice
mode} and {software laser}. The terms `bounce mail' and
`barfmail' are also common.
:boustrophedon: [from a Greek word for turning like an ox while
plowing] n. An ancient method of writing using alternate
left-to-right and right-to-left lines. This term is actually
philologists' techspeak and 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}, {fepped out}, {Blue
Glue}.
:boxed comments: n. Comments (explanatory notes attached to program
instructions) that occupy several lines by themselves; so called
because in assembler and C code they are often surrounded by a box
in a style something like this:
/*************************************************
*
* This is a boxed comment in C style
*
*************************************************/
Common variants of this style omit the asterisks in column 2 or add
a matching row of asterisks closing the right side of the box. The
sparest variant omits all but the comment delimiters themselves;
the `box' is implied. Oppose {winged comments}.
:boxen: /bok'sn/ [by analogy with {VAXen}] pl.n. Fanciful
plural of {box} often encountered in the phrase `UNIX boxen',
used to describe commodity {{UNIX}} hardware. The connotation is
that any two UNIX boxen are interchangeable.
:boxology: /bok-sol'*-jee/ n. Syn. {ASCII art}. This term
implies a more restricted domain, that of box-and-arrow drawings.
"His report has a lot of boxology in it." Compare
{macrology}.
:bozotic: /boh-zoh'tik/ or /boh-zo'tik/ [from the name of a TV
clown even more losing than Ronald McDonald] adj. Resembling or
having the quality of a bozo; that is, clownish, ludicrously wrong,
unintentionally humorous. Compare {wonky}, {demented}. Note
that the noun `bozo' occurs in slang, but the mainstream
adjectival form would be `bozo-like' or (in New England)
`bozoish'.
:BQS: /B-Q-S/ adj. Syn. {Berkeley Quality Software}.
:brain dump: n. The act of telling someone everything one knows
about a particular topic or project. Typically used when someone
is going to let a new party maintain a piece of code. Conceptually
analogous to an operating system {core dump} in that it saves a
lot of useful {state} before an exit. "You'll have to
give me a brain dump on FOOBAR before you start your new job at
HackerCorp." See {core dump} (sense 4). At Sun, this is also
known as `TOI' (transfer of information).
:brain fart: n. The actual result of a {braino}, as opposed to
the mental glitch that is the braino itself. E.g., typing
`dir' on a UNIX box after a session with DOS.
:brain-damaged: 1. [generalization of `Honeywell Brain Damage'
(HBD), a theoretical disease invented to explain certain utter
cretinisms in Honeywell {{Multics}}] adj. Obviously wrong;
{cretinous}; {demented}. There is an implication that the
person responsible must have suffered brain damage, because he
should have known better. Calling something brain-damaged is
really bad; it also implies it is unusable, and that its failure to
work is due to poor design rather than some accident. "Only six
monocase characters per file name? Now *that's*
brain-damaged!" 2. [esp. in the Mac world] May refer to free
demonstration software that has been deliberately crippled in some
way so as not to compete with the commercial product it is
intended to sell. Syn. {crippleware}.
:brain-dead: adj. Brain-damaged in the extreme. It tends to imply
terminal design failure rather than malfunction or simple
stupidity. "This comm program doesn't know how to send a break
--- how brain-dead!"
:braino: /bray'no/ n. Syn. for {thinko}. See also {brain
fart}.
:branch to Fishkill: [IBM: from the location of one of the
corporation's facilities] n. Any unexpected jump in a program that
produces catastrophic or just plain weird results. See {jump
off into never-never land}, {hyperspace}.
:bread crumbs: n. Debugging statements inserted into a program that
emit output or log indicators of the program's {state} to a file
so you can see where it dies or pin down the cause of surprising
behavior. The term is probably a reference to the Hansel and Gretel
story from the Brothers Grimm; in several variants, a character
leaves a trail of bread crumbs so as not to get lost in the
woods.
:break: 1. vt. To cause to be {broken} (in any sense). "Your latest
patch to the editor broke the paragraph commands." 2. v. (of a
program) To stop temporarily, so that it may debugged. The place
where it stops is a `breakpoint'. 3. [techspeak] vi. To send an
RS-232 break (two character widths of line high) over a serial comm
line. 4. [UNIX] vi. To strike whatever key currently causes the
tty driver to send SIGINT to the current process. Normally, break
(sense 3), 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. The above example may not, after all, be
hypothetical. -- ESR]
:breath-of-life packet: [XEROX PARC] n. 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 `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. There is at least one documented
instance of an Internet subnet with limited addres-table slots in a
gateway machine in which kiss-of-death packets were routinely used
to compete for slots, rather like Christmas shoppers competing for
scarce parking spaces.
:breedle: n. See {feep}.
:bring X to its knees: v. To present a machine, operating system,
piece of software, or algorithm with a load so extreme or
{pathological} that it grinds to a halt. "To bring a MicroVAX
to its knees, try twenty users running {vi} --- or four running
{EMACS}." Compare {hog}.
:brittle: adj. Said of software that is functional but easily
broken by changes in operating environment or configuration, or by
any minor tweak to the software itself. Also, any system that
responds inappropriately and disastrously to 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 commercially
developed software, which displays the quality far more often than
it ought to. Oppose {robust}.
:broadcast storm: n. An incorrect packet broadcast on a network that
causes most hosts to respond all at once, typically with wrong
answers that start the process over again. See {network
meltdown}.
: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: [IBM] n. The error code displayed on line 25 of a
3270 terminal (or a PC emulating a 3270) for various kinds of
protocol violations and "unexpected" error conditions (including
connection to a {down} computer). On a PC, simulated with
`->/_', with the two center characters overstruck.
Note: to appreciate this term fully, it helps to know that `broken
arrow' is also military jargon for an accident involving nuclear
weapons....
:broket: /broh'k*t/ or /broh'ket`/ [by analogy with `bracket': a
`broken bracket'] n. Either of the characters `<' and `>',
when used as paired enclosing delimiters. This word
originated as a contraction of the phrase `broken bracket', that
is, a bracket that is bent in the middle. (At MIT, and apparently
in the {Real World} as well, these are usually called {angle
brackets}.)
:Brooks's Law: prov. "Adding manpower to a late software project
makes it later" --- a result of the fact that the expected
advantage from splitting work among N programmers is
O(N) (that is, proportional to N), but the complexity
and communications cost associated with coordinating and then
merging their work is O(N^2) (that is, proportional to the
square of N). The quote is from Fred Brooks, a manager of
IBM's OS/360 project and author of `The Mythical Man-Month'
(Addison-Wesley, 1975, ISBN 0-201-00650-2), an excellent early book
on software engineering. The myth in question has been most
tersely expressed as "Programmer time is fungible" and Brooks
established conclusively that it is not. Hackers have never
forgotten his advice; too often, {management} still does. See
also {creationism}, {second-system effect},
{optimism}.
: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 System Distribution'] a
family of {{UNIX}} versions for the DEC {VAX} and PDP-11
developed by Bill Joy and others at {Berzerkeley} starting
around 1980, incorporating paged virtual memory, TCP/IP networking
enhancements, and many other features. The BSD versions (4.1, 4.2,
and 4.3) and the commercial versions derived from them (SunOS,
ULTRIX, and Mt. Xinu) held the technical lead in the UNIX world
until AT&T's successful standardization efforts after about 1986,
and are still widely popular. See {{UNIX}}, {USG UNIX}.
:BUAF: // [abbreviation, from alt.fan.warlord] n. Big
Ugly ASCII Font --- a special form of {ASCII art}. Various
programs exist for rendering text strings into block, bloob, and
pseudo-script fonts in cells between four and six character cells
on a side; this is smaller than the letters generated by older
{banner} (sense 2) programs. These are sometimes used to render
one's name in a {sig block}, and are critically referred to as
`BUAF's. See {warlording}.
:BUAG: // [abbreviation, from alt.fan.warlord] n. Big Ugly
ASCII Graphic. Pejorative term for ugly {ASCII ART}, especially
as found in {sig block}s. For some reason, mutations of the
head of Bart Simpson are particularly common in the least
imaginative {sig block}s. See {warlording}.
:bubble sort: n. Techspeak for a particular sorting technique in
which pairs of adjacent values in the list to be sorted are
compared and interchanged if they are out of order; thus, list
entries `bubble upward' in the list until they bump into one with a
lower sort value. Because it is not very good relative to other
methods and is the one typically stumbled on by {naive} and
untutored programmers, hackers consider it the {canonical}
example of a naive algorithm. The canonical example of a really
*bad* algorithm is {bogo-sort}. A bubble sort might be used
out of ignorance, but any use of bogo-sort could issue only from
brain damage or willful perversity.
:bucky bits: /buh'kee bits/ n. 1. obs. The bits produced by the
CONTROL and META shift keys on a SAIL keyboard (octal 200 and 400
respectively), resulting in a 9-bit keyboard character set. The
MIT AI TV (Knight) keyboards extended this with TOP and separate
left and right CONTROL and META keys, resulting in a 12-bit
character set; later, LISP Machines added such keys as SUPER,
HYPER, and GREEK (see {space-cadet keyboard}). 2. By extension,
bits associated with `extra' shift keys on any keyboard, e.g.,
the ALT on an IBM PC or command and option keys on a Macintosh.
It 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; he first suggested the idea of an EDIT
key to set the 8th bit of an otherwise 7-bit ASCII character. This
was used in a number of editors written at Stanford or in its
environs (TV-EDIT and NLS being the best-known). Some sources
claim that `Bucky' was Niklaus Wirth's nickname st Stanford,
but Wirth himself does not recall this.
Whatever its origins, the term spread to MIT and CMU early and is
now in general use. See {double bucky}, {quadruple
bucky}.
:buffer overflow: n. What happens when you try to stuff more data
into a buffer (holding area) than it can handle. This may be due
to a mismatch in the processing rates of the producing and
consuming processes (see {overrun} and {firehose syndrome}),
or because the buffer is simply too small to hold all the data that
must accumulate before a piece of it can be processed. For example,
in a text-processing tool that {crunch}es a line at a time, a
short line buffer can result in {lossage} as input from a long
line overflows the buffer and trashes data beyond it. Good
defensive programming would check for overflow on each character
and stop accepting data when the buffer is full up. The term is
used of and by humans in a metaphorical sense. "What time did I
agree to meet you? My buffer must have overflowed." Or "If I
answer that phone my buffer is going to overflow." See also
{spam}, {overrun screw}.
:bug: n. An unwanted and unintended property of a program or piece
of hardware, esp. one that causes it to malfunction. Antonym of
{feature}. Examples: "There's a bug in the editor: it writes
things out backwards." "The system crashed because of a hardware
bug." "Fred is a winner, but he has a few bugs" (i.e., Fred is
a good guy, but he has a few personality problems).
Historical note: Admiral Grace Hopper (an early computing pioneer
better known for inventing {COBOL}) liked to tell a story in
which a technician solved a persistent {glitch} in the Harvard
Mark II machine by pulling an actual insect out from between the
contacts of one of its relays, and she subsequently promulgated
{bug} in its hackish sense as a joke about the incident (though,
as she was careful to admit, she was not there when it happened).
For many years the logbook associated with the incident and the
actual bug in question (a moth) sat in a display case at the Naval
Surface Warfare Center (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!
Actually, use of `bug' in the general sense of a disruptive event
goes back to Shakespeare! In the first edition of Samuel Johnson's
dictionary one meaning of `bug' is "A frightful object; a
walking spectre"; this is traced to `bugbear', a Welsh term for
a variety of mythological monster which (to complete the circle)
has recently been reintroduced into the popular lexicon through
fantasy role-playing games.
In any case, in jargon the word almost never refers to insects.
Here is a plausible conversation that never actually happened:
"There is a bug in this ant farm!"
"What do you mean? I don't see any ants in it."
"That's the bug."
[There has been a widespread myth that the original bug was moved
to the Smithsonian, and an earlier version of this entry so
asserted. A correspondent who thought to check discovered that the
bug was not there. While investigating this in late 1990, your
editor discovered that the NSWC still had the bug, but had
unsuccessfully tried to get the Smithsonian to accept it --- and
that the present curator of their History of American Technology
Museum didn't know this and agreed that it would make a worthwhile
exhibit. It was moved to the Smithsonian in mid-1991. Thus, the
process of investigating the original-computer-bug bug fixed it in
an entirely unexpected way, by making the myth true! --- ESR]
[1992 update: the plot thickens! A usually reliable source reports
having seen The Bug at the Smithsonian in 1978. I am unable to
reconcile the conflicting histories I have been offered, and merely
report this fact here. --- ESR.]
:bug-compatible: adj. Said of a design or revision that has been
badly compromised by a requirement to be compatible with
{fossil}s or {misfeature}s in other programs or (esp.)
previous releases of itself. "MS-DOS 2.0 used \ as a path
separator to be bug-compatible with some cretin's choice of / as an
option character in 1.0."
:bug-for-bug compatible: n. Same as {bug-compatible}, with the
additional implication that much tedious effort went into ensuring
that each (known) bug was replicated.
:buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX
operating system in its earlier *severely* buggy versions.
Still used to describe ULTRIX, but without 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. Syn. {armor-plated}.
:bum: 1. vt. To make highly efficient, either in time or space,
often at the expense of clarity. "I managed to bum three more
instructions out of that code." "I spent half the night bumming
the interrupt code." In {elder days}, John McCarthy (inventor
of {LISP}) used to compare some efficiency-obsessed hackers
among his students to "ski bums"; thus, optimization became
"program bumming", and eventually just "bumming". 2. To
squeeze out excess; to remove something in order to improve
whatever it was removed from (without changing function; this
distinguishes the process from a {featurectomy}). 3. n. A small
change to an algorithm, program, or hardware device to make it more
efficient. "This hardware bum makes the jump instruction
faster." Usage: now uncommon, largely superseded by v. {tune}
(and n. {tweak}, {hack}), though none of these exactly
capture sense 2. All these uses are rare in Commonwealth hackish,
because in the parent dialects of English `bum' is a rude synonym
for `buttocks'.
:bump: vt. Synonym for increment. Has the same meaning as
C's ++ operator. Used esp. of counter variables, pointers, and
index dummies in `for', `while', and `do-while'
loops.
:burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame},
but connotes that the source is truly clueless and ineffectual
(mere flamers can be competent). A term of deep contempt.
"There's some guy on the phone burbling about how he got a DISK
FULL error and it's all our comm software's fault." 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-in period: n. 1. A factory test designed to catch systems
with {marginal} components before they get out the door; the
theory is that burn-in will protect customers by outwaiting the
steepest part of the {bathtub curve} (see {infant
mortality}). 2. A period of indeterminate length in which a person
using a computer is so intensely involved in his project that he
forgets basic needs such as food, drink, sleep, etc. Warning:
Excessive burn-in can lead to burn-out. See {hack mode},
{larval stage}.
:burst page: n. Syn. {banner}, sense 1.
:busy-wait: vi. Used of human behavior, conveys that the subject is
busy waiting for someone or something, intends to move instantly as
soon as it shows up, and thus cannot do anything else at the
moment. "Can't talk now, I'm busy-waiting till Bill gets off the
phone."
Technically, `busy-wait' means to wait on an event by
{spin}ning through a tight or timed-delay loop that polls for
the event on each pass, as opposed to setting up an interrupt
handler and continuing execution on another part of the task. This
is a wasteful technique, best avoided on time-sharing systems where
a busy-waiting program may {hog} the processor.
:buzz: vi. 1. Of a program, to run with no indication of progress
and perhaps without guarantee of ever finishing; esp. said of
programs thought to be executing tight loops of code. A program
that is buzzing appears to be {catatonic}, but 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 by applying an AC rather than DC signal. Some wire
faults will pass DC tests but fail a buzz test. 3. To process an
array or list in sequence, doing the same thing to each element.
"This loop buzzes through the tz array looking for a terminator
type."
:BWQ: /B-W-Q/ [IBM: abbreviation, `Buzz Word Quotient'] The
percentage of buzzwords in a speech or documents. Usually roughly
proportional to {bogosity}. See {TLA}.
:by hand: adv. 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/ [techspeak] n. A unit of memory or data equal to
the amount used to represent one character; on modern architectures
this is usually 8 bits, but may be 9 on 36-bit machines. Some
older architectures used `byte' for quantities of 6 or 7 bits, and
the PDP-10 supported `bytes' that were actually bitfields of
1 to 36 bits! These usages are now obsolete, and even 9-bit bytes
have become rare in the general trend toward power-of-2 word sizes.
Historical note: The term 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. Said of hardware, denotes
willingness to compute or pass data in either {big-endian} or
{little-endian} format (depending, presumably, on a {mode bit}
somewhere). See also {NUXI problem}.
:bzzzt, wrong: /bzt rong/ [USENET/Internet] From a Robin Williams
routine in the movie "Dead Poets Society" spoofing radio or
TV quiz programs, such as *Truth or Consequences*, where an
incorrect answer earns one a blast from the buzzer and condolences
from the interlocutor. A way of expressing mock-rude disagreement,
usually immediately following an included quote from another
poster. The less abbreviated "*Bzzzzt*, wrong, but thank you for
playing" is also common; capitalization and emphasis of the
buzzer sound varies.
= C =
=====
:C: n. 1. The third letter of the English alphabet. 2. ASCII
1000011. 3. The name of a programming language designed by
Dennis Ritchie during the early 1970s and immediately used to
reimplement {{UNIX}}; so called because many features derived
from an earlier compiler named `B' in commemoration of
*its* parent, BCPL. Before Bjarne Stroustrup settled the
question by designing C++, there was a humorous debate over whether
C's successor should be named `D' or `P'. C became immensely
popular outside Bell Labs after about 1980 and is now the dominant
language in systems and microcomputer applications programming.
See also {languages of choice}, {indent style}.
C is often described, with a mixture of fondness and disdain
varying according to the speaker, as "a language that combines
all the elegance and power of assembly language with all the
readability and maintainability of assembly language".
:C Programmer's Disease: n. The tendency of the undisciplined C
programmer to set arbitrary but supposedly generous static limits
on table sizes (defined, if you're lucky, by constants in header
files) rather than taking the trouble to do proper dynamic storage
allocation. If an application user later needs to put 68 elements
into a table of size 50, the afflicted programmer reasons that he
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.
:calculator: [Cambridge] n. Syn. for {bitty box}.
:can: vt. To abort a job on a time-sharing system. Used esp. when the
person doing the deed is an operator, as in "canned from the
{{console}}". Frequently used in an imperative sense, as in "Can
that print job, the LPT just popped a sprocket!" Synonymous with
{gun}. It is said that the ASCII character with mnemonic CAN
(0011000) was used as a kill-job character on some early OSes.
Alternatively, this 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).
: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 moral here for those attracted to
candygrammars. Note that, in many circles, pretty much the same
ones who remember Monty Python sketches, all it takes is the word
"Candygram!", suitably timed, to get people rolling on the
floor. --- GLS]
:canonical: [historically, `according to religious law'] adj. The
usual or standard state or manner of something. This word has a
somewhat more technical meaning in mathematics. Two formulas such
as 9 + x and x + 9 are said to be equivalent because
they mean the same thing, but the second one is in `canonical
form' because it is written in the usual way, with the highest
power of x first. Usually there are fixed rules you can use
to decide whether something is in canonical form. The jargon
meaning, a relaxation of the technical meaning, acquired its
present loading in computer-science culture largely through its
prominence in Alonzo Church's work in computation theory and
mathematical logic (see {Knights of the Lambda Calculus}).
Compare {vanilla}.
This word has an interesting history. Non-technical academics do
not use the adjective `canonical' in any of the senses defined
above with any regularity; they do however use the nouns `canon'
and `canonicity' (not **canonicalness or **canonicality). The
`canon' of a given author is the complete body of authentic works
by that author (this usage is familiar to Sherlock Holmes fans as
well as to literary scholars). `*The* canon' is the body of
works in a given field (e.g., works of literature, or of art, or of
music) deemed worthwhile for students to study and for scholars to
investigate.
The word `canon' derives ultimately from the Greek
`kanon'
(akin to the English `cane') referring to a reed. Reeds were used
for measurement, and in Latin and later Greek the word `canon'
meant a rule or a standard. The establishment of a canon of
scriptures within Christianity was meant to define a standard or a
rule for the religion. The above non-techspeak academic usages
stem from this instance of a defined and accepted body of work.
Alongside this usage was the promulgation of `canons' (`rules')
for the government of the Catholic Church. The techspeak usages
("according to religious law") derive from this use of the Latin
`canon'.
Hackers invest this term with a playfulness that makes an ironic
contrast with its historical meaning. A true story: One Bob
Sjoberg, new at the MIT AI Lab, expressed some annoyance at the use
of jargon. Over his loud objections, GLS and RMS made a point of
using it as much as possible in his presence, and eventually it
began to sink in. Finally, in one conversation, he used the word
`canonical' in jargon-like fashion without thinking. Steele:
"Aha! We've finally got you talking jargon too!" Stallman:
"What did he say?" Steele: "Bob just used `canonical' in the
canonical way."
Of course, canonicality depends on context, but it is implicitly
defined as the way *hackers* normally expect things to be.
Thus, a hacker may claim with a straight face that `according to
religious law' is *not* the canonical meaning of `canonical'.
:card walloper: n. An EDP programmer who grinds out batch programs
that do stupid things like print people's paychecks. Compare
{code grinder}. See also {{punched card}}, {eighty-column
mind}.
:careware: /keir'weir/ n. {Shareware} for which either the
author suggests that some payment be made to a nominated charity
or a levy directed to charity is included on top of the
distribution charge. Syn. {charityware}; compare
{crippleware}, sense 2.
:cargo cult programming: n. A style of (incompetent) programming
dominated by ritual inclusion of code or program structures that
serve no real purpose. A cargo cult programmer will usually
explain the extra code as a way of working around some bug
encountered in the past, but usually neither the bug nor the reason
the code apparently avoided the bug was ever fully understood
(compare {shotgun debugging}, {voodoo programming}).
The term `cargo cult' is a reference to aboriginal religions that
grew up in the South Pacific after World War II. The practices of
these cults center on building elaborate mockups of airplanes and
military style landing strips in the hope of bringing the return of
the god-like airplanes that brought such marvelous cargo during the
war. Hackish usage probably derives from Richard Feynman's
characterization of certain practices as "cargo cult science" in
his book `Surely You're Joking, Mr. Feynman' (W. W. Norton
& Co, New York 1985, ISBN 0-393-01921-7).
:cascade: n. 1. A huge volume of spurious error-message output
produced by a compiler with poor error recovery. 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: [from `cut and paste'] n. 1. The addition of a new
{feature} to an existing system by selecting the code from an
existing feature and pasting it in with minor changes. Common in
telephony circles because most operations in a telephone switch are
selected using `case' statements. Leads to {software bloat}.
In some circles of EMACS users this is called `programming by
Meta-W', because Meta-W is the EMACS command for copying a block of
text to a kill buffer in preparation to pasting it in elsewhere.
The term is condescending, implying that the programmer is acting
mindlessly rather than thinking carefully about what is required to
integrate the code for two similar cases.
:casters-up mode: [IBM] n. Yet another synonym for `broken' or
`down'. Usually connotes a major failure. A system (hardware or
software) which is `down' may be already being restarted before
the failure is noticed, whereas one which is `casters up' is
usually a good excuse to take the rest of the day off (as long as
you're not responsible for fixing it).
:casting the runes: n. What a {guru} does when you ask him or
her to run a particular program and type at it because it never
works for anyone else; esp. used when nobody can ever see what
the guru is doing different from what J. Random Luser does.
Compare {incantation}, {runes}, {examining the entrails};
also see the AI koan about Tom Knight in "{A Selection
of AI Koans}" ({Appendix A}).
:cat: [from `catenate' via {{UNIX}} `cat(1)'] vt.
1. [techspeak] To spew an entire file to the screen or some other
output sink without pause. 2. By extension, to dump large amounts
of data at an unprepared target or with no intention of browsing it
carefully. Usage: considered silly. Rare outside UNIX sites. See
also {dd}, {BLT}.
Among UNIX fans, `cat(1)' is considered an excellent example
of user-interface design, because it 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....
:catatonic: adj. Describes a condition of suspended animation in
which something is so {wedged} or {hung} that it makes no
response. If you are typing on a terminal and suddenly the
computer doesn't even echo the letters back to the screen as you
type, let alone do what you're asking it to do, then the computer
is suffering from catatonia (possibly because it has crashed).
"There I was in the middle of a winning game of {nethack} and it
went catatonic on me! Aaargh!" Compare {buzz}.
:cd tilde: /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."
:cdr: /ku'dr/ or /kuh'dr/ [from LISP] vt. To skip past the
first item from a list of things (generalized from the LISP
operation on binary tree structures, which returns a list
consisting of all but the first element of its argument). In the
form `cdr down', to trace down a list of elements: "Shall we
cdr down the agenda?" Usage: silly. See also {loop through}.
Historical note: The instruction format of the IBM 7090 that hosted
the original LISP implementation featured two 15-bit fields called
the `address' and `decrement' parts. The term `cdr' was originally
`Contents of Decrement part of Register'. Similarly, `car' stood
for `Contents of Address part of Register'.
The cdr and car operations have since become bases for
formation of compound metaphors in non-LISP contexts. GLS recalls,
for example, a programming project in which strings were
represented as linked lists; the get-character and skip-character
operations were of course called CHAR and CHDR.
:chad: /chad/ n. 1. The perforated edge strips on printer paper, after
they have been separated from the printed portion. Also called
{selvage} and {perf}. 2. obs. The confetti-like paper bits punched
out of cards or paper tape; this was also called `chaff', `computer
confetti', and `keypunch droppings'.
Historical note: One correspondent believes `chad' (sense 2)
derives from the Chadless keypunch (named for its inventor), which
cut little u-shaped tabs in the card to make a hole when the tab
folded back, rather than punching out a circle/rectangle; it was
clear that if the Chadless keypunch didn't make them, then the
stuff that other keypunches made had to be `chad'.
:chad box: n. boxes inside them, 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. [orig. from BASIC's `CHAIN' statement] vi. To hand
off execution to a child or successor without going through the
{OS} command interpreter that invoked it. The state of the
parent program is lost and there is no returning to it. Though
this facility used to be common on memory-limited micros and is
still widely supported for backward compatibility, the jargon usage
is semi-obsolescent; in particular, most UNIX programmers will
think of this as an {exec}. Oppose the more modern
`subshell'. 2. A series of linked data areas within an
operating system or application. `Chain rattling' is the process
of repeatedly running through the linked data areas searching for
one which is of interest to the executing program. The implication
is that there is a very large number of links on the chain.
:channel: [IRC] n. The basic unit of discussion on {IRC}. Once
one joins a channel, everything one types is read by others on that
channel. Channels can either be named with numbers or with strings
that begin with a `#' sign and can have topic descriptions (which
are generally irrelevant to the actual subject of discussion).
Some notable channels are `#initgame', `#hottub', and
`#report'. At times of international crisis, `#report'
has hundreds of members, some of whom take turns listening to
various news services and 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: [IRC, GEnie] n. 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/ [IRC] n. Someone who is endowed with
privileges on a particular {IRC} channel; commonly abbreviated
`chanop' or `CHOP'. These privileges include the right to
{kick} users, to change various status bits, and to make others
into CHOPs.
:chanop: /chan'-op/ [IRC] n. See {channel op}.
:char: /keir/ or /char/; rarely, /kar/ n. Shorthand for
`character'. Esp. used by C programmers, as `char' is
C's typename for character data.
:charityware: /cha'rit-ee-weir`/ n. Syn. {careware}.
:chase pointers: 1. vi. To go through multiple levels of
indirection, as in traversing a linked list or graph structure.
Used esp. by programmers in C, where explicit pointers are a very
common data type. This is techspeak, but it remains jargon when
used of human networks. "I'm chasing pointers. Bob said you
could tell me who to talk to about...." See {dangling
pointer} and {snap}. 2. [Cambridge] `pointer chase' or
`pointer hunt': The process of going through a {core dump}
(sense 1), interactively or on a large piece of paper printed with
hex {runes}, following dynamic data-structures. Used only in a
debugging context.
: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-guard}s).
:chemist: [Cambridge] n. Someone who wastes computer time on
{number-crunching} when you'd far rather the machine were doing
something more productive, such as working out anagrams of your
name or printing Snoopy calendars or running {life} patterns.
May or may not refer to someone who actually studies chemistry.
:Chernobyl chicken: n. See {laser chicken}.
:Chernobyl packet: /cher-noh'b*l pak'*t/ n. A network packet that
induces 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: [Commodore] n. The Commodore Business Machines logo,
which strongly resembles a poultry part. Rendered in ASCII as
`C='. With the arguable exception of the Amiga (see {amoeba}),
Commodore's machines are notoriously crocky little {bitty box}es
(see also {PETSCII}). Thus, this usage may owe something to
Philip K. Dick's novel `Do Androids Dream of Electric Sheep?'
(the basis for the movie `Blade Runner'; 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.
:chine nual: /sheen'yu-*l/ [MIT] n.,obs. The LISP Machine Manual, so
called because the title was wrapped around the cover so only those
letters showed on the front.
:Chinese Army technique: n. Syn. {Mongolian Hordes technique}.
:choke: v. 1. To reject input, often ungracefully. "NULs make System
V's `lpr(1)' choke." "I tried building an {EMACS} binary to
use {X}, but `cpp(1)' choked on all those `#define's."
See {barf}, {gag}, {vi}. 2. [MIT] More generally, to fail at any
endeavor, but with some flair or bravado; the popular definition is
"to snatch defeat from the jaws of victory."
:chomp: vi. To {lose}; specifically, to chew on something of
which more was bitten off than one can. Probably related to
gnashing of teeth. See {bagbiter}.
A hand gesture commonly accompanies this. To perform it, hold the
four fingers together and place the thumb against their tips. Now
open and close your hand rapidly to suggest a biting action (much
like what Pac-Man does in the classic video game, though this
pantomime seems to predate that). The gesture alone means `chomp
chomp' (see "{Verb Doubling}" in the "{Jargon
Construction}" section of the Prependices). The hand may be
pointed at the object of complaint, and for real emphasis you can
use both hands at once. Doing this to a person is equivalent to
saying "You chomper!" If you point the gesture at yourself, it
is a humble but humorous admission of some failure. You might do
this if someone told you that a program you had written had failed
in some surprising way and you felt dumb for not having anticipated
it.
:chomper: n. Someone or something that is chomping; a loser. See
{loser}, {bagbiter}, {chomp}.
:CHOP: /chop/ [IRC] n. See {channel op}.
:Christmas tree: n. A kind of RS-232 line tester or breakout box
featuring rows of blinking red and green LEDs suggestive of
Christmas lights.
:Christmas tree packet: n. A packet with every single option set for
whatever protocol is in use. See {kamikaze packet}, {Chernobyl
packet}. (The term doubtless derives from a fanciful image of each
little option bit being represented by a different-colored light
bulb, all turned on.)
:chrome: [from automotive slang via wargaming] n. Showy features
added to attract users but contributing little or nothing to
the power of a system. "The 3D icons in Motif are just chrome,
but they certainly are *pretty* chrome!" Distinguished from
{bells and whistles} by the fact that the latter are usually
added to gratify developers' own desires for featurefulness.
Often used as a term of contempt.
:chug: vi. To run slowly; to {grind} or {grovel}. "The disk is
chugging like crazy."
:Church of the SubGenius: n. A mutant offshoot of
{Discordianism} launched in 1981 as a spoof of fundamentalist
Christianity by the `Reverend' Ivan Stang, a brilliant satirist
with a gift for promotion. Popular among hackers as a rich source
of bizarre imagery and references such as "Bob" the divine
drilling-equipment salesman, the Benevolent Space Xists, and the
Stark Fist of Removal. Much SubGenius theory is concerned with the
acquisition of the mystical substance or quality of {slack}.
:Cinderella Book: [CMU] n. `Introduction to Automata Theory,
Languages, and Computation', by John Hopcroft and Jeffrey Ullman,
(Addison-Wesley, 1979). So called because the cover depicts a girl
(putatively Cinderella) sitting in front of a Rube Goldberg device
and holding a rope coming out of it. 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 block}s just before a CompuServe address.
Syn. {Compu$erve}.
:Classic C: /klas'ik C/ [a play on `Coke Classic'] n. The
C programming language as defined in the first edition of {K&R},
with some small additions. It is also known as `K&R C'. The name
came into use while C was being standardized by the ANSI X3J11
committee. Also `C Classic'.
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}.
:clocks: n. Processor logic cycles, so called because each
generally corresponds to one clock pulse in the processor's timing.
The relative execution times of instructions on a machine are
usually discussed in clocks rather than absolute fractions of a
second; one good reason for this is that clock speeds for various
models of the machine may increase as technology improves, and it
is usually the relative times one is interested in when discussing
the instruction set. Compare {cycle}.
:clone: n. 1. An exact duplicate: "Our product is a clone of
their product." Implies a legal reimplementation from
documentation or by reverse-engineering. Also connotes lower
price. 2. A shoddy, spurious copy: "Their product is a
clone of our product." 3. A blatant ripoff, most likely violating
copyright, patent, or trade secret protections: "Your
product is a clone of my product." This use implies legal
action is pending. 4. `PC clone:' a PC-BUS/ISA or
EISA-compatible 80x86-based microcomputer (this use is sometimes
spelled `klone' or `PClone'). These invariably have much
more bang for the buck than the IBM archetypes they resemble.
5. In the construction `UNIX clone': An OS designed to deliver
a UNIX-lookalike environment without UNIX license fees, or with
additional `mission-critical' features such as support for
real-time programming. 6. v. To make an exact copy of something.
"Let me clone that" might mean "I want to borrow that paper so I
can make a photocopy" or "Let me get a copy of that file before
you {mung} it".
:clover key: [Mac users] n. See {feature key}.
:clustergeeking: /kluh'st*r-gee`king/ [CMU] n. Spending more time
at a computer cluster doing CS homework than most people spend
breathing.
:COBOL: /koh'bol/ [COmmon Business-Oriented Language] n.
(Synonymous with {evil}.) A weak, verbose, and flabby language
used by {card walloper}s to do boring mindless things on
{dinosaur} mainframes. Hackers believe that all COBOL
programmers are {suit}s or {code grinder}s, and no
self-respecting hacker will ever admit to having learned the
language. Its very name is seldom uttered without ritual
expressions of disgust or horror. See also {fear and loathing},
{software rot}.
:COBOL fingers: /koh'bol fing'grz/ n. Reported from Sweden, a
(hypothetical) disease one might get from coding in COBOL. The
language requires code verbose beyond all reason (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!"
:code grinder: n. 1. A {suit}-wearing minion of the sort hired in
legion strength by banks and insurance companies to implement
payroll packages in RPG and other such unspeakable horrors. In its
native habitat, the code grinder often removes the suit jacket to
reveal an underplumage consisting of button-down shirt (starch
optional) and a tie. In times of dire stress, the sleeves (if
long) may be rolled up and the tie loosened about half an inch. It
seldom helps. The {code grinder}'s milieu is about as far from
hackerdom as one can get and still touch a computer; the term
connotes pity. See {Real World}, {suit}. 2. Used of or to a
hacker, a really serious slur on the person's creative ability;
connotes a design style characterized by primitive technique,
rule-boundedness, {brute force}, and utter lack of imagination.
Compare {card walloper}; contrast {hacker}, {real
programmer}.
:code police: [by analogy with George Orwell's `thought police'] n.
A mythical team of Gestapo-like storm troopers that might burst
into one's office and arrest one for violating programming style
rules. May be used either seriously, to underline a claim that a
particular style violation is dangerous, or ironically, to suggest
that the practice under discussion is condemned mainly by
anal-retentive {weenie}s. "Dike out that goto or the code
police will get you!" The ironic usage is perhaps more common.
:codewalker: n. A program component that traverses other programs for
a living. Compilers have codewalkers in their front ends; so do
cross-reference generators and some database front ends. Other
utility programs that try to do too much with source code may turn
into codewalkers. As in "This new `vgrind' feature would require a
codewalker to implement."
:coefficient of X: n. Hackish speech makes heavy use of
pseudo-math-ema-tic-al metaphors. Four particularly important
ones involve the terms `coefficient', `factor', `index', and
`quotient'. They are often loosely applied to things you cannot
really be quantitative about, but there are subtle distinctions
among them that convey information about the way the speaker
mentally models whatever he or she is describing.
`Foo factor' and `foo quotient' tend to describe something for
which the issue is one of presence or absence. The canonical
example is {fudge factor}. It's not important how much you're
fudging; the term simply acknowledges that some fudging is needed.
You might talk of liking a movie for its silliness factor.
Quotient tends to imply that the property is a ratio of two
opposing factors: "I would have won except for my luck quotient."
This could also be "I would have won except for the luck factor",
but using *quotient* emphasizes that it was bad luck
overpowering good luck (or someone else's good luck overpowering
your own).
`Foo index' and `coefficient of foo' both tend to imply
that foo is, if not strictly measurable, at least something that
can be larger or smaller. Thus, you might refer to a paper or
person as having a `high bogosity index', whereas you would be less
likely to speak of a `high bogosity factor'. `Foo index' suggests
that foo is a condensation of many quantities, as in the mundane
cost-of-living index; `coefficient of foo' suggests that foo is a
fundamental quantity, as in a coefficient of friction. The choice
between these terms is often one of personal preference; e.g., some
people might feel that bogosity is a fundamental attribute and thus
say `coefficient of bogosity', whereas others might feel it is a
combination of factors and thus say `bogosity index'.
:cokebottle: /kohk'bot-l/ n. Any very unusual character,
particularly one you can't type because it it isn't on your
keyboard. MIT people used to complain about the
`control-meta-cokebottle' commands at SAIL, and SAIL people
complained right back about the `{altmode}-altmode-cokebottle'
commands at MIT. After the demise of the {space-cadet
keyboard}, `cokebottle' faded away as serious usage, but was
often invoked humorously to describe an (unspecified) weird or
non-intuitive keystroke command. It may be due for a second
inning, however. The OSF/Motif window manager, `mwm(1)', has
a reserved keystroke for switching to the default set of
keybindings and behavior. This keystroke is (believe it or not)
`control-meta-bang' (see {bang}). Since the exclamation point
looks a lot like an upside down Coke bottle, Motif hackers have
begun referring to this keystroke as `cokebottle'. See also
{quadruple bucky}.
:cold boot: n. See {boot}.
:COME FROM: n. A semi-mythical language construct dual to the `go
to'; `COME FROM'
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! ๐ I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/