Chapter 12

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

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

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

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

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

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

:phase-wrapping: [MIT] n. Syn. {wrap around}, sense 2.

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

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

:pico-: [SI: a quantifiermeaning * 10^-12]pref. Smaller than {nano-}; used in the same rather looseconnotative way as {nano-} and {micro-}. This usage is not yetcommon in the way {nano-} and {micro-} are, but should beinstantly recognizable to any hacker. See also {{quantifiers}},{micro-}.

:pig, run like a: v. To run very slowly on given hardware, said of software. Distinct from {hog}.

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

:ping: [from the TCP/IP acronym `Packet INternet Groper', prob. originally contrived to match the submariners' term for a sonar pulse] 1. n. Slang term for a small network message (ICMP ECHO) sent by a computer to check for the presence and aliveness of another. Occasionally used as a phone greeting. See {ACK}, also {ENQ}. 2. vt. To verify the presence of. 3. vt. To get the attention of. From the UNIX command `ping(1)' that sends an ICMP ECHO packet to another host. 4. vt. To send a message to all members of a {mailing list} requesting an {ACK} (in order to verify that everybody's addresses are reachable). "We haven't heard much of anything from Geoff, but he did respond with an ACK both times I pinged jargon-friends." 5. n. A quantum packet of happiness. People who are very happy tend to exude pings; furthermore, one can intentionally create pings and aim them at a needy party (e.g. a depressed person). This sense of ping may appear as an exclamation; "Ping!" (I'm happy; I am emitting a quantum of happiness; I have been struck by a quantum of happiness). The form "pingfulness", which is used to describe people who exude pings, also occurs. (In the standard abuse of language, "pingfulness" can also be used as an exclamation, in which case it's a much stronger exclamation than just "ping"!). Oppose {blargh}.

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

:Pink-Shirt Book: `The Peter Norton Programmer's Guide to the IBM PC'. The original cover featured a picture of Peter Norton with a silly smirk on his face, wearing a pink shirt. Perhaps in recognition of this usage, the current edition has a different picture of Norton wearing a pink shirt. See also {{book titles}}.

:PIP: /pip/ [Peripheral Interchange Program] vt.,obs. To copy; from the program PIP on CP/M, RSX-11, RSTS/E, TOPS-10, and OS/8 (derived from a utility on the PDP-6) that was used for file copying (and in OS/8 and RT-11 for just about every other file operation you might want to do). It is said that when the program was originated, during the development of the PDP-6 in 1963, it was called ATLATL (`Anything, Lord, to Anything, Lord'; this played on the Nahuatl word `atlatl' for a spear-thrower, with connotations of utility and primitivity that were no doubt quite intentional).

:pistol: [IBM] n. A tool that makes it all too easy for you toshoot yourself in the foot. "UNIX `rm *' makes such a nicepistol!"

:pizza box: [Sun] n. The largish thin box housing the electronicsin (especially Sun) desktop workstations, so named because of itssize and shape and the dimpled pattern that looks like air holes.

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

:pizza, ANSI standard: /an'see stan'd*rd peet'z*/ [CMU] Pepperoni and mushroom pizza. Coined allegedly because most pizzas ordered by CMU hackers during some period leading up to mid-1990 were of that flavor. See also {rotary debugger}; compare {tea, ISO standard cup of}.

:plaid screen: [XEROX PARC] n. A `special effect' which occurs when certain kinds of {memory smash}es overwrite the control blocks or image memory of a bit-mapped display. The term "salt & pepper" may refer to a different pattern of similar origin. Though the term as coined at PARC refers to the result of an error, some of the {X} demos induce plaid-screen effects deliberately as a {display hack}.

:plain-ASCII: /playn-as'kee/ Syn. {flat-ASCII}.

:plan file: [UNIX] n. On systems that support {finger}, the `.plan' file in a user's home directory is displayed when the user is fingered. This feature was originally intended to be used to keep potential fingerers apprised of one's location and near-future plans, but has been turned almost universally to humorous and self-expressive purposes (like a {sig block}). See {Hacking X for Y}.

: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 vault —- this replaced an earlier definition as 10^(-7) times the distance between the North Pole and the Equator along a meridian through Paris; unfortunately, this had been based on an inexact value of the circumference of the Earth. From 1960 to 1984 it was defined to be 1650763.73 wavelengths of the orange-red line of krypton-86 propagating in a vacuum. It is now defined as the length of the path traveled by light in a vacuum in the time interval of 1/299,792,458 of a second. The kilogram is now the only unit of measure officially defined in terms of a unique artifact.) "This garbage-collection algorithm has been tested against the platinum-iridium cons cell in Paris." Compare {golden}.

