The New Hacker's Dictionary version 4.2.2
by
Various editors

Part 1 out of 29







_________________________________________________________________

Node:Top, Next:[2]Introduction, Previous:[3](dir), Up:[4](dir)
#======= THIS IS THE JARGON FILE, VERSION 4.2.2, 20 AUG 2000 =======#

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

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

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

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

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

From time to time a snapshot of this file has been polished, edited,
and formatted for commercial publication with the cooperation of the
volunteer editors and the hacker community at large. If you wish to
have a bound paper copy of this file, you may find it convenient to
purchase one of these. They often contain additional material not
found in on-line versions. The two `authorized' editions so far are
described in the Revision History section; there may be more in the
future.
* [6]Introduction: The purpose and scope of this File
* [7]A Few Terms: Of Slang, Jargon and Techspeak
* [8]Revision History: How the File came to be
* [9]Jargon Construction: How hackers invent jargon
* [10]Hacker Writing Style: How they write
* [11]Email Quotes: And the Inclusion Problem
* [12]Hacker Speech Style: How hackers talk
* [13]International Style: Some notes on usage outside the U.S.
* [14]Lamer-speak: Crackers, Phreaks, and Lamers
* [15]Pronunciation Guide: How to read the pronunciation keys
* [16]Other Lexicon Conventions: How to read lexicon entries
* [17]Format for New Entries: How to submit new entries for the File
* [18]The Jargon Lexicon: The lexicon itself
* [19]Appendix A: Hacker Folklore
* [20]Appendix B: A Portrait of J. Random Hacker
* [21]Appendix C: Helping Hacker Culture Grow
* [22]Bibliography: For your further enjoyment
_________________________________________________________________

Node:Introduction, Next:[23]A Few Terms, Previous:[24]Top, Up:[25]Top

Introduction

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

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

As usual with slang, the special vocabulary of hackers helps hold
their culture together -- it helps hackers recognize each other's
places in the community and expresses shared values and experiences.
Also as usual, not knowing the slang (or using it inappropriately)
defines one as an outsider, a mundane, or (worst of all in hackish
vocabulary) possibly even a [26]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 [27]kluge and an [28]elegant solution,
and the differing connotations attached to each. The distinction is
not only of engineering significance; it reaches right back into the
nature of the generative processes in program design and asserts
something important about two different kinds of relationship between
the hacker and the hack. Hacker slang is unusually rich in
implications of this kind, of overtones and undertones that illuminate
the hackish psyche.

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

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

The intensity and consciousness of hackish invention make a
compilation of hacker slang a particularly effective window into the
surrounding culture -- and, in fact, this one is the latest version of
an evolving compilation called the `Jargon File', maintained by
hackers themselves 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 slang definitions.

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

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

A selection of longer items of hacker folklore and humor is included
in [29]Appendix A. The `outside' reader's attention is particularly
directed to the Portrait of J. Random Hacker in [30]Appendix B.
Appendix C, the [31]Bibliography, lists some non-technical works which
have either influenced or described the hacker culture.

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

Node:A Few Terms, Next:[32]Revision History,
Previous:[33]Introduction, Up:[34]Top

Of Slang, Jargon, and Techspeak

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

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

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

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

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

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

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

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

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

Node:Revision History, Next:[39]Jargon Construction, Previous:[40]A
Few Terms, Up:[41]Top

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 ([42]frob and some senses of [43]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, [44]FTPed a copy of the File to MIT. He noticed
that it was hardly restricted to `AI words' and so stored the file on
his directory as AI:MRC;SAIL JARGON.

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

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

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

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

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

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

The AI Lab culture had been hit hard in the late 1970s by funding cuts
and the resulting administrative decision to use vendor-supported
hardware and software instead of homebrew whenever possible. At MIT,
most AI work had turned to dedicated LISP Machines. At the same time,
the commercialization of AI technology lured some of the AI Lab's best
and brightest away to startups along the Route 128 strip in
Massachusetts and out West in Silicon Valley. The startups built LISP
machines for MIT; the central MIT-AI computer became a [45]TWENEX
system rather than a host for the AI hackers' beloved [46]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 [47]TWENEX site, at one point
operating more than a dozen TOPS-20 systems; but by the mid-1980s most
of the interesting software work was being done on the emerging BSD
Unix standard.

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

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

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

