Full Text Archive logoFull Text Archive — Free Classic E-books

The New Hacker's Dictionary version 4.2.2 by Various editors

Part 14 out of 29

Adobe PDF icon
Download this document as a .pdf
File size: 1.8 MB
What's this? light bulb idea Many people prefer to read off-line or to print out text and read from the real printed page. Others want to carry documents around with them on their mobile phones and read while they are on the move. We have created .pdf files of all out documents to accommodate all these groups of people. We recommend that you download .pdfs onto your mobile phone when it is connected to a WiFi connection for reading off-line.

particular period of flakiness on IBM's VNET corporate network ca.
1988; but there are independent reports of the term from elsewhere.

Node:NP-, Next:[9529]nroff, Previous:[9530]notwork, Up:[9531]= N =

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' This
is generalized from the computer-science terms `NP-hard' and
`NP-complete'; NP-complete problems all seem to be very hard, but so
far no one has found a proof that they are. 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. "Coding a BitBlt
implementation to perform correctly in every case is NP-annoying."

Note, however, that strictly speaking this usage is misleading; there
are plenty of easy problems in class NP. NP-complete problems are hard
not because they are in class NP, but because they are the hardest
problems in class NP.

Node:nroff, Next:[9532]NSA line eater, Previous:[9533]NP-, Up:[9534]=
N =

nroff /N'rof/

n. [Unix, from "new roff" (see [9535]troff)] A companion program to
the Unix typesetter [9536]troff, accepting identical input but
preparing output for terminals and line printers.

Node:NSA line eater, Next:[9537]NSP, Previous:[9538]nroff, Up:[9539]=
N =

NSA line eater n.

The National Security Agency trawling program sometimes assumed to be
reading the net for the U.S. Government's spooks. Most hackers used to
think it was mythical but believed in acting as though existed just in
case. since the mid-1990s it has gradually become known that the NSA
actually does this, quite illegaly, through its Echelon program.

The standard countermeasure is to put loaded phrases like `KGB',
`Uzi', `nuclear materials', `Palestine', `cocaine', and
`assassination' in their [9540]sig blocks in a (probably futile)
attempt to confuse and overload the creature. The [9541]GNU version of
[9542]EMACS actually has a command that randomly inserts a bunch of
insidious anarcho-verbiage into your edited text.

As far back as the 1970s there was a mainstream variant of this myth
involving a `Trunk Line Monitor', which supposedly used speech
recognition to extract words from telephone trunks. This is much
harder than noticing keywords in email, and most of the people who
originally propagated it 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.
Twenty years and several orders of technological magnitude later,
however, there are clear indications that the NSA has actually
deployed such filtering (again, very much against U.S. law).

Node:NSP, Next:[9543]nude, Previous:[9544]NSA line eater, Up:[9545]= N

NSP /N-S-P/ n.

Common abbreviation for `Network Service Provider', one of the big
national or regional companies that maintains a portion of the
Internet backbone and resells connectivity to [9546]ISPs. In 1996,
major NSPs include ANS, MCI, UUNET, and Sprint. An Internet

Node:nude, Next:[9547]nugry, Previous:[9548]NSP, Up:[9549]= N =

nude adj.

Said of machines delivered without an operating system (compare
[9550]bare metal). "We ordered 50 systems, but they all arrived nude,
so we had to spend a an extra weekend with the installation disks."
This usage is a recent innovation reflecting the fact that most IBM-PC
clones are now delivered with an operating system pre-installed at the
factory. Other kinds of hardware are still normally delivered without
OS, so this term is particular to PC support groups.

Node:nugry, Next:[9551]nuke, Previous:[9552]nude, Up:[9553]= N =

nugry /n[y]oo'gree/

[Usenet, 'newbie' + '-gry'] `. n. A [9554]newbie who posts a [9555]FAQ
in the rec.puzzles newsgroup, especially if it is a variant of the
notorious and unanswerable "What, besides `angry' and `hungry', is the
third common English word that ends in -GRY?". In the newsgroup, the
canonical answer is of course `nugry' itself. Plural is `nusgry'
/n[y]oos'gree/. 2. adj. Having the qualities of a nugry.

Node:nuke, Next:[9556]number-crunching, Previous:[9557]nugry,
Up:[9558]= N =

nuke /n[y]ook/ vt.

[common] 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; contrast
[9559]blow away. 2. Syn. for [9560]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
[9561]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 [9562]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

Node:number-crunching, Next:[9563]numbers, Previous:[9564]nuke,
Up:[9565]= N =

number-crunching n.

[common] Computations of a numerical nature, esp. those that make
extensive use of floating-point numbers. The only thing [9566]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
[9567]brute force. This is not always [9568]evil, esp. if it involves
ray tracing or fractals or some other use that makes [9569]pretty
pictures, esp. if such pictures can be used as [9570]wallpaper. See
also [9571]crunch.

Node:numbers, Next:[9572]NUXI problem,
Previous:[9573]number-crunching, Up:[9574]= N =

numbers n.

[scientific computation] 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 [9575]pretty pictures, [9576]math-out, [9577]social
science number.

Node:NUXI problem, Next:[9578]nybble, Previous:[9579]numbers,
Up:[9580]= N =

NUXI problem /nuk'see pro'bl*m/ n.

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 [9581]little-endian to a [9582]big-endian, or vice-versa). See also
[9583]middle-endian, [9584]swab, and [9585]bytesexual.

Node:nybble, Next:[9586]nyetwork, Previous:[9587]NUXI problem,
Up:[9588]= N =

nybble /nib'l/ (alt. `nibble') n.

[from v. `nibble' by analogy with `bite' => `byte'] Four bits; one
[9589]hex digit; a half-byte. Though `byte' is now techspeak, this
useful relative is still jargon. Compare [9590]byte; see also
[9591]bit. The more mundane spelling "nibble" is also commonly used.
Apparently the `nybble' spelling is uncommon in Commonwealth Hackish,
as British orthography would suggest the pronunciation /ni:'bl/.

Following `bit', `byte' and `nybble' there have been quite a few
analogical attempts to construct unambiguous terms for bit blocks of
other sizes. All of these are strictly jargon, not techspeak, and not
very common jargon at that (most hackers would recognize them in
context but not use them spontaneously). We collect them here for
reference together with the ambiguous techspeak terms `word',
`half-word' and `double word'; some (indicated) have substantial
information separate entries.

2 bits:
[9592]crumb, [9593]quad, [9594]quarter, tayste, tydbit

4 bits:

5 bits:

10 bits:

