Part 7 out of 11



The first great goal in the mind of the designer of an MFTL is
usually to write a compiler for it, then bootstrap the design away
from contamination by lesser languages by writing a compiler for it
in itself. Thus, the standard put-down question at an MFTL talk is
"Has it been used for anything besides its own compiler?". On
the other hand, a language that *cannot* be used to write
its own compiler is beneath contempt. See {break-even point}.

(On a related note, Dennis Ritchie has proposed a test of the
generality and utility of a language and the operating system under
which it is compiled: "Is the output of a program compiled under
the language acceptable as input to the compiler?" In other
words, can you write programs which write programs? (see
{toolsmith}) Alarming numbers of (language, OS) pairs fail this
test, particularly when the language is Fortran; Ritchie is quick
to point out that {UNIX} (even using Fortran) passes it handily.
That the test could ever be failed is only surprising to those who
have had the good fortune only to have worked under modern systems
which lack OS-supported and -imposed "file types".)

:mickey: n. The resolution unit of mouse movement. It has been
suggested that the `disney' will become a benchmark unit for
animation graphics performance.

:mickey mouse program: n. North American equivalent of a {noddy}
(that is, trivial) program. Doesn't necessarily have the
belittling connotations of mainstream slang "Oh, that's just
mickey mouse stuff!"; sometimes trivial programs can be very
useful.

:micro-: pref. 1. Very small; this is the root of its use as a
quantifier prefix. 2. A quantifier prefix, calling for
multiplication by 10^(-6) (see {{quantifiers}}). Neither
of these uses is peculiar to hackers, but hackers tend to fling
them both around rather more freely than is countenanced in
standard English. It is recorded, for example, that one
CS professor used to characterize the standard length of his
lectures as a microcentury --- that is, about 52.6 minutes (see
also {attoparsec}, {nanoacre}, and especially
{microfortnight}). 3. Personal or human-scale --- that is,
capable of being maintained or comprehended or manipulated by one
human being. This sense is generalized from `microcomputer',
and is esp. used in contrast with `macro-' (the corresponding
Greek prefix meaning `large'). 4. Local as opposed to global (or
{macro-}). Thus a hacker might say that buying a smaller car to
reduce pollution only solves a microproblem; the macroproblem of
getting to work might be better solved by using mass transit,
moving to within walking distance, or (best of all) telecommuting.


:microfloppies: n. 3.5-inch floppies, as opposed to 5.25-inch
{vanilla} or mini-floppies and the now-obsolete 8-inch variety.
This term may be headed for obsolescence as 5.25-inchers pass out
of use, only to be revived if anybody floats a sub-3-inch floppy
standard. See {stiffy}, {minifloppies}.

:microfortnight: n. 1/1000000 of the fundamental unit of time in
the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec.
The VMS operating system has a lot of tuning parameters that you
can set with the SYSGEN utility, and one of these is
TIMEPROMPTWAIT, the time the system will wait for an operator to
set the correct date and time at boot if it realizes that the
current value is bogus. This time is specified in microfortnights!

Multiple uses of the millifortnight (about 20 minutes) and
{nanofortnight} have also been reported.

:microLenat: /mi:-kroh-len'-*t/ n. See {bogosity}.

:microReid: /mi:'kroh-reed/ n. See {bogosity}.

:Microsloth Windows: /mi:'kroh-sloth` win'dohz/ n. Hackerism for
`Microsoft Windows', a windowing system for the IBM-PC which is so
limited by bug-for-bug compatibility with {mess-dos} that it is
agonizingly slow on anything less than a fast 386. Compare {X},
{sun-stools}.

:microtape: /mi:'kroh-tayp/ n. Occasionally used to mean a
DECtape, as opposed to a {macrotape}. A DECtape is a small
reel, about 4 inches in diameter, of magnetic tape about an inch
wide. Unlike drivers for today's {macrotape}s, microtape
drivers allow random access to the data, and therefore could be
used to support file systems and even for swapping (this was
generally done purely for {hack value}, as they were far too
slow for practical use). In their heyday they were used in pretty
much the same ways one would now use a floppy disk: as a small,
portable way to save and transport files and programs. Apparently
the term `microtape' was actually the official term used within
DEC for these tapes until someone coined the word `DECtape',
which, of course, sounded sexier to the {marketroid}s; another
version of the story holds that someone discovered a conflict with
another company's `microtape' trademark.

:middle-endian: adj. Not {big-endian} or {little-endian}.
Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3,
occasionally found in the packed-decimal formats of minicomputer
manufacturers who shall remain nameless. See {NUXI problem}.

:milliLampson: /mil'*-lamp`sn/ n. A unit of talking speed,
abbreviated mL. Most people run about 200 milliLampsons. Butler
Lampson (a CS theorist and systems implementor highly regarded
among hackers) goes at 1000. A few people speak faster. This unit
is sometimes used to compare the (sometimes widely disparate) rates
at which people can generate ideas and actually emit them in
speech. For example, noted computer architect C. Gordon Bell
(designer of the PDP-11) is said, with some awe, to think at about
1200 mL but only talk at about 300; he is frequently reduced to
fragments of sentences as his mouth tries to keep up with his
speeding brain.

:minifloppies: n. 5.25-inch {vanilla} floppy disks, as opposed to
3.5-inch or {microfloppies} and the now-obsolescent 8-inch
variety. At one time, this term was a trademark of Shugart
Associates for their SA-400 minifloppy drive. Nobody paid any
attention. See {stiffy}.

:MIPS: /mips/ [abbreviation] n. 1. A measure of computing speed;
formally, `Million Instructions Per Second' (that's 10^6
per second, not 2^(20)!); often rendered by hackers as
`Meaningless Indication of Processor Speed' or in other
unflattering ways. This joke expresses a nearly universal attitude
about the value of most {benchmark} claims, said attitude being
one of the great cultural divides between hackers and
{marketroid}s. The singular is sometimes `1 MIP' even though
this is clearly etymologically wrong. See also {KIPS} and
{GIPS}. 2. Computers, especially large computers, considered
abstractly as sources of {computron}s. "This is just a
workstation; the heavy MIPS are hidden in the basement." 3. The
corporate name of a particular RISC-chip company; among other
things, they designed the processor chips used in DEC's 3100
workstation series. 4. Acronym for `Meaningless Information per
Second' (a joke, prob. from sense 1).

:misbug: /mis-buhg/ [MIT] n. An unintended property of a program
that turns out to be useful; something that should have been a
{bug} but turns out to be a {feature}. Usage: rare. Compare
{green lightning}. See {miswart}.

:misfeature: /mis-fee'chr/ or /mis'fee`chr/ n. A feature that
eventually causes lossage, possibly because it is not adequate for
a new situation which has evolved. Since it results from a
deliberate and properly-implemented feature, a misfeature is not a
bug. Nor is it a simple unforeseen side effect; the term implies
that the feature in question was carefully planned, but its
long-term consequences were not accurately or adequately predicted
(which is quite different from not having thought ahead at all). A
misfeature can be a particularly stubborn problem to resolve,
because fixing it usually involves a substantial philosophical
change to the structure of the system involved.

Many misfeatures (especially in user-interface design) arise
because the designers/implementors mistake their personal tastes
for laws of nature. Often a former feature becomes a misfeature
because a tradeoff was made whose parameters subsequently change
(possibly only in the judgment of the implementors). "Well, yeah,
it is kind of a misfeature that file names are limited to 6
characters, but the original implementors wanted to save directory
space and we're stuck with it for now."

:Missed'em-five: n. Pejorative hackerism for AT&T System V UNIX,
generally used by {BSD} partisans in a bigoted mood. (The
synonym `SysVile' is also encountered.) See {software bloat},
{Berzerkeley}.

:missile address: n. See {ICBM address}.