:playpen: [IBM] n. A room where programmers work. Compare {salt mines}.

:playte: /playt/ 16 bits, by analogy with {nybble} and{{byte}}. Usage: rare and extremely silly. See also {dynner}and {crumb}.

:plingnet: /pling'net/ n. Syn. {UUCPNET}. Also see{{Commonwealth Hackish}}, which uses `pling' for {bang} (as in{bang path}).

:plokta: /plok't*/ [Acronym for `Press Lots Of Keys To Abort'] v. To press random keys in an attempt to get some response from the system. One might plokta when the abort procedure for a program is not known, or when trying to figure out if the system is just sluggish or really hung. Plokta can also be used while trying to figure out any unknown key sequence for a particular operation. Someone going into `plokta mode' usually places both hands flat on the keyboard and presses down, hoping for some useful response.

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

qquit:q^CendxexitZZ^D?help

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

:plonk: [USENET: possibly influenced by British slang `plonk' for cheap booze] The sound a {newbie} makes as he falls to the bottom of a {kill file}. Used almost exclusively in the {newsgroup} talk.bizarre, this term (usually written "*plonk*") is a form of public ridicule.

:plugh: /ploogh/ [from the {ADVENT} game] v. See {xyzzy}.

:plumbing: [UNIX] n. Term used for {shell} code, so called because of the prevalence of `pipelines' that feed the output of one program to the input of another. Under UNIX, user utilities can often be implemented or at least prototyped by a suitable collection of pipelines and temp-file grinding encapsulated in a shell script; this is much less effort than writing C every time, and the capability is considered one of UNIX's major winning features. A few other OSs such as IBM's VM/CMS support similar facilities. Esp. used in the construction `hairy plumbing' (see {hairy}). "You can kluge together a basic spell-checker out of `sort(1)', `comm(1)', and `tr(1)' with a little plumbing." See also {tee}.

:PM: /P-M/ 1. v. (from `preventive maintenance') To bring down a machine for inspection or test purposes; see {scratch monkey}. 2. n. Abbrev. for `Presentation Manager', an {elephantine} OS/2 graphical user interface. See also {provocative maintenance}.

:pnambic: /p*-nam'bik/ [Acronym from the scene in the film version of `The Wizard of Oz' in which the true nature of the wizard is first discovered: "Pay no attention to the man behind the curtain."] 1. A stage of development of a process or function that, owing to incomplete implementation or to the complexity of the system, requires human interaction to simulate or replace some or all of the actions, inputs, or outputs of the process or function. 2. Of or pertaining to a process or function whose apparent operations are wholly or partially falsified. 3. Requiring {prestidigitization}.

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