This new version casts a wider net than the old Jargon File; its aim
is to cover not just AI or PDP-10 hacker culture but all the technical
computing cultures wherein the true hacker-nature is manifested. More
than half of the entries now derive from [49]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 [50] maintains the new File
with assistance from Guy L. Steele Jr. [51]; these are
the persons primarily reflected in the File's editorial `we', though
we take pleasure in acknowledging the special contribution of the
other coauthors of Steele-1983. Please email all additions,
corrections, and correspondence relating to the Jargon File to
[52]jargon@thyrsus.com.

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

The 2.9.6 version became the main text of "The New Hacker's
Dictionary", by Eric Raymond (ed.), MIT Press 1991, ISBN
0-262-68069-6.

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

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

The MIT Press 55 Hayward Street Cambridge, MA 02142

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

The maintainers are committed to updating the on-line version of the
Jargon File through and beyond paper publication, and will continue to
make it available to archives and public-access sites as a trust of
the hacker community.

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

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

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

Version 2.9.7, Oct 28 1991: first markup for hypertext browser. This
version had 19432 lines, 152132 words, 999595 characters, and 1750
entries.

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

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

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

Version 2.9.11, Jan 01 1993: lots of new historical material. This
version had 21725 lines, 171169 words, 1125880 characters, and 1922
entries.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Version 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 [53],
Bernie Cosell [54], Earl Boebert
[55], and Joe Morris
[56].

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

A few bits of this text quote previous works. We are indebted to Brian
A. LaMacchia [60] for obtaining permission for
us to use material from the "TMRC Dictionary"; also, Don Libes
[61] contributed some appropriate material from
his excellent book "Life With UNIX". We thank Per Lindberg
[62], 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
[63] for securing us permission to quote
from PARC's own jargon lexicon and shipping us a copy.

It is a particular pleasure to acknowledge the major contributions of
Mark Brader [64] and Steve Summit [65] to
the File and Dictionary; they have read and reread many drafts,
checked facts, caught typos, submitted an amazing number of thoughtful
comments, and done yeoman service in catching typos and minor usage
bobbles. Their rare combination of enthusiasm, persistence,
wide-ranging technical knowledge, and precisionism in matters of
language has been of invaluable help. Indeed, the sustained volume and
quality of Mr. Brader's input over several years and several different
editions has only allowed him to escape co-editor credit by the
slimmest of margins.

Finally, George V. Reilly [66] helped with TeX
arcana and painstakingly proofread some 2.7 and 2.8 versions, and Eric
Tiedemann [67] contributed sage advice throughout on
rhetoric, amphigory, and philosophunculism.
_________________________________________________________________

Node:Jargon Construction, Next:[68]Hacker Writing Style,
Previous:[69]Revision History, Up:[70]Top

How Jargon Works

Jargon Construction

There are some standard methods of jargonification that became
established quite early (i.e., before 1970), spreading from such
sources as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers,
and John McCarthy's original crew of LISPers. These include verb
doubling, soundalike slang, the `-P' convention, overgeneralization,
spoken inarticulations, and anthropomorphization. Each is discussed
below. We also cover the standard comparatives for design quality.

Of these six, verb doubling, overgeneralization, anthropomorphization,
and (especially) spoken inarticulations have become quite general; but
soundalike slang is still largely confined to MIT and other large
universities, and the `-P' convention is found only where LISPers
flourish.
* [71]Verb Doubling: Doubling a verb may change its semantics
* [72]Soundalike Slang: Punning jargon
* [73]The -P convention: A LISPy way to form questions
* [74]Overgeneralization: Standard abuses of grammar
* [75]Spoken Inarticulations: Sighing and <*sigh*>ing
* [76]Anthropomorphization: Homunculi, daemons, and confused
programs
* [77]Comparatives: Standard comparatives for design quality
_________________________________________________________________