:miswart: /mis-wort/ [from {wart} by analogy with {misbug}] n.
A {feature} that superficially appears to be a {wart} but has been
determined to be the {Right Thing}. For example, in some versions
of the {EMACS} text editor, the `transpose characters' command
exchanges the character under the cursor with the one before it on the
screen, *except* when the cursor is at the end of a line, in
which case the two characters before the cursor are exchanged.
While this behavior is perhaps surprising, and certainly
inconsistent, it has been found through extensive experimentation
to be what most users want. This feature is a miswart.

:moby: /moh'bee/ [MIT: seems to have been in use among model
railroad fans years ago. Derived from Melville's `Moby Dick'
(some say from `Moby Pickle').] 1. adj. Large, immense, complex,
impressive. "A Saturn V rocket is a truly moby frob." "Some
MIT undergrads pulled off a moby hack at the Harvard-Yale game."
(See "{The Meaning of `Hack'}"). 2. n. obs. The
maximum address space of a machine (see below). For a 680[234]0 or
VAX or most modern 32-bit architectures, it is 4,294,967,296 8-bit
bytes (4 gigabytes). 3. A title of address (never of third-person
reference), usually used to show admiration, respect, and/or
friendliness to a competent hacker. "Greetings, moby Dave. How's
that address-book thing for the Mac going?" 4. adj. In
backgammon, doubles on the dice, as in `moby sixes', `moby
ones', etc. Compare this with {bignum} (sense 2): double sixes
are both bignums and moby sixes, but moby ones are not bignums (the
use of `moby' to describe double ones is sarcastic). Standard
emphatic forms: `Moby foo', `moby win', `moby loss'. `Foby
moo': a spoonerism due to Richard Greenblatt.

This term entered hackerdom with the Fabritek 256K memory added to
the MIT AI PDP-6 machine, which was considered unimaginably huge
when it was installed in the 1960s (at a time when a more typical
memory size for a timesharing system was 72 kilobytes). Thus, a
moby is classically 256K 36-bit words, the size of a PDP-6 or
PDP-10 moby. Back when address registers were narrow the term was
more generally useful, because when a computer had virtual memory
mapping, it might actually have more physical memory attached to it
than any one program could access directly. One could then say
"This computer has 6 mobies" meaning that the ratio of physical
memory to address space is 6, without having to say specifically
how much memory there actually is. That in turn implied that the
computer could timeshare six `full-sized' programs without having
to swap programs between memory and disk.

Nowadays the low cost of processor logic means that address spaces
are usually larger than the most physical memory you can cram onto
a machine, so most systems have much *less* than one theoretical
`native' moby of {core}. Also, more modern memory-management
techniques (esp. paging) make the `moby count' less significant.
However, there is one series of popular chips for which the term
could stand to be revived --- the Intel 8088 and 80286 with their
incredibly {brain-damaged} segmented-memory designs. On these, a
`moby' would be the 1-megabyte address span of a segment/offset
pair (by coincidence, a PDP-10 moby was exactly 1 megabyte of 9-bit
bytes).

:mod: vt.,n. 1. Short for `modify' or `modification'. Very
commonly used --- in fact the full terms are considered markers
that one is being formal. The plural `mods' is used esp. with
reference to bug fixes or minor design changes in hardware or
software, most esp. with respect to {patch} sets or a {diff}.
2. Short for {modulo} but used *only* for its techspeak sense.

:mode: n. A general state, usually used with an adjective
describing the state. Use of the word `mode' rather than
`state' implies that the state is extended over time, and
probably also that some activity characteristic of that state is
being carried out. "No time to hack; I'm in thesis mode." In its
jargon sense, `mode' is most often attributed to people, though
it is sometimes applied to programs and inanimate objects. In
particular, see {hack mode}, {day mode}, {night mode},
{demo mode}, {fireworks mode}, and {yoyo mode}; also
{talk mode}.

One also often hears the verbs `enable' and `disable' used in
connection with jargon modes. Thus, for example, a sillier way of
saying "I'm going to crash" is "I'm going to enable crash mode
now". One might also hear a request to "disable flame mode,
please".

In a usage much closer to techspeak, a mode is a special state
which certain user interfaces must pass into in order to perform
certain functions. For example, in order to insert characters into a
document in the UNIX editor `vi', one must type the "i" key,
which invokes the "Insert" command. The effect of this command
is to put vi into "insert mode", in which typing the "i" key
has a quite different effect (to wit, it inserts an "i" into the
document). One must then hit another special key, "ESC", in
order to leave "insert mode". Nowadays, moded interfaces are
generally considered {losing}, but survive in quite a few
widely-used tools built in less enlightened times.

:mode bit: n. A {flag}, usually in hardware, that selects between
two (usually quite different) modes of operation. The connotations
are different from {flag} bit in that mode bits are mainly
written during a boot or set-up phase, are seldom explicitly read,
and seldom change over the lifetime of an ordinary program. The
classic example was the EBCDIC-vs.-ASCII bit (#12) of the Program
Status Word of the IBM 360. Another was the bit on a PDP-12 that
controlled whether it ran the PDP-8 or the LINC instruction set.

:modulo: /mo'dyu-loh/ prep. Except for. An overgeneralization of
mathematical terminology; one can consider saying that
4 = 22 except for the 9s (4 = 22 mod 9). "Well,
LISP seems to work okay now, modulo that {GC} bug." "I feel
fine today modulo a slight headache."

:molly-guard: /mol'ee-gard/ [University of Illinois] n. A shield
to prevent tripping of some {Big Red Switch} by clumsy or
ignorant hands. Originally used of some plexiglass covers
improvised for the BRS on an IBM 4341 after a programmer's toddler
daughter (named Molly) frobbed it twice in one day. Later
generalized to covers over stop/reset switches on disk drives and
networking equipment.

:Mongolian Hordes technique: n. Development by {gang bang}
(poss. from the Sixties counterculture expression `Mongolian
clusterfuck' for a public orgy). Implies that large numbers of
inexperienced programmers are being put on a job better performed
by a few skilled ones. Also called `Chinese Army technique';
see also {Brooks's Law}.

:monkey up: vt. To hack together hardware for a particular task,
especially a one-shot job. Connotes an extremely {crufty} and
consciously temporary solution. Compare {hack up}, {kluge up},
{cruft together}, {cruft together}.

:monkey, scratch: n. See {scratch monkey}.

:monstrosity: 1. n. A ridiculously {elephantine} program or
system, esp. one that is buggy or only marginally functional.
2. The quality of being monstrous (see `Overgeneralization' in the
discussion of jargonification). See also {baroque}.

:Moof: /moof/ [MAC users] n. The Moof or `dogcow' is a
semi-legendary creature that lurks in the depths of the Macintosh
Technical Notes Hypercard stack V3.1; specifically, the full story
of the dogcow is told in technical note #31 (the particular Moof
illustrated is properly named `Clarus'). Option-shift-click will
cause it to emit a characteristic `Moof!' or `!fooM' sound.
*Getting* to tech note 31 is the hard part; to discover how
to do that, one must needs examine the stack script with a hackerly
eye. Clue: {rot13} is involved. A dogcow also appears if you
choose `Page Setup...' with a LaserWriter selected and click on
the `Options' button.

:Moore's Law: /morz law/ prov. The observation that the logic
density of silicon integrated circuits has closely followed the
curve (bits per square inch) = 2^((n - 1962)); that is, the
amount of information storable in one square inch of silicon has
roughly doubled yearly every year since the technology was
invented. See also {Parkinson's Law of Data}.

:moose call, the: n. See {whalesong}.

:moria: /mor'ee-*/ n. Like {nethack} and {rogue}, one of the
large PD Dungeons-and-Dragons-like simulation games, available for
a wide range of machines and operating systems. Extremely
addictive and a major consumer of time better used for hacking.

:MOTAS: /moh-toz/ [USENET: Member Of The Appropriate Sex, after
{MOTOS} and {MOTSS}] n. A potential or (less often) actual sex
partner. See also {SO}.

:MOTOS: /moh-tohs/ [acronym from the 1970 U.S. census forms via
USENET: Member Of The Opposite Sex] n. A potential or (less often)
actual sex partner. See {MOTAS}, {MOTSS}, {SO}. Less
common than MOTSS or {MOTAS}, which have largely displaced it.

:MOTSS: /mots/ or /M-O-T-S-S/ [from the 1970 U.S. census forms
via USENET, Member Of The Same Sex] n. Esp. one considered as a
possible sexual partner. The gay-issues newsgroup on USENET is
called soc.motss. See {MOTOS} and {MOTAS}, which derive
from it. Also see {SO}.

:mouse ahead: vi. Point-and-click analog of `type ahead'. To
manipulate a computer's pointing device (almost always a mouse in
this usage, but not necessarily) and its selection or command
buttons before a computer program is ready to accept such input, in
anticipation of the program accepting the input. Handling this
properly is rare, but it can help make a {WIMP environment} much
more usable, assuming the users are familiar with the behavior of
the user interface.

:mouse around: vi. To explore public portions of a large system, esp.
a network such as Internet via {FTP} or {TELNET}, looking for
interesting stuff to {snarf}.

:mouse belt: n. See {rat belt}.

:mouse droppings: [MS-DOS] n. Pixels (usually single) that are not
properly restored when the mouse pointer moves away from a
particular location on the screen, producing the appearance that
the mouse pointer has left droppings behind. The major causes for
this problem are programs that write to the screen memory
corresponding to the mouse pointer's current location without
hiding the mouse pointer first, and mouse drivers that do not quite
support the graphics mode in use.

:mouse elbow: n. A tennis-elbow-like fatigue syndrome resulting from
excessive use of a {WIMP environment}. Similarly, `mouse
shoulder'; GLS reports that he used to get this a lot before he
taught himself to be ambimoustrous.

:mouso: /mow'soh/ n. [by analogy with `typo'] An error in mouse usage
resulting in an inappropriate selection or graphic garbage on the
screen. Compare {thinko}, {braino}.

:MS-DOS:: /M-S-dos/ [MicroSoft Disk Operating System] n. A
{clone} of {{CP/M}} for the 8088 crufted together in 6 weeks by
hacker Tim Paterson, who is said to have regretted it ever since.
Numerous features, including vaguely UNIX-like but rather broken
support for subdirectories, I/O redirection, and pipelines, were
hacked into 2.0 and subsequent versions; as a result, there are two
or more incompatible versions of many system calls, and MS-DOS
programmers can never agree on basic things like what character to
use as an option switch or whether to be case-sensitive. The
resulting mess is now the highest-unit-volume OS in history. Often
known simply as DOS, which annoys people familiar with other
similarly abbreviated operating systems (the name goes back to the
mid-1960s, when it was attached to IBM's first disk operating
system for the 360). The name further annoys those who know what
the term {operating system} does (or ought to) connote; DOS is
more properly a set of relatively simple interrupt services. Some
people like to pronounce DOS like "dose", as in "I don't work on
dose, man!", or to compare it to a dose of brain-damaging drugs
(a slogan button in wide circulation among hackers exhorts:
"MS-DOS: Just say No!"). See {mess-dos}, {ill-behaved}.

:mu: /moo/ The correct answer to the classic trick question
"Have you stopped beating your wife yet?". Assuming that you
have no wife or you have never beaten your wife, the answer "yes"
is wrong because it implies that you used to beat your wife and
then stopped, but "no" is worse because it suggests that you have
one and are still beating her. According to various Discordians
and Douglas Hofstadter (see the Bibliography in {appendix C}),
the correct answer is usually "mu", a Japanese word alleged to
mean "Your question cannot be answered because it depends on
incorrect assumptions". Hackers tend to be sensitive to logical
inadequacies in language, and many have adopted this suggestion
with enthusiasm. The word `mu' is actually from Chinese, meaning
`nothing'; it is used in mainstream Japanese in that sense, but
native speakers do not recognize the Discordian question-denying
use. It almost certainly derives from overgeneralization of the
answer in the following well-known Rinzei Zen teaching riddle:

A monk asked Joshu, "Does a dog have the Buddha nature?"
Joshu retorted, "Mu!"

See also {has the X nature}, {AI Koans}, and Douglas
Hofstadter's `G"odel, Escher, Bach: An Eternal Golden Braid'
(pointer in the Bibliography in appendix C).

:MUD: /muhd/ [acronym, Multi-User Dungeon; alt. Multi-User
Dimension] 1. n. A class of {virtual reality} experiments
accessible via the Internet. These are real-time chat forums with
structure; they have multiple `locations' like an adventure game,
and may include combat, traps, puzzles, magic, a simple economic
system, and the capability for characters to build more structure
onto the database that represents the existing world. 2. vi. To
play a MUD (see {hack-and-slay}). The acronym MUD is often
lowercased and/or verbed; thus, one may speak of `going
mudding', etc.

Historically, MUDs (and their more recent progeny with names of MU-
form) derive from a hack by Richard Bartle and Roy Trubshaw on the
University of Essex's DEC-10 in the early 1980s; descendants of
that game still exist today (see {BartleMUD}). There is a
widespread myth (repeated, unfortunately, by earlier versions of
this lexicon) that the name MUD was trademarked to the commercial
MUD run by Bartle on British Telecom (the motto: "You haven't
*lived* 'til you've *died* on MUD!"); however, this is
false --- Richard Bartle explicitly placed `MUD' in PD in 1985. BT
was upset at this, as they had already printed trademark claims on
some maps and posters, which were released and created the
myth.

Students on the European academic networks quickly improved on the
MUD concept, spawning several new MUDs (VAXMUD, AberMUD, LPMUD).
Many of these had associated bulletin-board systems for social
interaction. Because these had an image as `research' they
often survived administrative hostility to BBSs in general. This,
together with the fact that USENET feeds have been spotty and
difficult to get in the U.K., made the MUDs major foci of hackish
social interaction there.

AberMUD and other variants crossed the Atlantic around 1988 and
quickly gained popularity in the U.S.; they became nuclei for large
hacker communities with only loose ties to traditional hackerdom
(some observers see parallels with the growth of USENET in the
early 1980s). The second wave of MUDs (TinyMUD and variants)
tended to emphasize social interaction, puzzles, and cooperative
world-building as opposed to combat and competition. In 1991, over
50% of MUD sites are of a third major variety, LPMUD, which
synthesizes the combat/puzzle aspects of AberMUD and older systems
with the extensibility of TinyMud. The trend toward greater
programmability and flexibility will doubtless continue.

The state of the art in MUD design is still moving very rapidly,
with new simulation designs appearing (seemingly) every month.
There is now (early 1991) a move afoot to deprecate the term
{MUD} itself, as newer designs exhibit an exploding variety of
names corresponding to the different simulation styles being
explored. See also {BartleMUD}, {berserking}, {bonk/oif},
{brand brand brand}, {FOD}, {hack-and-slay}, {link-dead},
{mudhead}, {posing}, {talk mode}, {tinycrud}.

:muddie: n. Syn. {mudhead}. More common in Great Britain, possibly
because system administrators there like to mutter "bloody
muddies" when annoyed at the species.

:mudhead: n. Commonly used to refer to a {MUD} player who eats,
sleeps, and breathes MUD. Mudheads have been known to fail their
degrees, drop out, etc., with the consolation, however, that they
made wizard level. When encountered in person, on a MUD, or in a
chat system, all a mudhead will talk about is three topics: the
tactic, character, or wizard that is supposedly always unfairly
stopping him/her from becoming a wizard or beating a favorite MUD;
why the specific game he/she has experience with is so much better
than any other, and the MUD he or she is writing or going to write
because his/her design ideas are so much better than in any
existing MUD. See also {wannabee}.

:multician: /muhl-ti'shn/ [coined at Honeywell, ca. 1970] n.
Competent user of {{Multics}}. Perhaps oddly, no one has ever
promoted the analogous `Unician'.

:Multics:: /muhl'tiks/ n. [from "MULTiplexed Information and
Computing Service"] An early (late 1960s) timesharing operating
system co-designed by a consortium including MIT, GE, and Bell
Laboratories. Very innovative for its time --- among other things,
it introduced the idea of treating all devices uniformly as special
files. All the members but GE eventually pulled out after
determining that {second-system effect} had bloated Multics to
the point of practical unusability (the `lean' predecessor in
question was {CTSS}). Honeywell commercialized Multics after
buying out GE's computer group, but it was never very successful
(among other things, on some versions one was commonly required to
enter a password to log out). One of the developers left in the
lurch by the project's breakup was Ken Thompson, a circumstance
which led directly to the birth of {{UNIX}}. For this and other
reasons, aspects of the Multics design remain a topic of occasional
debate among hackers. See also {brain-damaged} and {GCOS}.

:multitask: n. Often used of humans in the same meaning it has for
computers, to describe a person doing several things at once (but
see {thrash}). The term `multiplex', from communications
technology (meaning to handle more than one channel at the same
time), is used similarly.

:mumblage: /muhm'bl*j/ n. The topic of one's mumbling (see
{mumble}). "All that mumblage" is used like "all that
stuff" when it is not quite clear how the subject of discussion
works, or like "all that crap" when `mumble' is being used as
an implicit replacement for pejoratives.

:mumble: interj. 1. Said when the correct response is too
complicated to enunciate, or the speaker has not thought it out.
Often prefaces a longer answer, or indicates a general reluctance
to get into a long discussion. "Don't you think that we could
improve LISP performance by using a hybrid reference-count
transaction garbage collector, if the cache is big enough and there
are some extra cache bits for the microcode to use?" "Well,
mumble ... I'll have to think about it." 2. Sometimes used as
an expression of disagreement. "I think we should buy a
{VAX}." "Mumble!" Common variant: `mumble frotz' (see
{frotz}; interestingly, one does not say `mumble frobnitz'
even though `frotz' is short for `frobnitz'). 3. Yet another
{metasyntactic variable}, like {foo}. 4. When used as a question
("Mumble?") means "I didn't understand you". 5. Sometimes used
in `public' contexts on-line as a placefiller for things one is
barred from giving details about. For example, a poster with
pre-released hardware in his machine might say "Yup, my machine
now has an extra 16M of memory, thanks to the card I'm testing for
Mumbleco." 6. A conversational wild card used to designate
something one doesn't want to bother spelling out, but which can be
{glark}ed from context. Compare {blurgle}. 7. [XEROX PARC]
A colloquialism used to suggest that further discussion would be
fruitless.

:munch: [often confused with {mung}, q.v.] vt. To transform
information in a serial fashion, often requiring large amounts of
computation. To trace down a data structure. Related to {crunch}
and nearly synonymous with {grovel}, but connotes less pain.

:munching: n. Exploration of security holes of someone else's
computer for thrills, notoriety, or to annoy the system manager.
Compare {cracker}. See also {hacked off}.

:munching squares: n. A {display hack} dating back to the PDP-1
(ca. 1962, reportedly discovered by Jackson Wright), which employs
a trivial computation (repeatedly plotting the graph Y = X XOR T
for successive values of T --- see {HAKMEM} items 146--148) to
produce an impressive display of moving and growing squares that
devour the screen. The initial value of T is treated as a
parameter, which, when well-chosen, can produce amazing effects.
Some of these, later (re)discovered on the LISP machine, have been
christened `munching triangles' (try AND for XOR and toggling
points instead of plotting them), `munching w's', and `munching
mazes'. More generally, suppose a graphics program produces an
impressive and ever-changing display of some basic form, foo, on a
display terminal, and does it using a relatively simple program;
then the program (or the resulting display) is likely to be
referred to as `munching foos'. [This is a good example of the
use of the word {foo} as a {metasyntactic variable}.]

:munchkin: /muhnch'kin/ [from the squeaky-voiced little people in
L. Frank Baum's `The Wizard of Oz'] n. A teenage-or-younger micro
enthusiast hacking BASIC or something else equally constricted. A
term of mild derision --- munchkins are annoying but some grow up
to be hackers after passing through a {larval stage}. The term
{urchin} is also used. See also {wannabee}, {bitty box}.

