The Hacker's Dictionary

Versió HTML de Lluís de Yzaguirre i Maura

Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza @ upf.es


P-mail
====== n. Physical mail, as opposed to email. Synonymous
with snail-mail.
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 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 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 naivet'e (see
naive). 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!"
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 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 netiquette
guidelines discourage this practice as a waste of bandwidth, since
netters are quite unlikely to casually use postal addresses.
Compare voice-net, snail-mail, P-mail.
param
===== /p*-ram'/ n. Shorthand for `parameter'. See also
parm; compare arg, var.
PARC
==== n. See XEROX PARC.
parent message
============== n. What a followup follows up.
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. Parity errors can also afflict mass storage and
serial communication lines; this is more serious because not always
correctable.
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 also 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, 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 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 patches that you can't --- or don't ---
inspect and examine before installing). They couldn't find any
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.

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 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).
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
=== /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 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 "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 "PostScript" language, but there are many
others, such as Xerox InterPress, etc.
pdl
=== /pid'l/ or /puhd'l/ [abbreviation for `Push Down List'] n.
1. In ITS days, the preferred MITism for stack. See
overflow pdl. 2. Dave Lebling, one of the co-authors of
Zork; (his network address on the ITS machines was at one
time pdl@dms). 3. Rarely, any sense of PDL, as these are not
invariably capitalized.
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 and Mars.) 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. Syn. chad (sense 1). The term `perfory'
/per'f*-ree/ is also heard. The term perf may also refer to
the perforations 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 mode."
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.
person of no account
==================== [University of California at Santa Cruz] n.
Used when referring to a person with no 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 return from the dead.
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.
phage
===== n. A program that modifies other programs or databases in
unauthorized ways; esp. one that propagates a virus or
Trojan horse. See also worm, mockingbird. The
analogy, of course, is with phage viruses in biology.
phase
===== 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 [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
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.
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
heisenbug.

True story: Once upon a time there was a 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 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.

phase-wrapping
============== [MIT] n. Syn. wrap around, sense 2.
phreaking
========= /freek'ing/ [from `phone phreak'] n. 1. The art and
science of 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 cracking).

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.

pico-
===== [SI: a quantifier
meaning * 10^-12]
pref. Smaller than nano-; used in the same rather loose
connotative way as nano- and micro-. This usage is not yet
common in the way nano- and micro- are, but should be
instantly recognizable to any hacker. See also "quantifiers",
micro-.
pig, run like a
=============== v. To run very slowly on given hardware, said of
software. Distinct from hog.
pilot error
=========== [Sun: from aviation] n. A user's misconfiguration or
misuse of a piece of software, producing apparently buglike results
(compare 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 hosed."
ping
==== [from the TCP/IP acronym `Packet INternet Groper', prob.
originally contrived to match 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). Occasionally used as a phone greeting. See ACK,
also ENQ. 2. vt. To verify the presence of. 3. vt. To get
the attention of. 4. vt. To send a message to all members of a
mailing list requesting an ACK (in order to verify that
everybody's addresses are reachable). "We haven't heard much of
anything from Geoff, but he did respond with an ACK both times I
pinged jargon-friends." 5. n. A quantum packet of happiness.
People who are very happy tend to exude pings; furthermore, one can
intentionally create pings and aim them at a needy party (e.g., a
depressed person). This sense of ping may appear as an
exclamation; "Ping!" (I'm happy; I am emitting a quantum of
happiness; I have been struck by a quantum of happiness). The form
"pingfulness", which is used to describe people who exude pings,
also occurs. (In the standard abuse of language, "pingfulness"
can also be used as an exclamation, in which case it's a much
stronger exclamation than just "ping"!). Oppose blargh.

The funniest use of `ping' to date was described in January 1991 by
Steve Hayman on the USENET group comp.sys.next. He was trying
to isolate a faulty cable segment on a TCP/IP Ethernet hooked up to
a NeXT machine, and got tired of having to run back to his console
after each cabling tweak to see if the ping packets were getting
through. So he used the sound-recording feature on the NeXT, then
wrote a script that repeatedly invoked `ping(8)', listened for
an echo, and played back the recording on each returned packet.
Result? A program that caused the machine to repeat, over and
over, "Ping ... ping ... ping ..." as long as the
network was up. He turned the volume to maximum, ferreted through
the building with one ear cocked, and found a faulty tee connector
in no time.

Pink-Shirt Book
=============== "The Peter Norton Programmer's Guide to the IBM
PC". The original cover featured a picture of Peter Norton with a
silly smirk on his face, wearing a pink shirt. Perhaps in
recognition of this usage, the current edition has a different
picture of Norton wearing a pink shirt. See also "book titles".
PIP
=== /pip/ [Peripheral Interchange Program] vt.,obs. To copy;
from the program PIP on CP/M, RSX-11, RSTS/E, TOPS-10, and OS/8
(derived from a utility on the PDP-6) that was used for file
copying (and in OS/8 and RT-11 for just about every other file
operation you might want to do). It is said that when the program
was originated, during the development of the PDP-6 in 1963, it was
called ATLATL (`Anything, Lord, to Anything, Lord'; this played on
the Nahuatl word `atlatl' for a spear-thrower, with connotations
of utility and primitivity that were no doubt quite intentional).
See also BLT, dd, cat.
pistol
====== [IBM] n. A tool that makes it all too easy for you to
shoot yourself in the foot. "UNIX `rm *' makes such a nice
pistol!"
pizza box
========= [Sun] n. The largish thin box housing the electronics
in (especially Sun) desktop workstations, so named because of its
size and shape and the dimpled pattern that looks like air holes.

Two meg single-platter removable disk packs used to be called
pizzas, and the huge drive they were stuck into was referred to as
a pizza oven. It's an index of progress that in the old days just
the disk was pizza-sized, while now the entire computer is.

pizza, ANSI standard
==================== /an'see stan'd*rd peet'z*/ [CMU] Pepperoni
and mushroom pizza. Coined allegedly because most pizzas ordered
by CMU hackers during some period leading up to mid-1990 were of
that flavor. See also rotary debugger; compare [tea, ISO
standard cup of}.
plaid screen
============ [XEROX PARC] n. A `special effect' that occurs
when certain kinds of memory smashes overwrite the control
blocks or image memory of a bit-mapped display. The term "salt and
pepper" may refer to a different pattern of similar origin.
Though the term as coined at PARC refers to the result of an error,
some of the X demos induce plaid-screen effects deliberately
as a display hack.
plain-ASCII
=========== /playn-as'kee/ Syn. flat-ASCII.
plan file
========= [UNIX] n. On systems that support finger, the
`.plan' file in a user's home directory is displayed when the user
is fingered. This feature was originally intended to be used to
keep potential fingerers apprised of one's location and near-future
plans, but has been turned almost universally to humorous and
self-expressive purposes (like a sig block). See also
Hacking X for Y.

A recent innovation in plan files has been the introduction of
"scrolling plan files" which are one-dimensional animations made
using only the printable ASCII character set, carriage return and
line feed, avoiding terminal specific escape sequences, since the
finger command will (for security reasons; see
letterbomb) not pass the escape character.

Scrolling .plan files have become art forms in miniature, and some
sites have started competitions to find who can create the longest
running, funniest, and most original animations. Various animation
characters include:

Centipede:
mmmmme
Lorry/Truck:
oo-oP
Andalusian Video Snail:
_@/

and a compiler (ASP) is available on USENET for producing them.
See also twirling baton.

platinum-iridium
================ adj. Standard, against which all others of the
same category are measured. Usage: silly. The notion is that one
of whatever it is has actually been cast in platinum-iridium alloy
and placed in the vault beside the Standard Kilogram at the
International Bureau of Weights and Measures near Paris. (From
1889 to 1960, the meter was defined to be the distance between two
scratches in a platinum-iridium bar kept in that same vault --- this
replaced an earlier definition as 10^(-7) times the distance
between the North Pole and the Equator along a meridian through
Paris; unfortunately, this had been based on an inexact value of
the circumference of the Earth. From 1960 to 1984 it was defined
to be 1650763.73 wavelengths of the orange-red line of krypton-86
propagating in a vacuum. It is now defined as the length of the
path traveled by light in a vacuum in the time interval of
1/299,792,458 of a second. The kilogram is now the only unit of
measure officially defined in terms of a unique artifact.) "This
garbage-collection algorithm has been tested against the
platinum-iridium cons cell in Paris." Compare golden.
playpen
======= [IBM] n. A room where programmers work. Compare [salt
mines}.
playte
====== /playt/ 16 bits, by analogy with nybble and
"byte". Usage: rare and extremely silly. See also dynner
and crumb.
plingnet
======== /pling'net/ n. Syn. UUCPNET. Also see
"Commonwealth Hackish", which uses `pling' for bang (as in
bang path).
plokta
====== /plok't*/ [Acronym for `Press Lots Of Keys To Abort']
v. To press random keys in an attempt to get some response from
the system. One might plokta when the abort procedure for a
program is not known, or when trying to figure out if the system is
just sluggish or really hung. Plokta can also be used while trying
to figure out any unknown key sequence for a particular operation.
Someone going into `plokta mode' usually places both hands flat
on the keyboard and mashes them down, hoping for some useful
response.

A slightly more directed form of plokta can often be seen in mail
messages or USENET articles from new users --- the text might end
with

^X^C
q
quit
:q
^C
end
x
exit
ZZ
^D
?
help

as the user vainly tries to find the right exit sequence, with the
incorrect tries piling up at the end of the message....

plonk
===== [USENET: possibly influenced by British slang `plonk' for
cheap booze, or `plonker' for someone behaving stupidly] The sound
a newbie makes as he falls to the bottom of a kill file.
Used almost exclusively in the newsgroup talk.bizarre,
this term (usually written "*plonk*") is a form of public
ridicule.
plugh
===== /ploogh/ [from the ADVENT game] v. See xyzzy.
plumbing
======== [UNIX] n. Term used for shell code, so called
because of the prevalence of `pipelines' that feed the output of
one program to the input of another. Under UNIX, user utilities
can often be implemented or at least prototyped by a suitable
collection of pipelines and temp-file grinding encapsulated in a
shell script; this is much less effort than writing C every time,
and the capability is considered one of UNIX's major winning
features. A few other OSs such as IBM's VM/CMS support similar
facilities. Esp. used in the construction `hairy plumbing'
(see hairy). "You can kluge together a basic spell-checker
out of `sort(1)', `comm(1)', and `tr(1)' with a
little plumbing." See also tee.
PM
== /P-M/ 1. v. (from `preventive maintenance') To bring down
a machine for inspection or test purposes. See [provocative
maintenance}; see also scratch monkey. 2. n. Abbrev. for
`Presentation Manager', an elephantine OS/2 graphical user
interface.
pnambic
======= /p*-nam'bik/ [Acronym from the scene in the film
version of "The Wizard of Oz" in which the true nature of the
wizard is first discovered: "Pay no attention to the man behind
the curtain."] 1. A stage of development of a process or function
that, owing to incomplete implementation or to the complexity of
the system, requires human interaction to simulate or replace some
or all of the actions, inputs, or outputs of the process or
function. 2. Of or pertaining to a process or function whose
apparent operations are wholly or partially falsified.
3. Requiring prestidigitization.

The ultimate pnambic product was "Dan Bricklin's Demo", a program
which supported flashy user-interface design prototyping. There is
a related maxim among hackers: "Any sufficiently advanced
technology is indistinguishable from a rigged demo." See
magic, sense 1, for illumination of this point.

pod
=== [allegedly from abbreviation POD for `Prince Of Darkness'] n. A
Diablo 630 (or, latterly, any letter-quality impact printer). From
the DEC-10 PODTYPE program used to feed formatted text to it. Not
to be confused with P.O.D..
point-and-drool interface
========================= n. Parody of the techspeak term
`point-and-shoot interface', describing a windows, icons, and
mouse-based interface such as is found on the Macintosh. The
implication, of course, is that such an interface is only suitable
for idiots. See for the rest of us, WIMP environment,
Macintrash, drool-proof paper. Also `point-and-grunt
interface'.
poke
==== n.,vt. See peek.
poll
==== v.,n. 1. [techspeak] The action of checking the status of an
input line, sensor, or memory location to see if a particular
external event has been registered. 2. To repeatedly call or check
with someone: "I keep polling him, but he's not answering his
phone; he must be swapped out." 3. To ask. "Lunch? I poll for
a takeout order daily."
polygon pusher
============== n. A chip designer who spends most of his or her
time at the physical layout level (which requires drawing
*lots* of multi-colored polygons). Also `rectangle
slinger'.
POM
=== /P-O-M/ n. Common abbreviation for phase of the moon. Usage:
usually in the phrase `POM-dependent', which means flaky.
pop
=== /pop/ [from the operation that removes the top of a stack,
and the fact that procedure return addresses are usually saved on
the stack] (also capitalized `POP') 1. vt. To remove something from
a stack or pdl. If a person says he/she has popped
something from his stack, that means he/she has finally finished
working on it and can now remove it from the list of things hanging
overhead. 2. When a discussion gets to a level of detail so deep
that the main point of the discussion is being lost, someone will
shout "Pop!", meaning "Get back up to a higher level!" The
shout is frequently accompanied by an upthrust arm with a finger
pointing to the ceiling.
POPJ
==== /pop'J/ [from a PDP-10 return-from-subroutine
instruction] n.,v. To return from a digression. By verb doubling,
"Popj, popj" means roughly "Now let's see, where were we?"
See RTI.
post
==== v. To send a message to a mailing list or newsgroup.
Distinguished in context from `mail'; one might ask, for
example: "Are you going to post the patch or mail it to known
users?"
postcardware
============ n. [Shareware] that borders on freeware, in
that the author requests only that satisfied users send a postcard
of their home town or something. (This practice, silly as it might
seem, serves to remind users that they are otherwise getting
something for nothing, and may also be psychologically related to
real estate `sales' in which $1 changes hands just to keep the
transaction from being a gift.)
posting
======= n. Noun corresp. to v. post (but note that
post can be nouned). Distinguished from a `letter' or ordinary
email message by the fact that it is broadcast rather than
point-to-point. It is not clear whether messages sent to a small
mailing list are postings or email; perhaps the best dividing line
is that if you don't know the names of all the potential
recipients, it is a posting.
postmaster
========== n. The email contact and maintenance person at a site
connected to the Internet or UUCPNET. Often, but not always, the
same as the admin. The Internet standard for electronic mail
(RFC-822) requires each machine to have a `postmaster' address;
usually it is aliased to this person.
PostScript
========== : n. A Page Description Language (PDL), based on
work originally done by John Gaffney at Evans and Sutherland in
1976, evolving through `JaM' (`John and Martin', Martin Newell) at
XEROX PARC, and finally implemented in its current form by
John Warnock et al. after he and Chuck Geschke founded Adobe
Systems Incorporated in 1982. PostScript gets its leverage by
using a full programming language, rather than a series of
low-level escape sequences, to describe an image to be printed on a
laser printer or other output device (in this it parallels
EMACS, which exploited a similar insight about editing
tasks). It is also noteworthy for implementing on-the fly
rasterization, from Bezier curve descriptions, of high-quality
fonts at low (e.g. 300 dpi) resolution (it was formerly believed
that hand-tuned bitmap fonts were required for this task). Hackers
consider PostScript to be among the most elegant hacks of all time,
and the combination of technical merits and widespread availability
has made PostScript the language of choice for graphical
output.
pound on
======== vt. Syn. bang on.
power cycle
=========== vt. (also, `cycle power' or just `cycle') To
power off a machine and then power it on immediately, with the
intention of clearing some kind of hung or gronked
state. Syn. 120 reset; see also Big Red Switch. Compare
Vulcan nerve pinch, bounce (sense 4), and boot, and
see the AI Koan in "A Selection of AI Koans" (in
Appendix A) about Tom Knight and the novice.
power hit
========= n. A spike or drop-out in the electricity supplying
your machine; a power glitch. These can cause crashes and
even permanent damage to your machine(s).
PPN
=== /P-P-N/, /pip'n/ [from `Project-Programmer Number'] n. A
user-ID under "TOPS-10" and its various mutant progeny at SAIL,
BBN, CompuServe, and elsewhere. Old-time hackers from the PDP-10
era sometimes use this to refer to user IDs on other systems as
well.
precedence lossage
================== /pre's*-dens los'*j/ [C programmers] n.
Coding error in an expression due to unexpected grouping of
arithmetic or logical operators by the compiler. Used esp. of
certain common coding errors in C due to the nonintuitively low
precedence levels of `&', `|', `^', `<<',
and `>>' (for this reason, experienced C programmers
deliberately forget the language's baroque precedence
hierarchy and parenthesize defensively). Can always be avoided by
suitable use of parentheses. LISP fans enjoy pointing out
that this can't happen in *their* favorite language, which
eschews precedence entirely, requiring one to use explicit
parentheses everywhere. See aliasing bug, memory leak,
memory smash, smash the stack, fandango on core,
overrun screw.
prepend
======= /pree`pend'/ [by analogy with `append'] vt. To
prefix. As with `append' (but not `prefix' or `suffix' as a
verb), the direct object is always the thing being added and not
the original word (or character string, or whatever). "If you
prepend a semicolon to the line, the translation routine will pass
it through unaltered."
prestidigitization
================== /pres`t*-di`j*-ti:-zay'sh*n/ n. 1. The act
of putting something into digital notation via sleight of hand.
2. Data entry through legerdemain.
pretty pictures
=============== n. [scientific computation] The next step up from
numbers. Interesting graphical output from a program that may
not have any sensible relationship to the system the program is
intended to model. Good for showing to management.
prettyprint
=========== /prit'ee-print/ (alt. `pretty-print') v. 1. To
generate `pretty' human-readable output from a hairy
internal representation; esp. used for the process of
grinding (sense 1) program code, and most esp. for LISP code.
2. To format in some particularly slick and nontrivial way.
pretzel key
=========== [Mac users] n. See feature key.
prime time
========== [from TV programming] n. Normal high-usage hours on a
timesharing system; the day shift. Avoidance of prime time was
traditionally given as a major reason for night mode hacking.
The rise of the personal workstation has rendered this term, along
with timesharing itself, almost obsolete. The hackish tendency to
late-night hacking runs has changed not a bit.
printing discussion
=================== [XEROX PARC] n. A protracted, low-level,
time-consuming, generally pointless discussion of something only
peripherally interesting to all.
priority interrupt
================== [from the hardware term] n. Describes any
stimulus compelling enough to yank one right out of hack mode.
Classically used to describe being dragged away by an SO for
immediate sex, but may also refer to more mundane interruptions
such as a fire alarm going off in the near vicinity. Also called
an NMI (non-maskable interrupt), especially in PC-land.
profile
======= n. 1. A control file for a program, esp. a text file
automatically read from each user's home directory and intended to
be easily modified by the user in order to customize the program's
behavior. Used to avoid hardcoded choices (see also [dot
file}, rc file). 2. [techspeak] A report on the amounts of
time spent in each routine of a program, used to find and tune
away the hot spots in it. This sense is often verbed. Some
profiling modes report units other than time (such as call counts)
and/or report at granularities other than per-routine, but the idea
is similar.
proglet
======= /prog'let/ [UK] n. A short extempore program
written to meet an immediate, transient need. Often written in
BASIC, rarely more than a dozen lines long, and containing no
subroutines. The largest amount of code that can be written off
the top of one's head, that does not need any editing, and that
runs correctly the first time (this amount varies significantly
according to one's skill and the language one is using). Compare
toy program, noddy, one-liner wars.
program
======= n. 1. A magic spell cast over a computer allowing it to
turn one's input into error messages. 2. An exercise in
experimental epistemology. 3. A form of art, ostensibly intended
for the instruction of computers, which is nevertheless almost
inevitably a failure if other programmers can't understand it.
Programmer's Cheer
================== "Shift to the left! Shift to the right! Pop
up, push down! Byte! Byte! Byte!" A joke so old it has hair on
it.
programming
=========== n. 1. The art of debugging a blank sheet of paper (or,
in these days of on-line editing, the art of debugging an empty
file). 2. A pastime similar to banging one's head against a
wall, but with fewer opportunities for reward. 3. The most fun
you can have with your clothes on (although clothes are not
mandatory).
programming fluid
================= n. 1. Coffee. 2. Cola. 3. Any caffeinacious
stimulant. Many hackers consider these essential for those
all-night hacking runs. See unleaded, wirewater.
propeller head
============== n. Used by hackers, this is syn. with [computer
geek}. Non-hackers sometimes use it to describe all techies.
Prob. derives from SF fandom's tradition (originally invented by
old-time fan Ray Faraday Nelson) of propeller beanies as fannish
insignia (though nobody actually wears them except as a joke).
propeller key
============= [Mac users] n. See feature key.
proprietary
=========== adj. 1. In marketroid-speak, superior; implies a
product imbued with exclusive magic by the unmatched brilliance of
the company's own hardware or software designers. 2. In the
language of hackers and users, inferior; implies a product not
conforming to open-systems standards, and thus one that puts the
customer at the mercy of a vendor able to gouge freely on service
and upgrade charges after the initial sale has locked the customer
in.
protocol
======== n. As used by hackers, this never refers to niceties
about the proper form for addressing letters to the Papal Nuncio or
the order in which one should use the forks in a Russian-style
place setting; hackers don't care about such things. It is used
instead to describe any set of rules that allow different machines
or pieces of software to coordinate with each other without
ambiguity. So, for example, it does include niceties about the
proper form for addressing packets on a network or the order in
which one should use the forks in the Dining Philosophers Problem.
It implies that there is some common message format and an accepted
set of primitives or commands that all parties involved understand,
and that transactions among them follow predictable logical
sequences. See also handshaking, do protocol.
provocative maintenance
======================= [common ironic mutation of `preventive
maintenance'] n. Actions performed upon a machine at regularly
scheduled intervals to ensure that the system remains in a usable
state. So called because it is all too often performed by a
field servoid who doesn't know what he is doing; such
`maintenance' often *induces* problems, or otherwise
results in the machine's remaining in an *un*usable state for
an indeterminate amount of time. See also scratch monkey.
prowler
======= [UNIX] n. A daemon that is run periodically (typically
once a week) to seek out and erase core files, truncate
administrative logfiles, nuke `lost+found' directories, and
otherwise clean up the cruft that tends to pile up in the
corners of a file system. See also GFR, reaper,
skulker.
pseudo
====== /soo'doh/ [USENET: truncation of `pseudonym'] n. 1. An
electronic-mail or USENET persona adopted by a human for
amusement value or as a means of avoiding negative repercussions of
one's net.behavior; a `nom de USENET', often associated with
forged postings designed to conceal message origins. Perhaps the
best-known and funniest hoax of this type is BIFF.
2. Notionally, a flamage-generating AI program simulating a
USENET user. Many flamers have been accused of actually being such
entities, despite the fact that no AI program of the required
sophistication yet exists. However, in 1989 there was a famous
series of forged postings that used a phrase-frequency-based
travesty generator to simulate the styles of several well-known
flamers; it was based on large samples of their back postings
(compare Dissociated Press). A significant number of people
were fooled by the forgeries, and the debate over their
authenticity was settled only when the perpetrator came forward to
publicly admit the hoax.
pseudoprime
=========== n. A backgammon prime (six consecutive occupied
points) with one point missing. This term is an esoteric pun
derived from a mathematical method that, rather than determining
precisely whether a number is prime (has no divisors), uses a
statistical technique to decide whether the number is `probably'
prime. A number that passes this test is called a pseudoprime.
The hacker backgammon usage stems from the idea that a pseudoprime
is almost as good as a prime: it does the job of a prime until
proven otherwise, and that probably won't happen.
pseudosuit
========== /soo'doh-s[y]oot`/ n. A suit wannabee; a hacker
who has decided that he wants to be in management or administration
and begins wearing ties, sport coats, and (shudder!) suits
voluntarily. It's his funeral. See also lobotomy.
psychedelicware
=============== /si:`k*-del'-ik-weir/ [UK] n. Syn.
display hack. See also smoking clover.
psyton
====== /si:'ton/ [TMRC] n. The elementary particle carrying the
sinister force. The probability of a process losing is
proportional to the number of psytons falling on it. Psytons are
generated by observers, which is why demos are more likely to fail
when lots of people are watching. [This term appears to have been
largely superseded by bogon; see also quantum bogodynamics.
--- ESR]
pubic directory
=============== [NYU] (also `pube directory' /pyoob'
d*-rek't*-ree/) n. The `pub' (public) directory on a machine that
allows FTP access. So called because it is the default
location for SEX (sense 1). "I'll have the source in the
pube directory by Friday."
puff
==== vt. To decompress data that has been crunched by Huffman
coding. At least one widely distributed Huffman decoder program
was actually *named* `PUFF', but these days it is usually
packaged with the encoder. Oppose huff.
punched card
============ : alt. `punch card' [techspeak] n.obs. The
signature medium of computing's Stone Age, now obsolescent
outside of some IBM shops. The punched card actually predated
computers considerably, originating in 1801 as a control device for
mechanical looms. The version patented by Hollerith and used with
mechanical tabulating machines in the 1890 U.S. Census was a piece
of cardboard about 90 mm by 215 mm. There is a widespread myth
that it was designed to fit in the currency trays used for that
era's larger dollar bills, but recent investigations have falsified
this.