Node:Verb Doubling, Next:[78]Soundalike Slang, Up:[79]Jargon
Construction

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 [80]win, [81]lose, [82]hack,
[83]flame, [84]barf, [85]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 [86]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
_________________________________________________________________

Node:Soundalike Slang, Next:[87]The -P convention, Previous:[88]Verb
Doubling, Up:[89]Jargon Construction

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 [90]flavorful if the phrase is bent so as to include some
other jargon word; thus the computer hobbyist magazine "Dr. Dobb's
Journal" is almost always referred to among hackers as `Dr. Frob's
Journal' or simply `Dr. Frob's'. Terms of this kind that have been in
fairly wide use include names for newspapers:
Boston Herald => Horrid (or Harried)
Boston Globe => Boston Glob
Houston (or San Francisco) Chronicle
=> the Crocknicle (or the Comical)
New York Times => New York Slime
Wall Street Journal => Wall Street Urinal

However, terms like these are often made up on the spur of the moment.
Standard examples include:
Data General => Dirty Genitals
IBM 360 => IBM Three-Sickly
Government Property --- Do Not Duplicate (on keys)
=> Government Duplicity --- Do Not Propagate
for historical reasons => for hysterical raisins
Margaret Jacks Hall (the CS building at Stanford)
=> Marginal Hacks Hall
Microsoft => Microsloth
Internet Explorer => Internet Exploiter

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

Node:The -P convention, Next:[91]Overgeneralization,
Previous:[92]Soundalike Slang, Up:[93]Jargon Construction

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 [94]T and [95]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 [96]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]
_________________________________________________________________

Node:Overgeneralization, Next:[97]Spoken Inarticulations,
Previous:[98]The -P convention, Up:[99]Jargon Construction

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 [100]grep for
things rather than searching for them. Many of the lexicon entries are
generalizations of exactly this kind.

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

porous => porosity
generous => generosity

hackers happily generalize:

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

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

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

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

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

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

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

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

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

Further, note the prevalence of certain kinds of nonstandard plural
forms. Some of these go back quite a ways; the TMRC Dictionary
includes an entry which implies that the plural of `mouse' is
[101]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 [102]VAXen and [103]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 [104]frobnitz) and
`Unices' and `Twenices' (rather than `Unixes' and `Twenexes'; see
[105]Unix, [106]TWENEX in main text). But note that `Twenexen' was
never used, and `Unixen' was not sighted in the wild until the year
2000, thirty years after it might logically have come into use; it has
been suggested that this is because `-ix' and `-ex' are Latin singular
endings that attract a Latinate plural. Finally, it has been suggested
to general approval that the plural of `mongoose' ought to be
`polygoose'.

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

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

Node:Spoken Inarticulations, Next:[107]Anthropomorphization,
Previous:[108]Overgeneralization, Up:[109]Jargon Construction

Spoken inarticulations

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

Node:Anthropomorphization, Next:[110]Comparatives,
Previous:[111]Spoken Inarticulations, Up:[112]Jargon Construction

Anthropomorphization

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

Thus it is common to hear hardware or software talked about as though
it has homunculi talking to each other inside it, with intentions and
desires. Thus, one hears "The protocol handler got confused", or that
programs "are trying" to do things, or one may say of a routine that
"its goal in life is to X". One even hears explanations like "... and
its poor little brain couldn't understand X, and it died." Sometimes
modelling things this way actually seems to make them easier to
understand, perhaps because it's instinctively natural to think of
anything with a really complex behavioral repertoire as `like a
person' rather than `like a thing'.

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

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

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

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

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

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

Node:Comparatives, Previous:[113]Anthropomorphization, Up:[114]Jargon
Construction

Comparatives

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

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

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

broken flaky dodgy fragile brittle
solid robust bulletproof armor-plated

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

Coinages for describing [115]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.
_________________________________________________________________

Node:Hacker Writing Style, Next:[116]Email Quotes,
Previous:[117]Jargon Construction, Up:[118]Top

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 [119]vi tutorial that looks
like this:

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