16 bits:
playte, [9597]chawmp (on a 32-bit machine), word (on a 16-bit
machine), half-word (on a 32-bit machine).

18 bits:
[9598]chawmp (on a 36-bit machine), half-word (on a 36-bit

32 bits:
dynner, [9599]gawble (on a 32-bit machine), word (on a 32-bit
machine), longword (on a 16-bit machine).

word (on a 36-bit machine)

48 bits:
[9600]gawble (under circumstances that remain obscure)

64 bits
double word (on a 32-bit machine)

The fundamental motivation for most of these jargon terms (aside from
the normal hackerly enjoyment of punning wordplay) is the extreme
ambiguity of the term `word' and its derivatives.

Node:nyetwork, Next:[9601]Ob-, Previous:[9602]nybble, Up:[9603]= N =

nyetwork /nyet'werk/ n.

[from Russian `nyet' = no] A network, when it is acting [9604]flaky or
is [9605]down. Compare [9606]notwork.

Node:= O =, Next:[9607]= P =, Previous:[9608]= N =, Up:[9609]The
Jargon Lexicon

= O =

* [9610]Ob-:
* [9611]Obfuscated C Contest:
* [9612]obi-wan error:
* [9613]Objectionable-C:
* [9614]obscure:
* [9615]octal forty:
* [9616]off the trolley:
* [9617]off-by-one error:
* [9618]offline:
* [9619]ogg:
* [9620]-oid:
* [9621]old fart:
* [9622]Old Testament:
* [9623]on the gripping hand:
* [9624]one-banana problem:
* [9625]one-line fix:
* [9626]one-liner wars:
* [9627]ooblick:
* [9628]op:
* [9629]open:
* [9630]open source:
* [9631]open switch:
* [9632]operating system:
* [9633]optical diff:
* [9634]optical grep:
* [9635]optimism:
* [9636]Oracle the:
* [9637]Orange Book:
* [9638]oriental food:
* [9639]orphan:
* [9640]orphaned i-node:
* [9641]orthogonal:
* [9642]OS:
* [9643]OS/2:
* [9644]OSS:
* [9645]OSU:
* [9646]OTOH:
* [9647]out-of-band:
* [9648]overclock:
* [9649]overflow bit:
* [9650]overflow pdl:
* [9651]overrun:
* [9652]overrun screw:

Node:Ob-, Next:[9653]Obfuscated C Contest, Previous:[9654]nyetwork,
Up:[9655]= O =

Ob- /ob/ pref.

Obligatory. A piece of [9656]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 [9657]winnitude
when one's Obs are more interesting than other people's whole

Node:Obfuscated C Contest, Next:[9658]obi-wan error,
Previous:[9659]Ob-, Up:[9660]= O =

Obfuscated C Contest n.

(in full, the `International Obfuscated C Code Contest', or IOCCC) 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
* (Note: depends on being able to modify elements of argv[],
* which is not guaranteed by ANSI and often not possible.)
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";

Here's another good one:
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)

#define _ -F<00||--F-OO--;
int F=00,OO=00;

Note that this program works by computing its own area. For more
digits, write a bigger program. See also [9661]hello world.

The IOCCC has an official home page at [9662]http://www.ioccc.org.

Node:obi-wan error, Next:[9663]Objectionable-C,
Previous:[9664]Obfuscated C Contest, Up:[9665]= O =

obi-wan error /oh'bee-won` er'*r/ n.

[RPI, from `off-by-one' and the Obi-Wan Kenobi character in "Star
Wars"] 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 [9666]off-by-one error. See also [9667]zeroth.

Node:Objectionable-C, Next:[9668]obscure, Previous:[9669]obi-wan
error, Up:[9670]= O =

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 [9671]Right Thing without actually doing so.

Node:obscure, Next:[9672]octal forty, Previous:[9673]Objectionable-C,
Up:[9674]= O =

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 something could be figured out but probably isn't worth
the trouble. The construction `obscure in the extreme' is the
preferred emphatic form.

Node:octal forty, Next:[9675]off the trolley, Previous:[9676]obscure,
Up:[9677]= O =

octal forty /ok'tl for'tee/ n.

Hackish way of saying "I'm drawing a blank." Octal 40 is the
[9678]ASCII space character, 0100000; by an odd coincidence, [9679]hex
40 (01000000) is the [9680]EBCDIC space character. See [9681]wall.

Node:off the trolley, Next:[9682]off-by-one error,
Previous:[9683]octal forty, Up:[9684]= O =

off the trolley adj.

Describes the behavior of a program that malfunctions and goes
catatonic, but doesn't actually [9685]crash or abort. See
[9686]glitch, [9687]bug, [9688]deep space, [9689]wedged.

This term is much older than computing, and is (uncommon) slang
elsewhere. A trolley is the small wheel that trolls, or runs against,
the heavy wire that carries the current to run a streetcar. It's at
the end of the long pole (the trolley pole) that reaches from the roof
of the streetcar to the overhead line. When the trolley stops making
contact with the wire (from passing through a switch, going over bumpy
track, or whatever), the streetcar comes to a halt, (usually) without
crashing. The streetcar is then said to be off the trolley, or off the
wire. Later on, trolley came to mean the streetcar itself. Since
streetcars became common in the 1890s, the term is more than 100 years
old. Nowadays, trolleys are only seen on historic streetcars, since
modern streetcars use pantographs to contact the wire.

Node:off-by-one error, Next:[9690]offline, Previous:[9691]off the
trolley, Up:[9692]= O =

off-by-one error n.

[common] 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 [9693]fencepost error, which is properly a
particular subtype of it.

Node:offline, Next:[9694]ogg, Previous:[9695]off-by-one error,
Up:[9696]= O =

offline adv.

Not now or not here. "Let's take this discussion offline."
Specifically used on [9697]Usenet to suggest that a discussion be
moved off a public newsgroup to email.

Node:ogg, Next:[9698]-oid, Previous:[9699]offline, Up:[9700]= O =

ogg /og/ v.

[CMU] 1. In the multi-player space combat game Netrek, to execute
kamikaze attacks against enemy ships which are carrying armies or
occupying strategic positions. Named during a game in which one of the
players repeatedly used the tactic while playing Orion ship G, showing
up in the player list as "Og". This trick has been roundly denounced
by those who would return to the good old days when the tactic of
dogfighting was dominant, but as Sun Tzu wrote, "What is of supreme
importance in war is to attack the enemy's strategy, not his tactics."
However, the traditional answer to the newbie question "What does ogg
mean?" is just "Pick up some armies and I'll show you." 2. In other
games, to forcefully attack an opponent with the expectation that the
resources expended will be renewed faster than the opponent will be
able to regain his previous advantage. Taken more seriously as a
tactic since it has gained a simple name. 3. To do anything
forcefully, possibly without consideration of the drain on future
resources. "I guess I'd better go ogg the problem set that's due
tomorrow." "Whoops! I looked down at the map for a sec and almost
ogged that oncoming car."

Node:-oid, Next:[9701]old fart, Previous:[9702]ogg, Up:[9703]= O =

-oid suff.

[from Greek suffix -oid = `in the image of'] 1. Used as in mainstream
slang English to indicate a poor imitation, a counterfeit, or some
otherwise slightly bogus resemblance. Hackers will happily use it with
all sorts of non-Greco/Latin stem words that wouldn't keep company
with it in mainstream English. For example, "He's a nerdoid" means
that he superficially resembles a nerd but can't make the grade; a
`modemoid' might be a 300-baud box (Real Modems run at 28.8 or up); a
`computeroid' might be any [9704]bitty box. The word `keyboid' could
be used to describe a [9705]chiclet keyboard, but would have to be
written; spoken, it would confuse the listener as to the speaker's
city of origin. 2. More specifically, an indicator for `resembling an
android' which in the past has been confined to science-fiction fans
and hackers. It too has recently (in 1991) started to go mainstream
(most notably in the term `trendoid' for victims of terminal hipness).
This is probably traceable to the popularization of the term
[9706]droid in "Star Wars" and its sequels. (See also [9707]windoid.)

Coinages in both forms have been common in science fiction for at
least fifty years, and hackers (who are often SF fans) have probably
been making `-oid' jargon for almost that long [though GLS and I can
personally confirm only that they were already common in the mid-1970s

Node:old fart, Next:[9708]Old Testament, Previous:[9709]-oid,
Up:[9710]= O =

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 [9711]sig blocks 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.

Node:Old Testament, Next:[9712]on the gripping hand,
Previous:[9713]old fart, Up:[9714]= O =

Old Testament n.

[C programmers] The first edition of [9715]K&R, the sacred text
describing [9716]Classic C.

Node:on the gripping hand, Next:[9717]one-banana problem,
Previous:[9718]Old Testament, Up:[9719]= O =

on the gripping hand

In the progression that starts "On the one hand..." and continues "On
the other hand..." mainstream English may add "on the third hand..."
even though most people don't have three hands. Among hackers, it is
just as likely to be "on the gripping hand". This metaphor supplied
the title of Larry Niven & Jerry Pournelle's 1993 SF novel "The
Gripping Hand" which involved a species of hostile aliens with three
arms (the same species, in fact, referenced in [9720]juggling eggs).
As with [9721]TANSTAAFL and [9722]con, this usage one of the
naturalized imports from SF fandom frequently observed among hackers.

Node:one-banana problem, Next:[9723]one-line fix, Previous:[9724]on
the gripping hand, Up:[9725]= O =

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 that 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 [9726]sysapes 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

See also [9727]Infinite-Monkey Theorem.

Node:one-line fix, Next:[9728]one-liner wars,
Previous:[9729]one-banana problem, Up:[9730]= O =

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 [9731]I
didn't change anything!

Node:one-liner wars, Next:[9732]ooblick, Previous:[9733]one-line fix,
Up:[9734]= O =

one-liner wars n.

A game popular among hackers who code in the language APL (see
[9735]write-only language and [9736]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 [9737]hairy primitive
set. A similar amusement was practiced among [9738]TECO hackers and is
now popular among [9739]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.

Here's a [9740]Perl program that prints primes:
perl -wle '(1 x $_) !~ /^(11+)\1+$/ && print while ++ $_'

In the Perl world this game is sometimes called Perl Golf because the
player with the fewest (key)strokes wins.

Node:ooblick, Next:[9741]op, Previous:[9742]one-liner wars, Up:[9743]=
O =

ooblick /oo'blik/ n.

[from the Dr. Seuss title "Bartholomew and the Oobleck"; the spelling
`oobleck' is still current in the mainstream] 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 "[9744]Ceremonial Chemicals"
section of Appendix B.

Node:op, Next:[9745]open, Previous:[9746]ooblick, Up:[9747]= O =

op /op/ n.

1. In England and Ireland, common verbal abbreviation for `operator',
as in system operator. Less common in the U.S., where [9748]sysop
seems to be preferred. 2. [IRC] Someone who is endowed with privileges
on [9749]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 interchangeably with [9750]CHOP. Compare [9751]sysop.

Node:open, Next:[9752]open source, Previous:[9753]op, Up:[9754]= O =

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

Node:open source, Next:[9755]open switch, Previous:[9756]open,
Up:[9757]= O =

open source n.

[common; also adj. `open-source'] Term coined in March 1998 following
the Mozilla release to describe software distributed in source under
licenses guaranteeing anybody rights to freely use, modify, and
redistribute, the code. The intent was to be able to sell the hackers'
ways of doing software to industry and the mainstream by avoid the
negative connotations (to [9758]suits) of the term "[9759]free
software". For discussion of the followon tactics and their
consequences, see the [9760]Open Source Initiative site.

Node:open switch, Next:[9761]operating system, Previous:[9762]open
source, Up:[9763]= O =

open switch n.

[IBM: prob. from railroading] An unresolved question, issue, or

Node:operating system, Next:[9764]optical diff, Previous:[9765]open
switch, Up:[9766]= O =

operating system n.

[techspeak] (Often abbreviated `OS') The foundation software of a
machine; 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 [9767]Unix, [9768]ITS, [9769]TOPS-10,
[9770]TOPS-20/[9771]TWENEX, [9772]WAITS, [9773]CP/M, [9774]MS-DOS, and
[9775]Multics operating systems (most importantly by ITS and Unix).

Node:optical diff, Next:[9776]optical grep, Previous:[9777]operating
system, Up:[9778]= O =

optical diff n.

See [9779]vdiff.

Node:optical grep, Next:[9780]optimism, Previous:[9781]optical diff,
Up:[9782]= O =

optical grep n.

See [9783]vgrep.

Node:optimism, Next:[9784]Oracle the, Previous:[9785]optical grep,
Up:[9786]= O =

optimism n.

What a programmer is full of after fixing the last bug and before
discovering the next last bug. Fred Brooks's book "The Mythical
Man-Month" (See "Brooks's Law") contains the following paragraph that
describes this extremely well:

All programmers are optimists. Perhaps this modern sorcery
especially attracts those who believe in happy endings and fairy
godmothers. Perhaps the hundreds of nitty frustrations drive away
all but those who habitually focus on the end goal. Perhaps it is
merely that computers are young, programmers are younger, and the
young are always optimists. But however the selection process
works, the result is indisputable: "This time it will surely run,"
or "I just found the last bug.".

See also [9787]Lubarsky's Law of Cybernetic Entomology.

Node:Oracle the, Next:[9788]Orange Book, Previous:[9789]optimism,
Up:[9790]= O =

Oracle, the

The all-knowing, all-wise Internet Oracle rec.humor.oracle), or one of
the foreign language derivatives of same. Newbies frequently confuse
the Oracle with Oracle, a database vendor. As a result, the
unmoderated rec.humor.oracle.d is frequently crossposted to by the
clueless, looking for advice on SQL. As more than one person has said
in similar situations, "Don't people bother to look at the newsgroup
description line anymore?" (To which the standard response is, "Did
people ever read it in the first place?")

Node:Orange Book, Next:[9791]oriental food, Previous:[9792]Oracle the,
Up:[9793]= O =

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). Modern Unixes are roughly C2. See
also [9794]crayola books, [9795]book titles.

Node:oriental food, Next:[9796]orphan, Previous:[9797]Orange Book,
Up:[9798]= O =

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 [9799]ravs, [9800]great-wall,
[9801]stir-fried random, [9802]laser chicken, [9803]Yu-Shiang Whole
Fish. Thai, Indian, Korean, and Vietnamese cuisines are also quite

Node:orphan, Next:[9804]orphaned i-node, Previous:[9805]oriental food,
Up:[9806]= O =

orphan n.

[Unix] A process whose parent has died; one inherited by init(1).
Compare [9807]zombie.

Node:orphaned i-node, Next:[9808]orthogonal, Previous:[9809]orphan,
Up:[9810]= O =

orphaned i-node /or'f*nd i:'nohd/ n.

[Unix] 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 no longer serving a useful function within
some organization, esp. [9811]lion food without subordinates.

Node:orthogonal, Next:[9812]OS, Previous:[9813]orphaned i-node,
Up:[9814]= O =

orthogonal adj.

[from mathematics] 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...."

Node:OS, Next:[9815]OS/2, Previous:[9816]orthogonal, Up:[9817]= O =

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
"[9818]OS and JEDGAR" in Appendix A.

Node:OS/2, Next:[9819]OSS, Previous:[9820]OS, Up:[9821]= O =

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. Often called `Half-an-OS'. Mentioning it is usually good for a
cheap laugh among hackers -- the design was so [9822]baroque, and the
implementation of 1.x so bad, that 3 years after introduction you
could still count the major [9823]apps shipping for it on the fingers
of two hands -- in unary. The 2.x versions are said to have improved
somewhat, and informed hackers now rate them superior to Microsoft
Windows (an endorsement which, however, could easily be construed as
damning with faint praise). See [9824]monstrosity, [9825]cretinous,
[9826]second-system effect.

Node:OSS, Next:[9827]OSU, Previous:[9828]OS/2, Up:[9829]= O =


Written-only acronym for "Open Source Software" (see [9830]open
source. This is a rather ugly [9831]TLA, and the principals in the
open-source movement don't use it, but it has (perhaps inevitably)
spread through the trade press like kudzu.

Node:OSU, Next:[9832]OTOH, Previous:[9833]OSS, Up:[9834]= O =

OSU /O-S-U/ n. obs.

[TMRC] Acronym for Officially Sanctioned User; a user who is
recognized as such by the computer authorities and allowed to use the
computer above the objections of the security monitor.

Node:OTOH, Next:[9835]out-of-band, Previous:[9836]OSU, Up:[9837]= O =


[Usenet; very common] On The Other Hand.

Node:out-of-band, Next:[9838]overclock, Previous:[9839]OTOH,
Up:[9840]= O =

out-of-band adj.

[from telecommunications and network theory] 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 a nonnegative integral
value, but indicate failure with an out-of-band return value of -1.
Compare [9841]hidden flag, [9842]green bytes, [9843]fence. 2. Also
sometimes used to describe what communications people call `shift
characters', such as 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 [9844]snail-mail.

Node:overclock, Next:[9845]overflow bit, Previous:[9846]out-of-band,
Up:[9847]= O =

overclock /oh'vr-klok'/ vt.

To operate a CPU or other digital logic device at a rate higher than
it was designed for, under the assumption that the manufacturer put
some [9848]slop into the specification to account for manufacturing
tolerances. Overclocking something can result in intermittent
[9849]crashes, and can even burn things out, since power dissipation
is directly proportional to [9850]clock frequency. People who make a
hobby of this are sometimes called "overclockers"; they are thrilled
that they can run their 450MHz CPU at 500MHz, even though they can
only tell the difference by running a [9851]benchmark program.

Node:overflow bit, Next:[9852]overflow pdl, Previous:[9853]overclock,
Up:[9854]= O =

overflow bit n.

1. [techspeak] A [9855]flag on some processors indicating an attempt
to calculate a result too large for a register to hold. 2. More
generally, an indication of any kind of capacity overload condition.
"Well, the [9856]Ada description was [9857]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

Node:overflow pdl, Next:[9858]overrun, Previous:[9859]overflow bit,
Up:[9860]= O =

overflow pdl n.

[MIT] The place where you put things when your [9861]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' (see [9862]PDL) seems to be primarily an MITism;
outside MIT this term is replaced by `overflow [9863]stack' (but that
wouldn't rhyme with `diddle').

Node:overrun, Next:[9864]overrun screw, Previous:[9865]overflow pdl,
Up:[9866]= O =

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 a [9867]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 [9868]thrashing at tasks, the next
person to make a request might be told "Overrun!" Compare
[9869]firehose syndrome. 3. More loosely, may refer to a [9870]buffer
overflow not necessarily related to processing time (as in
[9871]overrun screw).

Node:overrun screw, Next:[9872]P-mail, Previous:[9873]overrun,
Up:[9874]= O =

overrun screw n.

[C programming] A variety of [9875]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
[9876]smash the stack -- often resulting in [9877]heisenbugs 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
[9878]arena, producing massive lossage within malloc and often a core
dump on the next operation to use stdio(3) or malloc(3) itself. See
[9879]spam, [9880]overrun; see also [9881]memory leak, [9882]memory
smash, [9883]aliasing bug, [9884]precedence lossage, [9885]fandango on
core, [9886]secondary damage.

Node:= P =, Next:[9887]= Q =, Previous:[9888]= O =, Up:[9889]The
Jargon Lexicon

= P =

* [9890]P-mail:
* [9891]P.O.D.:
* [9892]packet over air:
* [9893]padded cell:
* [9894]page in:
* [9895]page out:
* [9896]pain in the net:
* [9897]Pangloss parity:
* [9898]paper-net:
* [9899]param:
* [9900]PARC:
* [9901]parent message:
* [9902]parity errors:
* [9903]Parkinson's Law of Data:
* [9904]parm:
* [9905]parse:
* [9906]Pascal:
* [9907]pastie:
* [9908]patch:
* [9909]patch pumpkin:
* [9910]patch space:
* [9911]path:
* [9912]pathological:
* [9913]payware:
* [9914]PBD:
* [9915]PC-ism:
* [9916]PD:
* [9917]PDL:
* [9918]PDP-10:
* [9919]PDP-20:
* [9920]PEBKAC:
* [9921]peek:
* [9922]pencil and paper:
* [9923]Pentagram Pro:
* [9924]Pentium:
* [9925]peon:
* [9926]percent-S:
* [9927]perf:
* [9928]perfect programmer syndrome:
* [9929]Perl:
* [9930]person of no account:
* [9931]pessimal:
* [9932]pessimizing compiler:
* [9933]peta-:
* [9934]PETSCII:
* [9935]PFY:
* [9936]phage:
* [9937]phase:
* [9938]phase of the moon:
* [9939]phase-wrapping:
* [9940]PHB:
* [9941]phreaker:
* [9942]phreaking:
* [9943]pico-:
* [9944]pig-tail:
* [9945]pilot error:
* [9946]ping:
* [9947]Ping O' Death:
* [9948]ping storm:
* [9949]pink wire:
* [9950]pipe:
* [9951]pistol:
* [9952]pixel sort:
* [9953]pizza box:
* [9954]plaid screen:
* [9955]plain-ASCII:
* [9956]plan file:
* [9957]platinum-iridium:
* [9958]playpen:
* [9959]playte:
* [9960]plingnet:
* [9961]plokta:
* [9962]plonk:
* [9963]plug-and-pray:
* [9964]plugh:
* [9965]plumbing:
* [9966]PM:
* [9967]pnambic:
* [9968]pod:
* [9969]point-and-drool interface:
* [9970]pointy hat:
* [9971]pointy-haired:
* [9972]poke:
* [9973]poll:
* [9974]polygon pusher:
* [9975]POM:
* [9976]pop:
* [9977]POPJ:
* [9978]poser:
* [9979]post:
* [9980]postcardware:
* [9981]posting:
* [9982]postmaster:
* [9983]PostScript:
* [9984]pound on:
* [9985]power cycle:
* [9986]power hit:
* [9987]PPN:
* [9988]pr0n:
* [9989]precedence lossage:
* [9990]prepend:
* [9991]prestidigitization:
* [9992]pretty pictures:
* [9993]prettyprint:
* [9994]pretzel key:
* [9995]priesthood:
* [9996]prime time:
* [9997]print:
* [9998]printing discussion:
* [9999]priority interrupt:
* [10000]profile:
* [10001]progasm:
* [10002]proggy:
* [10003]proglet:
* [10004]program:
* [10005]Programmer's Cheer:
* [10006]programming:
* [10007]programming fluid:
* [10008]propeller head:
* [10009]propeller key:
* [10010]proprietary:
* [10011]protocol:
* [10012]provocative maintenance:
* [10013]prowler:
* [10014]pseudo:
* [10015]pseudoprime:
* [10016]pseudosuit:
* [10017]psychedelicware:
* [10018]psyton:
* [10019]pubic directory:
* [10020]puff:
* [10021]pumpkin holder:
* [10022]pumpking:
* [10023]punched card:
* [10024]punt:
* [10025]Purple Book:
* [10026]purple wire:
* [10027]push:
* [10028]Python:

Node:P-mail, Next:[10029]P.O.D., Previous:[10030]overrun screw,
Up:[10031]= P =

P-mail n.

[rare] Physical mail, as opposed to [10032]email. Synonymous with
[10033]snail-mail, but much less common.

Node:P.O.D., Next:[10034]packet over air, Previous:[10035]P-mail,
Up:[10036]= P =

P.O.D. /P-O-D/

[rare] Acronym for `Piece Of Data' (as opposed to a code section). See
also [10037]pod.

Node:packet over air, Next:[10038]padded cell, Previous:[10039]P.O.D.,
Up:[10040]= P =

packet over air

[common among backbone ISPs] The protocol notionally being used by
Internet data attempting to traverse a physical gap or break in the
network, such as might be caused by a [10041]fiber-seeking backhoe. "I
see why you're dropping packets. You seem to have a packet over air

Node:padded cell, Next:[10042]page in, Previous:[10043]packet over
air, Up:[10044]= P =

padded cell n.

Where you put [10045]lusers 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 [10046]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
naivete (see [10047]naive). Also `padded cell environment'.

Node:page in, Next:[10048]page out, Previous:[10049]padded cell,
Up:[10050]= P =

page in v.

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

Node:page out, Next:[10054]pain in the net, Previous:[10055]page in,
Up:[10056]= P =

page out vi.

[MIT] 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 [10057]page in. Compare [10058]glitch, [10059]thinko. 2.
Syn. `swap out'; see [10060]swap.

Node:pain in the net, Next:[10061]Pangloss parity,
Previous:[10062]page out, Up:[10063]= P =

pain in the net n.

A [10064]flamer.

Node:Pangloss parity, Next:[10065]paper-net, Previous:[10066]pain in
the net, Up:[10067]= P =

Pangloss parity n.

[from Dr. Pangloss, the eternal optimist in Voltaire's "Candide"] In
corporate DP shops, a common condition of severe but equally shared
[10068]lossage resulting from the theory that as long as everyone in
the organization has the exactly the same model of obsolete computer,
everything will be fine.

Node:paper-net, Next:[10069]param, Previous:[10070]Pangloss parity,
Up:[10071]= P =

paper-net n.

Hackish way of referring to the postal service, analogizing it to a
very slow, low-reliability network. Usenet [10072]sig blocks sometimes
include a "Paper-Net:" header just before the sender's postal address;
common variants of this are "Papernet" and "P-Net". Note that the
standard [10073]netiquette guidelines discourage this practice as a
waste of bandwidth, since netters are quite unlikely to casually use
postal addresses. Compare [10074]voice-net, [10075]snail-mail,

Node:param, Next:[10077]PARC, Previous:[10078]paper-net, Up:[10079]= P

param /p*-ram'/ n.

[common] Shorthand for `parameter'. See also [10080]parm; compare
[10081]arg, [10082]var.

Node:PARC, Next:[10083]parent message, Previous:[10084]param,
Up:[10085]= P =


See [10086]XEROX PARC.

Node:parent message, Next:[10087]parity errors, Previous:[10088]PARC,
Up:[10089]= P =

parent message n.

What a [10090]followup follows up.

Node:parity errors, Next:[10091]Parkinson's Law of Data,
Previous:[10092]parent message, Up:[10093]= P =

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 memory hardware. It predates RAM; in
fact, this term is reported to have already have been in use in its
jargoin sense back in the 1960s when magnetic cores ruled. Parity
errors can also afflict mass storage and serial communication lines;
this is more serious because not always correctable.

Node:Parkinson's Law of Data, Next:[10094]parm, Previous:[10095]parity
errors, Up:[10096]= P =

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 since the mid-1980s that the memory usage of evolving
systems tends to double roughly once every 18 months. Fortunately,
memory density available for constant dollars also tends to about
double once every 18 months (see [10097]Moore's Law); unfortunately,
the laws of physics guarantee that the latter cannot continue

Node:parm, Next:[10098]parse, Previous:[10099]Parkinson's Law of Data,
Up:[10100]= P =

parm /parm/ n.

Further-compressed form of [10101]param. This term is an IBMism, and
written use is almost unknown outside IBM shops; spoken /parm/ is more
widely distributed, but the synonym [10102]arg is favored among
hackers. Compare [10103]arg, [10104]var.

Node:parse, Next:[10105]Pascal, Previous:[10106]parm, Up:[10107]= P =

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

Node:Pascal, Next:[10108]pastie, Previous:[10109]parse, Up:[10110]= P

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 [10111]Ada (see also
[10112]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
[10113]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 [10114]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.

Node:pastie, Next:[10115]patch, Previous:[10116]Pascal, Up:[10117]= P

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, might 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 [10118]tits on a keyboard.

Node:patch, Next:[10119]patch pumpkin, Previous:[10120]pastie,
Up:[10121]= P =


1. n. A temporary addition to a piece of code, usually as a
[10122]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
[10123]diff or [10124]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 [10125]HLL. Compare [10126]one-line fix. 2.
vt. To insert a patch into a piece of code. 3. [in the Unix world] n.
A [10127]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 [10128]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 [10129]tiger team penetrating a secure
military computer that illustrates the danger inherent in binary
patches (or, indeed, any patches that you can't -- or don't -- inspect
and examine before installing). They couldn't find any [10130]trap
doors 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.

Node:patch pumpkin, Next:[10131]patch space, Previous:[10132]patch,
Up:[10133]= P =

patch pumpkin n.

[Perl hackers] A notional token passed around among the members of a
project. Possession of the patch pumpkin means one has the exclusive
authority to make changes on the project's master source tree. The
implicit assumption is that `pumpkin holder' status is temporary and
rotates periodically among senior project members.

This term comes from the Perl development community, but has been
sighted elsewhere. It derives from a stuffed-toy pumpkin that was
passed around at a development shop years ago as the access control
for a shared backup-tape drive.

Node:patch space, Next:[10134]path, Previous:[10135]patch pumpkin,
Up:[10136]= P =

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 near-universal use of compilers and interpreters has made
this term rare; it is now primarily historical outside IBM shops. See
[10137]patch (sense 4), [10138]zap (sense 4), [10139]hook.

Node:path, Next:[10140]pathological, Previous:[10141]patch space,
Up:[10142]= P =

path n.

1. A [10143]bang path or explicitly routed [10144]Internet address; a
node-by-node specification of a link between two machines. Though
these are now obsolete as a form of addressing, they still show up in
diagnostics and trace headers ocvcasionally (e.g. in NNTP headers). 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 [10145]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).

Node:pathological, Next:[10146]payware, Previous:[10147]path,
Up:[10148]= P =

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 they will happen so
infrequently (if at all) that it doesn't seem worth going to the extra
trouble to handle that case (see sense 1).

Node:payware, Next:[10149]PBD, Previous:[10150]pathological,
Up:[10151]= P =

payware /pay'weir/ n.

Commercial software. Oppose [10152]shareware or [10153]freeware.

Node:PBD, Next:[10154]PC-ism, Previous:[10155]payware, Up:[10156]= P =

PBD /P-B-D/ n.

[abbrev. of `Programmer Brain Damage'] Applied to bug reports
revealing places where the program was obviously broken by an
incompetent or short-sighted programmer. Compare [10157]UBD; see also

Node:PC-ism, Next:[10159]PD, Previous:[10160]PBD, Up:[10161]= P =

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 running
DOS, e.g., by busy-waiting on a hardware register, direct diddling of
screen memory, or using hard timing loops. Compare [10162]ill-behaved,
[10163]vaxism, [10164]unixism. Also, `PC-ware' n., a program full of
PC-isms on a machine with a more capable operating system. Pejorative.

Node:PD, Next:[10165]PDL, Previous:[10166]PC-ism, Up:[10167]= P =

PD /P-D/ adj.

[common] Abbreviation for `public domain', applied to software
distributed over [10168]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 [10169]snarf a copy. See [10170]copyleft.

Node:PDL, Next:[10171]PDP-10, Previous:[10172]PD, Up:[10173]= P =

PDL /P-D-L/, /pid'l/, /p*d'l/ or /puhd'l/

1. n. `Program Design Language'. Any of a large class of formal and
profoundly useless pseudo-languages in which [10174]management forces
one to design programs. Too often, management expects PDL descriptions
to be maintained in parallel with the code, imposing massive overhead
to little or no benefit. See also [10175]flowchart. 2. v. To design
using a program design language. "I've been pdling so long my eyes
won't focus beyond 2 feet." 3. 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
[10176]PostScript language, but there are many others, such as Xerox
InterPress, etc. 4. In ITS days, the preferred MITism for
[10177]stack. See [10178]overflow pdl. 5. Dave Lebling, one of the
co-authors of [10179]Zork; (his [10180]network address on the ITS
machines was at one time pdl@dms).

Node:PDP-10, Next:[10181]PDP-20, Previous:[10182]PDL, Up:[10183]= P =

PDP-10 n.

[Programmed Data Processor model 10] 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 [10184]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 [10185]Foonly and [10186]Mars.) This event
spelled the doom of [10187]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 [10188]TOPS-10, [10189]ITS,
[10190]BLT, [10191]DDT, [10192]DPB, [10193]EXCH, [10194]HAKMEM,
[10195]LDB, [10196]pop, [10197]push. See also

Node:PDP-20, Next:[10199]PEBKAC, Previous:[10200]PDP-10, Up:[10201]= P

PDP-20 n.

The most famous computer that never was. [10202]PDP-10 computers
running the [10203]TOPS-10 operating system were labeled
`DECsystem-10' as a way of differentiating them from the PDP-11. Later
on, those systems running [10204]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).

Node:PEBKAC, Next:[10205]peek, Previous:[10206]PDP-20, Up:[10207]= P =

PEBKAC /peb'kak/

[Abbrev., "Problem Exists Between Keyboard And Chair"] Used by support
people, particularly at call centers and help desks. Not used with the
public. Denotes pilot error as the cause of the crash, especially
stupid errors that even a [10208]luser could figure out. Very
derogatory. Usage: "Did you ever figure out why that guy couldn't
print?" "Yeah, he kept cancelling the operation before it could
finish. PEBKAC."

Node:peek, Next:[10209]pencil and paper, Previous:[10210]PEBKAC,
Up:[10211]= P =

peek n.,vt.

(and [10212]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 [10213]HLL (peek
reads memory, poke modifies it). Much hacking on small, non-MMU micros
used to consist 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
circulated (see [10214]interrupt list). The results of `poke's at
these addresses may be highly useful, mildly amusing, useless but
neat, or (most likely) total [10215]lossage (see [10216]killer poke).

Since a [10217]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 [10218]newbie. (Of course, OS kernels often have to do exactly
this; a real kernel hacker would unhesitatingly, if unportably, assign
an absolute address to a pointer variable and indirect through it.)

Node:pencil and paper, Next:[10219]Pentagram Pro,
Previous:[10220]peek, Up:[10221]= P =

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.

Node:Pentagram Pro, Next:[10222]Pentium, Previous:[10223]pencil and
paper, Up:[10224]= P =

Pentagram Pro n.

A humorous corruption of "Pentium Pro", with a Satanic reference,
implying that the chip is inherently [10225]evil. Often used with "666
MHz"; there is a T-shirt. See [10226]Pentium

Node:Pentium, Next:[10227]peon, Previous:[10228]Pentagram Pro,
Up:[10229]= P =

Pentium n.

The name given to Intel's P5 chip, the successor to the 80486. The
name was chosen because of difficulties Intel had in trademarking a
number. It suggests the number five (implying 586) while (according to
Intel) conveying a meaning of strength "like titanium". Among hackers,
the plural is frequently `pentia'. See also [10230]Pentagram Pro.

Intel did not stick to this convention when naming its P6 processor
the Pentium Pro; many believe this is due to difficulties in selling a
chip with "sex" in its name. Successor chips have been called `Pentium
II' and `Pentium III'.

Node:peon, Next:[10231]percent-S, Previous:[10232]Pentium, Up:[10233]=
P =

peon n.

A person with no special ([10234]root or [10235]wheel) privileges on a
computer system. "I can't create an account on foovax for you; I'm
only a peon there."

Node:percent-S, Next:[10236]perf, Previous:[10237]peon, Up:[10238]= P

percent-S /per-sent' es'/ n.

[From the code in C's printf(3) library function used to insert an
arbitrary string argument] An unspecified person or object. "I was
just talking to some percent-s in administration." Compare

Node:perf, Next:[10240]perfect programmer syndrome,
Previous:[10241]percent-S, Up:[10242]= P =

perf /perf/ n.

Syn. [10243]chad (sense 1). The term `perfory' /per'f*-ree/ is also
heard. The term [10244]perf may also refer to the perforations
themselves, rather than the chad they produce when torn (philatelists
use it this way).

Node:perfect programmer syndrome, Next:[10245]Perl,
Previous:[10246]perf, Up:[10247]= P =

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 [10248]toy problems). "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 [10249]root mode."

Node:Perl, Next:[10250]person of no account, Previous:[10251]perfect
programmer syndrome, Up:[10252]= P =

Perl /perl/ n.

[Practical Extraction and Report Language, a.k.a. Pathologically
Eclectic Rubbish Lister] An interpreted language developed by Larry
Wall ([10253], author of patch(1) and rn(1)) and
distributed over Usenet. Superficially resembles [10254]awk, but is
much hairier, including many facilities reminiscent of sed(1) and
shells and a comprehensive Unix system-call interface. Unix sysadmins,
who are almost always incorrigible hackers, generally consider it one
of the [10255]languages of choice, and it is by far the most widely
used tool for making `live' web pages via CGI. Perl has been
described, in a parody of a famous remark about lex(1), as the
"Swiss-Army chainsaw" of Unix programming. Though Perl is very useful,
it would be a stretch to describe it as pretty or [10256]elegant;
people who like clean, spare design generally prefer [10257]Python.
See also [10258]Camel Book, [10259]TMTOWTDI.

Node:person of no account, Next:[10260]pessimal, Previous:[10261]Perl,
Up:[10262]= P =

person of no account n.

[University of California at Santa Cruz] Used when referring to a
person with no [10263]network address, frequently to forestall
confusion. Most often as part of an introduction: "This is Bill, a
person of no account, but he used to be bill@random.com". Compare
[10264]return from the dead.

Node:pessimal, Next:[10265]pessimizing compiler,
Previous:[10266]person of no account, Up:[10267]= P =

pessimal /pes'im-l/ adj.

[Latin-based antonym for `optimal'] 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.

Node:pessimizing compiler, Next:[10268]peta-,
Previous:[10269]pessimal, Up:[10270]= P =

pessimizing compiler /pes'*-mi:z`ing k*m-pi:l'r/ n.

A compiler that produces object [antonym of techspeak `optimizing
compiler'] 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.

Node:peta-, Next:[10271]PETSCII, Previous:[10272]pessimizing compiler,
Up:[10273]= P =

peta- /pe't*/ pref

[SI] See [10274]quantifiers.

Node:PETSCII, Next:[10275]PFY, Previous:[10276]peta-, Up:[10277]= P =

PETSCII /pet'skee/ n. obs.

[abbreviation of PET ASCII] The variation (many would say perversion)
of the [10278]ASCII character set used by the Commodore Business
Machines PET series of personal computers and the later Commodore C64,
C16, C128, and VIC20 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.

Node:PFY, Next:[10279]phage, Previous:[10280]PETSCII, Up:[10281]= P =

PFY n.

[Usenet; common] Abbreviation for `Pimply-Faced Youth'. A [10282]BOFH
in training, esp. one apprenticed to an elder BOFH aged in evil.

Node:phage, Next:[10283]phase, Previous:[10284]PFY, Up:[10285]= P =

phage n.

A program that modifies other programs or databases in unauthorized
ways; esp. one that propagates a [10286]virus or [10287]Trojan horse.
See also [10288]worm, [10289]mockingbird. The analogy, of course, is
with phage viruses in biology.

Node:phase, Next:[10290]phase of the moon, Previous:[10291]phage,
Up:[10292]= P =


1. n. The offset of one's waking-sleeping schedule with respect to the
standard 24-hour cycle; 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 [10293]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
altering one's cycle is called `changing phase'; `phase shifting' has
also been recently reported from Caltech. 2. `change phase the hard
way': To stay awake for a very long time in order to get into a
different phase. 3. `change phase the easy way': To stay asleep, etc.
However, some claim that either staying awake longer or sleeping
longer is easy, and that it is shortening your day or night that is
really hard (see [10294]wrap around). The `jet lag' that afflicts
travelers who cross many time-zone boundaries may be attributed to two
distinct causes: the strain of travel per se, and the strain of
changing phase. Hackers who suddenly find that they must change phase
drastically in a short period of time, particularly the hard way,
experience something very like jet lag without traveling.

Node:phase of the moon, Next:[10295]phase-wrapping,
Previous:[10296]phase, Up:[10297]= P =

phase of the moon n.

Used humorously as a random parameter on which something is said to
depend. Sometimes implies unreliability of whatever is dependent, or
that reliability seems to be dependent on conditions nobody has been
able to determine. "This feature depends on having the channel open in
mumble mode, having the foo switch set, and on the phase of the moon."
See also [10298]heisenbug.

True story: Once upon a time there was a program bug that really did
depend on the phase of the moon. There was a little subroutine that
had traditionally been used in various programs at MIT to calculate an
approximation to the moon's true phase. GLS incorporated this routine
into a LISP program that, when it wrote out a file, would print a
timestamp line almost 80 characters long. Very occasionally the first
line of the message would be too long and would overflow onto the next
line, and when the file was later read back in the program would
[10299]barf. The length of the first line depended on both the precise
date and time and the length of the phase specification when the
timestamp was printed, and so the bug literally depended on the phase
of the moon!

The first paper edition of the Jargon File (Steele-1983) included an
example of one of the timestamp lines that exhibited this bug, but the
typesetter `corrected' it. This has since been described as the
phase-of-the-moon-bug bug.

However, beware of assumptions. A few years ago, engineers of CERN
(European Center for Nuclear Research) were baffled by some errors in
experiments conducted with the LEP particle accelerator. As the
formidable amount of data generated by such devices is heavily
processed by computers before being seen by humans, many people
suggested the software was somehow sensitive to the phase of the moon.
A few desperate engineers discovered the truth; the error turned out
to be the result of a tiny change in the geometry of the 27km
circumference ring, physically caused by the deformation of the Earth
by the passage of the Moon! This story has entered physics folklore as
a Newtonian vengeance on particle physics and as an example of the
relevance of the simplest and oldest physical laws to the most modern

Node:phase-wrapping, Next:[10300]PHB, Previous:[10301]phase of the
moon, Up:[10302]= P =

phase-wrapping n.

[MIT] Syn. [10303]wrap around, sense 2.

Node:PHB, Next:[10304]phreaker, Previous:[10305]phase-wrapping,
Up:[10306]= P =


[Usenet; common; rarely spoken] Abbreviation, "Pointy-Haired Boss".
From the [10307]Dilbert character, the archetypal halfwitted
middle-[10308]management type. See also [10309]pointy-haired.

Node:phreaker, Next:[10310]phreaking, Previous:[10311]PHB, Up:[10312]=
P =

phreaker /freek'r/ n.

One who engages in [10313]phreaking. See also [10314]blue box.

Node:phreaking, Next:[10315]pico-, Previous:[10316]phreaker,
Up:[10317]= P =

phreaking /freek'ing/ n.

[from `phone phreak'] 1. The art and science of [10318]cracking the
phone network (so as, for example, to make free long-distance calls).
2. By extension, security-cracking in any other context (especially,
but not exclusively, on communications networks) (see

At one time phreaking was a semi-respectable activity among hackers;
there was a gentleman's agreement that phreaking as an intellectual
game and a form of exploration was OK, but serious theft of services
was taboo. There was significant crossover between the hacker
community and the hard-core phone phreaks who ran semi-underground
networks of their own through such media as the legendary "TAP
Newsletter". This ethos began to break down in the mid-1980s as wider
dissemination of the techniques put them in the hands of less
responsible phreaks. Around the same time, changes in the phone
network made old-style technical ingenuity less effective as a way of
hacking it, so phreaking came to depend more on overtly criminal acts
such as stealing phone-card numbers. The crimes and punishments of
gangs like the `414 group' turned that game very ugly. A few old-time
hackers still phreak casually just to keep their hand in, but most
these days have hardly even heard of `blue boxes' or any of the other
paraphernalia of the great phreaks of yore.

Node:pico-, Next:[10320]pig-tail, Previous:[10321]phreaking,
Up:[10322]= P =

pico- pref.

[SI: a quantifier meaning * 10^-12] Smaller than [10323]nano-; used in
the same rather loose connotative way as [10324]nano- and micro-. This
usage is not yet common in the way [10325]nano- and [10326]micro- are,
but should be instantly recognizable to any hacker. See also
[10327]quantifiers, [10328]micro-.

Node:pig-tail, Next:[10329]pilot error, Previous:[10330]pico-,
Up:[10331]= P =


[radio hams] A short piece of cable with two connectors on each end
for converting between one connector type and another. Common
pig-tails are 9-to-25-pin serial-port converters and cables to connect
PCMCIA network cards to an RJ-45 network cable.

Node:pilot error, Next:[10332]ping, Previous:[10333]pig-tail,
Up:[10334]= P =

pilot error n.

[Sun: from aviation] A user's misconfiguration or misuse of a piece of
software, producing apparently buglike results (compare [10335]UBD).
"Joe Luser reported a bug in sendmail that causes it to generate bogus
headers." "That's not a bug, that's pilot error. His sendmail.cf is

Node:ping, Next:[10336]Ping O' Death, Previous:[10337]pilot error,
Up:[10338]= P =


[from the submariners' term for a sonar pulse] 1. n. Slang term for a
small network message (ICMP ECHO) sent by a computer to check for the
presence and alertness of another. The Unix command ping(8) can be
used to do this manually (note that ping(8)'s author denies the
widespread folk etymology that the name was ever intended as acronym

Book of the day: