Chapter 41 of 61 · 3924 words · ~20 min read

Part 41

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.

Node:patch, Next:patch pumpkin, Previous:pastie, Up:= P =

patch

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

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

Node:patch pumpkin, Next:patch space, Previous:patch, Up:= P =

patch pumpkin n.

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

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

Node:patch space, Next:path, Previous:patch pumpkin, Up:= P =

patch space n.

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

Node:path, Next:pathological, Previous:patch space, Up:= P =

path n.

1. A bang path or explicitly routed Internet address; a node-by-node specification of a link between two machines. Though these are now obsolete as a form of addressing, they still show up in diagnostics and trace headers ocvcasionally (e.g. in NNTP headers). 2. [Unix] A filename, fully specified relative to the root directory (as opposed to relative to the current directory; the latter is sometimes called a `relative path'). This is also called a `pathname'. 3. [Unix and MS-DOS] The `search path', an environment variable specifying the directories in which the shell (COMMAND.COM, under MS-DOS) should look for commands. Other, similar constructs abound under Unix (for example, the C preprocessor has a `search path' it uses in looking for #include files).

Node:pathological, Next:payware, Previous:path, Up:= P =

pathological adj.

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

Node:payware, Next:PBD, Previous:pathological, Up:= P =

payware /pay'weir/ n.

Commercial software. Oppose shareware or freeware.

Node:PBD, Next:PC-ism, Previous:payware, Up:= P =

PBD /P-B-D/ n.

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

Node:PC-ism, Next:PD, Previous:PBD, Up:= P =

PC-ism /P-C-izm/ n.

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

Node:PD, Next:PDL, Previous:PC-ism, Up:= P =

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.

Node:PDL, Next:PDP-10, Previous:PD, Up:= P =

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

1. n. `Program Design Language'. Any of a large class of formal and profoundly useless pseudo-languages in which 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. 4. In ITS days, the preferred MITism for stack. See overflow pdl. 5. Dave Lebling, one of the co-authors of Zork; (his network address on the ITS machines was at one time pdl@dms).

Node:PDP-10, Next:PDP-20, Previous:PDL, Up:= P =

PDP-10 n.

[Programmed Data Processor model 10] The machine that made timesharing real. It looms large in hacker folklore because of its adoption in the mid-1970s by many university computing facilities and research labs, including the MIT AI Lab, Stanford, and CMU. Some aspects of the instruction set (most notably the bit-field instructions) are still considered unsurpassed. The 10 was eventually eclipsed by the VAX machines (descendants of the PDP-11) when 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, BLT, DDT, DPB, EXCH, HAKMEM, LDB, pop, push. See also http://www.inwap.com/pdp10/.

Node:PDP-20, Next:PEBKAC, Previous:PDP-10, Up:= P =

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

Node:PEBKAC, Next:peek, Previous:PDP-20, Up:= P =

PEBKAC /peb'kak/

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

Node:peek, Next:pencil and paper, Previous:PEBKAC, Up:= P =

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 used to consist of `peek'ing around memory, more or less at random, to find the location where the system keeps interesting stuff. Long (and variably accurate) lists of such addresses for various computers circulated (see interrupt list). 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 kernel hacker would unhesitatingly, if unportably, assign an absolute address to a pointer variable and indirect through it.)

Node:pencil and paper, Next:Pentagram Pro, Previous:peek, Up:= P =

pencil and paper n.

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

Node:Pentagram Pro, Next:Pentium, Previous:pencil and paper, Up:= P =

Pentagram Pro n.

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

Node:Pentium, Next:peon, Previous:Pentagram Pro, Up:= P =

Pentium n.

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

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

Node:peon, Next:percent-S, Previous:Pentium, Up:= P =

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

Node:percent-S, Next:perf, Previous:peon, Up:= P =

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

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

Node:perf, Next:perfect programmer syndrome, Previous:percent-S, Up:= P =

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

Node:perfect programmer syndrome, Next:Perl, Previous:perf, Up:= P =

perfect programmer syndrome n.

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

Node:Perl, Next:person of no account, Previous:perfect programmer syndrome, Up:= P =

Perl /perl/ n.

[Practical Extraction and Report Language, a.k.a. Pathologically Eclectic Rubbish Lister] An interpreted language developed by Larry Wall (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, generally consider it one of the languages of choice, and it is by far the most widely used tool for making `live' web pages via CGI. Perl has been described, in a parody of a famous remark about lex(1), as the "Swiss-Army chainsaw" of Unix programming. Though Perl is very useful, it would be a stretch to describe it as pretty or elegant; people who like clean, spare design generally prefer Python. See also Camel Book, TMTOWTDI.

Node:person of no account, Next:pessimal, Previous:Perl, Up:= P =

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.

Node:pessimal, Next:pessimizing compiler, Previous:person of no account, Up:= P =

pessimal /pes'im-l/ adj.

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

Node:pessimizing compiler, Next:peta-, Previous:pessimal, Up:= P =

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

A compiler that produces object [antonym of techspeak `optimizing compiler'] code that is worse than the straightforward or obvious hand translation. The implication is that the compiler is actually trying to optimize the program, but through excessive cleverness is doing the opposite. A few pessimizing compilers have been written on purpose, however, as pranks or burlesques.

Node:peta-, Next:PETSCII, Previous:pessimizing compiler, Up:= P =

peta- /pe't*/ pref

[SI] See quantifiers.

Node:PETSCII, Next:PFY, Previous:peta-, Up:= P =

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, C128, and VIC20 machines. The PETSCII set used left-arrow and up-arrow (as in old-style ASCII) instead of underscore and caret, placed the unshifted alphabet at positions 65-90, put the shifted alphabet at positions 193-218, and added graphics characters.

Node:PFY, Next:phage, Previous:PETSCII, Up:= P =

PFY n.

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

Node:phage, Next:phase, Previous:PFY, Up:= P =

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.

Node:phase, Next:phase of the moon, Previous:phage, Up:= P =

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.

Node:phase of the moon, Next:phase-wrapping, Previous:phase, Up:= P =

phase of the moon n.

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

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

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

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

## particle physics and as an example of the relevance of the

simplest and oldest physical laws to the most modern science.

Node:phase-wrapping, Next:PHB, Previous:phase of the moon, Up:= P =

phase-wrapping n.

[MIT] Syn. wrap around, sense 2.

Node:PHB, Next:phreaker, Previous:phase-wrapping, Up:= P =

PHB /P-H-B/

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

Node:phreaker, Next:phreaking, Previous:PHB, Up:= P =

phreaker /freek'r/ n.

One who engages in phreaking. See also blue box.

Node:phreaking, Next:pico-, Previous:phreaker, Up:= P =

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.

Node:pico-, Next:pig-tail, Previous:phreaking, Up:= P =

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

Node:pig-tail, Next:pilot error, Previous:pico-, Up:= P =

pig-tail

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

Node:pilot error, Next:ping, Previous:pig-tail, Up:= P =

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

Node:ping, Next:Ping O' Death, Previous:pilot error, Up:= P =

ping