:mundane: [from SF fandom] n. 1. A person who is not in science
fiction fandom. 2. A person who is not in the computer industry.
In this sense, most often an adjectival modifier as in "in my
mundane life...." See also {Real World}.

:mung: /muhng/ alt. `munge' /muhnj/ [in 1960 at MIT, `Mash
Until No Good'; sometime after that the derivation from the
{{recursive acronym}} `Mung Until No Good' became standard] vt.
1. To make changes to a file, esp. large-scale and irrevocable
changes. See {BLT}. 2. To destroy, usually accidentally,
occasionally maliciously. The system only mungs things
maliciously; this is a consequence of {Finagle's Law}. See
{scribble}, {mangle}, {trash}, {nuke}. Reports from
{USENET} suggest that the pronunciation /muhnj/ is now usual
in speech, but the spelling `mung' is still common in program
comments (compare the widespread confusion over the proper spelling
of {kluge}). 3. The kind of beans of which the sprouts are used
in Chinese food. (That's their real name! Mung beans! Really!)

Like many early hacker terms, this one seems to have originated at
{TMRC}; it was already in use there in 1958. Peter Samson
(compiler of the TMRC lexicon) thinks it may originally have been
onomatopoeic for the sound of a relay spring (contact) being
twanged.

:Murphy's Law: prov. The correct, *original* Murphy's Law
reads: "If there are two or more ways to do something, and one of
those ways can result in a catastrophe, then someone will do it."
This is a principle of defensive design, cited here because it is
usually given in mutant forms less descriptive of the challenges of
design for lusers. For example, you don't make a two-pin plug
symmetrical and then label it `THIS WAY UP'; if it matters which
way it is plugged in, then you make the design asymmetrical (see
also the anecdote under {magic smoke}).

Edward A. Murphy, Jr. was one of the engineers on the rocket-sled
experiments that were done by the U.S. Air Force in 1949 to test
human acceleration tolerances (USAF project MX981). One experiment
involved a set of 16 accelerometers mounted to different parts of
the subject's body. There were two ways each sensor could be glued
to its mount, and somebody methodically installed all 16 the wrong
way around. Murphy then made the original form of his
pronouncement, which the test subject (Major John Paul Stapp)
quoted at a news conference a few days later.

Within months `Murphy's Law' had spread to various technical
cultures connected to aerospace engineering. Before too many years
had gone by variants had passed into the popular imagination,
changing as they went. Most of these are variants on "Anything
that can go wrong, will"; this is sometimes referred to as
{Finagle's Law}. The memetic drift apparent in these mutants
clearly demonstrates Murphy's Law acting on itself!

:music:: n. A common extracurricular interest of hackers (compare
{{science-fiction fandom}}, {{oriental food}}; see also
{filk}). Hackish folklore has long claimed that musical and
programming abilities are closely related, and there has been at
least one large-scale statistical study that supports this.
Hackers, as a rule, like music and often develop musical
appreciation in unusual and interesting directions. Folk music is
very big in hacker circles; so is electronic music, and the sort of
elaborate instrumental jazz/rock that used to be called
`progressive' and isn't recorded much any more. The hacker's
musical range tends to be wide; many can listen with equal
appreciation to (say) Talking Heads, Yes, Gentle Giant, Spirogyra,
Scott Joplin, Tangerine Dream, King Sunny Ade, The Pretenders, or
Bach's Brandenburg Concerti. It is also apparently true that
hackerdom includes a much higher concentration of talented amateur
musicians than one would expect from a similar-sized control group
of {mundane} types.

:mutter: vt. To quietly enter a command not meant for the ears, eyes,
or fingers of ordinary mortals. Often used in `mutter an
{incantation}'. See also {wizard}.

= N =
=====

:N: /N/ quant. 1. A large and indeterminate number of objects:
"There were N bugs in that crock!" Also used in its
original sense of a variable name: "This crock has N bugs,
as N goes to infinity." (The true number of bugs is always
at least N + 1.) 2. A variable whose value is inherited
from the current context. For example, when a meal is being
ordered at a restaurant, N may be understood to mean however
many people there are at the table. From the remark "We'd like to
order N wonton soups and a family dinner
for N - 1" you can deduce that one person at the table
wants to eat only soup, even though you don't know how many people
there are (see {great-wall}). 3. `Nth': adj. The
ordinal counterpart of N, senses 1 and 2. "Now for the
Nth and last time..." In the specific context
"Nth-year grad student", N is generally assumed to
be at least 4, and is usually 5 or more (see {tenured graduate
student}). See also {{random numbers}}, {two-to-the-N}.

:nadger: /nad'jr/ [Great Britain] v. Of software or hardware (not
people), to twiddle some object in a hidden manner, generally so
that it conforms better to some format. For instance, string
printing routines on 8-bit processors often take the string text
from the instruction stream, thus a print call looks like `jsr
print:"Hello world"'. The print routine has to `nadger' the
return instruction pointer so that the processor doesn't try to
execute the text as instructions.

:nailed to the wall: [like a trophy] adj. Said of a bug finally
eliminated after protracted, and even heroic, effort.

:nailing jelly: vi. See {like nailing jelly to a tree}.

:na"ive: adj. Untutored in the perversities of some particular
program or system; one who still tries to do things in an intuitive
way, rather than the right way (in really good designs these
coincide, but most designs aren't `really good' in the
appropriate sense). This is completely unrelated to general
maturity or competence, or even competence at any other specific
program. It is a sad commentary on the primitive state of
computing that the natural opposite of this term is often claimed
to be `experienced user' but is really more like `cynical
user'.

:na"ive user: n. A {luser}. Tends to imply someone who is
ignorant mainly owing to inexperience. When this is applied to
someone who *has* experience, there is a definite implication
of stupidity.

:NAK: /nak/ [from the ASCII mnemonic for 0010101] interj.
1. On-line joke answer to {ACK}?: "I'm not here."
2. On-line answer to a request for chat: "I'm not available."
3. Used to politely interrupt someone to tell them you don't
understand their point or that they have suddenly stopped making
sense. See {ACK}, sense 3. "And then, after we recode the
project in COBOL...." "Nak, Nak, Nak! I thought I heard you
say COBOL!"

:nano: /nan'oh/ [CMU: from `nanosecond'] n. A brief period of
time. "Be with you in a nano" means you really will be free
shortly, i.e., implies what mainstream people mean by "in a
jiffy" (whereas the hackish use of `jiffy' is quite different ---
see {jiffy}).