:pod: [allegedly from abbreviation POD for `Prince Of Darkness'] n. A Diablo 630 (or, latterly, any letter-quality impact printer). From the DEC-10 PODTYPE program used to feed formatted text to it. See also {P.O.D.}

:point-and-drool interface: n. Parody of the techspeak term `point-and-shoot interface', describing a windows, icons, and mice-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: [from the operation that removes the top of a stack, and the fact that procedure return addresses are saved on the stack] (also capitalized `POP' /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 too deep a level of detail so that the main point of the discussion is being lost, someone will shout "Pop!", meaning "Get back up to a higher level!" The shout is frequently accompanied by an upthrust arm with a finger pointing to the ceiling.

:POPJ: /pop'J/ [from a {PDP-10} return-from-subroutineinstruction] n.,v. To return from a digression. By verb doubling,"Popj, popj" means roughly "Now let's see, where were we?"See {RTI}.

:posing: n. On a {MUD}, the use of `:' or an equivalent command to announce to other players that one is taking a certain physical action that has no effect on the game (it may, however, serve as a social signal or propaganda device that induces other people to take game actions). For example, if one's character name is Firechild, one might type `: looks delighted at the idea and begins hacking on the nearest terminal' to broadcast a message that says "Firechild looks delighted at the idea and begins hacking on the nearest terminal". See {RL}.

:post: v. To send a message to a {mailing list} or {newsgroup}. Distinguished in context from `mail'; one might ask, for example: "Are you going to post the patch or mail it to known users?"

:postcardware: n. {Shareware} that borders on {freeware}, in that theauthor requests only that satisfied users send a postcard of theirhome town or something. (This practice, silly as it might seem,serves to remind users that they are otherwise getting something fornothing, and may also be psychologically related to real estate"sales" in which $1 changes hands just to keep the transaction frombeing 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 thanpoint-to-point. It is not clear whether messages sent to a smallmailing list are postings or email; perhaps the best dividing lineis that if you don't know the names of all the potentialrecipients, 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 groundbreaking 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}, and {boot}, and see the AI Koan in "{A Selection of AI Koans}" (in {appendix A}) about Tom Knight and the novice.

:power hit: n. A spike or drop-out in the electricity supplying your machine; a power {glitch}. These can cause crashes and even permanent damage to your machine(s).

:PPN: /P-P-N/, /pip'n/ [from `Project-Programmer Number'] n. A user-ID under {{TOPS-10}} and its various mutant progeny at SAIL, BBN, CompuServe, and elsewhere. Old-time hackers from the PDP-10 era sometimes use this to refer to user IDs on other systems as well.

:precedence lossage: /pre's*-dens los'*j/ [C programmers] n. Coding error in an expression due to unexpected grouping of arithmetic or logical operators by the compiler. Used esp. of certain common coding errors in C due to the nonintuitively low precedence levels of `&', `|', `^', `<<', and `>>' (for this reason, experienced C programmers deliberately forget the language's {baroque} precedence hierarchy and parenthesize defensively). Can always be avoided by suitable use of parentheses. {LISP} fans enjoy pointing out that this can't happen in *their* favorite language, which eschews precedence entirely, requiring one to use explicit parentheses everywhere. See {aliasing bug}, {memory leak}, {memory smash}, {smash the stack}, {fandango on core}, {overrun screw}.

:prepend: /pree`pend'/ [by analogy with `append'] vt. To prefix. As with `append' (but not `prefix' or `suffix' as a verb), the direct object is always the thing being added and not the original word (or character string, or whatever). "If you prepend a semicolon to the line, the translation routine will pass it through unaltered."

:prestidigitization: /pres`t*-di`j*-ti:-zay'sh*n/ n. 1. The act of putting something into digital notation via sleight of hand. 2. Data entry through legerdemain.

:pretty pictures: n. [scientific computation] The next step up from {numbers}. Interesting graphical output from a program that may not have any sensible relationship to the system the program is intended to model. Good for showing to {management}.

:prettyprint: /prit'ee-print/ (alt. `pretty-print') v. 1. To generate `pretty' human-readable output from a {hairy} internal representation; esp. used for the process of {grind}ing (sense 2) LISP code. 2. To format in some particularly slick and nontrivial way.

:pretzel key: [Mac users] n. See {feature key}.

:prime time: [from TV programming] n. Normal high-usage hours on atimesharing system; the day shift. Avoidance of prime time is amajor reason for {night mode} hacking.

:printing discussion: [PARC] n. A protracted, low-level,time-consuming, generally pointless discussion of something onlyperipherally interesting to all.

:priority interrupt: [from the hardware term] n. Describes any stimulus compelling enough to yank one right out of {hack mode}. Classically used to describe being dragged away by an {SO} for immediate sex, but may also refer to more mundane interruptions such as a fire alarm going off in the near vicinity. Also called an {NMI} (non-maskable interrupt), especially in PC-land.

:profile: n. 1. A control file for a program, esp. a text file automatically read from each user's home directory and intended to be easily modified by the user in order to customize the program's behavior. Used to avoid {hardcoded} choices. 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.

:proglet: /prog'let/ [UK] n. A short extempore program written to meet an immediate, transient need. Often written in BASIC, rarely more than a dozen lines long, and contains 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 the language one is using). Compare {toy program}, {noddy}, {one-liner wars}.

:program: n. 1. A magic spell cast over a computer allowing it to turn one's input into error messages. 2. An exercise in experimental epistemology. 3. A form of art, ostensibly intended for the instruction of computers, which is nevertheless almost inevitably a failure if other programmers can't understand it.

:Programmer's Cheer: "Shift to the left! Shift to the right! Pop up, push down! Byte! Byte! Byte!" A joke so old it has hair on it.

:programming: n. 1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file). 2. n. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward. 3. n. The most fun you can have with your clothes on (although clothes are not mandatory).

:programming fluid: n. 1. Coffee. 2. Cola. 3. Any caffeinacious stimulant. Many hackers consider these essential for those all-night hacking runs. See {unleaded}, {wirewater}.

:propeller head: n. Used by hackers, this is syn. with {computer geek}. Non-hackers sometimes use it to describe all techies. Prob. derives from SF fandom's tradition (originally invented by old-time fan Ray Faraday Nelson) of propeller beanies as fannish insignia (though nobody actually wears them except as a joke).

:propeller key: [Mac users] n. See {feature key}.

:proprietary: adj. 1. In {marketroid}-speak, superior; implies a product imbued with exclusive magic by the unmatched brilliance of the company's 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 (that's assuming it wasn't too expensive in the first place).

:protocol: n. As used by hackers, this never refers to niceties about the proper form for addressing letters to the Papal Nuncio or the order in which one should use the forks in a Russian-style place setting; hackers don't care about such things. It is used instead to describe any set of rules that allow different machines or pieces of software to coordinate with each other without ambiguity. So, for example, it does include niceties about the proper form for addressing packets on a network or the order in which one should use the forks in the Dining Philosophers Problem. It implies that there is some common message format and an accepted set of primitives or commands that all parties involved understand, and that transactions among them follow predictable logical sequences. See also {handshaking}, {do protocol}.

:provocative maintenance: [common ironic mutation of `preventive maintenance'] n. Actions performed upon a machine at regularly scheduled intervals to ensure that the system remains in a usable state. So called because it is all too often performed by a {field servoid} who doesn't know what he is doing; this results in the machine's remaining in an *un*usable state for an indeterminate amount of time. See also {scratch monkey}.