IBM (which originated as a tabulating-machine manufacturer) married
the punched card to computers, encoding binary information as
patterns of small rectangular holes; one character per column,
80 columns per card. Other coding schemes, sizes of card, and
hole shapes were tried at various times.

The 80-column width of most character terminals is a legacy of the
IBM punched card; so is the size of the quick-reference cards
distributed with many varieties of computers even today. See
chad, chad box, eighty-column mind, green card,
dusty deck, lace card, card walloper.

punt
==== [from the punch line of an old joke referring to American
football: "Drop back 15 yards and punt!"] v. 1. To give up,
typically without any intention of retrying. "Let's punt the
movie tonight." "I was going to hack all night to get this
feature in, but I decided to punt" may mean that you've decided
not to stay up all night, and may also mean you're not ever even
going to put in the feature. 2. More specifically, to give up on
figuring out what the Right Thing is and resort to an
inefficient hack. 3. A design decision to defer solving a
problem, typically because one cannot define what is desirable
sufficiently well to frame an algorithmic solution. "No way to
know what the right form to dump the graph in is --- we'll punt
that for now." 4. To hand a tricky implementation problem off
to some other section of the design. "It's too hard to get the
compiler to do that; let's punt to the runtime system."
Purple Book
=========== n. 1. The "System V Interface Definition". The
covers of the first editions were an amazingly nauseating shade of
off-lavender. 2. Syn. Wizard Book. See also "[book
titles}".
purple wire
=========== [IBM] n. Wire installed by Field Engineers to work
around problems discovered during testing or debugging. These are
called `purple wires' even when (as is frequently the case) their
actual physical color is yellow.... Compare blue wire,
yellow wire, and red wire.
push
==== [from the operation that puts the current information on a
stack, and the fact that procedure return addresses are saved on a
stack] (Also PUSH /push/ or PUSHJ /push'J/, the latter based on
the PDP-10 procedure call instruction.) 1. To put something onto a
stack or pdl. If one says that something has been pushed
onto one's stack, it means that the Damoclean list of things
hanging over ones's head has grown longer and heavier yet. This
may also imply that one will deal with it *before* other
pending items; otherwise one might say that the thing was `added
to my queue'. 2. vi. To enter upon a digression, to save the
current discussion for later. Antonym of pop; see also
stack, pdl.