:nano-: [SI: the next quantifier below {micro-}; meaning *
10^(-9)] pref. Smaller than {micro-}, and used in the same rather
loose and connotative way. Thus, one has {{nanotechnology}}
(coined by hacker K. Eric Drexler) by analogy with
`microtechnology'; and a few machine architectures have a
`nanocode' level below `microcode'. Tom Duff at Bell Labs has
also pointed out that "Pi seconds is a nanocentury".
See also {{quantifiers}}, {pico-}, {nanoacre}, {nanobot},
{nanocomputer}, {nanofortnight}.

:nanoacre: /nan'oh-ay`kr/ n. A unit (about 2 mm square) of real
estate on a VLSI chip. The term gets its giggle value from the
fact that VLSI nanoacres have costs in the same range as real acres
once one figures in design and fabrication-setup costs.

:nanobot: /nan'oh-bot/ n. A robot of microscopic proportions,
presumably built by means of {{nanotechnology}}. As yet, only
used informally (and speculatively!). Also called a `nanoagent'.

:nanocomputer: /nan'oh-k*m-pyoo'tr/ n. A computer whose switching
elements are molecular in size. Designs for mechanical
nanocomputers which use single-molecule sliding rods for their
logic have been proposed. The controller for a {nanobot} would be
a nanocomputer.

:nanofortnight: [Adelaide University] n. 1 fortnight * 10^-9,
or about 1.2 msec. This unit was used largely by students doing
undergraduate practicals. See {microfortnight}, {attoparsec},
and {micro-}.

:nanotechnology:: /nan'-oh-tek-no`l*-jee/ n. A hypothetical
fabrication technology in which objects are designed and built with
the individual specification and placement of each separate atom.
The first unequivocal nanofabrication experiments are taking place
now (1990), for example with the deposition of individual xenon
atoms on a nickel substrate to spell the logo of a certain very
large computer company. Nanotechnology has been a hot topic in the
hacker subculture ever since the term was coined by K. Eric Drexler
in his book `Engines of Creation', where he predicted that
nanotechnology could give rise to replicating assemblers,
permitting an exponential growth of productivity and personal
wealth. See also {blue goo}, {gray goo}, {nanobot}.

:nasal demons: n. During a discussion on the USENET group
comp.std.c in early 1992, a regular remarked "When the
compiler encounters [a given undefined construct] it is legal for
it to make demons fly out of your nose" (the implication is that
it may choose any arbitrarily bizarre way to interpret the code
without violating the ANSI C standard). Someone else followed up with a
reference to "nasal demons", which became recognized shorthand on
that group for any unexpected behaviour of a C compiler on
encountering an undefined construct.

:nastygram: /nas'tee-gram/ n. 1. A protocol packet or item of
email (the latter is also called a {letterbomb}) that takes
advantage of misfeatures or security holes on the target system to
do untoward things. 2. Disapproving mail, esp. from a
{net.god}, pursuant to a violation of {netiquette} or a
complaint about failure to correct some mail- or news-transmission
problem. Compare {shitogram}. 3. A status report from an
unhappy, and probably picky, customer. "What'd Corporate say in
today's nastygram?" 4. [deprecated] An error reply by mail from a
{daemon}; in particular, a {bounce message}.

:Nathan Hale: n. An asterisk (see also {splat}, {{ASCII}}). Oh,
you want an etymology? Notionally, from "I regret that I have only
one asterisk for my country!", a misquote of the famous remark
uttered by Nathan Hale just before he was hanged. Hale was a
(failed) spy for the rebels in the American War of Independence.

:nature: n. See {has the X nature}.

:neat hack: n. 1. A clever technique. 2. A brilliant practical
joke, where neatness is correlated with cleverness, harmlessness,
and surprise value. Example: the Caltech Rose Bowl card display
switch (see "{The Meaning of `Hack'}", appendix A). See
also {hack}.

:neats vs. scruffies: n. The label used to refer to one of the
continuing {holy wars} in AI research. This conflict tangles
together two separate issues. One is the relationship between
human reasoning and AI; `neats' tend to try to build systems
that `reason' in some way identifiably similar to the way humans
report themselves as doing, while `scruffies' profess not to
care whether an algorithm resembles human reasoning in the least as
long as it works. More importantly, `neats' tend to believe
that logic is king, while `scruffies' favor looser, more ad-hoc
methods driven by empirical knowledge. To a `neat',
`scruffy' methods appear promiscuous and successful only by
accident; to a `scruffy', `neat' methods appear to be hung up
on formalism and irrelevant to the hard-to-capture `common
sense' of living intelligences.

:neep-neep: /neep neep/ [onomatopoeic, from New York SF fandom] n.
One who is fascinated by computers. More general than {hacker},
as it need not imply more skill than is required to boot games on a
PC. The derived noun `neep-neeping' applies specifically to
the long conversations about computers that tend to develop in the
corners at most SF-convention parties. Fandom has a related
proverb to the effect that "Hacking is a conversational black
hole!".

:neophilia: /nee`oh-fil'-ee-*/ n. The trait of being excited and
pleased by novelty. Common trait of most hackers, SF fans, and
members of several other connected leading-edge subcultures,
including the pro-technology `Whole Earth' wing of the ecology
movement, space activists, many members of Mensa, and the
Discordian/neo-pagan underground. All these groups overlap heavily
and (where evidence is available) seem to share characteristic
hacker tropisms for science fiction, {{music}}, and {{oriental
food}}.

:net.-: /net dot/ pref. [USENET] Prefix used to describe people and
events related to USENET. From the time before the {Great
Renaming}, when most non-local newsgroups had names beginning
`net.'. Includes {net.god}s, `net.goddesses' (various
charismatic net.women with circles of on-line admirers),
`net.lurkers' (see {lurker}), `net.person',
`net.parties' (a synonym for {boink}, sense 2), and
many similar constructs. See also {net.police}.

:net.god: /net god/ n. Used to refer to anyone who satisfies some
combination of the following conditions: has been visible on USENET
for more than 5 years, ran one of the original backbone sites,
moderated an important newsgroup, wrote news software, or knows
Gene, Mark, Rick, Mel, Henry, Chuq, and Greg personally. See
{demigod}. Net.goddesses such as Rissa or the Slime Sisters have
(so far) been distinguished more by personality than by authority.

:net.personality: /net per`sn-al'-*-tee/ n. Someone who has made a name
for him or herself on {USENET}, through either longevity or
attention-getting posts, but doesn't meet the other requirements of
{net.god}hood.

:net.police: /net-p*-lees'/ n. (var. `net.cops') Those USENET
readers who feel it is their responsibility to pounce on and
{flame} any posting which they regard as offensive or in
violation of their understanding of {netiquette}. Generally
used sarcastically or pejoratively. Also spelled `net police'.
See also {net.-}, {code police}.

:NetBOLLIX: [from bollix: to bungle] n. {IBM}'s NetBIOS, an
extremely {brain-damaged} network protocol which, like {Blue
Glue}, is used at commercial shops that don't know any better.

:netburp: [IRC] n. When {netlag} gets really bad, and delays
between servers exceed a certain threshhold, the {IRC} network
effectively becomes partitioned for a period of time, and large
numbers of people seem to be signing off at the same time and then
signing back on again when things get better. An instance of this
is called a `netburp' (or, sometimes, {netsplit}).

:netdead: [IRC] n. The state of someone who signs off {IRC},
perhaps during a {netburp}, and doesn't sign back on until
later. In the interim, he is "dead to the net".

:nethack: /net'hak/ [UNIX] n. A dungeon game similar to
{rogue} but more elaborate, distributed in C source over
{USENET} and very popular at UNIX sites and on PC-class machines
(nethack is probably the most widely distributed of the freeware
dungeon games). The earliest versions, written by Jay Fenlason and
later considerably enhanced by Andries Brouwer, were simply called
`hack'. The name changed when maintenance was taken over by a
group of hackers originally organized by Mike Stephenson; the
current contact address (as of mid-1991) is
nethack-bugs@linc.cis.upenn.edu.

:netiquette: /net'ee-ket/ or /net'i-ket/ [portmanteau from "network
etiquette"] n. Conventions of politeness recognized on {USENET},
such as avoidance of cross-posting to inappropriate groups or
refraining from commercial pluggery on the net.

:netlag: [IRC, MUD] n. A condition that occurs when the delays in
the {IRC} network or on a {MUD} become severe enough that
servers briefly lose and then reestablish contact, causing messages
to be delivered in bursts, often with delays of up to a minute.
(Note that this term has nothing to do with mainstream "jetlag",
a condition which hackers tend not to be much bothered by.)

:netnews: /net'n[y]ooz/ n. 1. The software that makes {USENET}
run. 2. The content of USENET. "I read netnews right after my
mail most mornings."

:netrock: /net'rok/ [IBM] n. A {flame}; used esp. on VNET,
IBM's internal corporate network.

:netsplit: n. Syn. {netburp}.

:netter: n. 1. Loosely, anyone with a {network address}. 2. More
specifically, a {USENET} regular. Most often found in the
plural. "If you post *that* in a technical group, you're
going to be flamed by angry netters for the rest of time!"

:network address: n. (also `net address') As used by hackers,
means an address on `the' network (see {network, the}; this is
almost always a {bang path} or {{Internet address}}). Such an
address is essential if one wants to be to be taken seriously by
hackers; in particular, persons or organizations that claim to
understand, work with, sell to, or recruit from among hackers but
*don't* display net addresses are quietly presumed to be
clueless poseurs and mentally flushed (see {flush}, sense 4).
Hackers often put their net addresses on their business cards and
wear them prominently in contexts where they expect to meet other
hackers face-to-face (see also {{science-fiction fandom}}). This
is mostly functional, but is also a signal that one identifies with
hackerdom (like lodge pins among Masons or tie-dyed T-shirts among
Grateful Dead fans). Net addresses are often used in email text as
a more concise substitute for personal names; indeed, hackers may
come to know each other quite well by network names without ever
learning each others' `legal' monikers. See also {sitename},
{domainist}.

:network meltdown: n. A state of complete network overload; the
network equivalent of {thrash}ing. This may be induced by a
{Chernobyl packet}. See also {broadcast storm}, {kamikaze
packet}.

:network, the: n. 1. The union of all the major noncommercial,
academic, and hacker-oriented networks, such as Internet, the old
ARPANET, NSFnet, {BITNET}, and the virtual UUCP and {USENET}
`networks', plus the corporate in-house networks and commercial
time-sharing services (such as CompuServe) that gateway to them. A
site is generally considered `on the network' if it can be reached
through some combination of Internet-style (@-sign) and UUCP
(bang-path) addresses. See {bang path}, {{Internet address}},
{network address}. 2. A fictional conspiracy of libertarian
hacker-subversives and anti-authoritarian monkeywrenchers described
in Robert Anton Wilson's novel `Schr"odinger's Cat', to which
many hackers have subsequently decided they belong (this is an
example of {ha ha only serious}).

In sense 1, `network' is often abbreviated to `net'. "Are
you on the net?" is a frequent question when hackers first meet
face to face, and "See you on the net!" is a frequent goodbye.

:New Jersey: [primarily Stanford/Silicon Valley] adj. Brain-damaged
or of poor design. This refers to the allegedly wretched quality
of such software as C, C++, and UNIX (which originated at Bell Labs
in Murray Hill, New Jersey). "This compiler bites the bag, but
what can you expect from a compiler designed in New Jersey?"
Compare {Berkeley Quality Software}. See also {UNIX
conspiracy}.

