Part 40
At mainframe shops, where the computers have operators for routine administrivia, the programmers and hardware people tend to look down on the operators and claim that a trained monkey could do their job. It is frequently observed that the incentives that would be offered said monkeys can be used as a scale to describe the difficulty of a task. A one-banana problem is simple; hence, "It's only a one-banana job at the most; what's taking them so long?"
At IBM, folklore divides the world into one-, two-, and three-banana problems. Other cultures have different hierarchies and may divide them more finely; at ICL, for example, five grapes (a bunch) equals a banana. Their upper limit for the in-house sysapes is said to be two bananas and three grapes (another source claims it's three bananas and one grape, but observes "However, this is subject to local variations, cosmic rays and ISO"). At a complication level any higher than that, one asks the manufacturers to send someone around to check things.
See also Infinite-Monkey Theorem.
Node:one-line fix, Next:one-liner wars, Previous:one-banana problem, Up:= O =
one-line fix n.
Used (often sarcastically) of a change to a program that is thought to be trivial or insignificant right up to the moment it crashes the system. Usually `cured' by another one-line fix. See also I didn't change anything!
Node:one-liner wars, Next:ooblick, Previous:one-line fix, Up:= O =
one-liner wars n.
A game popular among hackers who code in the language APL (see write-only language and line noise). The objective is to see who can code the most interesting and/or useful routine in one line of operators chosen from APL's exceedingly hairy primitive set. A similar amusement was practiced among TECO hackers and is now popular among Perl aficionados.
Ken Iverson, the inventor of APL, has been credited with a one-liner that, given a number N, produces a list of the prime numbers from 1 to N inclusive. It looks like this:
(2 = 0 +.= T o.| T) / T <- iN
where `o' is the APL null character, the assignment arrow is a single character, and `i' represents the APL iota.
Here's a Perl program that prints primes:
perl -wle '(1 x $_) !~ /^(11+)\1+$/ && print while ++ $_'
In the Perl world this game is sometimes called Perl Golf because the player with the fewest (key)strokes wins.
Node:ooblick, Next:op, Previous:one-liner wars, Up:= O =
ooblick /oo'blik/ n.
[from the Dr. Seuss title "Bartholomew and the Oobleck"; the spelling `oobleck' is still current in the mainstream] A bizarre semi-liquid sludge made from cornstarch and water. Enjoyed among hackers who make batches during playtime at parties for its amusing and extremely non-Newtonian behavior; it pours and splatters, but resists rapid motion like a solid and will even crack when hit by a hammer. Often found near lasers.
Here is a field-tested ooblick recipe contributed by GLS:
1 cup cornstarch
1 cup baking soda
3/4 cup water
N drops of food coloring
This recipe isn't quite as non-Newtonian as a pure cornstarch ooblick, but has an appropriately slimy feel.
Some, however, insist that the notion of an ooblick recipe is far too mechanical, and that it is best to add the water in small increments so that the various mixed states the cornstarch goes through as it becomes ooblick can be grokked in fullness by many hands. For optional ingredients of this experience, see the "Ceremonial Chemicals" section of Appendix B.
Node:op, Next:open, Previous:ooblick, Up:= O =
op /op/ n.
1. In England and Ireland, common verbal abbreviation for `operator', as in system operator. Less common in the U.S., where sysop seems to be preferred. 2. [IRC] Someone who is endowed with privileges on IRC, not limited to a particular channel. These are generally people who are in charge of the IRC server at their
## particular site. Sometimes used interchangeably with CHOP. Compare sysop.
Node:open, Next:open source, Previous:op, Up:= O =
open n.
Abbreviation for `open (or left) parenthesis' -- used when necessary to eliminate oral ambiguity. To read aloud the LISP form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open eks close, open, plus eks one, close close."
Node:open source, Next:open switch, Previous:open, Up:= O =
open source n.
[common; also adj. `open-source'] Term coined in March 1998 following the Mozilla release to describe software distributed in source under licenses guaranteeing anybody rights to freely use, modify, and redistribute, the code. The intent was to be able to sell the hackers' ways of doing software to industry and the mainstream by avoid the negative connotations (to suits) of the term "free software". For discussion of the followon tactics and their consequences, see the Open Source Initiative site.
Node:open switch, Next:operating system, Previous:open source, Up:= O =
open switch n.
[IBM: prob. from railroading] An unresolved question, issue, or problem.
Node:operating system, Next:optical diff, Previous:open switch, Up:= O =
operating system n.
[techspeak] (Often abbreviated `OS') The foundation software of a machine; that which schedules tasks, allocates storage, and presents a default interface to the user between applications. The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around its host machines. Hacker folklore has been shaped primarily by the Unix, ITS, TOPS-10, TOPS-20/TWENEX, WAITS, CP/M, MS-DOS, and Multics operating systems (most importantly by ITS and Unix).
Node:optical diff, Next:optical grep, Previous:operating system, Up:= O =
optical diff n.
See vdiff.
Node:optical grep, Next:optimism, Previous:optical diff, Up:= O =
optical grep n.
See vgrep.
Node:optimism, Next:Oracle the, Previous:optical grep, Up:= O =
optimism n.
What a programmer is full of after fixing the last bug and before discovering the next last bug. Fred Brooks's book "The Mythical Man-Month" (See "Brooks's Law") contains the following paragraph that describes this extremely well:
All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists. But however the selection process works, the result is indisputable: "This time it will surely run," or "I just found the last bug.".
See also Lubarsky's Law of Cybernetic Entomology.
Node:Oracle the, Next:Orange Book, Previous:optimism, Up:= O =
Oracle, the
The all-knowing, all-wise Internet Oracle _rec.humor.oracle_), or one of the foreign language derivatives of same. Newbies frequently confuse the Oracle with Oracle, a database vendor. As a result, the unmoderated _rec.humor.oracle.d_ is frequently crossposted to by the clueless, looking for advice on SQL. As more than one person has said in similar situations, "Don't people bother to look at the newsgroup description line anymore?" (To which the standard response is, "Did people ever read it in the first place?")
Node:Orange Book, Next:oriental food, Previous:Oracle the, Up:= O =
Orange Book n.
The U.S. Government's standards document "Trusted Computer System Evaluation Criteria, DOD standard 5200.28-STD, December, 1985" which characterize secure computing architectures and defines levels A1 (most secure) through D (least). Modern Unixes are roughly C2. See also crayola books, book titles.
Node:oriental food, Next:orphan, Previous:Orange Book, Up:= O =
oriental food n.
Hackers display an intense tropism towards oriental cuisine, especially Chinese, and especially of the spicier varieties such as Szechuan and Hunan. This phenomenon (which has also been observed in subcultures that overlap heavily with hackerdom, most notably science-fiction fandom) has never been satisfactorily explained, but is sufficiently intense that one can assume the target of a hackish dinner expedition to be the best local Chinese place and be right at least three times out of four. See also ravs, great-wall, stir-fried random, laser chicken, Yu-Shiang Whole Fish. Thai, Indian, Korean, and Vietnamese cuisines are also quite popular.
Node:orphan, Next:orphaned i-node, Previous:oriental food, Up:= O =
orphan n.
[Unix] A process whose parent has died; one inherited by init(1). Compare zombie.
Node:orphaned i-node, Next:orthogonal, Previous:orphan, Up:= O =
orphaned i-node /or'f*nd i:'nohd/ n.
[Unix] 1. [techspeak] A file that retains storage but no longer appears in the directories of a filesystem. 2. By extension, a pejorative for any person no longer serving a useful function within some organization, esp. lion food without subordinates.
Node:orthogonal, Next:OS, Previous:orphaned i-node, Up:= O =
orthogonal adj.
[from mathematics] Mutually independent; well separated; sometimes, irrelevant to. Used in a generalization of its mathematical meaning to describe sets of primitives or capabilities that, like a vector basis in geometry, span the entire `capability space' of the system and are in some sense non-overlapping or mutually independent. For example, in architectures such as the PDP-11 or VAX where all or nearly all registers can be used interchangeably in any role with respect to any instruction, the register set is said to be orthogonal. Or, in logic, the set of operators `not' and `or' is orthogonal, but the set `nand', `or', and `not' is not (because any one of these can be expressed in terms of the others). Also used in comments on human discourse: "This may be orthogonal to the discussion, but...."
Node:OS, Next:OS/2, Previous:orthogonal, Up:= O =
OS /O-S/
1. [Operating System] n. An abbreviation heavily used in email, occasionally in speech. 2. n. obs. On ITS, an output spy. See "OS and JEDGAR" in Appendix A.
Node:OS/2, Next:OSS, Previous:OS, Up:= O =
OS/2 /O S too/ n.
The anointed successor to MS-DOS for Intel 286- and 386-based micros; proof that IBM/Microsoft couldn't get it right the second time, either. Often called `Half-an-OS'. Mentioning it is usually good for a cheap laugh among hackers -- the design was so baroque, and the implementation of 1.x so bad, that 3 years after introduction you could still count the major apps shipping for it on the fingers of two hands -- in unary. The 2.x versions are said to have improved somewhat, and informed hackers now rate them superior to Microsoft Windows (an endorsement which, however, could easily be construed as damning with faint praise). See monstrosity, cretinous, second-system effect.
Node:OSS, Next:OSU, Previous:OS/2, Up:= O =
OSS
Written-only acronym for "Open Source Software" (see open source. This is a rather ugly TLA, and the principals in the open-source movement don't use it, but it has (perhaps inevitably) spread through the trade press like kudzu.
Node:OSU, Next:OTOH, Previous:OSS, Up:= O =
OSU /O-S-U/ n. obs.
[TMRC] Acronym for Officially Sanctioned User; a user who is recognized as such by the computer authorities and allowed to use the computer above the objections of the security monitor.
Node:OTOH, Next:out-of-band, Previous:OSU, Up:= O =
OTOH //
[Usenet; very common] On The Other Hand.
Node:out-of-band, Next:overclock, Previous:OTOH, Up:= O =
out-of-band adj.
[from telecommunications and network theory] 1. In software, describes values of a function which are not in its `natural' range of return values, but are rather signals that some kind of exception has occurred. Many C functions, for example, return a nonnegative integral value, but indicate failure with an out-of-band return value of -1. Compare hidden flag, green bytes, fence. 2. Also sometimes used to describe what communications people call `shift characters', such as the ESC that leads control sequences for many terminals, or the level shift indicators in the old 5-bit Baudot codes. 3. In personal communication, using methods other than email, such as telephones or snail-mail.
Node:overclock, Next:overflow bit, Previous:out-of-band, Up:= O =
overclock /oh'vr-klok'/ vt.
To operate a CPU or other digital logic device at a rate higher than it was designed for, under the assumption that the manufacturer put some slop into the specification to account for manufacturing tolerances. Overclocking something can result in intermittent crashes, and can even burn things out, since power dissipation is directly proportional to clock frequency. People who make a hobby of this are sometimes called "overclockers"; they are thrilled that they can run their 450MHz CPU at 500MHz, even though they can only tell the difference by running a benchmark program.
Node:overflow bit, Next:overflow pdl, Previous:overclock, Up:= O =
overflow bit n.
1. [techspeak] A flag on some processors indicating an attempt to calculate a result too large for a register to hold. 2. More generally, an indication of any kind of capacity overload condition. "Well, the Ada description was baroque all right, but I could hack it OK until they got to the exception handling ... that set my overflow bit." 3. The hypothetical bit that will be set if a hacker doesn't get to make a trip to the Room of Porcelain Fixtures: "I'd better process an internal interrupt before the overflow bit gets set."
Node:overflow pdl, Next:overrun, Previous:overflow bit, Up:= O =
overflow pdl n.
[MIT] The place where you put things when your PDL is full. If you don't have one and too many things get pushed, you forget something. The overflow pdl for a person's memory might be a memo pad. This usage inspired the following doggerel:
Hey, diddle, diddle
The overflow pdl
To get a little more stack;
If that's not enough
Then you lose it all,
And have to pop all the way back.
-The Great Quux
The term `pdl' (see PDL) seems to be primarily an MITism; outside MIT this term is replaced by `overflow stack' (but that wouldn't rhyme with `diddle').
Node:overrun, Next:overrun screw, Previous:overflow pdl, Up:= O =
overrun n.
1. [techspeak] Term for a frequent consequence of data arriving faster than it can be consumed, esp. in serial line communications. For example, at 9600 baud there is almost exactly one character per millisecond, so if a silo can hold only two characters and the machine takes longer than 2 msec to get to service the interrupt, at least one character will be lost. 2. Also applied to non-serial-I/O communications. "I forgot to pay my electric bill due to mail overrun." "Sorry, I got four phone calls in 3 minutes last night and lost your message to overrun." When thrashing at tasks, the next person to make a request might be told "Overrun!" Compare firehose syndrome. 3. More loosely, may refer to a buffer overflow not necessarily related to processing time (as in overrun screw).
Node:overrun screw, Next:P-mail, Previous:overrun, Up:= O =
overrun screw n.
[C programming] A variety of fandango on core produced by scribbling past the end of an array (C implementations typically have no checks for this error). This is relatively benign and easy to spot if the array is static; if it is auto, the result may be to smash the stack -- often resulting in heisenbugs of the most diabolical subtlety. The term `overrun screw' is used esp. of scribbles beyond the end of arrays allocated with malloc(3); this typically trashes the allocation header for the next block in the arena, producing massive lossage within malloc and often a core dump on the next operation to use stdio(3) or malloc(3) itself. See spam, overrun; see also memory leak, memory smash, aliasing bug, precedence lossage, fandango on core, secondary damage.
Node:= P =, Next:= Q =, Previous:= O =, Up:The Jargon Lexicon
= P =
P-mail:
P.O.D.:
packet over air:
padded cell:
page in:
page out:
pain in the net:
Pangloss parity:
paper-net:
param:
PARC:
parent message:
parity errors:
Parkinson's Law of Data:
parm:
parse:
Pascal:
pastie:
patch:
patch pumpkin:
patch space:
path:
pathological:
payware:
PBD:
PC-ism:
PD:
PDL:
PDP-10:
PDP-20:
PEBKAC:
peek:
pencil and paper:
Pentagram Pro:
Pentium:
peon:
percent-S:
perf:
perfect programmer syndrome:
Perl:
person of no account:
pessimal:
pessimizing compiler:
peta-:
PETSCII:
PFY:
phage:
phase:
phase of the moon:
phase-wrapping:
PHB:
phreaker:
phreaking:
pico-:
pig-tail:
pilot error:
ping:
Ping O' Death:
ping storm:
pink wire:
pipe:
pistol:
pixel sort:
pizza box:
plaid screen:
plain-ASCII:
plan file:
platinum-iridium:
playpen:
playte:
plingnet:
plokta:
plonk:
plug-and-pray:
plugh:
plumbing:
PM:
pnambic:
pod:
point-and-drool interface:
pointy hat:
pointy-haired:
poke:
poll:
polygon pusher:
POM:
pop:
POPJ:
poser:
post:
postcardware:
posting:
postmaster:
PostScript:
pound on:
power cycle:
power hit:
PPN:
pr0n:
precedence lossage:
prepend:
prestidigitization:
pretty pictures:
prettyprint:
pretzel key:
priesthood:
prime time:
print:
printing discussion:
priority interrupt:
profile:
progasm:
proggy:
proglet:
program:
Programmer's Cheer:
programming:
programming fluid:
propeller head:
propeller key:
proprietary:
protocol:
provocative maintenance:
prowler:
pseudo:
pseudoprime:
pseudosuit:
psychedelicware:
psyton:
pubic directory:
puff:
pumpkin holder:
pumpking:
punched card:
punt:
Purple Book:
purple wire:
push:
Python:
Node:P-mail, Next:P.O.D., Previous:overrun screw, Up:= P =
P-mail n.
[rare] Physical mail, as opposed to email. Synonymous with snail-mail, but much less common.
Node:P.O.D., Next:packet over air, Previous:P-mail, Up:= P =
P.O.D. /P-O-D/
[rare] Acronym for `Piece Of Data' (as opposed to a code section). See also pod.
Node:packet over air, Next:padded cell, Previous:P.O.D., Up:= P =
packet over air
[common among backbone ISPs] The protocol notionally being used by Internet data attempting to traverse a physical gap or break in the network, such as might be caused by a fiber-seeking backhoe. "I see why you're dropping packets. You seem to have a packet over air problem.
Node:padded cell, Next:page in, Previous:packet over air, Up:= P =
padded cell n.
Where you put lusers so they can't hurt anything. A program that limits a luser to a carefully restricted subset of the capabilities of the host system (for example, the rsh(1) utility on USG Unix). Note that this is different from an iron box because it is overt and not aimed at enforcing security so much as protecting others (and the luser) from the consequences of the luser's boundless naivete (see naive). Also `padded cell environment'.
Node:page in, Next:page out, Previous:padded cell, Up:= P =
page in v.
[MIT] 1. To become aware of one's surroundings again after having paged out (see page out). Usually confined to the sarcastic comment: "Eric pages in, film at 11!" 2. Syn. `swap in'; see swap.
Node:page out, Next:pain in the net, Previous:page in, Up:= P =
page out vi.
[MIT] 1. To become unaware of one's surroundings temporarily, due to daydreaming or preoccupation. "Can you repeat that? I paged out for a minute." See page in. Compare glitch, thinko. 2. Syn. `swap out'; see swap.
Node:pain in the net, Next:Pangloss parity, Previous:page out, Up:= P =
pain in the net n.
A flamer.
Node:Pangloss parity, Next:paper-net, Previous:pain in the net, Up:= P =
Pangloss parity n.
[from Dr. Pangloss, the eternal optimist in Voltaire's "Candide"] In corporate DP shops, a common condition of severe but equally shared lossage resulting from the theory that as long as everyone in the organization has the exactly the same model of obsolete computer, everything will be fine.
Node:paper-net, Next:param, Previous:Pangloss parity, Up:= P =
paper-net n.
Hackish way of referring to the postal service, analogizing it to a very slow, low-reliability network. Usenet sig blocks sometimes include a "Paper-Net:" header just before the sender's postal address; common variants of this are "Papernet" and "P-Net". Note that the standard netiquette guidelines discourage this practice as a waste of bandwidth, since netters are quite unlikely to casually use postal addresses. Compare voice-net, snail-mail, P-mail.
Node:param, Next:PARC, Previous:paper-net, Up:= P =
param /p*-ram'/ n.
[common] Shorthand for `parameter'. See also parm; compare arg, var.
Node:PARC, Next:parent message, Previous:param, Up:= P =
PARC n.
See XEROX PARC.
Node:parent message, Next:parity errors, Previous:PARC, Up:= P =
parent message n.
What a followup follows up.
Node:parity errors, Next:Parkinson's Law of Data, Previous:parent message, Up:= P =
parity errors pl.n.
Little lapses of attention or (in more severe cases) consciousness, usually brought on by having spent all night and most of the next day hacking. "I need to go home and crash; I'm starting to get a lot of parity errors." Derives from a relatively common but nearly always correctable transient error in memory hardware. It predates RAM; in fact, this term is reported to have already have been in use in its jargoin sense back in the 1960s when magnetic cores ruled. Parity errors can also afflict mass storage and serial communication lines; this is more serious because not always correctable.
Node:Parkinson's Law of Data, Next:parm, Previous:parity errors, Up:= P =
Parkinson's Law of Data prov.
"Data expands to fill the space available for storage"; buying more memory encourages the use of more memory-intensive techniques. It has been observed since the mid-1980s that the memory usage of evolving systems tends to double roughly once every 18 months. Fortunately, memory density available for constant dollars also tends to about double once every 18 months (see Moore's Law); unfortunately, the laws of physics guarantee that the latter cannot continue indefinitely.
Node:parm, Next:parse, Previous:Parkinson's Law of Data, Up:= P =
parm /parm/ n.
Further-compressed form of param. This term is an IBMism, and written use is almost unknown outside IBM shops; spoken /parm/ is more widely distributed, but the synonym arg is favored among hackers. Compare arg, var.
Node:parse, Next:Pascal, Previous:parm, Up:= P =
parse [from linguistic terminology] vt.
1. To determine the syntactic structure of a sentence or other utterance (close to the standard English meaning). "That was the one I saw you." "I can't parse that." 2. More generally, to understand or comprehend. "It's very simple; you just kretch the glims and then aos the zotz." "I can't parse that." 3. Of fish, to have to remove the bones yourself. "I object to parsing fish", means "I don't want to get a whole fish, but a sliced one is okay". A `parsed fish' has been deboned. There is some controversy over whether `unparsed' should mean `bony', or also mean `deboned'.
Node:Pascal, Next:pastie, Previous:parse, Up:= P =
Pascal n.
An Algol-descended language designed by Niklaus Wirth on the CDC 6600 around 1967-68 as an instructional tool for elementary programming. This language, designed primarily to keep students from shooting themselves in the foot and thus extremely restrictive from a general-purpose-programming point of view, was later promoted as a general-purpose tool and, in fact, became the ancestor of a large family of languages including Modula-2 and Ada (see also bondage-and-discipline language). The hackish point of view on Pascal was probably best summed up by a devastating (and, in its deadpan way, screamingly funny) 1981 paper by Brian Kernighan (of K&R fame) entitled "Why Pascal is Not My Favorite Programming Language", which was turned down by the technical journals but circulated widely via photocopies. It was eventually published in "Comparing and Assessing Programming Languages", edited by Alan Feuer and Narain Gehani (Prentice-Hall, 1984). Part of his discussion is worth repeating here, because its criticisms are still apposite to Pascal itself after ten years of improvement and could also stand as an indictment of many other bondage-and-discipline languages. At the end of a summary of the case against Pascal, Kernighan wrote:
9. There is no escape
This last point is perhaps the most important. The language is inadequate but circumscribed, because there is no way to escape its limitations. There are no casts to disable the type-checking when necessary. There is no way to replace the defective run-time environment with a sensible one, unless one controls the compiler that defines the "standard procedures". The language is closed.
People who use Pascal for serious programming fall into a fatal trap. Because the language is impotent, it must be extended. But each group extends Pascal in its own direction, to make it look like whatever language they really want. Extensions for separate compilation, FORTRAN-like COMMON, string data types, internal static variables, initialization, octal numbers, bit operators, etc., all add to the utility of the language for one group but destroy its portability to others.
I feel that it is a mistake to use Pascal for anything much beyond its original target. In its pure form, Pascal is a toy language, suitable for teaching but not for real programming.
Pascal has since been almost entirely displaced (by C) from the niches it had acquired in serious applications and systems programming, but retains some popularity as a hobbyist language in the MS-DOS and Macintosh worlds.
Node:pastie, Next:patch, Previous:Pascal, Up:= P =
pastie /pay'stee/ n.