The Jargon File, Version 4.2.2, 20 Aug 2000
Chapter 46
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.
Node:pumpkin holder, Next:pumpking, Previous:puff, Up:= P =
pumpkin holder n.
See patch pumpkin.
Node:pumpking, Next:punched card, Previous:pumpkin holder, Up:= P =
pumpking n.
Syn. for pumpkin holder; see patch pumpkin.
Node:punched card, Next:punt, Previous:pumpking, Up:= P =
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.
Node:punt, Next:Purple Book, Previous:punched card, Up:= P =
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." 5. To knock someone off an Internet or chat connection; a `punter' thus, is a person or program that does this.
Node:Purple Book, Next:purple wire, Previous:punt, Up:= P =
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.
Node:purple wire, Next:push, Previous:Purple Book, Up:= P =
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.
Node:push, Next:Python, Previous:purple wire, Up:= P =
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.
Node:Python, Next:quad, Previous:push, Up:= P =
Python /pi:'thon/
In the words of its author, "the other scripting language" (other than Perl, that is). Python's design is notably clean, elegant, and well thought through; it tends to attract the sort of programmers who find Perl grubby and exiguous. Python's relationship with Perl is rather like the BSD community's relationship to Linux - it's the smaller party in a (usually friendly) rivalry, but the average quality of its developers is generally conceded to be rather higher than in the larger community it competes with. There's a Python resource page at http://www.python.org. See also Guido.
Node:= Q =, Next:= R =, Previous:= P =, Up:The Jargon Lexicon
= Q =
quad:
quadruple bucky:
quantifiers:
quantum bogodynamics:
quarter:
ques:
quick-and-dirty:
quine:
quote chapter and verse:
quotient:
quux:
qux:
QWERTY:
Node:quad, Next:quadruple bucky, Previous:Python, Up:= 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.
Node:quadruple bucky, Next:quantifiers, Previous:quad, Up:= Q =
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.
Node:quantifiers, Next:quantum bogodynamics, Previous:quadruple bucky, Up:= Q =
quantifiers
In techspeak and jargon, the standard metric prefixes used in the SI (Système 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.]
[1999 upate: there is an IEC proposal for binary multipliers, but no evidence that any of its proposals are in live use.]
Node:quantum bogodynamics, Next:quarter, Previous:quantifiers, Up:= Q =
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 suits 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.
Node:quarter, Next:ques, Previous:quantum bogodynamics, Up:= Q =
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.
Node:ques, Next:quick-and-dirty, Previous:quarter, Up:= Q =
ques /kwes/
1. n. The question mark character (?, ASCII 0111111). 2. interj. What? Also frequently verb-doubled as "Ques ques?" See wall.
Node:quick-and-dirty, Next:quine, Previous:ques, Up:= Q =
quick-and-dirty adj.
[common] 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.
Node:quine, Next:quote chapter and verse, Previous:quick-and-dirty, Up:= Q =
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. (We ignore some variants of BASIC in which a program consisting of a single empty string literal reproduces itself trivially.) 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. Here is another elegant quine in ANSI C:
#define q(k)main(){return!puts(#k"\nq("#k")");} q(#define q(k)main(){return!puts(#k"\nq("#k")");})
Some infamous Obfuscated C Contest entries have been quines that reproduced in exotic ways. There is an amusing Quine Home Page.
Node:quote chapter and verse, Next:quotient, Previous:quine, Up:= Q =
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).
Node:quotient, Next:quux, Previous:quote chapter and verse, Up:= Q =
quotient n.
See coefficient of X.
Node:quux, Next:qux, Previous:quotient, Up:= Q =
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.
Node:qux, Next:QWERTY, Previous:quux, Up:= Q =
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, ....
Node:QWERTY, Next:rabbit job, Previous:qux, Up:= Q =
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 non-US-ASCII 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 demos. The jamming problem was essentially solved soon afterward by a suitable use of springs, but the keyboard layout lives on.
The QWERTY keyboard has also spawned some unhelpful economic myths about how technical standards get and stay established; see http://www.reasonmag.com/9606/Fe.QWERTY.html.
Node:= R =, Next:= S =, Previous:= Q =, Up:The Jargon Lexicon
= R =
rabbit job:
rain dance:
rainbow series:
random:
Random Number God:
random numbers:
randomness:
rape:
rare mode:
raster blaster:
raster burn:
rasterbation:
rat belt:
rat dance:
ratio site:
rave:
rave on!:
ravs:
raw mode:
RBL:
rc file:
RE:
read-only user:
README file:
real:
real estate:
real hack:
real operating system:
Real Programmer:
Real Soon Now:
real time:
real user:
Real World:
reality check:
reality-distortion field:
reaper:
recompile the world:
rectangle slinger:
recursion:
recursive acronym:
Red Book:
red wire:
regexp:
register dancing:
rehi:
reincarnation cycle of:
reinvent the wheel:
relay rape:
religion of CHI:
religious issues:
replicator:
reply:
restriction:
retcon:
RETI:
retrocomputing:
return from the dead:
RFC:
RFE:
rib site:
rice box:
Right Thing:
rip:
ripoff:
RL:
roach:
robocanceller:
robot:
robust:
rococo:
rogue:
room-temperature IQ:
root:
root mode:
rot13:
rotary debugger:
round tape:
RSN:
RTBM:
RTFAQ:
RTFB:
RTFM:
RTFS:
RTI:
RTM:
RTS:
rude:
runes:
runic:
rusty iron:
rusty memory:
rusty wire:
Node:rabbit job, Next:rain dance, Previous:QWERTY, Up:= 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.
Node:rain dance, Next:rainbow series, Previous:rabbit job, Up:= 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, cargo cult programming, wave a dead chicken; see also casting the runes.
Node:rainbow series, Next:random, Previous:rain dance, Up:= R =
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.
Node:random, Next:Random Number God, Previous:rainbow series, Up:= R =
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. 11. [UK] Conversationally, a non sequitur or something similarly out-of-the-blue. As in: "Stop being so random!" This sense equates to `hatstand', taken from the Viz comic character "Roger Irrelevant - He's completely Hatstand."
Node:Random Number God, Next:random numbers, Previous:random, Up:= R =
Random Number God
[rec.games.roguelike.angband; often abbreviated `RNG'] The malign force which lurks behind the random number generator in Angband (and by extension elsewhere). A dark god that demands sacrifices and toys with its victims. "I just found a really great item; I suppose the RNG is about to punish me..." Apparently, Angband's random number generator occasionally gets locked in a repetition, so you get something with a 3% chance happening 8 times in a row. Improbable, but far too common to be pure chance. Compare Shub-Internet.
Node:random numbers, Next:randomness, Previous:Random Number God, Up:= R =
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.
Node:randomness, Next:rape, Previous:random numbers, Up:= R =