:New Testament: n. [C programmers] The second edition of K&R's
`The C Programming Language' (Prentice-Hall, 1988; ISBN
0-13-110362-8), describing ANSI Standard C. See {K&R}.

:newbie: /n[y]oo'bee/ n. [orig. from British public-school and
military slang variant of `new boy'] A USENET neophyte.
This term surfaced in the {newsgroup} talk.bizarre but is
now in wide use. Criteria for being considered a newbie vary
wildly; a person can be called a newbie in one newsgroup while
remaining a respected regular in another. The label `newbie'
is sometimes applied as a serious insult to a person who has been
around USENET for a long time but who carefully hides all evidence
of having a clue. See {BIFF}.

:newgroup wars: /n[y]oo'groop wohrz/ [USENET] n. The salvos of dueling
`newgroup' and `rmgroup' messages sometimes exchanged by
persons on opposite sides of a dispute over whether a {newsgroup}
should be created net-wide. These usually settle out within a week
or two as it becomes clear whether the group has a natural
constituency (usually, it doesn't). At times, especially in the
completely anarchic alt hierarchy, the names of newsgroups
themselves become a form of comment or humor; e.g., the spinoff of
alt.swedish.chef.bork.bork.bork from alt.tv.muppets in
early 1990, or any number of specialized abuse groups named after
particularly notorious {flamer}s, e.g., alt.weemba.

:newline: /n[y]oo'li:n/ n. 1. [techspeak, primarily UNIX] The
ASCII LF character (0001010), used under {{UNIX}} as a text line
terminator. A Bell-Labs-ism rather than a Berkeleyism;
interestingly (and unusually for UNIX jargon), it is said to have
originally been an IBM usage. (Though the term `newline' appears
in ASCII standards, it never caught on in the general computing
world before UNIX). 2. More generally, any magic character,
character sequence, or operation (like Pascal's writeln procedure)
required to terminate a text record or separate lines. See
{crlf}, {terpri}.

:NeWS: /nee'wis/, /n[y]oo'is/ or /n[y]ooz/ [acronym; the
`Network Window System'] n. The road not taken in window systems,
an elegant {PostScript}-based environment that would almost certainly
have won the standards war with {X} if it hadn't been
{proprietary} to Sun Microsystems. There is a lesson here that
too many software vendors haven't yet heeded. Many hackers insist
on the two-syllable pronunciations above as a way of distinguishing
NeWS from {news} (the {netnews} software).

:news: n. See {netnews}.

:newsfroup: // [USENET] n. Silly synonym for {newsgroup},
originally a typo but now in regular use on USENET's talk.bizarre
and other lunatic-fringe groups. Compare {hing} and {filk}.

:newsgroup: [USENET] n. One of {USENET}'s huge collection of
topic groups or {fora}. Usenet groups can be `unmoderated'
(anyone can post) or `moderated' (submissions are automatically
directed to a moderator, who edits or filters and then posts the
results). Some newsgroups have parallel {mailing list}s for
Internet people with no netnews access, with postings to the group
automatically propagated to the list and vice versa. Some
moderated groups (especially those which are actually gatewayed
Internet mailing lists) are distributed as `digests', with groups
of postings periodically collected into a single large posting with
an index.

Among the best-known are comp.lang.c (the C-language forum),
comp.arch (on computer architectures), comp.unix.wizards
(for UNIX wizards), rec.arts.sf-lovers (for science-fiction
fans), and talk.politics.misc (miscellaneous political
discussions and {flamage}).

:nick: [IRC] n. Short for nickname. On {IRC}, every user must
pick a nick, which is sometimes the same as the user's real name or
login name, but is often more fanciful.

:nickle: /ni'kl/ [from `nickel', common name for the U.S.
5-cent coin] n. A {nybble} + 1; 5 bits. Reported among
developers for Mattel's GI 1600 (the Intellivision games
processor), a chip with 16-bit-wide RAM but 10-bit-wide ROM. See
also {deckle}.

:night mode: n. See {phase} (of people).

:Nightmare File System: n. Pejorative hackerism for Sun's Network
File System (NFS). In any nontrivial network of Suns where there
is a lot of NFS cross-mounting, when one Sun goes down, the others
often freeze up. Some machine tries to access the down one, and
(getting no response) repeats indefinitely. This causes it to
appear dead to some messages (what is actually happening is that it
is locked up in what should have been a brief excursion to a higher
{spl} level). Then another machine tries to reach either the
down machine or the pseudo-down machine, and itself becomes
pseudo-down. The first machine to discover the down one is now
trying both to access the down one and to respond to the
pseudo-down one, so it is even harder to reach. This situation
snowballs very fast, and soon the entire network of machines is
frozen --- worst of all, the user can't even abort the file access
that started the problem! Many of NFS'es problems are excused by
partisans as being an inevitable result of its statelessness, which
is held to be a great feature (critics, of course, call it a great
{misfeature}). (ITS partisans are apt to cite this as proof of
UNIX's alleged bogosity; ITS had a working NFS-like shared file
system with none of these problems in the early 1970s.) See also
{broadcast storm}.

:NIL: /nil/ No. Used in reply to a question, particularly one
asked using the `-P' convention. Most hackers assume this derives
simply from LISP terminology for `false' (see also {T}), but
NIL as a negative reply was well-established among radio hams
decades before the advent of LISP. The historical connection
between early hackerdom and the ham radio word was strong enough
that this may have been an influence.

:NMI: /N-M-I/ n. Non-Maskable Interrupt. An IRQ 7 on the PDP-11
or 680[01234]0; the NMI line on an 80[1234]86. In contrast with a
{priority interrupt} (which might be ignored, although that is
unlikely), an NMI is *never* ignored.

:no-op: /noh'op/ alt. NOP /nop/ [no operation] n. 1. (also v.)
A machine instruction that does nothing (sometimes used in
assembler-level programming as filler for data or patch areas, or
to overwrite code to be removed in binaries). See also {JFCL}.
2. A person who contributes nothing to a project, or has nothing
going on upstairs, or both. As in "He's a no-op." 3. Any
operation or sequence of operations with no effect, such as
circling the block without finding a parking space, or putting
money into a vending machine and having it fall immediately into
the coin-return box, or asking someone for help and being told to
go away. "Oh, well, that was a no-op." Hot-and-sour soup (see
{great-wall}) that is insufficiently either is `no-op soup';
so is wonton soup if everybody else is having hot-and-sour.


:noddy: /nod'ee/ [UK: from the children's books] adj.
1. Small and un-useful, but demonstrating a point. Noddy programs
are often written by people learning a new language or system. The
archetypal noddy program is {hello, world}. Noddy code may be
used to demonstrate a feature or bug of a compiler. May be used of
real hardware or software to imply that it isn't worth using.
"This editor's a bit noddy." 2. A program that is more or less
instant to produce. In this use, the term does not necessarily
connote uselessness, but describes a {hack} sufficiently trivial
that it can be written and debugged while carrying on (and during
the space of) a normal conversation. "I'll just throw together a
noddy {awk} script to dump all the first fields." In North
America this might be called a {mickey mouse program}. See
{toy program}.

:NOMEX underwear: /noh'meks uhn'-der-weir/ [USENET] n. Syn.
{asbestos longjohns}, used mostly in auto-related mailing lists
and newsgroups. NOMEX underwear is an actual product available on
the racing equipment market, used as a fire resistance measure and
required in some racing series.

:Nominal Semidestructor: n. Sound-alike slang for `National
Semiconductor', found among other places in the 4.3BSD networking
sources. During the late 1970s to mid-1980s this company marketed
a series of microprocessors including the NS16000 and NS32000 and
several variants. At one point early in the great microprocessor
race, the specs on these chips made them look like serious
competition for the rising Intel 80x86 and Motorola 680x0 series.
Unfortunately, the actual parts were notoriously flaky and never
implemented the full instruction set promised in their literature,
apparently because the company couldn't get any of the mask
steppings to work as designed. They eventually sank without trace,
joining the Zilog Z80,000 and a few even more obscure also-rans in
the graveyard of forgotten microprocessors. Compare {HP-SUX},
{AIDX}, {buglix}, {Macintrash}, {Telerat}, {Open
DeathTrap}, {ScumOS}, {sun-stools}.