:prowler: [UNIX] n. A {daemon} that is run periodically (typically once a week) to seek out and erase {core} files, truncate administrative logfiles, nuke `lost+found' directories, and otherwise clean up the {cruft} that tends to pile up in the corners of a file system. See also {GFR}, {reaper}, {skulker}.

:pseudo: /soo'doh/ [USENET: truncation of `pseudonym'] n. 1. An electronic-mail or {USENET} persona adopted by a human for amusement value or as a means of avoiding negative repercussions of one's net.behavior; a `nom de USENET', often associated with forged postings designed to conceal message origins. Perhaps the best-known and funniest hoax of this type is {BIFF}. 2. Notionally, a {flamage}-generating AI program simulating a USENET user. Many flamers have been accused of actually being such entities, despite the fact that no AI program of the required sophistication yet exists. However, in 1989 there was a famous series of forged postings that used a phrase-frequency-based travesty generator to simulate the styles of several well-known flamers; it was based on large samples of their back postings (compare {Dissociated Press}). A significant number of people were fooled by the forgeries, and the debate over their authenticity was settled only when the perpetrator came forward to publicly admit the hoax.

:pseudoprime: n. A backgammon prime (six consecutive occupied points) with one point missing. This term is an esoteric pun derived from a mathematical method that, rather than determining precisely whether a number is prime (has no divisors), uses a statistical technique to decide whether the number is `probably' prime. A number that passes this test is called a pseudoprime. The hacker backgammon usage stems from the idea that a pseudoprime is almost as good as a prime: it does the job of a prime until proven otherwise, and that probably won't happen.

:pseudosuit: /soo'doh-s[y]oot`/ n. A {suit} wannabee; a hacker who has decided that he wants to be in management or administration and begins wearing ties, sport coats, and (shudder!) suits voluntarily. It's his funeral. See also {lobotomy}.

:psychedelicware: /si:`k*-del'-ik-weir/ [UK] n. Syn. {display hack}. See also {smoking clover}.

:psyton: /si:'ton/ [TMRC] n. The elementary particle carrying the sinister force. The probability of a process losing is proportional to the number of psytons falling on it. Psytons are generated by observers, which is why demos are more likely to fail when lots of people are watching. [This term appears to have been largely superseded by {bogon}; see also {quantum bogodynamics}. —- ESR]

:pubic directory: [NYU] (also `pube directory' /pyoob' d*-rek't*-ree/) n. The `pub' (public) directory on a machine that allows {FTP} access. So called because it is the default location for {SEX} (sense 1). "I'll have the source in the pube directory by Friday."

:puff: vt. To decompress data that has been crunched by Huffman coding. At least one widely distributed Huffman decoder program was actually *named* `PUFF', but these days it is usually packaged with the encoder. Oppose {huff}.

:punched card:: alt. `punch card' [techspeak] n.obs. The signature medium of computing's {Stone Age}, now obsolescent outside of some IBM shops. The punched card actually predated computers considerably, originating in 1801 as a control device for mechanical looms. The version patented by Hollerith and used with mechanical tabulating machines in the 1890 U.S. Census was a piece of cardboard about 90 mm by 215 mm, designed to fit exactly in the currency trays used for that era's larger dollar bills.

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

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