Standard usage would make this

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

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

The Jargon File follows hackish usage throughout.

Interestingly, a similar style is now preferred practice in Great
Britain, though the older style (which became established for
typographical reasons having to do with the aesthetics of comma and
quotes in typeset text) is still accepted there. "Hart's Rules" and
the "Oxford Dictionary for Writers and Editors" call the hacker-like
style `new' or `logical' quoting. This returns British English to the
style Latin languages (including Spanish, French, Italian, Catalan)
have been using all along.

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

One quirk that shows up frequently in the [120]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 [121]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 [122]talk mode may be asked to "stop
shouting, please, you're hurting my ears!".

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

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

One might also see the above sound effects as , , ,
, , , . This use of angle brackets to mark
their contents originally derives from conventions used in [123]BNF,
but since about 1993 it has been reinforced by the HTML markup used on
the World Wide Web.

Angle-bracket enclosure is also used to indicate that a term stands
for some [124]random member of a larger class (this is straight from
[125]BNF). Examples like the following are common:
So this walks into a bar one day...

There is also an accepted convention for `writing under erasure'; the
text
Be nice to this fool^H^H^H^Hgentleman,
he's visiting from corporate HQ.

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

This convention parallels (and may have been influenced by) the ironic
use of `slashouts' in science-fiction fanzines.

A related habit uses editor commands to signify corrections to
previous text. This custom faded in email as more mailers got good
editing capabilities, only to tale on new life on IRCs and other
line-based chat systems.
I've seen that term used on alt.foobar often.
Send it to Erik for the File.
Oops...s/Erik/Eric/.

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

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

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

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

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

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

On Usenet and in the [126]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 J. R. Hacker wrote:
>I recently had occasion to field-test the Snafu
>Systems 2300E adaptive gonkulator. The price was
>right, and the racing stripe on the case looked
>kind of neat, but its performance left something
>to be desired.

Yeah, I tried one out too.

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

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

#include
--
== 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
[127]flame) should be evaluated only if you have turned on (or defined
on) the switch FLAME. The #include at the end is C for "include
standard disclaimer here"; the `standard disclaimer' is understood to
read, roughly, "These are my personal opinions and not to be construed
as the official position of my employer."

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

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

Your father was a hamster and your mother smelt of elderberries!


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

You seem well-suited for a career in government.


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

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

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

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

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

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

Node:Email Quotes, Next:[129]Hacker Speech Style, Previous:[130]Hacker
Writing Style, Up:[131]Top

Email Quotes and Inclusion Conventions

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

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

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

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

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

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

Most netters view an inclusion as a promise that comment on it will
immediately follow. The preferred, conversational style looks like
this,
> relevant excerpt 1
response to excerpt
> relevant excerpt 2
response to excerpt
> relevant excerpt 3
response to excerpt

or for short messages like this:
> entire message
response to message

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

but this practice is strongly deprecated.