:non-optimal solution: n. (also `sub-optimal solution') An
astoundingly stupid way to do something. This term is generally
used in deadpan sarcasm, as its impact is greatest when the person
speaking looks completely serious. Compare {stunning}. See also
{Bad Thing}.

:nonlinear: adj. [scientific computation] 1. Behaving in an erratic
and unpredictable fashion; unstable. When used to describe the
behavior of a machine or program, it suggests that said machine or
program is being forced to run far outside of design
specifications. This behavior may be induced by unreasonable
inputs, or may be triggered when a more mundane bug sends the
computation far off from its expected course. 2. When describing
the behavior of a person, suggests a tantrum or a {flame}.
"When you talk to Bob, don't mention the drug problem or he'll go
nonlinear for hours." In this context, `go nonlinear' connotes
`blow up out of proportion' (proportion connotes linearity).

:nontrivial: adj. Requiring real thought or significant computing
power. Often used as an understated way of saying that a problem
is quite difficult or impractical, or even entirely unsolvable
("Proving P=NP is nontrivial"). The preferred emphatic form is
`decidedly nontrivial'. See {trivial}, {uninteresting},
{interesting}.

:notwork: /not'werk/ n. A network, when it is acting {flaky} or is
{down}. Compare {nyetwork}. Said at IBM to have orig.
referred to a particular period of flakiness on IBM's VNET
corporate network, ca. 1988; but there are independent reports of
the term from elsewhere.

:NP-: /N-P/ pref. Extremely. Used to modify adjectives
describing a level or quality of difficulty; the connotation is
often `more so than it should be' (NP-complete problems all seem
to be very hard, but so far no one has found a good a priori
reason that they should be.) "Coding a BitBlt implementation to
perform correctly in every case is NP-annoying." This is
generalized from the computer-science terms `NP-hard' and
`NP-complete'. NP is the set of Nondeterministic-Polynomial
algorithms, those that can be completed by a nondeterministic
Turing machine in an amount of time that is a polynomial function
of the size of the input; a solution for one NP-complete problem
would solve all the others. Note, however, that the NP- prefix is,
from a complexity theorist's point of view, the wrong part of
`NP-complete' to connote extreme difficulty; it is the completeness,
not the NP-ness, that puts any problem it describes in the
`hard' category.

:nroff: /en'rof/ [UNIX, from "new runoff"] n. A companion
program to the UNIX typesetter `troff', accepting identical
input but preparing output for terminals and line printers.

:NSA line eater: n. The National Security Agency trawling
program sometimes assumed to be reading {USENET} for the
U.S. Government's spooks. Most hackers describe it as a mythical
beast, but some believe it actually exists, more aren't sure, and
many believe in acting as though it exists just in case. Some
netters put loaded phrases like `KGB', `Uzi', `nuclear materials',
`Palestine', `cocaine', and `assassination' in their {sig block}s
in a (probably futile) attempt to confuse and overload the
creature. The {GNU} version of {EMACS} actually has a command
that randomly inserts a bunch of insidious anarcho-verbiage into
your edited text.

There is a mainstream variant of this myth involving a `Trunk Line
Monitor', which supposedly used speech recognition to extract words
from telephone trunks. This one was making the rounds in the
late 1970s, spread by people who had no idea of then-current
technology or the storage, signal-processing, or speech recognition
needs of such a project. On the basis of mass-storage costs alone
it would have been cheaper to hire 50 high-school students and just
let them listen in. Speech-recognition technology can't do this
job even now (1991), and almost certainly won't in this millennium,
either. The peak of silliness came with a letter to an alternative
paper in New Haven, Connecticut, laying out the factoids of this
Big Brotherly affair. The letter writer then revealed his actual
agenda by offering --- at an amazing low price, just this once, we
take VISA and MasterCard --- a scrambler guaranteed to daunt the
Trunk Trawler and presumably allowing the would-be Baader-Meinhof
gangs of the world to get on with their business.

:nuke: vt. 1. To intentionally delete the entire contents of a
given directory or storage volume. "On UNIX, `rm -r /usr'
will nuke everything in the usr filesystem." Never used for
accidental deletion. Oppose {blow away}. 2. Syn. for
{dike}, applied to smaller things such as files, features, or
code sections. Often used to express a final verdict. "What do
you want me to do with that 80-meg {wallpaper} file?" "Nuke
it." 3. Used of processes as well as files; nuke is a frequent
verbal alias for `kill -9' on UNIX. 4. On IBM PCs, a bug
that results in {fandango on core} can trash the operating
system, including the FAT (the in-core copy of the disk block
chaining information). This can utterly scramble attached disks,
which are then said to have been `nuked'. This term is also
used of analogous lossages on Macintoshes and other micros without
memory protection.

:number-crunching: n. Computations of a numerical nature, esp.
those that make extensive use of floating-point numbers. The only
thing {Fortrash} is good for. This term is in widespread
informal use outside hackerdom and even in mainstream slang, but
has additional hackish connotations: namely, that the computations
are mindless and involve massive use of {brute force}. This is
not always {evil}, esp. if it involves ray tracing or fractals
or some other use that makes {pretty pictures}, esp. if such
pictures can be used as {wallpaper}. See also {crunch}.

:numbers: [scientific computation] n. Output of a computation that
may not be significant results but at least indicate that the
program is running. May be used to placate management, grant
sponsors, etc. `Making numbers' means running a program
because output --- any output, not necessarily meaningful output
--- is needed as a demonstration of progress. See {pretty
pictures}, {math-out}, {social science number}.

:NUXI problem: /nuk'see pro'bl*m/ n. This refers to the problem of
transferring data between machines with differing byte-order. The
string `UNIX' might look like `NUXI' on a machine with a
different `byte sex' (e.g., when transferring data from a
{little-endian} to a {big-endian}, or vice-versa). See also
{middle-endian}, {swab}, and {bytesexual}.

:nybble: /nib'l/ (alt. `nibble') [from v. `nibble' by analogy
with `bite' => `byte'] n. Four bits; one {hex} digit;
a half-byte. Though `byte' is now techspeak, this useful relative
is still jargon. Compare {{byte}}, {crumb}, {tayste},
{dynner}; see also {bit}, {nickle}, {deckle}. Apparently
this spelling is uncommon in Commonwealth Hackish, as British
orthography suggests the pronunciation /ni:'bl/.

:nyetwork: /nyet'werk/ [from Russian `nyet' = no] n. A network,
when it is acting {flaky} or is {down}. Compare {notwork}.

= O =
=====

:Ob-: /ob/ pref. Obligatory. A piece of {netiquette}
acknowledging that the author has been straying from the
newsgroup's charter topic. For example, if a posting in alt.sex is
a response to a part of someone else's posting that has nothing
particularly to do with sex, the author may append `ObSex' (or
`Obsex') and toss off a question or vignette about some unusual
erotic act. It is considered a sign of great {winnitude} when
your Obs are more interesting than other people's whole postings.

:Obfuscated C Contest: n. An annual contest run since 1984 over
USENET by Landon Curt Noll and friends. The overall winner is
whoever produces the most unreadable, creative, and bizarre (but
working) C program; various other prizes are awarded at the judges'
whim. C's terse syntax and macro-preprocessor facilities give
contestants a lot of maneuvering room. The winning programs often
manage to be simultaneously (a) funny, (b) breathtaking works of
art, and (c) horrible examples of how *not* to code in C.

This relatively short and sweet entry might help convey the flavor
of obfuscated C:

/*
* HELLO WORLD program
* by Jack Applin and Robert Heckendorn, 1985
*/
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
**c=!c)write(!!*c,*c,!!**c);}

Here's another good one:

/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
*/

#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}

See also {hello, world}.