:punt: [from the punch line of an old joke referring to American football: "Drop back 15 yards and punt!"] v. 1. To give up, typically without any intention of retrying. "Let's punt the movie tonight." "I was going to hack all night to get this feature in, but I decided to punt" may mean that you've decided not to stay up all night, and may also mean you're not ever even going to put in the feature. 2. More specifically, to give up on figuring out what the {Right Thing} is and resort to an inefficient hack. 3. A design decision to defer solving a problem, typically because one cannot define what is desirable sufficiently well to frame an algorithmic solution. "No way to know what the right form to dump the graph in is —- we'll punt that for now." 4. To hand a tricky implementation problem off to some other section of the design. "It's too hard to get the compiler to do that; let's punt to the runtime system."

:Purple Book: n. 1. The `System V Interface Definition'. The covers of the first editions were an amazingly nauseating shade of off-lavender. 2. Syn. {Wizard Book}. See also {{book titles}}.

:purple wire: [IBM] n. Wire installed by Field Engineers to work around problems discovered during testing or debugging. These are called `purple wires' even when (as is frequently the case) their actual physical color is yellow…. Compare {blue wire}, {purple 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 = =====

:Q-line: [IRC] v. To ban a particular {IRC} server from connecting to one's own; does to it what {K-line} does to an individual. Since this is applied transitively, it has the effect of partitioning the IRC network, which is generally a {bad thing}.

: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 Oxbridge 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 1000^(-1), 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 which 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 `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}.

: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. See also {nickle}, {nybble}, {{byte}}, {dynner}.

: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: [from the name of the logician Willard V. Quine, via Douglas Hofstadter] n. A program which generates a copy of its 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:

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 line break after the second semicolon. Some infamous {Obfuscated C Contest} entries have been quines that reproduced in exotic ways.

:quote chapter and verse: [by analogy with the mainstream phrase] v. 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."

:quotient: n. See {coefficient of X}.

:quux: /kwuhks/ [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 na"ive 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, quux is 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 of the standard series just run {foo}, {bar}, {baz}, {quux}, ….

:QWERTY: /kwer'tee/ [from the keycaps at the upper left] adj. 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 = =====

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

: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}); 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:

17Long described at MIT as `the least random number'; see 23.23Sacred number of Eris, Goddess of Discord (along with 17 and5).42The Answer to the Ultimate Question of Life, the Universe, andEverything. (Note that this answer is completely fortuitous.`:-)')69From the sexual act. This one was favored in MIT's ITSculture.10569 hex = 105 decimal, and 69 decimal = 105 octal.666The 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:8). 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: [UNIX] adj. CBREAK mode (character-by-character withinterrupts enabled). Distinguished from {raw mode} and {cookedmode}; the phrase "a sort of half-cooked (rare?) mode" is usedin 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 stereoAmericans 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'.

:rave: [WPI] vi. 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 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', which 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 which 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/ [UNIX: from the startup script `/etc/rc', but this is commonly believed to have been named after older scripts to `run commands'] n. 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}.

: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. By convention, the top-level directory of a UNIX source distribution always contains a file named `README' (or READ.ME, or rarely ReadMe or some other variant), which is a hacker's-eye introduction containing a pointer to more detailed documentation, credits, miscellaneous revision history notes, etc. In the Mac and PC worlds, software is not usually distributed in source form and a 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?" See {holy wars}, {religious issues}, {proprietary}, {Get a real computer!}

:real programmer: [indirectly, from the book `Real Men Don't Eat Quiche'] n. 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}.

:Real Soon Now: [orig. from SF's fanzine community, popularized by Jerry Pournelle's column in `BYTE'] adv. 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.

: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. 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:: pl.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. Until now, these have changed color each review cycle (1988 was {Blue Book}, 1992 will be {Green Book}); however, it is rumored that this convention is going to be dropped before 1992. 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 U.S.A. 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: [IBM] n. Patch wires installed by programmers who have no business mucking with the hardware. It is said that the only thing more dangerous then a hardware guy with a code patch is a {softy} with a soldering iron….

:regexp: /reg'eksp/ [UNIX] n. (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 .

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


Back to IndexNext