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 door}s or any way to penetrate security of IBM's OS, so
they made a site visit to an IBM office (remember, these were
official military types who were purportedly on official business),
swiped some IBM stationery, and created a fake patch. The patch
was actually the trapdoor they needed. The patch was distributed
at about the right time for an IBM patch, had official stationery
and all accompanying documentation, and was dutifully installed.
The installation manager very shortly thereafter learned something
about proper procedures.
:patch space: /n./ An unused block of bits left in a binary so
that it can later be modified by insertion of machine-language
instructions there (typically, the patch space is modified to
contain new code, and the superseded code is patched to contain a
jump or call to the patch space). The widening use of HLLs has
made this term rare; it is now primarily historical outside IBM
shops. See {patch} (sense 4), {zap} (sense 4), {hook}.
:path: /n./ 1. A {bang path} or explicitly routed
{{Internet address}}; a node-by-node specification of a link
between two machines. 2. [Unix] A filename, fully specified
relative to the root directory (as opposed to relative to the
current directory; the latter is sometimes called a `relative
path'). This is also called a `pathname'. 3. [Unix and MS-DOS]
The `search path', an environment variable specifying the
directories in which the {shell} (COMMAND.COM, under MS-DOS)
should look for commands. Other, similar constructs abound under
Unix (for example, the C preprocessor has a `search path' it
uses in looking for `#include' files).
:pathological: /adj./ 1. [scientific computation] Used of a
data set that is grossly atypical of normal expected input, esp.
one that exposes a weakness or bug in whatever algorithm one is
using. An algorithm that can be broken by pathological inputs may
still be useful if such inputs are very unlikely to occur in
practice. 2. When used of test input, implies that it was
purposefully engineered as a worst case. The implication in both
senses is that the data is spectacularly ill-conditioned or that
someone had to explicitly set out to break the algorithm in order
to come up with such a crazy example. 3. Also said of an unlikely
collection of circumstances. "If the network is down and comes up
halfway through the execution of that command by root, the system
may just crash." "Yes, but that's a pathological case." Often
used to dismiss the case from discussion, with the implication that
the consequences are acceptable, since 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/ /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 {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/ /n./ [abbreviation for `Push Down
List'] 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: /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 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}.
: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.
: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'/ /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
{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 (philatelists use it this way).
: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/ /n./ [Practical Extraction and Report Language,
a.k.a. Pathologically Eclectic Rubbish Lister] An interpreted
language developed by Larry Wall (<lwall@jpl.nasa.gov>, author
of `patch(1)' and `rn(1)') and distributed over Usenet.
Superficially resembles {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, 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. See also {Camel Book}.
:person of no account: /n./ [University of California at Santa
Cruz] 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/ /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.
:pessimizing compiler: /pes'*-mi:z`ing k*m-pi:l'r/ /n./ A
compiler that produces object [antonym of `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.
:peta-: /pe't*/ pref [SI] See {{quantifiers}}.
:PETSCII: /pet'skee/ /n. obs./ [abbreviation of PET ASCII] 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: /n./ [MIT] Syn. {wrap around}, sense 2.
:phreaker: /freek'r/ /n./ One who engages in
{phreaking}.
:phreaking: /freek'ing/ /n./ [from `phone phreak'] 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-: /pref./ [SI: a quantifier
meaning * 10^-12]
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: /n./ [Sun: from aviation] 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 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 `Packet INternet
Groper'). 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/ vt.,obs. [Peripheral Interchange Program] 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: /n./ [IBM] A tool that makes it all too easy for you to
shoot yourself in the foot. "Unix `rm *' makes such a nice
pistol!"
:pixel sort: /n./ [Commodore users] Any compression routine
which irretrievably loses valuable data in the process of
{crunch}ing it. Disparagingly used for `lossy' methods such as
JPEG. The theory, of course, is that these methods are only used on
photographic images in which minor loss-of-data is not visible to
the human eye. The term `pixel sort' implies distrust of this
theory. Compare {bogo-sort}.
:pizza box: /n./ [Sun] 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: /n./ [XEROX PARC] A `special effect' that
occurs when certain kinds of {memory smash}es 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: /n./ [Unix] 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: /n./ [IBM] 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}. General discussion of such terms is under
{nybble}.
:plingnet: /pling'net/ /n./ Syn. {UUCPNET}. Also see
{{Commonwealth Hackish}}, which uses `pling' for {bang} (as
in {bang path}).
:plokta: /plok't*/ /v./ [acronym: Press Lots Of Keys To
Abort] 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: /excl.,vt./ [Usenet: possibly influenced by British
slang `plonk' for cheap booze, or `plonker' for someone
behaving stupidly (latter is lit. equivalent to Yiddish
`schmuck')] The sound a {newbie} makes as he falls to the
bottom of a {kill file}. While it originated in the
{newsgroup} talk.bizarre, this term (usually written
"*plonk*") is now (1994) widespread on Usenet as a form of public
ridicule.
:plugh: /ploogh/ /v./ [from the {ADVENT} game] See
{xyzzy}.
:plumbing: /n./ [Unix] 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: /n./ [allegedly from abbreviation POD for `Prince Of
Darkness'] 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/ /n.,v./ [from a {PDP-10}
return-from-subroutine instruction] To return from a digression.
By verb doubling, "Popj, popj" means roughly "Now let's see,
where were we?" See {RTI}.
:poser: /n./ A {wannabee}; not hacker slang, but used among
crackers, phreaks and {warez d00dz}. Not as negative as
{lamer} or {leech}. Probably derives from a similar usage
among punk-rockers and metalheads, putting down those who "talk
the talk but don't walk the walk".
: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./ A kind of {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 {gronk}ed state.
Syn. {120 reset}; see also {Big Red Switch}. Compare
{Vulcan nerve pinch}, {bounce} (sense 4), and {boot}, and
see the "{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/ /n. obs./ [from `Project-Programmer
Number'] 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/ /n./ [C
programmers] 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'/ /vt./ [by analogy with `append'] 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/ /v./ (alt. `pretty-print')
1. To generate `pretty' human-readable output from a {hairy}
internal representation; esp. used for the process of
{grind}ing (sense 1) program code, and most esp. for LISP code.
2. To format in some particularly slick and nontrivial way.
:pretzel key: /n./ [Mac users] See {feature key}.
:priesthood: /n. obs./ [TMRC] The select group of system
managers responsible for the operation and maintenance of a batch
operated computer system. On these computers, a user never had
direct access to a computer, but had to submit his/her data and
programs to a priest for execution. Results were returned days or
even weeks later. See {acolyte}.
:prime time: /n./ [from TV programming] 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 run}s has changed not a bit.
:printing discussion: /n./ [XEROX PARC] A protracted,
low-level, time-consuming, generally pointless discussion of
something only peripherally interesting to all.
:priority interrupt: /n./ [from the hardware term] 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 spot}s 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. 3.[techspeak] A subset of a standard used
for a particular purpose. This sense confuses hackers who wander
into the weird world of ISO standards no end!
:progasm: /proh'gaz-m/ /n./ [University of Wisconsin] The
euphoria experienced upon the completion of a program or other
computer-related project.
:proglet: /prog'let/ /n./ [UK] 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). "Bloody instructions which, being taught, return
to plague their inventor" ("Macbeth", Act 1, Scene 7) 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 {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: /n./ [Mac users] 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: /n./ [common ironic mutation of
`preventive maintenance'] 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: /n./ [Unix] 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/ /n./ [Usenet: truncation of `pseudonym']
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 {B1FF}. See also
{tentacle}. 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 was, before about 1985,
called a `pseudoprime' (the terminology used by number theorists
has since changed slightly; pre-1985 pseudoprimes are now
`probable primes' and `pseudoprime' has a more restricted meaning
in modular arithmetic). The hacker backgammon usage stemmed 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/ /n./ [UK] Syn.
{display hack}. See also {smoking clover}.
:psyton: /si:'ton/ /n./ [TMRC] 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: /pyoob'ik d*-rek't*-ree/) /n./ [NYU]
(also `pube directory' /pyoob' d*-rek't*-ree/) 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}, see
{inflate}.
:punched card:: n.obs. [techspeak] (alt. `punch card') 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: /v./ [from the punch line of an old joke referring to
American football: "Drop back 15 yards and punt!"] 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}. Donald Lewine's
"POSIX Programmer's Guide" (O'Reilly, 1991, ISBN
0-937175-73-0). See also {{book titles}}.
:purple wire: /n./ [IBM] 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}.
= Q =
=====
:quad: /n./ 1. Two bits; syn. for {quarter}, {crumb},
{tayste}. 2. A four-pack of anything (compare {hex}, sense
2). 3. The rectangle or box glyph used in the APL language for
various arcane purposes mostly related to I/O. Former
Ivy-Leaguers and Oxford types are said to associate it with
nostalgic memories of dear old University.
:quadruple bucky: /n. obs./ 1. On an MIT {space-cadet
keyboard}, use of all four of the shifting keys (control, meta,
hyper, and super) while typing a character key. 2. On a Stanford
or MIT keyboard in {raw mode}, use of four shift keys while
typing a fifth character, where the four shift keys are the control
and meta keys on *both* sides of the keyboard. This was very
difficult to do! One accepted technique was to press the
left-control and left-meta keys with your left hand, the
right-control and right-meta keys with your right hand, and the
fifth key with your nose.
Quadruple-bucky combinations were very seldom used in practice,
because when one invented a new command one usually assigned it to
some character that was easier to type. If you want to imply that
a program has ridiculously many commands or features, you can say
something like: "Oh, the command that makes it spin the tapes
while whistling Beethoven's Fifth Symphony is
quadruple-bucky-cokebottle." See {double bucky}, {bucky
bits}, {cokebottle}.
:quantifiers:: In techspeak and jargon, the standard metric
prefixes used in the SI (Syst`eme International) conventions for
scientific measurement have dual uses. With units of time or
things that come in powers of 10, such as money, they retain their
usual meanings of multiplication by powers of 1000 = 10^3.
But when used with bytes or other things that naturally come in
powers of 2, they usually denote multiplication by powers of
1024 = 2^(10).
Here are the SI magnifying prefixes, along with the corresponding
binary interpretations in common use:
prefix decimal binary
kilo- 1000^1 1024^1 = 2^10 = 1,024
mega- 1000^2 1024^2 = 2^20 = 1,048,576
giga- 1000^3 1024^3 = 2^30 = 1,073,741,824
tera- 1000^4 1024^4 = 2^40 = 1,099,511,627,776
peta- 1000^5 1024^5 = 2^50 = 1,125,899,906,842,624
exa- 1000^6 1024^6 = 2^60 = 1,152,921,504,606,846,976
zetta- 1000^7 1024^7 = 2^70 = 1,180,591,620,717,411,303,424
yotta- 1000^8 1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176
Here are the SI fractional prefixes:
*prefix decimal jargon usage*
milli- 1000^-1 (seldom used in jargon)
micro- 1000^-2 small or human-scale (see {micro-})
nano- 1000^-3 even smaller (see {nano-})
pico- 1000^-4 even smaller yet (see {pico-})
femto- 1000^-5 (not used in jargon--yet)
atto- 1000^-6 (not used in jargon--yet)
zepto- 1000^-7 (not used in jargon--yet)
yocto- 1000^-8 (not used in jargon--yet)
The prefixes zetta-, yotta-, zepto-, and yocto- have been included
in these tables purely for completeness and giggle value; they were
adopted in 1990 by the `19th Conference Generale des Poids et
Mesures'. The binary peta- and exa- loadings, though well
established, are not in jargon use either -- yet. The prefix
milli-, denoting multiplication by 1/1000, has always
been rare in jargon (there is, however, a standard joke about the
`millihelen' -- notionally, the amount of beauty required to
launch one ship). See the entries on {micro-}, {pico-}, and
{nano-} for more information on connotative jargon use of these
terms. `Femto' and `atto' (which, interestingly, derive not
from Greek but from Danish) have not yet acquired jargon loadings,
though it is easy to predict what those will be once computing
technology enters the required realms of magnitude (however, see
{attoparsec}).
There are, of course, some standard unit prefixes for powers of
10. In the following table, the `prefix' column is the
international standard suffix for the appropriate power of ten; the
`binary' column lists jargon abbreviations and words for the
corresponding power of 2. The B-suffixed forms are commonly used
for byte quantities; the words `meg' and `gig' are nouns that may
(but do not always) pluralize with `s'.
prefix decimal binary pronunciation
kilo- k K, KB, /kay/
mega- M M, MB, meg /meg/
giga- G G, GB, gig /gig/,/jig/
Confusingly, hackers often use K or M as though they were suffix or
numeric multipliers rather than a prefix; thus "2K dollars", "2M
of disk space". This is also true (though less commonly) of G.
Note that the formal SI metric prefix for 1000 is `k'; some use
this strictly, reserving `K' for multiplication by 1024 (KB is
thus `kilobytes').
K, M, and G used alone refer to quantities of bytes; thus, 64G is
64 gigabytes and `a K' is a kilobyte (compare mainstream use of
`a G' as short for `a grand', that is, $1000). Whether one
pronounces `gig' with hard or soft `g' depends on what one thinks
the proper pronunciation of `giga-' is.
Confusing 1000 and 1024 (or other powers of 2 and 10 close in
magnitude) -- for example, describing a memory in units of
500K or 524K instead of 512K -- is a sure sign of the
{marketroid}. One example of this: it is common to refer to the
capacity of 3.5" {microfloppies} as `1.44 MB' In fact, this is a
completely {bogus} number. The correct size is 1440 KB, that
is, 1440 * 1024 = 1474560 bytes. So the `mega' in `1.44 MB' is
compounded of two `kilos', one of which is 1024 and the other of
which is 1000. The correct number of megabytes would of course be
1440 / 1024 = 1.40625. Alas, this fine point is probably lost on
the world forever.
[1993 update: hacker Morgan Burke has proposed, to general
approval on Usenet, the following additional prefixes:
groucho
10^(-30)
harpo
10^(-27)
harpi
10^(27)
grouchi
10^(30)
We observe that this would leave the prefixes zeppo-, gummo-, and
chico- available for future expansion. Sadly, there is little
immediate prospect that Mr. Burke's eminently sensible proposal
will be ratified.]
:quantum bogodynamics: /kwon'tm boh`goh-di:-nam'iks/ /n./ A
theory that characterizes the universe in terms of bogon sources
(such as politicians, used-car salesmen, TV evangelists, and
{suit}s in general), bogon sinks (such as taxpayers and
computers), and bogosity potential fields. Bogon absorption, of
course, causes human beings to behave mindlessly and machines to
fail (and may also cause both to emit secondary bogons); however,
the precise mechanics of the bogon-computron interaction are not
yet understood and remain to be elucidated. Quantum bogodynamics
is most often invoked to explain the sharp increase in hardware and
software failures in the presence of suits; the latter emit bogons,
which the former absorb. See {bogon}, {computron},
{suit}, {psyton}.
:quarter: /n./ Two bits. This in turn comes from the `pieces
of eight' famed in pirate movies -- Spanish silver crowns that
could be broken into eight pie-slice-shaped `bits' to make
change. Early in American history the Spanish coin was considered
equal to a dollar, so each of these `bits' was considered worth
12.5 cents. Syn. {tayste}, {crumb}, {quad}. Usage:
rare. General discussion of such terms is under {nybble}.
:ques: /kwes/ 1. /n./ The question mark character (`?',
ASCII 0111111). 2. /interj./ What? Also frequently verb-doubled
as
"Ques ques?" See {wall}.
:quick-and-dirty: /adj./ Describes a {crock} put together
under time or user pressure. Used esp. when you want to convey
that you think the fast way might lead to trouble further down the
road. "I can have a quick-and-dirty fix in place tonight, but
I'll have to rewrite the whole module to solve the underlying
design problem." See also {kluge}.
:quine: /kwi:n/ /n./ [from the name of the logician Willard
van Orman Quine, via Douglas Hofstadter] A program that generates a
copy of its own source text as its complete output. Devising the
shortest possible quine in some given programming language is a
common hackish amusement. Here is one classic quine:
((lambda (x)
(list x (list (quote quote) x)))
(quote
(lambda (x)
(list x (list (quote quote) x)))))
This one works in LISP or Scheme. It's relatively easy to write
quines in other languages such as Postscript which readily handle
programs as data; much harder (and thus more challenging!) in
languages like C which do not. Here is a classic C quine for ASCII
machines:
char*f="char*f=%c%s%c;main()
{printf(f,34,f,34,10);}%c";
main(){printf(f,34,f,34,10);}
For excruciatingly exact quinishness, remove the interior line
breaks. Some infamous {Obfuscated C Contest} entries have been
quines that reproduced in exotic ways.
:quote chapter and verse: /v./ [by analogy with the mainstream
phrase] To cite a relevant excerpt from an appropriate {bible}.
"I don't care if `rn' gets it wrong; `Followup-To: poster' is
explicitly permitted by {RFC}-1036. I'll quote chapter and
verse if you don't believe me." See also {legalese},
{language lawyer}, {RTFS} (sense 2).
:quotient: /n./ See {coefficient of X}.
:quux: /kwuhks/ /n./ [Mythically, from the Latin
semi-deponent verb quuxo, quuxare, quuxandum iri; noun form
variously `quux' (plural `quuces', anglicized to `quuxes')
and `quuxu' (genitive plural is `quuxuum', for four u-letters
out of seven in all, using up all the `u' letters in Scrabble).]
1. Originally, a {metasyntactic variable} like {foo} and
{foobar}. Invented by Guy Steele for precisely this purpose
when he was young and naive and not yet interacting with the real
computing community. Many people invent such words; this one seems
simply to have been lucky enough to have spread a little. In an
eloquent display of poetic justice, it has returned to the
originator in the form of a nickname. 2. /interj./ See {foo};
however, denotes very little disgust, and is uttered mostly for the
sake of the sound of it. 3. Guy Steele in his persona as `The
Great Quux', which is somewhat infamous for light verse and for the
`Crunchly' cartoons. 4. In some circles, used as a punning
opposite of `crux'. "Ah, that's the quux of the matter!"
implies that the point is *not* crucial (compare {tip of
the ice-cube}). 5. quuxy: /adj./ Of or pertaining to a quux.
:qux: /kwuhks/ The fourth of the standard {metasyntactic
variable}, after {baz} and before the quu(u...)x series.
See {foo}, {bar}, {baz}, {quux}. This appears to be a
recent mutation from {quux}, and many versions (especially older
versions) of the standard series just run {foo}, {bar},
{baz}, {quux}, ....
:QWERTY: /kwer'tee/ /adj./ [from the keycaps at the upper
left] Pertaining to a standard English-language typewriter keyboard
(sometimes called the Sholes keyboard after its inventor), as
opposed to Dvorak or foreign-language layouts or a {space-cadet
keyboard} or APL keyboard.
Historical note: The QWERTY layout is a fine example of a {fossil}.
It is sometimes said that it was designed to slow down the typist,
but this is wrong; it was designed to allow *faster* typing
-- under a constraint now long obsolete. In early typewriters,
fast typing using nearby type-bars jammed the mechanism. So Sholes
fiddled the layout to separate the letters of many common digraphs
(he did a far from perfect job, though; `th', `tr', `ed', and `er',
for example, each use two nearby keys). Also, putting the letters
of `typewriter' on one line allowed it to be typed with particular
speed and accuracy for {demo}s. The jamming problem was
essentially solved soon afterward by a suitable use of springs, but
the keyboard layout lives on.
= R =
=====
:rabbit job: /n./ [Cambridge] A batch job that does little, if
any, real work, but creates one or more copies of itself, breeding
like rabbits. Compare {wabbit}, {fork bomb}.
:rain dance: /n./ 1. Any ceremonial action taken to correct a
hardware problem, with the expectation that nothing will be
accomplished. This especially applies to reseating printed circuit
boards, reconnecting cables, etc. "I can't boot up the machine.
We'll have to wait for Greg to do his rain dance." 2. Any arcane
sequence of actions performed with computers or software in order
to achieve some goal; the term is usually restricted to rituals
that include both an {incantation} or two and physical activity
or motion. Compare {magic}, {voodoo programming}, {black
art}, {cargo cult programming}, {wave a dead chicken}; see
also {casting the runes}.
:rainbow series: /n./ Any of several series of technical
manuals distinguished by cover color. The original rainbow series
was the NCSC security manuals (see {Orange Book}, {crayola
books}); the term has also been commonly applied to the PostScript
reference set (see {Red Book}, {Green Book}, {Blue Book},
{White Book}). Which books are meant by "`the' rainbow
series" unqualified is thus dependent on one's local technical
culture.
:random: /adj./ 1. Unpredictable (closest to mathematical
definition); weird. "The system's been behaving pretty
randomly." 2. Assorted; undistinguished. "Who was at the
conference?" "Just a bunch of random business types."
3. (pejorative) Frivolous; unproductive; undirected. "He's just a
random loser." 4. Incoherent or inelegant; poorly chosen; not
well organized. "The program has a random set of misfeatures."
"That's a random name for that function." "Well, all the names
were chosen pretty randomly." 5. In no particular order, though
deterministic. "The I/O channels are in a pool, and when a file
is opened one is chosen randomly." 6. Arbitrary. "It generates
a random name for the scratch file." 7. Gratuitously wrong, i.e.,
poorly done and for no good apparent reason. For example, a
program that handles file name defaulting in a particularly useless
way, or an assembler routine that could easily have been coded
using only three registers, but redundantly uses seven for values
with non-overlapping lifetimes, so that no one else can invoke it
without first saving four extra registers. What {randomness}!
8. /n./ A random hacker; used particularly of high-school students
who soak up computer time and generally get in the way. 9. n.
Anyone who is not a hacker (or, sometimes, anyone not known to the
hacker speaking); the noun form of sense 2. "I went to the talk,
but the audience was full of randoms asking bogus questions".
10. /n./ (occasional MIT usage) One who lives at Random Hall. See
also {J. Random}, {some random X}.
:random numbers:: /n./ When one wishes to specify a large but
random number of things, and the context is inappropriate for
{N}, certain numbers are preferred by hacker tradition (that is,
easily recognized as placeholders). These include the following:
17
Long described at MIT as `the least random number'; see 23.
23
Sacred number of Eris, Goddess of Discord (along with 17 and
5).
42
The Answer to the Ultimate Question of Life, the Universe,
and Everything. (Note that this answer is completely
fortuitous. `:-)')
69
From the sexual act. This one was favored in MIT's ITS
culture.
105
69 hex = 105 decimal, and 69 decimal = 105 octal.
666
The Number of the Beast.
For further enlightenment, study the "Principia Discordia",
"{The Hitchhiker's Guide to the Galaxy}", "The Joy
of Sex", and the Christian Bible (Revelation 13:18). See also
{Discordianism} or consult your pineal gland. See also {for
values of}.
:randomness: /n./ 1. An inexplicable misfeature; gratuitous
inelegance. 2. A {hack} or {crock} that depends on a complex
combination of coincidences (or, possibly, the combination upon
which the crock depends for its accidental failure to malfunction).
"This hack can output characters 40--57 by putting the character
in the four-bit accumulator field of an XCT and then extracting six
bits -- the low 2 bits of the XCT opcode are the right thing."
"What randomness!" 3. Of people, synonymous with `flakiness'.
The connotation is that the person so described is behaving
weirdly, incompetently, or inappropriately for reasons which are
(a) too tiresome to bother inquiring into, (b) are probably as
inscrutable as quantum phenomena anyway, and (c) are likely to pass
with time. "Maybe he has a real complaint, or maybe it's just
randomness. See if he calls back."
:rape: /vt./ 1. To {screw} someone or something, violently;
in particular, to destroy a program or information irrecoverably.
Often used in describing file-system damage. "So-and-so was
running a program that did absolute disk I/O and ended up raping
the master directory." 2. To strip a piece of hardware for parts.
3. [CMU/Pitt] To mass-copy files from an anonymous ftp site.
"Last night I raped Simtel's dskutl directory."
:rare mode: /adj./ [Unix] CBREAK mode (character-by-character
with interrupts enabled). Distinguished from {raw mode} and
{cooked mode}; the phrase "a sort of half-cooked (rare?) mode"
is used in the V7/BSD manuals to describe the mode. Usage: rare.
:raster blaster: /n./ [Cambridge] Specialized hardware for
{bitblt} operations (a {blitter}). Allegedly inspired by
`Rasta Blasta', British slang for the sort of portable stereo
Americans call a `boom box' or `ghetto blaster'.
:raster burn: /n./ Eyestrain brought on by too many hours of
looking at low-res, poorly tuned, or glare-ridden monitors, esp.
graphics monitors. See {terminal illness}.
:rat belt: /n./ A cable tie, esp. the sawtoothed,
self-locking plastic kind that you can remove only by cutting (as
opposed to a random twist of wire or a twist tie or one of those
humongous metal clip frobs). Small cable ties are `mouse belts'.
:rat dance: /n./ [From the {Dilbert} comic strip of November
14, 1995] A {hacking run} that produces results which, while
superficially coherent, have little or nothing to do with its
original objectives. There are strong connotations that the coding
process and the objectives themselves were pretty {random}. (In
the original comic strip, the Ratbert is invited to dance
on Dilbert's keyboard in order to produce bugs for him to fix, and
authors a Web browser instead.) Compare {Infinite-Monkey
Theorem}.
This term seems to have become widely recognized quite rapidly
after the original strip, a fact which testifies to Dilbert's huge
popularity among hackers. All too many find the perverse
incentives and Kafkaesque atmosphere of Dilbert's mythical
workplace reflective of their own experiences.
:rave: /vi./ [WPI] 1. To persist in discussing a specific
subject. 2. To speak authoritatively on a subject about which one
knows very little. 3. To complain to a person who is not in a
position to correct the difficulty. 4. To purposely annoy another
person verbally. 5. To evangelize. See {flame}. 6. Also used
to describe a less negative form of blather, such as friendly
bullshitting. `Rave' differs slightly from {flame} in that
`rave' implies that it is the persistence or obliviousness of the
person speaking that is annoying, while {flame} implies somewhat
more strongly that the tone or content is offensive as well.
:rave on!: /imp./ Sarcastic invitation to continue a {rave},
often by someone who wishes the raver would get a clue but realizes
this is unlikely.
:ravs: /ravz/, also `Chinese ravs' /n./ Jiao-zi (steamed or
boiled) or Guo-tie (pan-fried). A Chinese appetizer, known
variously in the plural as dumplings, pot stickers (the literal
translation of guo-tie), and (around Boston) `Peking Ravioli'. The
term `rav' is short for `ravioli', and among hackers always
means the Chinese kind rather than the Italian kind. Both consist
of a filling in a pasta shell, but the Chinese kind includes no
cheese, uses a thinner pasta, has a pork-vegetable filling (good
ones include Chinese chives), and is cooked differently, either by
steaming or frying. A rav or dumpling can be cooked any way, but a
potsticker is always the fried kind (so called because it sticks to
the frying pot and has to be scraped off). "Let's get
hot-and-sour soup and three orders of ravs." See also
{{oriental food}}.
:raw mode: /n./ A mode that allows a program to transfer bits
directly to or from an I/O device (or, under {bogus} systems
that make a distinction, a disk file) without any processing,
abstraction, or interpretation by the operating system. Compare
{rare mode}, {cooked mode}. This is techspeak under Unix,
jargon elsewhere.
:rc file: /R-C fi:l/ /n./ [Unix: from `runcom files' on
the {CTSS} system ca.1955, via the startup script
`/etc/rc'] Script file containing startup instructions for an
application program (or an entire operating system), usually a text
file containing commands of the sort that might have been invoked
manually once the system was running but are to be executed
automatically each time the system starts up. See also {dot
file}, {profile} (sense 1).
:RE: /R-E/ /n./ Common spoken and written shorthand for
{regexp}.
:read-only user: /n./ Describes a {luser} who uses computers
almost exclusively for reading Usenet, bulletin boards, and/or
email, rather than writing code or purveying useful information.
See {twink}, {terminal junkie}, {lurker}.
:README file: /n./ Hacker's-eye introduction traditionally
included in the top-level directory of a Unix source distribution,
containing a pointer to more detailed documentation, credits,
miscellaneous revision history, notes, etc. (The file may be named
README, or READ.ME, or rarely ReadMe or readme.txt or some other
variant.) In the Mac and PC worlds, software is not usually
distributed in source form, and the README is more likely to
contain user-oriented material like last-minute documentation
changes, error workarounds, and restrictions. When asked, hackers
invariably relate the README convention to the famous scene in
Lewis Carroll's "Alice's Adventures In Wonderland" in which
Alice confronts magic munchies labeled "Eat Me" and "Drink Me".
:real: /adj./ Not simulated. Often used as a specific antonym
to {virtual} in any of its jargon senses.
:real estate: /n./ May be used for any critical resource
measured in units of area. Most frequently used of `chip real
estate', the area available for logic on the surface of an
integrated circuit (see also {nanoacre}). May also be used of
floor space in a {dinosaur pen}, or even space on a crowded
desktop (whether physical or electronic).
:real hack: /n./ A {crock}. This is sometimes used
affectionately; see {hack}.
:real operating system: /n./ The sort the speaker is used to.
People from the BSDophilic academic community are likely to issue
comments like "System V? Why don't you use a *real*
operating system?", people from the commercial/industrial Unix
sector are known to complain "BSD? Why don't you use a
*real* operating system?", and people from IBM object
"Unix? Why don't you use a *real* operating system?" Only
{MS-DOS} is universally considered unreal. See {holy wars},
{religious issues}, {proprietary}, {Get a real computer!}
:Real Programmer: /n./ [indirectly, from the book
"Real Men Don't Eat Quiche"] A particular sub-variety of
hacker: one possessed of a flippant attitude toward complexity that
is arrogant even when justified by experience. The archetypal
`Real Programmer' likes to program on the {bare metal} and is
very good at same, remembers the binary opcodes for every machine
he has ever programmed, thinks that HLLs are sissy, and uses a
debugger to edit his code because full-screen editors are for
wimps. Real Programmers aren't satisfied with code that hasn't
been {bum}med into a state of {tense}ness just short of
rupture. Real Programmers never use comments or write
documentation: "If it was hard to write", says the Real
Programmer, "it should be hard to understand." Real Programmers
can make machines do things that were never in their spec sheets;
in fact, they are seldom really happy unless doing so. A Real
Programmer's code can awe with its fiendish brilliance, even as its
crockishness appalls. Real Programmers live on junk food and
coffee, hang line-printer art on their walls, and terrify the crap
out of other programmers -- because someday, somebody else might
have to try to understand their code in order to change it. Their
successors generally consider it a {Good Thing} that there
aren't many Real Programmers around any more. For a famous (and
somewhat more positive) portrait of a Real Programmer, see
"{The Story of Mel, a Real Programmer}" in Appendix A.
The term itself was popularized by a 1983 Datamation article
"Real Programmers Don't Use Pascal" by Ed Post, still
circulating on Usenet and Internet in on-line form.
You can browse "Real Programmers Don't Use Pascal" from the
Datamation home page http://www.datamation.com.
:Real Soon Now: /adv./ [orig. from SF's fanzine community,
popularized by Jerry Pournelle's column in "BYTE"] 1. Supposed
to be available (or fixed, or cheap, or whatever) real soon now
according to somebody, but the speaker is quite skeptical. 2. When
one's gods, fates, or other time commitments permit one to get to
it (in other words, don't hold your breath). Often abbreviated
RSN. Compare {copious free time}.
:real time: 1. [techspeak] /adj./ Describes an application
which requires a program to respond to stimuli within some small
upper limit of response time (typically milli- or microseconds).
Process control at a chemical plant is the classic example. Such
applications often require special operating systems (because
everything else must take a back seat to response time) and
speed-tuned hardware. 2. /adv./ In jargon, refers to doing
something
while people are watching or waiting. "I asked her how to find
the calling procedure's program counter on the stack and she came
up with an algorithm in real time."
:real user: /n./ 1. A commercial user. One who is paying
*real* money for his computer usage. 2. A non-hacker.
Someone using the system for an explicit purpose (a research
project, a course, etc.) other than pure exploration. See
{user}. Hackers who are also students may also be real users.
"I need this fixed so I can do a problem set. I'm not complaining
out of randomness, but as a real user." See also {luser}.
:Real World: /n./ 1. Those institutions at which
`programming' may be used in the same sentence as `FORTRAN',
`{COBOL}', `RPG', `{IBM}', `DBASE', etc. Places where
programs do such commercially necessary but intellectually
uninspiring things as generating payroll checks and invoices.
2. The location of non-programmers and activities not related to
programming. 3. A bizarre dimension in which the standard dress is
shirt and tie and in which a person's working hours are defined as
9 to 5 (see {code grinder}). 4. Anywhere outside a university.
"Poor fellow, he's left MIT and gone into the Real World." Used
pejoratively by those not in residence there. In conversation,
talking of someone who has entered the Real World is not unlike
speaking of a deceased person. It is also noteworthy that on the
campus of Cambridge University in England, there is a gaily-painted
lamp-post which bears the label `REALITY CHECKPOINT'. It marks the
boundary between university and the Real World; check your notions
of reality before passing. This joke is funnier because the
Cambridge `campus' is actually coextensive with the center of
Cambridge town. See also {fear and loathing}, {mundane}, and
{uninteresting}.
:reality check: /n./ 1. The simplest kind of test of software
or hardware; doing the equivalent of asking it what 2 + 2 is
and seeing if you get 4. The software equivalent of a {smoke
test}. 2. The act of letting a {real user} try out prototype
software. Compare {sanity check}.
:reaper: /n./ A {prowler} that {GFR}s files. A file
removed in this way is said to have been `reaped'.
:rectangle slinger: /n./ See {polygon pusher}.
:recursion: /n./ See {recursion}. See also {tail
recursion}.
:recursive acronym:: /n./ A hackish (and especially MIT)
tradition is to choose acronyms/abbreviations that refer humorously
to themselves or to other acronyms/abbreviations. The classic
examples were two MIT editors called EINE ("EINE Is Not EMACS")
and ZWEI ("ZWEI Was EINE Initially"). More recently, there is a
Scheme compiler called LIAR (Liar Imitates Apply Recursively), and
{GNU} (q.v., sense 1) stands for "GNU's Not Unix!" -- and a
company with the name CYGNUS, which expands to "Cygnus, Your GNU
Support". See also {mung}, {EMACS}.
:Red Book: /n./ 1. Informal name for one of the three standard
references on {{PostScript}} ("PostScript Language Reference
Manual", Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN
0-201-10174-2, or the 1990 second edition ISBN 0-201-18127-4); the
others are known as the {Green Book}, the {Blue Book}, and
the {White Book} (sense 2). 2. Informal name for one of the 3
standard references on Smalltalk ("Smalltalk-80: The
Interactive Programming Environment" by Adele Goldberg
(Addison-Wesley, 1984; QA76.8.S635G638; ISBN 0-201-11372-4); this
too is associated with blue and green books). 3. Any of the 1984
standards issued by the CCITT eighth plenary assembly. These
include, among other things, the X.400 email spec and the Group 1
through 4 fax standards. 4. The new version of the {Green Book}
(sense 4) -- IEEE 1003.1-1990, a.k.a ISO 9945-1 -- is (because of
the color and the fact that it is printed on A4 paper) known in the
USA as "the Ugly Red Book That Won't Fit On The Shelf" and in
Europe as "the Ugly Red Book That's A Sensible Size". 5. The NSA
"Trusted Network Interpretation" companion to the {Orange
Book}. See also {{book titles}}.
:red wire: /n./ [IBM] Patch wires installed by programmers who have
no business mucking with the hardware. It is said that the only
thing more dangerous than a hardware guy with a code patch is a
{softy} with a soldering iron.... Compare {blue wire},
{yellow wire}, {purple wire}.
:regexp: /reg'eksp/ /n./ [Unix] (alt. `regex' or `reg-ex')
1. Common written and spoken abbreviation for `regular
expression', one of the wildcard patterns used, e.g., by Unix
utilities such as `grep(1)', `sed(1)', and `awk(1)'.
These use conventions similar to but more elaborate than those
described under {glob}. For purposes of this lexicon, it is
sufficient to note that regexps also allow complemented character
sets using `^'; thus, one can specify `any non-alphabetic
character' with `[^A-Za-z]'. 2. Name of a well-known PD
regexp-handling package in portable C, written by revered Usenetter
Henry Spencer <henry@zoo.toronto.edu>.
:register dancing: /n./ Many older processor architectures
suffer from a serious shortage of general-purpose registers. This
is especially a problem for compiler-writers, because their
generated code needs places to store temporaries for things like
intermediate values in expression evaluation. Some designs with
this problem, like the Intel 80x86, do have a handful of
special-purpose registers that can be pressed into service,
providing suitable care is taken to avoid unpleasant side effects
on the state of the processor: while the special-purpose register
is being used to hold an intermediate value, a delicate minuet is
required in which the previous value of the register is saved and
then restored just before the official function (and value) of the
special-purpose register is again needed.
:reincarnation, cycle of: /n./ See {cycle of reincarnation}.
:reinvent the wheel: /v./ To design or implement a tool
equivalent to an existing one or part of one, with the implication
that doing so is silly or a waste of time. This is often a valid
criticism. On the other hand, automobiles don't use wooden
rollers, and some kinds of wheel have to be reinvented many times
before you get them right. On the third hand, people reinventing
the wheel do tend to come up with the moral equivalent of a
trapezoid with an offset axle.
:religion of CHI: /ki:/ /n./ [Case Western Reserve
University] Yet another hackish parody religion (see also
{Church of the SubGenius}, {Discordianism}). In the mid-70s,
the canonical "Introduction to Programming" courses at CWRU were
taught in Algol, and student exercises were punched on cards and
run on a Univac 1108 system using a homebrew operating system named
CHI. The religion had no doctrines and but one ritual: whenever
the worshipper noted that a digital clock read 11:08, he or she
would recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN,
ARCCOS, ARCTAN." The last five words were the first five
functions in the appropriate chapter of the Algol manual; note the
special pronunciations /obz/ and /ark'sin/ rather than the more
common /ahbz/ and /ark'si:n/. Using an alarm clock to warn of
11:08's arrival was {considered harmful}.
:religious issues: /n./ Questions which seemingly cannot be
raised without touching off {holy wars}, such as "What is the
best operating system (or editor, language, architecture, shell,
mail reader, news reader)?", "What about that Heinlein guy,
eh?", "What should we add to the new Jargon File?" See
{holy wars}; see also {theology}, {bigot}.
This term is a prime example of {ha ha only serious}. People
actually develop the most amazing and religiously intense
attachments to their tools, even when the tools are intangible.
The most constructive thing one can do when one stumbles into the
crossfire is mumble {Get a life!} and leave -- unless, of course,
one's *own* unassailably rational and obviously correct
choices are being slammed.
:replicator: /n./ Any construct that acts to produce copies of
itself; this could be a living organism, an idea (see {meme}), a
program (see {quine}, {worm}, {wabbit}, {fork bomb},
and {virus}), a pattern in a cellular automaton (see {life},
sense 1), or (speculatively) a robot or {nanobot}. It is even
claimed by some that {{Unix}} and {C} are the symbiotic halves
of an extremely successful replicator; see {Unix conspiracy}.
:reply: /n./ See {followup}.
:restriction: /n./ A {bug} or design error that limits a
program's capabilities, and which is sufficiently egregious that
nobody can quite work up enough nerve to describe it as a
{feature}. Often used (esp. by {marketroid} types) to make
it sound as though some crippling bogosity had been intended by the
designers all along, or was forced upon them by arcane technical
constraints of a nature no mere user could possibly comprehend
(these claims are almost invariably false).
Old-time hacker Joseph M. Newcomer advises that whenever choosing a
quantifiable but arbitrary restriction, you should make it either a
power of 2 or a power of 2 minus 1. If you impose a limit of
107 items in a list, everyone will know it is a random number -- on
the other hand, a limit of 15 or 16 suggests some deep reason
(involving 0- or 1-based indexing in binary) and you will get less
{flamage} for it. Limits which are round numbers in base 10 are
always especially suspect.
:retcon: /ret'kon/ [short for `retroactive continuity',
from the Usenet newsgroup rec.arts.comics] 1. /n./ The common
situation in pulp fiction (esp. comics or soap operas) where a
new story `reveals' things about events in previous stories,
usually leaving the `facts' the same (thus preserving
continuity) while completely changing their interpretation. For
example, revealing that a whole season of "Dallas" was a
dream was a retcon. 2. /vt./ To write such a story about a
character
or fictitious object. "Byrne has retconned Superman's cape so
that it is no longer unbreakable." "Marvelman's old adventures
were retconned into synthetic dreams." "Swamp Thing was
retconned from a transformed person into a sentient vegetable."
"Darth Vader was retconned into Luke Skywalker's father in
"The Empire Strikes Back".
[This term is included because it is a good example of hackish
linguistic innovation in a field completely unrelated to computers.
The word `retcon' will probably spread through comics fandom and
lose its association with hackerdom within a couple of years; for
the record, it started here. --ESR]
[1993 update: some comics fans on the net now claim that retcon was
independently in use in comics fandom before rec.arts.comics.
In lexicography, nothing is ever simple. --ESR]
:RETI: /v./ Syn. {RTI}
:retrocomputing: /ret'-roh-k*m-pyoo'ting/ /n./ Refers to
emulations of way-behind-the-state-of-the-art hardware or software,
or implementations of never-was-state-of-the-art; esp. if such
implementations are elaborate practical jokes and/or parodies,
written mostly for {hack value}, of more `serious' designs.
Perhaps the most widely distributed retrocomputing utility was the
`pnch(6)' or `bcd(6)' program on V7 and other early Unix
versions, which would accept up to 80 characters of text argument
and display the corresponding pattern in {{punched card}} code.
Other well-known retrocomputing hacks have included the programming
language {INTERCAL}, a {JCL}-emulating shell for Unix, the
card-punch-emulating editor named 029, and various elaborate PDP-11
hardware emulators and RT-11 OS emulators written just to keep an
old, sourceless {Zork} binary running.
A tasty selection of retrocomputing programs are made available at
the Retrocomputing Museum, http://www.ccil.org/retro.
:return from the dead: /v./ To regain access to the net after a
long absence. Compare {person of no account}.
:RFC: /R-F-C/ /n./ [Request For Comment] One of a
long-established series of numbered Internet informational
documents and standards widely followed by commercial software and
freeware in the Internet and Unix communities. Perhaps the single
most influential one has been RFC-822 (the Internet mail-format
standard). The RFCs are unusual in that they are floated by
technical experts acting on their own initiative and reviewed by
the Internet at large, rather than formally promulgated through an
institution such as ANSI. For this reason, they remain known as
RFCs even once adopted as standards.
The RFC tradition of pragmatic, experience-driven, after-the-fact
standard writing done by individuals or small working groups has
important advantages over the more formal, committee-driven process
typical of ANSI or ISO. Emblematic of some of these advantages is
the existence of a flourishing tradition of `joke' RFCs; usually
at least one a year is published, usually on April 1st. Well-known
joke RFCs have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22
June 1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin;
1 April 1978), and 1149 ("A Standard for the Transmission of IP
Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April
1990). The first was a Lewis Carroll pastiche; the second a parody
of the TCP-IP documentation style, and the third a deadpan
skewering of standards-document legalese, describing protocols for
transmitting Internet data packets by carrier pigeon.
The RFCs are most remarkable for how well they work -- they manage
to have neither the ambiguities that are usually rife in informal
specifications, nor the committee-perpetrated misfeatures that
often haunt formal standards, and they define a network that has
grown to truly worldwide proportions.
:RFE: /R-F-E/ /n./ 1. [techspeak] Request For Enhancement
(compare {RFC}). 2. [from `Radio Free Europe', Bellcore and
Sun] Radio Free Ethernet, a system (originated by Peter Langston)
for broadcasting audio among Sun SPARCstations over the ethernet.
:rib site: /n./ [by analogy with {backbone site}] A machine
that has an on-demand high-speed link to a {backbone site} and
serves as a regional distribution point for lots of third-party
traffic in email and Usenet news. Compare {leaf site},
{backbone site}.
:rice box: /n./ [from ham radio slang] Any Asian-made commodity
computer, esp. an 80x86-based machine built to IBM PC-compatible
ISA or EISA-bus standards.
:Right Thing: /n./ That which is *compellingly* the
correct or appropriate thing to use, do, say, etc. Often
capitalized, always emphasized in speech as though capitalized.
Use of this term often implies that in fact reasonable people may
disagree. "What's the right thing for LISP to do when it sees
`(mod a 0)'? Should it return `a', or give a divide-by-0
error?" Oppose {Wrong Thing}.
:RL: // /n./ [MUD community] Real Life. "Firiss laughs in
RL" means that Firiss's player is laughing. Oppose {VR}.
:roach: /vt./ [Bell Labs] To destroy, esp. of a data
structure. Hardware gets {toast}ed or {fried}, software gets
roached.
:robot: /n./ [IRC, MUD] An {IRC} or {MUD} user who is
actually a program. On IRC, typically the robot provides some
useful service. Examples are NickServ, which tries to prevent
random users from adopting {nick}s already claimed by others,
and MsgServ, which allows one to send asynchronous messages to be
delivered when the recipient signs on. Also common are
`annoybots', such as KissServ, which perform no useful function
except to send cute messages to other people. Service robots are
less common on MUDs; but some others, such as the `Julia' robot
active in 1990--91, have been remarkably impressive Turing-test
experiments, able to pass as human for as long as ten or fifteen
minutes of conversation.
:robust: /adj./ Said of a system that has demonstrated an
ability to recover gracefully from the whole range of exceptional
inputs and situations in a given environment. One step below
{bulletproof}. Carries the additional connotation of elegance
in addition to just careful attention to detail. Compare
{smart}, oppose {brittle}.
:rococo: /adj./ Terminally {baroque}. Used to imply that a
program has become so encrusted with the software equivalent of
gold leaf and curlicues that they have completely swamped the
underlying design. Called after the later and more extreme forms
of Baroque architecture and decoration prevalent during the
mid-1700s in Europe. Alan Perlis said: "Every program eventually
becomes rococo, and then rubble." Compare {critical mass}.
:rogue: /n./ [Unix] A Dungeons-and-Dragons-like game using character
graphics, written under BSD Unix and subsequently ported to other
Unix systems. The original BSD `curses(3)' screen-handling
package was hacked together by Ken Arnold to support
`rogue(6)' and has since become one of Unix's most important
and heavily used application libraries. Nethack, Omega, Larn, and
an entire subgenre of computer dungeon games all took off from the
inspiration provided by `rogue(6)'. See also {nethack}.
:room-temperature IQ: /quant./ [IBM] 80 or below (nominal room
temperature is 72 degrees Fahrenheit, 22 degrees Celsius). Used in
describing the expected intelligence range of the {luser}.
"Well, but how's this interface going to play with the
room-temperature IQ crowd?" See {drool-proof paper}. This is
a much more insulting phrase in countries that use Celsius
thermometers.
:root: /n./ [Unix] 1. The {superuser} account (with user
name `root') that ignores permission bits, user number 0 on a
Unix system. The term {avatar} is also used. 2. The top node
of the system directory structure; historically the home directory
of the root user, but probably named after the root of an
(inverted) tree. 3. By extension, the privileged
system-maintenance login on any OS. See {root mode}, {go
root}, see also {wheel}.
:root mode: /n./ Syn. with {wizard mode} or `wheel mode'.
Like these, it is often generalized to describe privileged states
in systems other than OSes.
:rot13: /rot ther'teen/ /n.,v./ [Usenet: from `rotate
alphabet 13 places'] The simple Caesar-cypher encryption that
replaces each English letter with the one 13 places forward or back
along the alphabet, so that "The butler did it!" becomes "Gur
ohgyre qvq vg!" Most Usenet news reading and posting programs
include a rot13 feature. It is used to enclose the text in a
sealed wrapper that the reader must choose to open -- e.g., for
posting things that might offend some readers, or {spoiler}s. A
major advantage of rot13 over rot(N) for other N is
that it is self-inverse, so the same code can be used for encoding
and decoding.
:rotary debugger: /n./ [Commodore] Essential equipment for
those late-night or early-morning debugging sessions. Mainly used
as sustenance for the hacker. Comes in many decorator colors, such
as Sausage, Pepperoni, and Garbage. See {pizza, ANSI standard}.
:round tape: /n./ Industry-standard 1/2-inch magnetic tape (7-
or 9-track) on traditional circular reels. See {macrotape},
oppose {square tape}.
:RSN: /R-S-N/ /adj./ See {Real Soon Now}.
:RTBM: /R-T-B-M/ /imp./ [Unix] Commonwealth Hackish variant
of {RTFM}; expands to `Read The Bloody Manual'. RTBM is often
the entire text of the first reply to a question from a
{newbie}; the *second* would escalate to "RTFM".
:RTFAQ: /R-T-F-A-Q/ /imp./ [Usenet: primarily written, by
analogy with {RTFM}] Abbrev. for `Read the FAQ!', an
exhortation that the person addressed ought to read the newsgroup's
{FAQ list} before posting questions.
:RTFB: /R-T-F-B/ /imp./ [Unix] Acronym for `Read The Fucking
Binary'. Used when neither documentation nor source for the
problem at hand exists, and the only thing to do is use some
debugger or monitor and directly analyze the assembler or even the
machine code. "No source for the buggy port driver? Aaargh! I
*hate* proprietary operating systems. Time to RTFB."
Of the various RTF? forms, `RTFB' is the least pejorative against
anyone asking a question for which RTFB is the answer; the anger
here is directed at the absence of both source *and* adequate
documentation.
:RTFM: /R-T-F-M/ /imp./ [Unix] Acronym for `Read The Fucking
Manual'. 1. Used by {guru}s to brush off questions they
consider trivial or annoying. Compare {Don't do that, then!}.
2. Used when reporting a problem to indicate that you aren't just
asking out of {randomness}. "No, I can't figure out how to
interface Unix to my toaster, and yes, I have RTFM." Unlike
sense 1, this use is considered polite. See also {FM},
{RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which mutated
from RTFM, and compare {UTSL}.
:RTFS: /R-T-F-S/ [Unix] 1. /imp./ Acronym for `Read The
Fucking Source'. Variant form of {RTFM}, used when the problem
at hand is not necessarily obvious and not answerable from the
manuals -- or the manuals are not yet written and maybe never will
be. For even trickier situations, see {RTFB}. Unlike RTFM, the
anger inherent in RTFS is not usually directed at the person asking
the question, but rather at the people who failed to provide
adequate documentation. 2. /imp./ `Read The Fucking Standard';
this
oath can only be used when the problem area (e.g., a language or
operating system interface) has actually been codified in a
ratified standards document. The existence of these standards
documents (and the technically inappropriate but politically
mandated compromises that they inevitably contain, and the
impenetrable {legalese} in which they are invariably written,
and the unbelievably tedious bureaucratic process by which they are
produced) can be unnerving to hackers, who are used to a certain
amount of ambiguity in the specifications of the systems they use.
(Hackers feel that such ambiguities are acceptable as long as the
{Right Thing} to do is obvious to any thinking observer; sadly,
this casual attitude towards specifications becomes unworkable when
a system becomes popular in the {Real World}.) Since a hacker
is likely to feel that a standards document is both unnecessary and
technically deficient, the deprecation inherent in this term may be
directed as much against the standard as against the person who
ought to read it.
:RTI: /R-T-I/ /interj./ The mnemonic for the `return from
interrupt' instruction on many computers including the 6502 and
6800. The variant `RETI' is found among former Z80 hackers
(almost nobody programs these things in assembler anymore).
Equivalent to "Now, where was I?" or used to end a
conversational digression. See {pop}; see also {POPJ}.
:RTM: /R-T-M/ [Usenet: abbreviation for `Read The Manual']
1. Politer variant of {RTFM}. 2. Robert T. Morris,
perpetrator of the great Internet worm of 1988 (see {Great Worm,
the}); villain to many, naive hacker gone wrong to a few. Morris
claimed that the worm that brought the Internet to its knees was a
benign experiment that got out of control as the result of a coding
error. After the storm of negative publicity that followed this
blunder, Morris's username on ITS was hacked from RTM to
{RTFM}.
:RTS: /R-T-S/ /imp./ Acronym for `Read The Screen'. Mainly
used by hackers in the microcomputer world. Refers to what one
would like to tell the {suit} one is forced to explain an
extremely simple application to. Particularly appropriate when the
suit failed to notice the `Press any key to continue' prompt, and
wishes to know `why won't it do anything'. Also seen as `RTFS' in
especially deserving cases.
:rude: [WPI] /adj./ 1. (of a program) Badly written.
2. Functionally poor, e.g., a program that is very difficult to use
because of gratuitously poor (random?) design decisions. Oppose
{cuspy}. 3. Anything that manipulates a shared resource without
regard for its other users in such a way as to cause a (non-fatal)
problem. Examples: programs that change tty modes without
resetting them on exit, or windowing programs that keep forcing
themselves to the top of the window stack. Compare
{all-elbows}.
:runes: /pl.n./ 1. Anything that requires {heavy wizardry}
or {black art} to {parse}: core dumps, JCL commands, APL, or
code in a language you haven't a clue how to read. Not quite as
bad as {line noise}, but close. Compare {casting the runes},
{Great Runes}. 2. Special display characters (for example, the
high-half graphics on an IBM PC). 3. [borderline techspeak]
16-bit characters from the Unicode multilingual character set.
:runic: /adj./ Syn. {obscure}. VMS fans sometimes refer to
Unix as `Runix'; Unix fans return the compliment by expanding VMS
to `Very Messy Syntax' or `Vachement Mauvais Syst`eme' (French
idiom, "Hugely Bad System").
:rusty iron: /n./ Syn. {tired iron}. It has been claimed
that this is the inevitable fate of {water MIPS}.
:rusty memory: /n./ Mass-storage that uses iron-oxide-based
magnetic media (esp. tape and the pre-Winchester removable disk
packs used in {washing machine}s). Compare {donuts}.
:rusty wire: /n./ [Amateur Packet Radio] Any very noisy network
medium, in which the packets are subject to frequent corruption.
Most prevalent in reference to wireless links subject to all the
vagaries of RF noise and marginal propagation conditions. "Yes,
but how good is your whizbang new protocol on really rusty
wire?".
= S =
=====
:S/N ratio: // /n./ (also `s/n ratio', `s:n ratio').
Syn. {signal-to-noise ratio}. Often abbreviated `SNR'.
:sacred: /adj./ Reserved for the exclusive use of something (an
extension of the standard meaning). Often means that anyone may
look at the sacred object, but clobbering it will screw whatever it
is sacred to. The comment "Register 7 is sacred to the interrupt
handler" appearing in a program would be interpreted by a hacker
to mean that if any *other* part of the program changes the
contents of register 7, dire consequences are likely to ensue.
:saga: /n./ [WPI] A cuspy but bogus raving story about N
random broken people.
Here is a classic example of the saga form, as told by Guy L.
Steele:
Jon L. White (login name JONL) and I (GLS) were office mates at
MIT for many years. One April, we both flew from Boston to
California for a week on research business, to consult
face-to-face with some people at Stanford, particularly our
mutual friend Richard P. Gabriel (RPG; see {gabriel}).
RPG picked us up at the San Francisco airport and drove us back
to Palo Alto (going {logical} south on route 101, parallel to {El
Camino Bignum}). Palo Alto is adjacent to Stanford University
and about 40 miles south of San Francisco. We ate at The Good
Earth, a `health food' restaurant, very popular, the sort whose
milkshakes all contain honey and protein powder. JONL ordered
such a shake -- the waitress claimed the flavor of the day was
"lalaberry". I still have no idea what that might be, but it
became a running joke. It was the color of raspberry, and JONL
said it tasted rather bitter. I ate a better tostada there than
I have ever had in a Mexican restaurant.
After this we went to the local Uncle Gaylord's Old Fashioned Ice
Cream Parlor. They make ice cream fresh daily, in a variety of
intriguing flavors. It's a chain, and they have a slogan: "If
you don't live near an Uncle Gaylord's -- MOVE!" Also, Uncle
Gaylord (a real person) wages a constant battle to force big-name
ice cream makers to print their ingredients on the package (like
air and plastic and other non-natural garbage). JONL and I had
first discovered Uncle Gaylord's the previous August, when we had
flown to a computer-science conference in Berkeley, California,
the first time either of us had been on the West Coast. When not
in the conference sessions, we had spent our time wandering the
length of Telegraph Avenue, which (like Harvard Square in
Cambridge) was lined with picturesque street vendors and
interesting little shops. On that street we discovered Uncle
Gaylord's Berkeley store. The ice cream there was very good.
During that August visit JONL went absolutely bananas (so to
speak) over one particular flavor, ginger honey.
Therefore, after eating at The Good Earth -- indeed, after every
lunch and dinner and before bed during our April visit -- a trip
to Uncle Gaylord's (the one in Palo Alto) was mandatory. We had
arrived on a Wednesday, and by Thursday evening we had been there
at least four times. Each time, JONL would get ginger honey ice
cream, and proclaim to all bystanders that "Ginger was the spice
that drove the Europeans mad! That's why they sought a route to
the East! They used it to preserve their otherwise off-taste
meat." After the third or fourth repetition RPG and I were
getting a little tired of this spiel, and began to paraphrase
him: "Wow! Ginger! The spice that makes rotten meat taste
good!" "Say! Why don't we find some dog that's been run over
and sat in the sun for a week and put some *ginger* on it for
dinner?!" "Right! With a lalaberry shake!" And so on. This
failed to faze JONL; he took it in good humor, as long as we kept
returning to Uncle Gaylord's. He loves ginger honey ice cream.
Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
(putting up with us?) in their home for our visit, so to thank them
JONL and I took them out to a nice French restaurant of their
choosing. I unadventurously chose the filet mignon, and KBT had
je ne sais quoi du jour, but RPG and JONL had lapin
(rabbit). (Waitress: "Oui, we have fresh rabbit, fresh
today." RPG: "Well, JONL, I guess we won't need any
*ginger*!")
We finished the meal late, about 11 P.M., which is 2 A.M Boston
time, so JONL and I were rather droopy. But it wasn't yet
midnight. Off to Uncle Gaylord's!
Now the French restaurant was in Redwood City, north of Palo
Alto. In leaving Redwood City, we somehow got onto route 101
going north instead of south. JONL and I wouldn't have known the
difference had RPG not mentioned it. We still knew very little
of the local geography. I did figure out, however, that we were
headed in the direction of Berkeley, and half-jokingly suggested
that we continue north and go to Uncle Gaylord's in Berkeley.
RPG said "Fine!" and we drove on for a while and talked. I was
drowsy, and JONL actually dropped off to sleep for 5 minutes.
When he awoke, RPG said, "Gee, JONL, you must have slept all the
way over the bridge!", referring to the one spanning San
Francisco Bay. Just then we came to a sign that said "University
Avenue". I mumbled something about working our way over to
Telegraph Avenue; RPG said "Right!" and maneuvered some more.
Eventually we pulled up in front of an Uncle Gaylord's.
Now, I hadn't really been paying attention because I was so
sleepy, and I didn't really understand what was happening until
RPG let me in on it a few moments later, but I was just alert
enough to notice that we had somehow come to the Palo Alto Uncle
Gaylord's after all.
JONL noticed the resemblance to the Palo Alto store, but hadn't
caught on. (The place is lit with red and yellow lights at
night, and looks much different from the way it does in
daylight.) He said, "This isn't the Uncle Gaylord's I went to in
Berkeley! It looked like a barn! But this place looks *just
like* the one back in Palo Alto!"
RPG deadpanned, "Well, this is the one *I* always come to when
I'm in Berkeley. They've got two in San Francisco, too.
Remember, they're a chain."
JONL accepted this bit of wisdom. And he was not totally ignorant
--- he knew perfectly well that University Avenue was in Berkeley,
not far from Telegraph Avenue. What he didn't know was that
there is a completely different University Avenue in Palo Alto.
JONL went up to the counter and asked for ginger honey. The guy
at the counter asked whether JONL would like to taste it first,
evidently their standard procedure with that flavor, as not too
many people like it.
JONL said, "I'm sure I like it. Just give me a cone." The guy
behind the counter insisted that JONL try just a taste first.
"Some people think it tastes like soap." JONL insisted, "Look, I
*love* ginger. I eat Chinese food. I eat raw ginger roots. I
already went through this hassle with the guy back in Palo Alto.
I *know* I like that flavor!"
At the words "back in Palo Alto" the guy behind the counter got a
very strange look on his face, but said nothing. KBT caught his
eye and winked. Through my stupor I still hadn't quite grasped
what was going on, and thought RPG was rolling on the floor
laughing and clutching his stomach just because JONL had launched
into his spiel ("makes rotten meat a dish for princes") for the
forty-third time. At this point, RPG clued me in fully.