Though > remains the standard inclusion leader, | is occasionally used
for extended quotations where original variations in indentation are
being retained (one mailer even combines these and uses |>). One also
sees different styles of quoting a number of authors in the same
message: one (deprecated because it loses information) uses a leader
of > for everyone, another (the most common) is > > > > , > > > ,
etc. (or >>>> , >>>, etc., depending on line length and nesting depth)
reflecting the original order of messages, and yet another is to use a
different citation leader for each author, say > , : , | , }
(preserving nesting so that the inclusion order of messages is still
apparent, or tagging the inclusions with authors' names). Yet another
style is to use each poster's initials (or login name) as a citation
leader for that poster.

Occasionally one sees a # leader used for quotations from
authoritative sources such as standards documents; the intended
allusion is to the root prompt (the special Unix command prompt issued
when one is running as the privileged super-user).
_________________________________________________________________

Node:Hacker Speech Style, Next:[133]International Style,
Previous:[134]Email Quotes, Up:[135]Top

Hacker Speech Style

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

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

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

and
if (!going) ...

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

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

In a related vein, hackers sometimes make a game of answering
questions containing logical connectives with a strictly literal
rather than colloquial interpretation. A non-hacker who is indelicate
enough to ask a question like "So, are you working on finding that bug
now or leaving it until later?" is likely to get the perfectly correct
answer "Yes!" (that is, "Yes, I'm doing it either now or later, and
you didn't ask which!").
_________________________________________________________________

Node:International Style, Next:[137]Lamer-speak, Previous:[138]Hacker
Speech Style, Up:[139]Top

International Style

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

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

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

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

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

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

Node:Lamer-speak, Next:[141]Pronunciation Guide,
Previous:[142]International Style, Up:[143]Top

Crackers, Phreaks, and Lamers

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

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

Here is a brief guide to cracker and [146]warez d00dz usage:
* Misspell frequently. The substitutions
phone => fone
freak => phreak
are obligatory.
* Always substitute `z's for `s's. (i.e. "codes" -> "codez"). The
substitution of 'z' for 's' has evolved so that a 'z' is bow
systematically put at the end of words to denote an illegal or
cracking connection. Examples : Appz, passwordz, passez, utilz,
MP3z, distroz, pornz, sitez, gamez, crackz, serialz, downloadz,
FTPz, etc.
* Type random emphasis characters after a post line (i.e. "Hey
Dudes!#!$#$!#!$").
* Use the emphatic `k' prefix ("k-kool", "k-rad", "k-awesome")
frequently.
* Abbreviate compulsively ("I got lotsa warez w/ docs").
* Substitute `0' for `o' ("r0dent", "l0zer").
* TYPE ALL IN CAPS LOCK, SO IT LOOKS LIKE YOU'RE YELLING ALL THE
TIME.

These traits are similar to those of [147]B1FF, who originated as a
parody of naive [148]BBS users; also of his latter-day equivalent
[149]Jeff K.. Occasionally, this sort of distortion may be used as
heavy sarcasm by a real hacker, as in:
> I got X Windows running under Linux!

d00d! u R an 31337 hax0r

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

For further discussion of the pirate-board subculture, see [150]lamer,
[151]elite, [152]leech, [153]poser, [154]cracker, and especially
[155]warez d00dz, [156]banner site, [157]ratio site, [158]leech mode.
_________________________________________________________________

Node:Pronunciation Guide, Next:[159]Other Lexicon Conventions,
Previous:[160]Lamer-speak, Up:[161]Top

How to Use the Lexicon

Pronunciation Guide

Pronunciation keys are provided in the jargon listings for all entries
that are neither dictionary words pronounced as in standard English
nor obvious compounds thereof. Slashes bracket phonetic
pronunciations, which are to be interpreted using the following
conventions:
1. Syllables are hyphen-separated, except that an accent or
back-accent follows each accented syllable (the back-accent marks
a secondary accent in some words of four or more syllables). If no
accent is given, the word is pronounced with equal accentuation on
all syllables (this is common for abbreviations).
2. Consonants are pronounced as in American English. The letter `g'
is always hard (as in "got" rather than "giant"); `ch' is soft
("church" rather than "chemist"). The letter `j' is the sound that
occurs twice in "judge". The letter `s' is always as in "pass",
never a z sound. The digraph `kh' is the guttural of "loch" or
"l'chaim". The digraph 'gh' is the aspirated g+h of "bughouse" or
"ragheap" (rare in English).
3. Uppercase letters are pronounced as their English letter names;
thus (for example) /H-L-L/ is equivalent to /aych el el/. /Z/ may
be pronounced /zee/ or /zed/ depending on your local dialect.
4. Vowels are represented as follows:

/a/
back, that

/ah/
father, palm (see note)

/ar/
far, mark

/aw/
flaw, caught

/ay/
bake, rain

/e/
less, men

/ee/
easy, ski

/eir/
their, software

/i/
trip, hit

/i:/
life, sky

/o/
block, stock (see note)

/oh/
flow, sew

/oo/
loot, through

/or/
more, door

/ow/
out, how

/oy/
boy, coin

/uh/
but, some

/u/
put, foot

/y/
yet, young

/yoo/
few, chew

/[y]oo/
/oo/ with optional fronting as in `news' (/nooz/ or
/nyooz/)

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

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

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

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

Node:Other Lexicon Conventions, Next:[162]Format for New Entries,
Previous:[163]Pronunciation Guide, Up:[164]Top

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.

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

conj.
conjunction

esp.
especially

excl.
exclamation

imp.
imperative

interj.
interjection

n.
noun

obs.
obsolete

pl.
plural

poss.
possibly

pref.
prefix

prob.
probably

prov.
proverbial

quant.
quantifier

suff.
suffix

syn.
synonym (or synonymous with)

v.
verb (may be transitive or intransitive)

var.
variant

vi.
intransitive verb

vt.
transitive verb

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

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

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

Berkeley
University of California at Berkeley

BBN
Bolt, Beranek & Newman

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

CMU
Carnegie-Mellon University

Commodore
Commodore Business Machines

DEC
The Digital Equipment Corporation (now Compaq).

Fairchild
The Fairchild Instruments Palo Alto development group

FidoNet
See the [165]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ème International, the name for the standard
conventions of metric nomenclature used in the sciences

Stanford
Stanford University

Sun
Sun Microsystems

TMRC
Some MITisms go back as far as the Tech Model Railroad Club
(TMRC) at MIT c. 1960. Material marked TMRC is from "An
Abridged Dictionary of the TMRC Language", originally compiled
by Pete Samson in 1959

UCLA
University of California at Los Angeles

UK
the United Kingdom (England, Wales, Scotland, Northern Ireland)

Usenet
See the [166]Usenet entry

WPI
Worcester Polytechnic Institute, site of a very active
community of PDP-10 hackers during the 1970s

WWW
The World-Wide-Web.

XEROX PARC
XEROX's Palo Alto Research Center, site of much pioneering
research in user interface design and networking

Yale
Yale University

Some other etymology abbreviations such as [167]Unix and [168]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.
_________________________________________________________________

Node:Format for New Entries, Next:[169]The Jargon Lexicon,
Previous:[170]Other Lexicon Conventions, Up:[171]Top

Format For New Entries

You can mail submissions for the Jargon File to
[172]jargon@snark.thyrsus.com.

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

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

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

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

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

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

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

Node:The Jargon Lexicon, Next:[173]Appendix A, Previous:[174]Format
for New Entries, Up:[175]Top

The Jargon Lexicon

* [176]= 0 =:
* [177]= A =:
* [178]= B =:
* [179]= C =:
* [180]= D =:
* [181]= E =:
* [182]= F =:
* [183]= G =:
* [184]= H =:
* [185]= I =:
* [186]= J =:
* [187]= K =:
* [188]= L =:
* [189]= M =:
* [190]= N =:
* [191]= O =:
* [192]= P =:
* [193]= Q =:
* [194]= R =:
* [195]= S =:
* [196]= T =:
* [197]= U =:
* [198]= V =:
* [199]= W =:
* [200]= X =:
* [201]= Y =:
* [202]= Z =:
_________________________________________________________________

Node:= 0 =, Next:[203]= A =, Up:[204]The Jargon Lexicon

= 0 =

* [205]0:
* [206]1TBS:
* [207]120 reset:
* [208]2:
* [209]404:
* [210]404 compliant:
* [211]4.2:
* [212]@-party:
_________________________________________________________________

Node:0, Next:[213]1TBS, Up:[214]= 0 =

0

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

Node:1TBS, Next:[215]120 reset, Previous:[216]0, Up:[217]= 0 =

1TBS // n.

The "One True Brace Style"; see [218]indent style.
_________________________________________________________________

Node:120 reset, Next:[219]2, Previous:[220]1TBS, Up:[221]= 0 =

120 reset /wuhn-twen'tee ree'set/ n.

[from 120 volts, U.S. wall voltage] To cycle power on a machine in
order to reset or unjam it. Compare [222]Big Red Switch, [223]power
cycle.
_________________________________________________________________

Node:2, Next:[224]404, Previous:[225]120 reset, Up:[226]= 0 =

2 infix.

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


 


Back to Full Books