:obi-wan error: /oh'bee-won` er'*r/ [RPI, from `off-by-one' and
the Obi-Wan Kenobi character in "Star Wars"] n. A loop of
some sort in which the index is off by 1. Common when the index
should have started from 0 but instead started from 1. A kind of
{off-by-one error}. See also {zeroth}.

:Objectionable-C: n. Hackish take on "Objective-C", the name of
an object-oriented dialect of C in competition with the
better-known C++ (it is used to write native applications on the
NeXT machine). Objectionable-C uses a Smalltalk-like syntax, but
lacks the flexibility of Smalltalk method calls, and (like many
such efforts) comes frustratingly close to attaining the {Right
Thing} without actually doing so.

:obscure: adj. Used in an exaggeration of its normal meaning, to
imply total incomprehensibility. "The reason for that last crash
is obscure." "The `find(1)' command's syntax is obscure!"
The phrase `moderately obscure' implies that it could be
figured out but probably isn't worth the trouble. The construction
`obscure in the extreme' is the preferred emphatic form.

:octal forty: /ok'tl for'tee/ n. Hackish way of saying "I'm
drawing a blank." Octal 40 is the {{ASCII}} space character,
0100000; by an odd coincidence, {hex} 40 (01000000) is the
{{EBCDIC}} space character. See {wall}.

:off the trolley: adj. Describes the behavior of a program that
malfunctions and goes catatonic, but doesn't actually {crash} or
abort. See {glitch}, {bug}, {deep space}.

:off-by-one error: n. Exceedingly common error induced in many
ways, such as by starting at 0 when you should have started at 1 or
vice versa, or by writing `< N' instead of `<= N' or
vice-versa. Also applied to giving something to the person next to
the one who should have gotten it. Often confounded with
{fencepost error}, which is properly a particular subtype of it.

:offline: adv. Not now or not here. "Let's take this
discussion offline." Specifically used on {USENET} to suggest
that a discussion be taken off a public newsgroup to email.

:old fart: n. Tribal elder. A title self-assumed with remarkable
frequency by (esp.) USENETters who have been programming for more
than about 25 years; often appears in {sig block}s attached to
Jargon File contributions of great archeological significance.
This is a term of insult in the second or third person but one of
pride in first person.

:Old Testament: n. [C programmers] The first edition of {K&R}, the
sacred text describing {Classic C}.

:one-banana problem: n. At mainframe shops, where the computers
have operators for routine administrivia, the programmers and
hardware people tend to look down on the operators and claim that a
trained monkey could do their job. It is frequently observed that
the incentives which would be offered said monkeys can be used
as a scale to describe the difficulty of a task. A one-banana
problem is simple; hence "It's only a one-banana job at the most;
what's taking them so long?"

At IBM, folklore divides the world into one-, two-, and
three-banana problems. Other cultures have different hierarchies
and may divide them more finely; at ICL, for example, five grapes
(a bunch) equals a banana. Their upper limit for the in-house
{sysape}s is said to be two bananas and three grapes (another
source claims it's three bananas and one grape, but observes
"However, this is subject to local variations, cosmic rays and
ISO"). At a complication level any higher than that, one asks the
manufacturers to send someone around to check things.

:one-line fix: n. Used (often sarcastically) of a change to a
program that is thought to be trivial or insignificant right up to
the moment it crashes the system. Usually `cured' by another
one-line fix. See also {I didn't change anything!}

:one-liner wars: n. A game popular among hackers who code in the
language APL (see {write-only language} and {line noise}).
The objective is to see who can code the most interesting and/or
useful routine in one line of operators chosen from
APL's exceedingly {hairy} primitive set. A similar amusement
was practiced among {TECO} hackers and is now popular among
{Perl} aficionados.

Ken Iverson, the inventor of APL, has been credited with a
one-liner that, given a number N, produces a list of the
prime numbers from 1 to N inclusive. It looks like this:

(2 = 0 +.= T o.| T) / T <- iN

where `o' is the APL null character, the assignment arrow is a
single character, and `i' represents the APL iota.

:ooblick: /oo'blik/ [from Dr. Seuss's `Bartholomew and the
Oobleck'] n. A bizarre semi-liquid sludge made from cornstarch and
water. Enjoyed among hackers who make batches during playtime at
parties for its amusing and extremely non-Newtonian behavior; it
pours and splatters, but resists rapid motion like a solid and will
even crack when hit by a hammer. Often found near lasers.

Here is a field-tested ooblick recipe contributed by GLS:

1 cup cornstarch

1 cup baking soda

3/4 cup water

N drops of food coloring

This recipe isn't quite as non-Newtonian as a pure cornstarch
ooblick, but has an appropriately slimy feel.

Some, however, insist that the notion of an ooblick *recipe*
is far too mechanical, and that it is best to add the water in
small increments so that the various mixed states the cornstarch
goes through as it *becomes* ooblick can be grokked in
fullness by many hands. For optional ingredients of this
experience, see the "{Ceremonial Chemicals}" section of
{appendix B}.

:op: /op/ [IRC] n. Someone who is endowed with privileges on
{IRC}, not limited to a particular channel. These are generally
people who are in charge of the IRC server at their particular
site. Sometimes used interchangably with {CHOP}. Compare
{sysop}.

:open: n. Abbreviation for `open (or left) parenthesis' --- used when
necessary to eliminate oral ambiguity. To read aloud the LISP form
(DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open
eks close, open, plus eks one, close close."

:Open DeathTrap: n. Abusive hackerism for the Santa Cruz
Operation's `Open DeskTop' product, a Motif-based graphical
interface over their UNIX. The funniest part is that this was
coined by SCO's own developers...compare {AIDX},
{terminak}, {Macintrash} {Nominal Semidestructor},
{ScumOS}, {sun-stools}, {HP-SUX}.

:open switch: [IBM: prob. from railroading] n. An unresolved
question, issue, or problem.

:operating system:: [techspeak] n. (Often abbreviated `OS') The
foundation software of a machine, of course; that which schedules
tasks, allocates storage, and presents a default interface to the
user between applications. The facilities an operating system
provides and its general design philosophy exert an extremely
strong influence on programming style and on the technical cultures
that grow up around its host machines. Hacker folklore has been
shaped primarily by the {{UNIX}}, {{ITS}}, {{TOPS-10}},
{{TOPS-20}}/{{TWENEX}}, {{WAITS}}, {{CP/M}}, {{MS-DOS}}, and
{{Multics}} operating systems (most importantly by ITS and
UNIX).

:optical diff: n. See {vdiff}.

:optical grep: n. See {vgrep}.

:Orange Book: n. The U.S. Government's standards document
`Trusted Computer System Evaluation Criteria, DOD standard
5200.28-STD, December, 1985' which characterize secure computing
architectures and defines levels A1 (most secure) through D
(least). Stock UNIXes are roughly C1, and can be upgraded to
about C2 without excessive pain. See also {{book titles}}.

:oriental food:: n. Hackers display an intense tropism towards
oriental cuisine, especially Chinese, and especially of the spicier
varieties such as Szechuan and Hunan. This phenomenon (which has
also been observed in subcultures that overlap heavily with
hackerdom, most notably science-fiction fandom) has never been
satisfactorily explained, but is sufficiently intense that one can
assume the target of a hackish dinner expedition to be the best
local Chinese place and be right at least three times out of four.
See also {ravs}, {great-wall}, {stir-fried random},
{laser chicken}, {Yu-Shiang Whole Fish}. Thai, Indian,
Korean, and Vietnamese cuisines are also quite popular.

:orphan: [UNIX] n. A process whose parent has died; one inherited by
`init(1)'. Compare {zombie}.

:orphaned i-node: /or'f*nd i:'nohd/ [UNIX] n. 1. [techspeak] A
file that retains storage but no longer appears in the directories
of a filesystem. 2. By extension, a pejorative for any person
serving no useful function within some organization, esp.
{lion food} without subordinates.

:orthogonal: [from mathematics] adj. Mutually independent; well
separated; sometimes, irrelevant to. Used in a generalization of
its mathematical meaning to describe sets of primitives or
capabilities that, like a vector basis in geometry, span the
entire `capability space' of the system and are in some sense
non-overlapping or mutually independent. For example, in
architectures such as the PDP-11 or VAX where all or nearly all
registers can be used interchangeably in any role with respect to
any instruction, the register set is said to be orthogonal. Or, in
logic, the set of operators `not' and `or' is orthogonal,
but the set `nand', `or', and `not' is not (because any
one of these can be expressed in terms of the others). Also used
in comments on human discourse: "This may be orthogonal to the
discussion, but...."

:OS: /O-S/ 1. [Operating System] n. An abbreviation heavily used in email,
occasionally in speech. 2. n.,obs. On ITS, an output spy. See
"{OS and JEDGAR}" (in {appendix A}).

:OS/2: /O S too/ n. The anointed successor to MS-DOS for Intel
286- and 386-based micros; proof that IBM/Microsoft couldn't get it
right the second time, either. Mentioning it is usually good for a
cheap laugh among hackers --- the design was so {baroque}, and
the implementation of 1.x so bad, that 3 years after introduction
you could still count the major {app}s shipping for it on the
fingers of two hands --- in unary. Often called `Half-an-OS'. On
January 28, 1991, Microsoft announced that it was dropping its OS/2
development to concentrate on Windows, leaving the OS entirely in
the hands of IBM; on January 29 they claimed the media had got the
story wrong, but were vague about how. It looks as though OS/2 is
moribund. See {vaporware}, {monstrosity}, {cretinous},
{second-system effect}.

:out-of-band: [from telecommunications and network theory] adj.
1. In software, describes values of a function which are not in its
`natural' range of return values, but are rather signals that
some kind of exception has occurred. Many C functions, for
example, return either a nonnegative integral value, or indicate
failure with an out-of-band return value of -1. Compare
{hidden flag}, {green bytes}. 2. Also sometimes used to
describe what communications people call `shift characters',
like the ESC that leads control sequences for many terminals, or
the level shift indicators in the old 5-bit Baudot codes. 3. In
personal communication, using methods other than email, such as
telephones or {snail-mail}.

:overflow bit: n. 1. [techspeak] On some processors, an attempt to
calculate a result too large for a register to hold causes a
particular {flag} called an {overflow bit} to be set.
2. Hackers use the term of human thought too. "Well, the {{Ada}}
description was {baroque} all right, but I could hack it OK until
they got to the exception handling ... that set my overflow bit."
3. The hypothetical bit that will be set if a hacker doesn't get to
make a trip to the Room of Porcelain Fixtures: "I'd better process
an internal interrupt before the overflow bit gets set".

:overflow pdl: [MIT] n. The place where you put things when your
{pdl} is full. If you don't have one and too many things get
pushed, you forget something. The overflow pdl for a person's
memory might be a memo pad. This usage inspired the following
doggerel:

Hey, diddle, diddle
The overflow pdl
To get a little more stack;
If that's not enough
Then you lose it all,
And have to pop all the way back.
--The Great Quux

The term {pdl} seems to be primarily an MITism; outside MIT this
term would logically be replaced by `overflow {stack}', but
the editors have heard no report of the latter term actually being
in use.

:overrun: n. 1. [techspeak] Term for a frequent consequence of data
arriving faster than it can be consumed, esp. in serial line
communications. For example, at 9600 baud there is almost exactly
one character per millisecond, so if your {silo} can hold only
two characters and the machine takes longer than 2 msec to get to
service the interrupt, at least one character will be lost.
2. Also applied to non-serial-I/O communications. "I forgot to pay
my electric bill due to mail overrun." "Sorry, I got four phone
calls in 3 minutes last night and lost your message to overrun."
When {thrash}ing at tasks, the next person to make a request
might be told "Overrun!" Compare {firehose syndrome}. 3. More
loosely, may refer to a {buffer overflow} not necessarily
related to processing time (as in {overrun screw}).

:overrun screw: [C programming] n. A variety of {fandango on
core} produced by scribbling past the end of an array (C
implementations typically have no checks for this error). This is
relatively benign and easy to spot if the array is static; if it is
auto, the result may be to {smash the stack} --- often resulting
in {heisenbug}s of the most diabolical subtlety. The term
`overrun screw' is used esp. of scribbles beyond the end of
arrays allocated with `malloc(3)'; this typically trashes the
allocation header for the next block in the {arena}, producing
massive lossage within malloc and often a core dump on the next
operation to use `stdio(3)' or `malloc(3)' itself. See
{spam}, {overrun}; see also {memory leak}, {memory
smash}, {aliasing bug}, {precedence lossage}, {fandango on
core}, {secondary damage}.

= P =
=====

:P.O.D.: /P-O-D/ Acronym for `Piece Of Data' (as opposed to a
code section). Usage: pedantic and rare. See also {pod}.

:padded cell: n. Where you put {luser}s so they can't hurt
anything. A program that limits a luser to a carefully restricted
subset of the capabilities of the host system (for example, the
`rsh(1)' utility on USG UNIX). Note that this is different
from an {iron box} because it is overt and not aimed at
enforcing security so much as protecting others (and the luser)
from the consequences of the luser's boundless na"ivet'e (see
{na"ive}). Also `padded cell environment'.

:page in: [MIT] vi. 1. To become aware of one's surroundings again
after having paged out (see {page out}). Usually confined to
the sarcastic comment: "Eric pages in. Film at 11." See
{film at 11}. 2. Syn. `swap in'; see {swap}.

:page out: [MIT] vi. 1. To become unaware of one's surroundings
temporarily, due to daydreaming or preoccupation. "Can you repeat
that? I paged out for a minute." See {page in}. Compare
{glitch}, {thinko}. 2. Syn. `swap out'; see {swap}.

:pain in the net: n. A {flamer}.

:paper-net: n. Hackish way of referring to the postal service,
analogizing it to a very slow, low-reliability network. USENET
{sig block}s not uncommonly include a "Paper-Net:" header just
before the sender's postal address; common variants of this are
"Papernet" and "P-Net". Compare {voice-net}, {snail-mail}.

:param: /p*-ram'/ n. Shorthand for `parameter'. See also
{parm}; compare {arg}, {var}.

:PARC: n. See {XEROX PARC}.

:parent message: n. See {followup}.

:parity errors: pl.n. Little lapses of attention or (in more severe
cases) consciousness, usually brought on by having spent all night
and most of the next day hacking. "I need to go home and crash;
I'm starting to get a lot of parity errors." Derives from a
relatively common but nearly always correctable transient error in
RAM hardware.

:Parkinson's Law of Data: prov. "Data expands to fill the space
available for storage"; buying more memory encourages the use of
more memory-intensive techniques. It has been observed over the
last 10 years that the memory usage of evolving systems tends to
double roughly once every 18 months. Fortunately, memory density
available for constant dollars tends to double about once every
12 months (see {Moore's Law}); unfortunately, the laws of
physics guarantee that the latter cannot continue indefinitely.

:parm: /parm/ n. Further-compressed form of {param}. This term
is an IBMism, and written use is almost unknown outside IBM
shops; spoken /parm/ is more widely distributed, but the synonym
{arg} is favored among hackers. Compare {arg}, {var}.

:parse: [from linguistic terminology] vt. 1. To determine the
syntactic structure of a sentence or other utterance (close to the
standard English meaning). "That was the one I saw you." "I
can't parse that." 2. More generally, to understand or
comprehend. "It's very simple; you just kretch the glims and then
aos the zotz." "I can't parse that." 3. Of fish, to have to
remove the bones yourself. "I object to parsing fish", means "I
don't want to get a whole fish, but a sliced one is okay". A
`parsed fish' has been deboned. There is some controversy over
whether `unparsed' should mean `bony', or also mean
`deboned'.

:Pascal:: n. An Algol-descended language designed by Niklaus Wirth
on the CDC 6600 around 1967--68 as an instructional tool for
elementary programming. This language, designed primarily to keep
students from shooting themselves in the foot and thus extremely
restrictive from a general-purpose-programming point of view, was
later promoted as a general-purpose tool and, in fact, became the
ancestor of a large family of languages including Modula-2 and
{{Ada}} (see also {bondage-and-discipline language}). The
hackish point of view on Pascal was probably best summed up by a
devastating (and, in its deadpan way, screamingly funny) 1981 paper
by Brian Kernighan (of {K&R} fame) entitled "Why Pascal is
Not My Favorite Programming Language", which was turned down by the
technical journals but circulated widely via photocopies. It was
eventually published in "Comparing and Assessing Programming
Languages", edited by Alan Feuer and Narain Gehani (Prentice-Hall,
1984). Part of his discussion is worth repeating here, because its
criticisms are still apposite to Pascal itself after ten years of
improvement and could also stand as an indictment of many other
bondage-and-discipline languages. At the end of a summary of the
case against Pascal, Kernighan wrote:

9. There is no escape

This last point is perhaps the most important. The language is
inadequate but circumscribed, because there is no way to escape its
limitations. There are no casts to disable the type-checking when
necessary. There is no way to replace the defective run-time
environment with a sensible one, unless one controls the compiler
that defines the "standard procedures". The language is closed.

People who use Pascal for serious programming fall into a fatal
trap. Because the language is impotent, it must be extended. But
each group extends Pascal in its own direction, to make it look
like whatever language they really want. Extensions for separate
compilation, FORTRAN-like COMMON, string data types, internal
static variables, initialization, octal numbers, bit operators,
etc., all add to the utility of the language for one group but
destroy its portability to others.

I feel that it is a mistake to use Pascal for anything much beyond
its original target. In its pure form, Pascal is a toy language,
suitable for teaching but not for real programming.

Pascal has since been almost entirely displaced (by {C}) from the
niches it had acquired in serious applications and systems
programming, but retains some popularity as a hobbyist language in
the MS-DOS and Macintosh worlds.

:pastie: /pay'stee/ n. An adhesive-backed label designed to be
attached to a key on a keyboard to indicate some non-standard
character which can be accessed through that key. Pasties are
likely to be used in APL environments, where almost every key is
associated with a special character. A pastie on the R key, for
example, would remind the user that it is used to generate the rho
character. The term properly refers to nipple-concealing devices
formerly worn by strippers in concession to indecent-exposure
laws; compare {tits on a keyboard}.

:patch: 1. n. A temporary addition to a piece of code, usually as a
{quick-and-dirty} remedy to an existing bug or misfeature. A
patch may or may not work, and may or may not eventually be
incorporated permanently into the program. Distinguished from a
{diff} or {mod} by the fact that a patch is generated by more
primitive means than the rest of the program; the classical
examples are instructions modified by using the front panel
switches, and changes made directly to the binary executable of a
program originally written in an {HLL}. Compare {one-line
fix}. 2. vt. To insert a patch into a piece of code. 3. [in the
UNIX world] n. A {diff} (sense 2). 4. A set of modifications to
binaries to be applied by a patching program. IBM operating
systems often receive updates to the operating system in the form
of absolute hexadecimal patches. If you have modified your OS, you
have to disassemble these back to the source. The patches might
later be corrected by other patches on top of them (patches were
said to "grow scar tissue"). The result was often a convoluted
{patch space} and headaches galore. 5. [UNIX] the
`patch(1)' program, written by Larry Wall, which automatically
applies a patch (sense 3) to a set of source code.

There is a classic story of a {tiger team} penetrating a secure
military computer that illustrates the danger inherent in binary
patches (or, indeed, any that you can't --- or don't --- inspect
and examine before installing). They couldn't find any {trap
door}s or any way to penetrate security of IBM's OS, so they made a
site visit to an IBM office (remember, these were official military
types who were purportedly on official business), swiped some IBM
stationery, and created a fake patch. The patch was actually the
trapdoor they needed. The patch was distributed at about the right
time for an IBM patch, had official stationery and all accompanying
documentation, and was dutifully installed. The installation
manager very shortly thereafter learned something about proper
procedures.

:patch space: n. An unused block of bits left in a binary so that
it can later be modified by insertion of machine-language
instructions there (typically, the patch space is modified to
contain new code, and the superseded code is patched to contain a
jump or call to the patch space). The widening use of HLLs has
made this term rare; it is now primarily historical outside IBM
shops. See {patch} (sense 4), {zap} (sense 4), {hook}.

:path: n. 1. A {bang path} or explicitly routed {{Internet
address}}; a node-by-node specification of a link between two
machines. 2. [UNIX] A filename, fully specified relative to the
root directory (as opposed to relative to the current directory;
the latter is sometimes called a `relative path'). This is also
called a `pathname'. 3. [UNIX and MS-DOS] The `search
path', an environment variable specifying the directories in which
the {shell} (COMMAND.COM, under MS-DOS) should look for commands.
Other, similar constructs abound under UNIX (for example, the
C preprocessor has a `search path' it uses in looking for
`#include' files).

:pathological: adj. 1. [scientific computation] Used of a data set
that is grossly atypical of normal expected input, esp. one that
exposes a weakness or bug in whatever algorithm one is using. An
algorithm that can be broken by pathological inputs may still be
useful if such inputs are very unlikely to occur in practice.
2. When used of test input, implies that it was purposefully
engineered as a worst case. The implication in both senses is that
the data is spectacularly ill-conditioned or that someone had to
explicitly set out to break the algorithm in order to come up with
such a crazy example. 3. Also said of an unlikely collection of
circumstances. "If the network is down and comes up halfway
through the execution of that command by root, the system may
just crash." "Yes, but that's a pathological case." Often used
to dismiss the case from discussion, with the implication that the
consequences are acceptable since that they will happen so
infrequently (if at all) that there is no justification for
going to extra trouble to handle that case (see sense 1).

:payware: /pay'weir/ n. Commercial software. Oppose {shareware}
or {freeware}.

:PBD: /P-B-D/ [abbrev. of `Programmer Brain Damage'] n. Applied
to bug reports revealing places where the program was obviously
broken by an incompetent or short-sighted programmer. Compare
{UBD}; see also {brain-damaged}.

:PC-ism: /P-C-izm/ n. A piece of code or coding technique that
takes advantage of the unprotected single-tasking environment in
IBM PCs and the like, e.g., by busy-waiting on a hardware register,
direct diddling of screen memory, or using hard timing loops.
Compare {ill-behaved}, {vaxism}, {unixism}. Also,
`PC-ware' n., a program full of PC-isms on a machine with a more
capable operating system. Pejorative.

:PD: /P-D/ adj. Common abbreviation for `public domain', applied
to software distributed over {USENET} and from Internet archive
sites. Much of this software is not in fact public domain in
the legal sense but travels under various copyrights granting
reproduction and use rights to anyone who can {snarf} a copy. See
{copyleft}.

:pdl: /pid'l/ or /puhd'l/ [abbreviation for `Push Down List']
1. n. In ITS days, the preferred MITism for {stack}. See
{overflow pdl}. 2. n. Dave Lebling, one of the co-authors of
{Zork}; (his {network address} on the ITS machines was at one
time pdl@dms). 3. n. `Program Design Language'. Any of a large
class of formal and profoundly useless pseudo-languages in which
{management} forces one to design programs. {Management}
often expects it to be maintained in parallel with the code. See
also {{flowchart}}. 4. v. To design using a program design
language. "I've been pdling so long my eyes won't focus beyond 2
feet." 5. n. `Page Description Language'. Refers to any language
which is used to control a graphics device, usually a laserprinter.
The most common example, is of course, Adobe's {PostScript}
language, but there are many others, such as Xerox InterPress,
etc.

:PDP-10: [Programmed Data Processor model 10] n. The machine that
made timesharing real. It looms large in hacker folklore because
of its adoption in the mid-1970s by many university computing
facilities and research labs, including the MIT AI Lab, Stanford,
and CMU. Some aspects of the instruction set (most notably the
bit-field instructions) are still considered unsurpassed. The 10
was eventually eclipsed by the VAX machines (descendants of the
PDP-11) when DEC recognized that the 10 and VAX product lines were
competing with each other and decided to concentrate its software
development effort on the more profitable VAX. The machine was
finally dropped from DEC's line in 1983, following the failure of
the Jupiter Project at DEC to build a viable new model. (Some
attempts by other companies to market clones came to nothing; see
{Foonly}) This event spelled the doom of {{ITS}} and the
technical cultures that had spawned the original Jargon File, but
by mid-1991 it had become something of a badge of honorable
old-timerhood among hackers to have cut one's teeth on a PDP-10.
See {{TOPS-10}}, {{ITS}}, {AOS}, {BLT}, {DDT}, {DPB},
{EXCH}, {HAKMEM}, {JFCL}, {LDB}, {pop}, {push},
{appendix A}.

:PDP-20: n. The most famous computer that never was. {PDP-10}
computers running the {{TOPS-10}} operating system were labeled
`DECsystem-10' as a way of differentiating them from the PDP-11.
Later on, those systems running {TOPS-20} were labeled
`DECSYSTEM-20' (the block capitals being the result of a lawsuit
brought against DEC by Singer, which once made a computer called
`system-10'), but contrary to popular lore there was never a
`PDP-20'; the only difference between a 10 and a 20 was the
operating system and the color of the paint. Most (but not all)
machines sold to run TOPS-10 were painted `Basil Blue', whereas
most TOPS-20 machines were painted `Chinese Red' (often mistakenly
called orange).

:peek: n.,vt. (and {poke}) The commands in most microcomputer
BASICs for directly accessing memory contents at an absolute
address; often extended to mean the corresponding constructs in any
{HLL} (peek reads memory, poke modifies it). Much hacking on
small, non-MMU micros consists of `peek'ing around memory, more
or less at random, to find the location where the system keeps
interesting stuff. Long (and variably accurate) lists of such
addresses for various computers circulate (see {{interrupt list,
the}}). The results of `poke's at these addresses may be highly
useful, mildly amusing, useless but neat, or (most likely) total
{lossage} (see {killer poke}).

Since a {real operating system} provides useful, higher-level
services for the tasks commonly performed with peeks and pokes on
micros, and real languages tend not to encourage low-level memory
groveling, a question like "How do I do a peek in C?" is
diagnostic of the {newbie}. (Of course, OS kernels often have to
do exactly this; a real C hacker would unhesitatingly, if
unportably, assign an absolute address to a pointer variable and
indirect through it.)

:pencil and paper: n. An archaic information storage and
transmission device that works by depositing smears of graphite on
bleached wood pulp. More recent developments in paper-based
technology include improved `write-once' update devices which use
tiny rolling heads similar to mouse balls to deposit colored
pigment. All these devices require an operator skilled at
so-called `handwriting' technique. These technologies are
ubiquitous outside hackerdom, but nearly forgotten inside it. Most
hackers had terrible handwriting to begin with, and years of
keyboarding tend to have encouraged it to degrade further. Perhaps
for this reason, hackers deprecate pencil-and-paper technology and
often resist using it in any but the most trivial contexts. See
also {appendix B}.

:peon: n. A person with no special ({root} or {wheel})
privileges on a computer system. "I can't create an account on
*foovax* for you; I'm only a peon there."

:percent-S: /per-sent' es'/ [From the code in C's `printf(3)'
library function used to insert an arbitrary string argument] n. An
unspecified person or object. "I was just talking to some
percent-s in administration." Compare {random}.

:perf: /perf/ n. See {chad} (sense 1). The term `perfory'
/per'f*-ree/ is also heard. The term {perf} may also refer to
the preforations themselves, rather than the chad they produce when
torn.

:perfect programmer syndrome: n. Arrogance; the egotistical
conviction that one is above normal human error. Most frequently
found among programmers of some native ability but relatively
little experience (especially new graduates; their perceptions may
be distorted by a history of excellent performance at solving {toy
problem}s). "Of course my program is correct, there is no need to
test it." "Yes, I can see there may be a problem here, but
*I'll* never type `rm -r /' while in {root}."

:Perl: /perl/ [Practical Extraction and Report Language, a.k.a
Pathologically Eclectic Rubbish Lister] n. An interpreted language
developed by Larry Wall , author of
`patch(1)' and `rn(1)') and distributed over USENET.
Superficially resembles `awk(1)', but is much hairier (see
{awk}). UNIX sysadmins, who are almost always incorrigible
hackers, increasingly consider it one of the {languages of
choice}. Perl has been described, in a parody of a famous remark
about `lex(1)', as the "Swiss-Army chainsaw" of UNIX
programming.

:pessimal: /pes'im-l/ [Latin-based antonym for `optimal'] adj.
Maximally bad. "This is a pessimal situation." Also `pessimize'
vt. To make as bad as possible. These words are the obvious
Latin-based antonyms for `optimal' and `optimize', but for some
reason they do not appear in most English dictionaries, although
`pessimize' is listed in the OED.

:pessimizing compiler: /pes'*-mi:z`ing k*m-pi:l'r/ [antonym of
`optimizing compiler'] n. A compiler that produces object code that
is worse than the straightforward or obvious hand translation. The
implication is that the compiler is actually trying to optimize the
program, but through excessive cleverness is doing the opposite. A
few pessimizing compilers have been written on purpose, however, as
pranks or burlesques.

:peta-: /pe't*/ [SI] pref. See {{quantifiers}}.

:PETSCII: /pet'skee/ [abbreviation of PET ASCII] n. The variation
(many would say perversion) of the {{ASCII}} character set used by
the Commodore Business Machines PET series of personal computers
and the later Commodore C64, C16, and C128 machines. The PETSCII
set used left-arrow and up-arrow (as in old-style ASCII) instead of
underscore and caret, placed the unshifted alphabet at positions
65--90, put the shifted alphabet at positions 193--218, and added
graphics characters.

:phase: 1. n. The phase of one's waking-sleeping schedule with
respect to the standard 24-hour cycle. This is a useful concept
among people who often work at night and/or according to no fixed
schedule. It is not uncommon to change one's phase by as much as 6
hours per day on a regular basis. "What's your phase?" "I've
been getting in about 8 P.M. lately, but I'm going to {wrap
around} to the day schedule by Friday." A person who is roughly
12 hours out of phase is sometimes said to be in `night mode'.
(The term `day mode' is also (but less frequently) used, meaning
you're working 9 to 5 (or, more likely, 10 to 6).) The act of


 


Back to Full Books