:COME FROM: /n./ A semi-mythical language construct dual to the

`go to'; `COME FROM' <label> would cause the referenced label

to act as a sort of trapdoor, so that if the program ever reached

it control would quietly and {automagically} be transferred to

the statement following the `COME FROM'. `COME FROM'

was first proposed in R. Lawrence Clark's "A Linguistic

Contribution to GOTO-less programming", which appeared in a 1973

{Datamation} issue (and was reprinted in the April 1984 issue of

"Communications of the ACM"). This parodied the then-raging

`structured programming' {holy wars} (see {considered

harmful}). Mythically, some variants are the `assigned COME

FROM' and the `computed COME FROM' (parodying some nasty control

constructs in FORTRAN and some extended BASICs). Of course,

multi-tasking (or non-determinism) could be implemented by having

more than one `COME FROM' statement coming from the same

label.

In some ways the FORTRAN `DO' looks like a `COME FROM'

statement. After the terminating statement number/`CONTINUE'

is reached, control continues at the statement following the DO.

Some generous FORTRANs would allow arbitrary statements (other than

`CONTINUE') for the statement, leading to examples like:

DO 10 I=1,LIMIT

C imagine many lines of code here, leaving the

C original DO statement lost in the spaghetti...

WRITE(6,10) I,FROB(I)

10 FORMAT(1X,I5,G10.4)

in which the trapdoor is just after the statement labeled 10.

(This is particularly surprising because the label doesn't appear

to have anything to do with the flow of control at all!)

While sufficiently astonishing to the unsuspecting reader, this

form of `COME FROM' statement isn't completely general. After

all, control will eventually pass to the following statement. The

implementation of the general form was left to Univac FORTRAN,

ca. 1975 (though a roughly similar feature existed on the IBM 7040

ten years earlier). The statement `AT 100' would perform a

`COME FROM 100'. It was intended strictly as a debugging aid,

with dire consequences promised to anyone so deranged as to use it

in production code. More horrible things had already been

perpetrated in production languages, however; doubters need only

contemplate the `ALTER' verb in {COBOL}.

`COME FROM' was supported under its own name for the first

time 15 years later, in C-INTERCAL (see {INTERCAL},

{retrocomputing}); knowledgeable observers are still reeling

from the shock.

:comm mode: /kom mohd/ /n./ [ITS: from the feature supporting

on-line chat; the term may spelled with one or two m's] Syn. for

{talk mode}.

:command key: /n./ [Mac users] Syn. {feature key}.

:comment out: /vt./ To surround a section of code with comment

delimiters or to prefix every line in the section with a comment

marker; this prevents it from being compiled or interpreted. Often

done when the code is redundant or obsolete, but is being left in

the source to make the intent of the active code clearer; also when

the code in that section is broken and you want to bypass it in

order to debug some other part of the code. Compare {condition

out}, usually the preferred technique in languages (such as {C})

that make it possible.

:Commonwealth Hackish:: /n./ Hacker jargon as spoken in

English outside the U.S., esp. in the British Commonwealth. It

is reported that Commonwealth speakers are more likely to pronounce

truncations like `char' and `soc', etc., as spelled (/char/,

/sok/), as opposed to American /keir/ and /sohsh/. Dots in

{newsgroup} names (especially two-component names) tend to be

pronounced more often (so soc.wibble is /sok dot wib'l/ rather

than /sohsh wib'l/). The prefix {meta} may be pronounced

/mee't*/; similarly, Greek letter beta is usually /bee't*/,

zeta is usually /zee't*/, and so forth. Preferred

{metasyntactic variable}s include {blurgle}, `eek',

`ook', `frodo', and `bilbo'; {wibble},

`wobble', and in emergencies `wubble'; `flob',

`banana', `tom', `dick', `harry',

`wombat', `frog', {fish}, and so on and on (see

{foo}, sense 4).

Alternatives to verb doubling include suffixes `-o-rama',

`frenzy' (as in feeding frenzy), and `city' (examples: "barf

city!" "hack-o-rama!" "core dump frenzy!"). Finally, note

that the American terms `parens', `brackets', and `braces' for (),

[], and {} are uncommon; Commonwealth hackish prefers

`brackets', `square brackets', and `curly brackets'. Also, the

use of `pling' for {bang} is common outside the United States.

See also {attoparsec}, {calculator}, {chemist},

{console jockey}, {fish}, {go-faster stripes},

{grunge}, {hakspek}, {heavy metal}, {leaky heap},

{lord high fixer}, {loose bytes}, {muddie}, {nadger},

{noddy}, {psychedelicware}, {plingnet}, {raster

blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},

{terminal junkie}, {tick-list features}, {weeble},

{weasel}, {YABA}, and notes or definitions under {Bad

Thing}, {barf}, {bogus}, {bum}, {chase pointers},

{cosmic rays}, {crippleware}, {crunch}, {dodgy},

{gonk}, {hamster}, {hardwarily}, {mess-dos},

{nybble}, {proglet}, {root}, {SEX}, {tweak}, and

{xyzzy}.

:compact: /adj./ Of a design, describes the valuable property

that it can all be apprehended at once in one's head. This

generally means the thing created from the design can be used with

greater facility and fewer errors than an equivalent tool that is

not compact. Compactness does not imply triviality or lack of

power; for example, C is compact and FORTRAN is not, but C is more

powerful than FORTRAN. Designs become non-compact through

accreting {feature}s and {cruft} that don't merge cleanly

into the overall design scheme (thus, some fans of {Classic C}

maintain that ANSI C is no longer compact).

:compiler jock: /n./ See {jock} (sense 2).

:compress: [Unix] /vt./ When used without a qualifier,

generally refers to {crunch}ing of a file using a particular C

implementation of compression by James A. Woods et al. and widely

circulated via {Usenet}; use of {crunch} itself in this sense

is rare among Unix hackers. Specifically, compress is built around

the Lempel-Ziv-Welch algorithm as described in "A Technique for

High Performance Data Compression", Terry A. Welch, "IEEE

Computer", vol. 17, no. 6 (June 1984), pp. 8--19.

:Compu$erve: /n./ See {CI$}. Synonyms CompuSpend and

Compu$pend are also reported.

:computer confetti: /n./ Syn. {chad}. Though this term is

common, this use of punched-card chad is not a good idea, as the

pieces are stiff and have sharp corners that could injure the eyes.

GLS reports that he once attended a wedding at MIT during which he

and a few other guests enthusiastically threw chad instead of

rice. The groom later grumbled that he and his bride had spent most

of the evening trying to get the stuff out of their hair.

:computer geek: /n./ 1. One who eats (computer) bugs for a

living. One who fulfills all the dreariest negative stereotypes

about hackers: an asocial, malodorous, pasty-faced monomaniac with

all the personality of a cheese grater. Cannot be used by

outsiders without implied insult to all hackers; compare

black-on-black vs. white-on-black usage of `nigger'. A computer

geek may be either a fundamentally clueless individual or a

proto-hacker in {larval stage}. Also called `turbo nerd',

`turbo geek'. See also {propeller head}, {clustergeeking},

{geek out}, {wannabee}, {terminal junkie}, {spod},

{weenie}. 2. Some self-described computer geeks use this term

in a positive sense and protest sense 1 (this seems to have

been a post-1990 development). For one such argument, see

http://samsara.circus.com/~omni/geek.html.

:computron: /kom'pyoo-tron`/ /n./ 1. A notional unit of

computing power combining instruction speed and storage capacity,

dimensioned roughly in instructions-per-second times

megabytes-of-main-store times megabytes-of-mass-storage. "That

machine can't run GNU Emacs, it doesn't have enough computrons!"

This usage is usually found in metaphors that treat computing power

as a fungible commodity good, like a crop yield or diesel

horsepower. See {bitty box}, {Get a real computer!},

{toy}, {crank}. 2. A mythical subatomic particle that bears

the unit quantity of computation or information, in much the same

way that an electron bears one unit of electric charge (see also

{bogon}). An elaborate pseudo-scientific theory of computrons

has been developed based on the physical fact that the molecules in

a solid object move more rapidly as it is heated. It is argued

that an object melts because the molecules have lost their

information about where they are supposed to be (that is, they have

emitted computrons). This explains why computers get so hot and

require air conditioning; they use up computrons. Conversely, it

should be possible to cool down an object by placing it in the path

of a computron beam. It is believed that this may also explain why

machines that work at the factory fail in the computer room: the

computrons there have been all used up by the other hardware.

(This theory probably owes something to the "Warlock" stories

by Larry Niven, the best known being "What Good is a Glass

Dagger?", in which magic is fueled by an exhaustible natural

resource called `mana'.)

:con: [from SF fandom] /n./ A science-fiction convention. Not

used of other sorts of conventions, such as professional meetings.

This term, unlike many others of SF-fan slang, is widely recognized

even by hackers who aren't {fan}s. "We'd been corresponding on

the net for months, then we met face-to-face at a con."

:condition out: /vt./ To prevent a section of code from being

compiled by surrounding it with a conditional-compilation directive

whose condition is always false. The {canonical} examples of

these directives are `#if 0' (or `#ifdef notdef', though

some find the latter {bletcherous}) and `#endif' in C.

Compare {comment out}.

:condom: /n./ 1. The protective plastic bag that accompanies

3.5-inch microfloppy diskettes. Rarely, also used of (paper) disk

envelopes. Unlike the write protect tab, the condom (when left on)

not only impedes the practice of {SEX} but has also been shown

to have a high failure rate as drive mechanisms attempt to access

the disk -- and can even fatally frustrate insertion. 2. The

protective cladding on a {light pipe}. 3. `keyboard condom':

A flexible, transparent plastic cover for a keyboard, designed to

provide some protection against dust and {programming fluid}

without impeding typing. 4. `elephant condom': the plastic

shipping bags used inside cardboard boxes to protect hardware in

transit. 5. /n. obs./ A dummy directory `/usr/tmp/sh', created

to foil the Great Worm by exploiting a portability bug in one

of its parts. So named in the title of a comp.risks article by

Gene Spafford during the Worm crisis, and again in the text of

"The Internet Worm Program: An Analysis", Purdue Technical

Report CSD-TR-823. See {Great Worm, the}.

:confuser: /n./ Common soundalike slang for `computer'.

Usually encountered in compounds such as `confuser room',

`personal confuser', `confuser guru'. Usage: silly.

:connector conspiracy: /n./ [probably came into prominence with

the appearance of the KL-10 (one model of the {PDP-10}), none of

whose connectors matched anything else] The tendency of

manufacturers (or, by extension, programmers or purveyors of

anything) to come up with new products that don't fit together with

the old stuff, thereby making you buy either all new stuff or

expensive interface devices. The KL-10 Massbus connector was

actually *patented* by {DEC}, which reputedly refused to

license the design and thus effectively locked third parties out of

competition for the lucrative Massbus peripherals market. This

policy is a source of never-ending frustration for the diehards who

maintain older PDP-10 or VAX systems. Their CPUs work fine, but

they are stuck with dying, obsolescent disk and tape drives with

low capacity and high power requirements.

(A closely related phenomenon, with a slightly different intent, is

the habit manufacturers have of inventing new screw heads so that

only Designated Persons, possessing the magic screwdrivers, can

remove covers and make repairs or install options. A good 1990s

example is the use of Torx screws for cable-TV set-top boxes.

Older Apple Macintoshes took this one step further, requiring not

only a hex wrench but a specialized case-cracking tool to open the

box.)

In these latter days of open-systems computing this term has fallen

somewhat into disuse, to be replaced by the observation that

"Standards are great! There are so many of them to choose

from!" Compare {backward combatability}.

:cons: /konz/ or /kons/ [from LISP] 1. /vt./ To add a new

element to a specified list, esp. at the top. "OK, cons picking

a replacement for the console TTY onto the agenda." 2. `cons

up': /vt./ To synthesize from smaller pieces: "to cons up an

example".

In LISP itself, `cons' is the most fundamental operation for

building structures. It takes any two objects and returns a

`dot-pair' or two-branched tree with one object hanging from each

branch. Because the result of a cons is an object, it can be used

to build binary trees of any shape and complexity. Hackers think

of it as a sort of universal constructor, and that is where the

jargon meanings spring from.

:considered harmful: /adj./ Edsger W. Dijkstra's note in the

March 1968 "Communications of the ACM", "Goto Statement

Considered Harmful", fired the first salvo in the structured

programming wars (text at http://www.acm.org/classics).

Amusingly, the ACM considered the resulting acrimony sufficiently

harmful that it will (by policy) no longer print an article taking

so assertive a position against a coding practice. In the ensuing

decades, a large number of both serious papers and parodies have

borne titles of the form "X considered Y". The

structured-programming wars eventually blew over with the

realization that both sides were wrong, but use of such titles has

remained as a persistent minor in-joke (the `considered silly'

found at various places in this lexicon is related).

:console:: /n./ 1. The operator's station of a {mainframe}.

In times past, this was a privileged location that conveyed godlike

powers to anyone with fingers on its keys. Under Unix and other

modern timesharing OSes, such privileges are guarded by passwords

instead, and the console is just the {tty} the system was booted

from. Some of the mystique remains, however, and it is traditional

for sysadmins to post urgent messages to all users from the console

(on Unix, /dev/console). 2. On microcomputer Unix boxes, the main

screen and keyboard (as opposed to character-only terminals talking

to a serial port). Typically only the console can do real graphics

or run {X}. See also {CTY}.

:console jockey: /n./ See {terminal junkie}.

:content-free: /adj./ [by analogy with techspeak

`context-free'] Used of a message that adds nothing to the

recipient's knowledge. Though this adjective is sometimes applied

to {flamage}, it more usually connotes derision for

communication styles that exalt form over substance or are centered

on concerns irrelevant to the subject ostensibly at hand. Perhaps

most used with reference to speeches by company presidents and

other professional manipulators. "Content-free? Uh... that's

anything printed on glossy paper." (See also {four-color

glossies}.) "He gave a talk on the implications of electronic

networks for postmodernism and the fin-de-siecle aesthetic. It was

content-free."

:control-C: /vi./ 1. "Stop whatever you are doing." From the

interrupt character used on many operating systems to abort a

running program. Considered silly. 2. /interj./ Among BSD Unix

hackers, the canonical humorous response to "Give me a break!"

:control-O: /vi./ "Stop talking." From the character used on

some operating systems to abort output but allow the program to

keep on running. Generally means that you are not interested in

hearing anything more from that person, at least on that topic; a

standard response to someone who is flaming. Considered silly.

Compare {control-S}.

:control-Q: /vi./ "Resume." From the ASCII DC1 or {XON}

character (the pronunciation /X-on/ is therefore also used), used

to undo a previous {control-S}.

:control-S: /vi./ "Stop talking for a second." From the

ASCII DC3 or XOFF character (the pronunciation /X-of/ is

therefore also used). Control-S differs from {control-O} in

that the person is asked to stop talking (perhaps because you are

on the phone) but will be allowed to continue when you're ready to

listen to him -- as opposed to control-O, which has more of the

meaning of "Shut up." Considered silly.

:Conway's Law: /prov./ The rule that the organization of the

software and the organization of the software team will be

congruent; originally stated as "If you have four groups working

on a compiler, you'll get a 4-pass compiler".

The law was named after Melvin Conway, an early proto-hacker who

wrote an assembler for the Burroughs 220 called SAVE. (The name

`SAVE' didn't stand for anything; it was just that you lost fewer

card decks and listings because they all had SAVE written on them.)

There is also Tom Cheatham's amendment of Conway's Law:

"If a group of N persons implements a COBOL compiler, there will be

N-1 passes. Someone in the group has to be the manager."

:cookbook: /n./ [from amateur electronics and radio] A book of small

code segments that the reader can use to do various {magic}

things in programs. One current example is the

"{{PostScript}} Language Tutorial and Cookbook" by Adobe

Systems, Inc (Addison-Wesley, ISBN 0-201-10179-3), also known as

the {Blue Book} which has recipes for things like wrapping text

around arbitrary curves and making 3D fonts. Cookbooks, slavishly

followed, can lead one into {voodoo programming}, but are useful

for hackers trying to {monkey up} small programs in unknown

languages. This function is analogous to the role of phrasebooks

in human languages.

:cooked mode: /n./ [Unix, by opposition from {raw mode}] The

normal character-input mode, with interrupts enabled and with

erase, kill and other special-character interpretations performed

directly by the tty driver. Oppose {raw mode}, {rare mode}.

This term is techspeak under Unix but jargon elsewhere; other

operating systems often have similar mode distinctions, and the

raw/rare/cooked way of describing them has spread widely along with

the C language and other Unix exports. Most generally, `cooked

mode' may refer to any mode of a system that does extensive

preprocessing before presenting data to a program.

:cookie: /n./ A handle, transaction ID, or other token of

agreement between cooperating programs. "I give him a packet, he

gives me back a cookie." The claim check you get from a

dry-cleaning shop is a perfect mundane example of a cookie; the

only thing it's useful for is to relate a later transaction to this

one (so you get the same clothes back). Compare {magic cookie};

see also {fortune cookie}.

:cookie bear: /n. obs./ Original term, pre-Sesame-Street, for

what is now universally called a {cookie monster}. A

correspondent observes "In those days, hackers were actually

getting their yucks from...sit down now...Andy Williams.

Yes, *that* Andy Williams. Seems he had a rather hip (by the

standards of the day) TV variety show. One of the best parts of the

show was the recurring `cookie bear' sketch. In these sketches, a

guy in a bear suit tried all sorts of tricks to get a cookie out of

Williams. The sketches would always end with Williams shrieking

(and I don't mean figuratively), `No cookies! Not now, not

ever...NEVER!!!' And the bear would fall down. Great stuff."

:cookie file: /n./ A collection of {fortune cookie}s in a

format that facilitates retrieval by a fortune program. There are

several different cookie files in public distribution, and site

admins often assemble their own from various sources including this

lexicon.

:cookie jar: /n./ An area of memory set aside for storing

{cookie}s. Most commonly heard in the Atari ST community; many

useful ST programs record their presence by storing a distinctive

{magic number} in the jar. Programs can inquire after the

presence or otherwise of other programs by searching the contents

of the jar.

:cookie monster: /n./ [from the children's TV program

"Sesame Street"] Any of a family of early (1970s) hacks

reported on {{TOPS-10}}, {{ITS}}, {{Multics}}, and elsewhere

that would lock up either the victim's terminal (on a time-sharing

machine) or the {{console}} (on a batch {mainframe}),

repeatedly demanding "I WANT A COOKIE". The required responses

ranged in complexity from "COOKIE" through "HAVE A COOKIE" and

upward. Folklorist Jan Brunvand (see {FOAF}) has described

these programs as urban legends (implying they probably never

existed) but they existed, all right, in several different

versions. See also {wabbit}. Interestingly, the term `cookie

monster' appears to be a {retcon}; the original term was

{cookie bear}.

:copious free time: /n./ [Apple; orig. fr. the intro to Tom

Lehrer's song "It Makes A Fellow Proud To Be A Soldier"]

1. [used ironically to indicate the speaker's lack of the quantity

in question] A mythical schedule slot for accomplishing tasks held

to be unlikely or impossible. Sometimes used to indicate that the

speaker is interested in accomplishing the task, but believes that

the opportunity will not arise. "I'll implement the automatic

layout stuff in my copious free time." 2. [Archly] Time reserved

for bogus or otherwise idiotic tasks, such as implementation of

{chrome}, or the stroking of {suit}s. "I'll get back to him

on that feature in my copious free time."

:copper: /n./ Conventional electron-carrying network cable with

a core conductor of copper -- or aluminum! Opposed to {light

pipe} or, say, a short-range microwave link.

:copy protection: /n./ A class of methods for preventing

incompetent pirates from stealing software and legitimate customers

from using it. Considered silly.

:copybroke: /kop'ee-brohk/ /adj./ 1. [play on `copyright']

Used to describe an instance of a copy-protected program that has

been `broken'; that is, a copy with the copy-protection scheme

disabled. Syn. {copywronged}. 2. Copy-protected software

which is unusable because of some bit-rot or bug that has confused

the anti-piracy check. See also {copy protection}.

:copyleft: /kop'ee-left/ /n./ [play on `copyright'] 1. The

copyright notice (`General Public License') carried by {GNU}

{EMACS} and other Free Software Foundation software, granting reuse

and reproduction rights to all comers (but see also {General

Public Virus}). 2. By extension, any copyright notice intended to

achieve similar aims.

:copywronged: /kop'ee-rongd/ /adj./ [play on `copyright']

Syn. for {copybroke}.

:core: /n./ Main storage or RAM. Dates from the days of

ferrite-core memory; now archaic as techspeak most places outside

IBM, but also still used in the Unix community and by old-time

hackers or those who would sound like them. Some derived idioms

are quite current; `in core', for example, means `in memory'

(as opposed to `on disk'), and both {core dump} and the `core

image' or `core file' produced by one are terms in favor. Some

varieties of Commonwealth hackish prefer {store}.

:core cancer: /n./ A process that exhibits a slow but

inexorable resource {leak} -- like a cancer, it kills by

crowding out productive `tissue'.

:core dump: /n./ [common {Iron Age} jargon, preserved by

Unix] 1. [techspeak] A copy of the contents of {core}, produced

when a process is aborted by certain kinds of internal error.

2. By extension, used for humans passing out, vomiting, or

registering extreme shock. "He dumped core. All over the floor.

What a mess." "He heard about X and dumped core."

3. Occasionally used for a human rambling on pointlessly at great

length; esp. in apology: "Sorry, I dumped core on you". 4. A

recapitulation of knowledge (compare {bits}, sense 1). Hence,

spewing all one knows about a topic (syn. {brain dump}), esp.

in a lecture or answer to an exam question. "Short, concise

answers are better than core dumps" (from the instructions to an

exam at Columbia). See {core}.

:core leak: /n./ Syn. {memory leak}.

:Core Wars: /n./ A game between `assembler' programs in a

simulated machine, where the objective is to kill your opponent's

program by overwriting it. Popularized by A. K. Dewdney's column

in "Scientific American" magazine, this was actually devised

by Victor Vyssotsky, Robert Morris Sr., and Dennis Ritchie in the

early 1960s (their original game was called `Darwin' and ran on a

PDP-1 at Bell Labs). See {core}.

:corge: /korj/ /n./ [originally, the name of a cat] Yet

another {metasyntactic variable}, invented by Mike Gallaher and

propagated by the {GOSMACS} documentation. See {grault}.

:cosmic rays: /n./ Notionally, the cause of {bit rot}.

However, this is a semi-independent usage that may be invoked as a

humorous way to {handwave} away any minor {randomness} that

doesn't seem worth the bother of investigating. "Hey, Eric -- I

just got a burst of garbage on my {tube}, where did that come

from?" "Cosmic rays, I guess." Compare {sunspots},

{phase of the moon}. The British seem to prefer the usage

`cosmic showers'; `alpha particles' is also heard, because

stray alpha particles passing through a memory chip can cause

single-bit errors (this becomes increasingly more likely as memory

sizes and densities increase).

Factual note: Alpha particles cause bit rot, cosmic rays do not

(except occasionally in spaceborne computers). Intel could not

explain random bit drops in their early chips, and one hypothesis

was cosmic rays. So they created the World's Largest Lead Safe,

using 25 tons of the stuff, and used two identical boards for

testing. One was placed in the safe, one outside. The hypothesis

was that if cosmic rays were causing the bit drops, they should see

a statistically significant difference between the error rates on

the two boards. They did not observe such a difference. Further

investigation demonstrated conclusively that the bit drops were due

to alpha particle emissions from thorium (and to a much lesser

degree uranium) in the encapsulation material. Since it is

impossible to eliminate these radioactives (they are uniformly

distributed through the earth's crust, with the statistically

insignificant exception of uranium lodes) it became obvious that

one has to design memories to withstand these hits.

:cough and die: /v./ Syn. {barf}. Connotes that the program

is throwing its hands up by design rather than because of a bug or

oversight. "The parser saw a control-A in its input where it was

looking for a printable, so it coughed and died." Compare

{die}, {die horribly}, {scream and die}.

:cowboy: /n./ [Sun, from William Gibson's {cyberpunk} SF]

Synonym for {hacker}. It is reported that at Sun this word is

often said with reverence.

:CP/M:: /C-P-M/ /n./ [Control Program/Monitor; later

{retcon}ned to Control Program for Microcomputers] An early

microcomputer {OS} written by hacker Gary Kildall for 8080- and

Z80-based machines, very popular in the late 1970s but virtually

wiped out by MS-DOS after the release of the IBM PC in 1981.

Legend has it that Kildall's company blew its chance to write the

OS for the IBM PC because Kildall decided to spend a day IBM's reps

wanted to meet with him enjoying the perfect flying weather in his

private plane. Many of CP/M's features and conventions strongly

resemble those of early {DEC} operating systems such as

{{TOPS-10}}, OS/8, RSTS, and RSX-11. See {{MS-DOS}},

{operating system}.

:CPU Wars: /C-P-U worz/ /n./ A 1979 large-format comic by

Chas Andres chronicling the attempts of the brainwashed androids of

IPM (Impossible to Program Machines) to conquer and destroy the

peaceful denizens of HEC (Human Engineered Computers). This rather

transparent allegory featured many references to {ADVENT} and

the immortal line "Eat flaming death, minicomputer mongrels!"

(uttered, of course, by an IPM stormtrooper). It is alleged that

the author subsequently received a letter of appreciation on IBM

company stationery from the head of IBM's Thomas J. Watson Research

Laboratories (then, as now, one of the few islands of true

hackerdom in the IBM archipelago). The lower loop of the B in the

IBM logo, it is said, had been carefully whited out. See {eat

flaming death}.

:crack root: /v./ To defeat the security system of a Unix

machine and gain {root} privileges thereby; see {cracking}.

:cracker: /n./ One who breaks security on a system. Coined

ca. 1985 by hackers in defense against journalistic misuse of

{hacker} (q.v., sense 8). An earlier attempt to establish

`worm' in this sense around 1981--82 on Usenet was largely a

failure.

Use of both these neologisms reflects a strong revulsion against

the theft and vandalism perpetrated by cracking rings. While it is

expected that any real hacker will have done some playful cracking

and knows many of the basic techniques, anyone past {larval

stage} is expected to have outgrown the desire to do so except for

immediate, benign, practical reasons (for example, if it's

necessary to get around some security in order to get some work

done).

Thus, there is far less overlap between hackerdom and crackerdom

than the {mundane} reader misled by sensationalistic journalism

might expect. Crackers tend to gather in small, tight-knit, very

secretive groups that have little overlap with the huge, open

poly-culture this lexicon describes; though crackers often like to

describe *themselves* as hackers, most true hackers consider

them a separate and lower form of life.

Ethical considerations aside, hackers figure that anyone who can't

imagine a more interesting way to play with their computers than

breaking into someone else's has to be pretty {losing}. Some

other reasons crackers are looked down on are discussed in the

entries on {cracking} and {phreaking}. See also

{samurai}, {dark-side hacker}, and {hacker ethic}. For a

portrait of the typical teenage cracker, see {warez

d00dz}.

:cracking: /n./ The act of breaking into a computer system;

what a {cracker} does. Contrary to widespread myth, this does

not usually involve some mysterious leap of hackerly brilliance,

but rather persistence and the dogged repetition of a handful of

fairly well-known tricks that exploit common weaknesses in the

security of target systems. Accordingly, most crackers are only

mediocre hackers.

:crank: /vt./ [from automotive slang] Verb used to describe the

performance of a machine, especially sustained performance. "This

box cranks (or, cranks at) about 6 megaflops, with a burst mode of

twice that on vectorized operations."

:CrApTeX: /krap'tekh/ /n./ [University of York, England] Term

of abuse used to describe TeX and LaTeX when they don't work (when

used by TeXhackers), or all the time (by everyone else). The

non-TeX-enthusiasts generally dislike it because it is more verbose

than other formatters (e.g. {{troff}}) and because (particularly

if the standard Computer Modern fonts are used) it generates vast

output files. See {religious issues}, {{TeX}}.

:crash: 1. /n./ A sudden, usually drastic failure. Most often

said of the {system} (q.v., sense 1), esp. of magnetic disk

drives (the term originally described what happens when the air

gap of a hard disk collapses). "Three {luser}s lost their

files in last night's disk crash." A disk crash that involves the

read/write heads dropping onto the surface of the disks and

scraping off the oxide may also be referred to as a `head crash',

whereas the term `system crash' usually, though not always,

implies that the operating system or other software was at fault.

2. /v./ To fail suddenly. "Has the system just crashed?"

"Something crashed the OS!" See {down}. Also used

transitively to indicate the cause of the crash (usually a person

or a program, or both). "Those idiots playing {SPACEWAR}

crashed the system." 3. /vi./ Sometimes said of people hitting the

sack after a long {hacking run}; see {gronk out}.

:crash and burn: /vi.,n./ A spectacular crash, in the mode of

the conclusion of the car-chase scene in the movie "Bullitt"

and many subsequent imitators (compare {die horribly}). Sun-3

monitors losing the flyback transformer and lightning strikes on

VAX-11/780 backplanes are notable crash and burn generators. The

construction `crash-and-burn machine' is reported for a computer

used exclusively for alpha or {beta} testing, or reproducing

bugs (i.e., not for development). The implication is that it

wouldn't be such a disaster if that machine crashed, since only the

testers would be inconvenienced.

:crawling horror: /n./ Ancient crufty hardware or software that

is kept obstinately alive by forces beyond the control of the

hackers at a site. Like {dusty deck} or {gonkulator}, but

connotes that the thing described is not just an irritation but an

active menace to health and sanity. "Mostly we code new stuff in

C, but they pay us to maintain one big FORTRAN II application from

nineteen-sixty-X that's a real crawling horror...." Compare

{WOMBAT}.

:cray: /kray/ /n./ 1. (properly, capitalized) One of the line

of supercomputers designed by Cray Research. 2. Any supercomputer

at all. 3. The {canonical} {number-crunching} machine.

The term is actually the lowercased last name of Seymour Cray, a

noted computer architect and co-founder of the company. Numerous

vivid legends surround him, some true and some admittedly invented

by Cray Research brass to shape their corporate culture and image.

:cray instability: /n./ 1. A shortcoming of a program or

algorithm that manifests itself only when a large problem is being

run on a powerful machine (see {cray}). Generally more subtle

than bugs that can be detected in smaller problems running on a

workstation or mini. 2. More specifically, a shortcoming of

algorithms which are well behaved when run on gentle floating point

hardware (such as IEEE-standard or DEC) but which break down badly

when exposed to a Cray's unique `rounding' rules.

:crayola: /kray-oh'l*/ /n./ A super-mini or -micro computer

that provides some reasonable percentage of supercomputer

performance for an unreasonably low price. Might also be a

{killer micro}.

:crayola books: /n./ The {rainbow series} of National

Computer Security Center (NCSC) computer security standards (see

{Orange Book}). Usage: humorous and/or disparaging.

:crayon: /n./ 1. Someone who works on Cray supercomputers.

More specifically, it implies a programmer, probably of the CDC

ilk, probably male, and almost certainly wearing a tie

(irrespective of gender). Systems types who have a Unix background

tend not to be described as crayons. 2. A {computron} (sense 2)

that participates only in {number-crunching}. 3. A unit of

computational power equal to that of a single Cray-1. There is a

standard joke about this usage that derives from an old Crayola

crayon promotional gimmick: When you buy 64 crayons you get a free

sharpener.

:creationism: /n./ The (false) belief that large, innovative

software designs can be completely specified in advance and then

painlessly magicked out of the void by the normal efforts of a team

of normally talented programmers. In fact, experience has shown

repeatedly that good designs arise only from evolutionary,

exploratory interaction between one (or at most a small handful of)

exceptionally able designer(s) and an active user population ---

and that the first try at a big new idea is always wrong.

Unfortunately, because these truths don't fit the planning models

beloved of {management}, they are generally ignored.

:creep: /v./ To advance, grow, or multiply inexorably. In

hackish usage this verb has overtones of menace and silliness,

evoking the creeping horrors of low-budget monster movies.

:creeping elegance: /n./ Describes a tendency for parts of a

design to become {elegant} past the point of diminishing return,

something which often happens at the expense of the less

interesting parts of the design, the schedule, and other things

deemed important in the {Real World}. See also {creeping

featurism}, {second-system effect}, {tense}.

:creeping featurism: /kree'ping fee'chr-izm/ /n./

1. Describes a systematic tendency to load more {chrome} and

{feature}s onto systems at the expense of whatever elegance they

may have possessed when originally designed. See also {feeping

creaturism}. "You know, the main problem with {BSD} Unix has

always been creeping featurism." 2. More generally, the tendency

for anything complicated to become even more complicated because

people keep saying "Gee, it would be even better if it had this

feature too". (See {feature}.) The result is usually a

patchwork because it grew one ad-hoc step at a time, rather than

being planned. Planning is a lot of work, but it's easy to add

just one extra little feature to help someone ... and then

another ... and another.... When creeping featurism gets

out of hand, it's like a cancer. Usually this term is used to

describe computer programs, but it could also be said of the

federal government, the IRS 1040 form, and new cars. A similar

phenomenon sometimes afflicts conscious redesigns; see

{second-system effect}. See also {creeping elegance}.

:creeping featuritis: /kree'ping fee'-chr-i:`t*s/ /n./

Variant of {creeping featurism}, with its own spoonerization:

`feeping creaturitis'. Some people like to reserve this form for

the disease as it actually manifests in software or hardware, as

opposed to the lurking general tendency in designers' minds.

(After all, -ism means `condition' or `pursuit of', whereas

-itis usually means `inflammation of'.)

:cretin: /kret'in/ or /kree'tn/ /n./ Congenital {loser};

an obnoxious person; someone who can't do anything right. It has

been observed that many American hackers tend to favor the British

pronunciation /kret'in/ over standard American /kree'tn/; it is

thought this may be due to the insidious phonetic influence of

Monty Python's Flying Circus.

:cretinous: /kret'n-*s/ or /kreet'n-*s/ /adj./ Wrong;

stupid; non-functional; very poorly designed. Also used

pejoratively of people. See {dread high-bit disease} for an

example. Approximate synonyms: {bletcherous}, {bagbiting}

{losing}, {brain-damaged}.

:crippleware: /n./ 1. Software that has some important

functionality deliberately removed, so as to entice potential users

to pay for a working version. 2. [Cambridge] Variety of

{guiltware} that exhorts you to donate to some charity (compare

{careware}, {nagware}). 3. Hardware deliberately crippled,

which can be upgraded to a more expensive model by a trivial change

(e.g., cutting a jumper).

An excellent example of crippleware (sense 3) is Intel's 486SX

chip, which is a standard 486DX chip with the co-processor dyked

out (in some early versions it was present but disabled). To

upgrade, you buy a complete 486DX chip with *working*

co-processor (its identity thinly veiled by a different pinout) and

plug it into the board's expansion socket. It then disables the

SX, which becomes a fancy power sink. Don't you love Intel?

:critical mass: /n./ In physics, the minimum amount of

fissionable material required to sustain a chain reaction. Of a

software product, describes a condition of the software such that

fixing one bug introduces one plus {epsilon} bugs. (This malady

has many causes: {creeping featurism}, ports to too many

disparate environments, poor initial design, etc.) When software

achieves critical mass, it can never be fixed; it can only be

discarded and rewritten.

:crlf: /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ /n./

(often capitalized as `CRLF') A carriage return (CR, ASCII 0001101)

followed by a line feed (LF, ASCII 0001010). More loosely,

whatever it takes to get you from the end of one line of text to

the beginning of the next line. See {newline}, {terpri}.

Under {{Unix}} influence this usage has become less common (Unix

uses a bare line feed as its `CRLF').

:crock: /n./ [from the American scatologism `crock of shit']

1. An awkward feature or programming technique that ought to be

made cleaner. For example, using small integers to represent error

codes without the program interpreting them to the user (as in, for

example, Unix `make(1)', which returns code 139 for a process

that dies due to {segfault}). 2. A technique that works

acceptably, but which is quite prone to failure if disturbed in the

least. For example, a too-clever programmer might write an

assembler which mapped instruction mnemonics to numeric opcodes

algorithmically, a trick which depends far too intimately on the

particular bit patterns of the opcodes. (For another example of

programming with a dependence on actual opcode values, see {The

Story of Mel, a Real Programmer} in Appendix A.) Many crocks

have a tightly woven, almost completely unmodifiable structure.

See {kluge}, {brittle}. The adjectives `crockish' and

`crocky', and the nouns `crockishness' and `crockitude', are

also used.

:cross-post: [Usenet] /vi./ To post a single article

simultaneously to several newsgroups. Distinguished from posting

the article repeatedly, once to each newsgroup, which causes people

to see it multiple times (which is very bad form). Gratuitous

cross-posting without a Followup-To line directing responses to a

single followup group is frowned upon, as it tends to cause

{followup} articles to go to inappropriate newsgroups when

people respond to only one part of the original posting.

:crudware: /kruhd'weir/ /n./ Pejorative term for the hundreds

of megabytes of low-quality {freeware} circulated by user's

groups and BBS systems in the micro-hobbyist world. "Yet

*another* set of disk catalog utilities for {{MS-DOS}}?

What crudware!"

:cruft: /kruhft/ [back-formation from {crufty}] 1. /n./ An

unpleasant substance. The dust that gathers under your bed is

cruft; the TMRC Dictionary correctly noted that attacking it with a

broom only produces more. 2. /n./ The results of shoddy

construction. 3. /vt./ [from `hand cruft', pun on `hand craft']

To write assembler code for something normally (and better) done by

a compiler (see {hand-hacking}). 4. /n./ Excess; superfluous

junk; used esp. of redundant or superseded code. 5. [University

of Wisconsin] /n./ Cruft is to hackers as gaggle is to geese; that

is, at UW one properly says "a cruft of hackers".

:cruft together: /vt./ (also `cruft up') To throw together

something ugly but temporarily workable. Like /vt./ {kluge up},

but more pejorative. "There isn't any program now to reverse all

the lines of a file, but I can probably cruft one together in about

10 minutes." See {hack together}, {hack up}, {kluge up},

{crufty}.

:cruftsmanship: /kruhfts'm*n-ship / /n./ [from {cruft}]

The antithesis of craftsmanship.

:crufty: /kruhf'tee/ /adj./ [origin unknown; poss. from

`crusty' or `cruddy'] 1. Poorly built, possibly over-complex.

The {canonical} example is "This is standard old crufty

{DEC} software". In fact, one fanciful theory of the origin of

`crufty' holds that was originally a mutation of `crusty'

applied to DEC software so old that the `s' characters were tall

and skinny, looking more like `f' characters. 2. Unpleasant,

especially to the touch, often with encrusted junk. Like spilled

coffee smeared with peanut butter and catsup. 3. Generally

unpleasant. 4. (sometimes spelled `cruftie') /n./ A small crufty

object (see {frob}); often one that doesn't fit well into the

scheme of things. "A LISP property list is a good place to store

crufties (or, collectively, {random} cruft)."

This term is one of the oldest in the jargon and no one is sure of

its etymology, but it is suggestive that there is a Cruft Hall at

Harvard University which is part of the old physics building; it's

said to have been the physics department's radar lab during WWII.

To this day (early 1993) the windows appear to be full of random

techno-junk. MIT or Lincoln Labs people may well have coined the

term as a knock on the competition.

:crumb: /n./ Two binary digits; a {quad}. Larger than a

{bit}, smaller than a {nybble}. Considered silly.

Syn. {tayste}. General discussion of such terms is under

{nybble}.

:crunch: 1. /vi./ To process, usually in a time-consuming or

complicated way. Connotes an essentially trivial operation that is

nonetheless painful to perform. The pain may be due to the

triviality's being embedded in a loop from 1 to 1,000,000,000.

"FORTRAN programs do mostly {number-crunching}." 2. /vt./ To

reduce the size of a file by a complicated scheme that produces bit

configurations completely unrelated to the original data, such as

by a Huffman code. (The file ends up looking something like a

paper document would if somebody crunched the paper into a wad.)

Since such compression usually takes more computations than simpler

methods such as run-length encoding, the term is doubly

appropriate. (This meaning is usually used in the construction

`file crunch(ing)' to distinguish it from {number-crunching}.)

See {compress}. 3. /n./ The character `#'. Used at XEROX

and CMU, among other places. See {{ASCII}}. 4. /vt./ To squeeze

program source into a minimum-size representation that will still

compile or execute. The term came into being specifically for a

famous program on the BBC micro that crunched BASIC source in order

to make it run more quickly (it was a wholly interpretive BASIC, so

the number of characters mattered). {Obfuscated C Contest}

entries are often crunched; see the first example under that entry.

:cruncha cruncha cruncha: /kruhn'ch* kruhn'ch* kruhn'ch*/ /interj./

An encouragement sometimes muttered to a machine

bogged down in a serious {grovel}. Also describes a notional

sound made by groveling hardware. See {wugga wugga}, {grind}

(sense 3).

:cryppie: /krip'ee/ /n./ A cryptographer. One who hacks or

implements cryptographic software or hardware.

:CTSS: /C-T-S-S/ /n./ Compatible Time-Sharing System. An

early (1963) experiment in the design of interactive time-sharing

operating systems, ancestral to {{Multics}}, {{Unix}}, and

{{ITS}}. The name {{ITS}} (Incompatible Time-sharing System)

was a hack on CTSS, meant both as a joke and to express some basic

differences in philosophy about the way I/O services should be

presented to user programs.

:CTY: /sit'ee/ or /C-T-Y/ /n./ [MIT] The terminal

physically associated with a computer's system {{console}}. The

term is a contraction of `Console {tty}', that is, `Console

TeleTYpe'. This {{ITS}}- and {{TOPS-10}}-associated term has

become less common, as most Unix hackers simply refer to the CTY as

`the console'.

:cube: /n./ 1. [short for `cubicle'] A module in the

open-plan offices used at many programming shops. "I've got the

manuals in my cube." 2. A NeXT machine (which resembles a

matte-black cube).

:cubing: /vi./ [parallel with `tubing'] 1. Hacking on an IPSC

(Intel Personal SuperComputer) hypercube. "Louella's gone cubing

*again*!!" 2. Hacking Rubik's Cube or related puzzles,

either physically or mathematically. 3. An indescribable form of

self-torture (see sense 1 or 2).

:cursor dipped in X: /n./ There are a couple of metaphors in

English of the form `pen dipped in X' (perhaps the most common

values of X are `acid', `bile', and `vitriol'). These map

over neatly to this hackish usage (the cursor being what moves,

leaving letters behind, when one is composing on-line). "Talk

about a {nastygram}! He must've had his cursor dipped in acid

when he wrote that one!"

:cuspy: /kuhs'pee/ /adj./ [WPI: from the {DEC}

abbreviation CUSP, for `Commonly Used System Program', i.e., a

utility program used by many people] 1. (of a program)

Well-written. 2. Functionally excellent. A program that performs

well and interfaces well to users is cuspy. See {rude}.

3. [NYU] Said of an attractive woman, especially one regarded as

available. Implies a certain curvaceousness.

:cut a tape: /vi./ To write a software or document distribution

on magnetic tape for shipment. Has nothing to do with physically

cutting the medium! Early versions of this lexicon claimed that

one never analogously speaks of `cutting a disk', but this has

since been reported as live usage. Related slang usages are

mainstream business's `cut a check', the recording industry's

`cut a record', and the military's `cut an order'.

All of these usages reflect physical processes in obsolete

recording and duplication technologies. The first stage in

manufacturing an old-style vinyl record involved cutting grooves in

a stamping die with a precision lathe. More mundanely, the

dominant technology for mass duplication of paper documents in

pre-photocopying days involved "cutting a stencil", punching away

portions of the wax overlay on a silk screen. More directly,

paper tape with holes punched in it was an important early storage

medium.

:cybercrud: /si:'ber-kruhd/ /n./ 1. [coined by Ted Nelson]

Obfuscatory tech-talk. Verbiage with a high {MEGO} factor. The

computer equivalent of bureaucratese. 2. Incomprehensible stuff

embedded in email. First there were the "Received" headers that

show how mail flows through systems, then MIME (Multi-purpose

Internet Mail Extensions) headers and part boundaries, and now huge

blocks of hex for PEM (Privacy Enhanced Mail) or PGP (Pretty Good

Privacy) digital signatures and certificates of authenticity. This

stuff all services a purpose and good user interfaces should hide

it, but all too often users are forced to wade through it.

:cyberpunk: /si:'ber-puhnk/ /n.,adj./ [orig. by SF writer

Bruce Bethke and/or editor Gardner Dozois] A subgenre of SF

launched in 1982 by William Gibson's epoch-making novel

"Neuromancer" (though its roots go back through Vernor Vinge's

"True Names" (see the {Bibliography} in Appendix C) to

John Brunner's 1975 novel "The Shockwave Rider"). Gibson's

near-total ignorance of computers and the present-day hacker

culture enabled him to speculate about the role of computers and

hackers in the future in ways hackers have since found both

irritatingly na"ive and tremendously stimulating. Gibson's work

was widely imitated, in particular by the short-lived but

innovative "Max Headroom" TV series. See {cyberspace},

{ice}, {jack in}, {go flatline}.

Since 1990 or so, popular culture has included a movement or

fashion trend that calls itself `cyberpunk', associated especially

with the rave/techno subculture. Hackers have mixed feelings about

this. On the one hand, self-described cyberpunks too often seem to

be shallow trendoids in black leather who have substituted

enthusiastic blathering about technology for actually learning and

*doing* it. Attitude is no substitute for competence. On the

other hand, at least cyberpunks are excited about the right things

and properly respectful of hacking talent in those who have it.

The general consensus is to tolerate them politely in hopes that

they'll attract people who grow into being true hackers.

:cyberspace: /si:'br-spays`/ /n./ 1. Notional

`information-space' loaded with visual cues and navigable with

brain-computer interfaces called `cyberspace decks'; a

characteristic prop of {cyberpunk} SF. Serious efforts to

construct {virtual reality} interfaces modeled explicitly on

Gibsonian cyberspace are under way, using more conventional devices

such as glove sensors and binocular TV headsets. Few hackers are

prepared to deny outright the possibility of a cyberspace someday

evolving out of the network (see {network, the}). 2. The

Internet or {Matrix} (sense #2) as a whole, considered as a

crude cyberspace (sense 1). Although this usage became widely

popular in the mainstream press during 1994 when the Internet

exploded into public awareness, it is strongly deprecated among

hackers because the Internet does not meet the high, SF-inspired

standards they have for true cyberspace technology. Thus, this use

of the term usually tags a {wannabee} or outsider.

3. Occasionally, the metaphoric location of the mind of a person in

{hack mode}. Some hackers report experiencing strong eidetic

imagery when in hack mode; interestingly, independent reports from

multiple sources suggest that there are common features to the

experience. In particular, the dominant colors of this subjective

`cyberspace' are often gray and silver, and the imagery often

involves constellations of marching dots, elaborate shifting

patterns of lines and angles, or moire patterns.

:cycle: 1. /n./ The basic unit of computation. What every

hacker wants more of (noted hacker Bill Gosper describes himself as

a "cycle junkie"). One can describe an instruction as taking so

many `clock cycles'. Often the computer can access its memory

once on every clock cycle, and so one speaks also of `memory

cycles'. These are technical meanings of {cycle}. The jargon

meaning comes from the observation that there are only so many

cycles per second, and when you are sharing a computer the cycles

get divided up among the users. The more cycles the computer

spends working on your program rather than someone else's, the

faster your program will run. That's why every hacker wants more

cycles: so he can spend less time waiting for the computer to

respond. 2. By extension, a notional unit of *human* thought

power, emphasizing that lots of things compete for the typical

hacker's think time. "I refused to get involved with the Rubik's

Cube back when it was big. Knew I'd burn too many cycles on it if

I let myself." 3. /vt./ Syn. {bounce} (sense 4), {120 reset};

from the phrase `cycle power'. "Cycle the machine again, that

serial port's still hung."

:cycle crunch: /n./ A situation wherein the number of people

trying to use a computer simultaneously has reached the point where

no one can get enough cycles because they are spread too thin and

the system has probably begun to {thrash}. This scenario is an

inevitable result of Parkinson's Law applied to timesharing.

Usually the only solution is to buy more computer. Happily, this

has rapidly become easier since the mid-1980s, so much so that the

very term `cycle crunch' now has a faintly archaic flavor; most

hackers now use workstations or personal computers as opposed to

traditional timesharing systems.

:cycle drought: /n./ A scarcity of cycles. It may be due to a

{cycle crunch}, but it could also occur because part of the

computer is temporarily not working, leaving fewer cycles to go

around. "The {high moby} is {down}, so we're running with

only half the usual amount of memory. There will be a cycle

drought until it's fixed."

:cycle of reincarnation: /n./ [coined in a paper by T. H. Myer

and I.E. Sutherland "On the Design of Display Processors", Comm.

ACM, Vol. 11, no. 6, June 1968)] Term used to refer to a well-known

effect whereby function in a computing system family is migrated

out to special-purpose peripheral hardware for speed, then the

peripheral evolves toward more computing power as it does its job,

then somebody notices that it is inefficient to support two

asymmetrical processors in the architecture and folds the function

back into the main CPU, at which point the cycle begins again.

Several iterations of this cycle have been observed in

graphics-processor design, and at least one or two in

communications and floating-point processors. Also known as `the

Wheel of Life', `the Wheel of Samsara', and other variations of

the basic Hindu/Buddhist theological idea. See also {blitter},

{bit bang}.

:cycle server: /n./ A powerful machine that exists primarily

for running large compute-, disk-, or memory-intensive jobs.

Implies that interactive tasks such as editing are done on other

machines on the network, such as workstations.

:cypherpunk: /n./ [from {cyberpunk}] Someone interested in the

uses of encryption via electronic ciphers for enhancing personal

privacy and guarding against tyranny by centralized, authoritarian

power structures, especially government. There is an active

cypherpunks mailing list at cypherpunks-request@toad.com

coordinating work on public-key encryption freeware, privacy, and

digital cash. See also {tentacle}.

= D =

=====

:D. C. Power Lab: /n./ The former site of {{SAIL}}. Hackers

thought this was very funny because the obvious connection to

electrical engineering was nonexistent -- the lab was named for a

Donald C. Power. Compare {Marginal Hacks}.

:daemon: /day'mn/ or /dee'mn/ /n./ [from the mythological

meaning, later rationalized as the acronym `Disk And Execution

MONitor'] A program that is not invoked explicitly, but lies

dormant waiting for some condition(s) to occur. The idea is that

the perpetrator of the condition need not be aware that a daemon is

lurking (though often a program will commit an action only because

it knows that it will implicitly invoke a daemon). For example,

under {{ITS}} writing a file on the {LPT} spooler's directory

would invoke the spooling daemon, which would then print the file.

The advantage is that programs wanting (in this example) files

printed need neither compete for access to nor understand any

idiosyncrasies of the {LPT}. They simply enter their implicit

requests and let the daemon decide what to do with them. Daemons

are usually spawned automatically by the system, and may either

live forever or be regenerated at intervals.

Daemon and {demon} are often used interchangeably, but seem to

have distinct connotations. The term `daemon' was introduced to

computing by {CTSS} people (who pronounced it /dee'mon/) and

used it to refer to what ITS called a {dragon}. Although the

meaning and the pronunciation have drifted, we think this glossary

reflects current (1996) usage.

:daemon book: /n./ "The Design and Implementation of the

4.3BSD UNIX Operating System", by Samuel J. Leffler, Marshall Kirk

McKusick, Michael J. Karels, and John S. Quarterman (Addison-Wesley

Publishers, 1989, ISBN 0-201-06196-1) -- the standard reference

book on the internals of {BSD} Unix. So called because the

cover has a picture depicting a little devil (a visual play on

{daemon}) in sneakers, holding a pitchfork (referring to one of

the characteristic features of Unix, the `fork(2)' system

call). Also known as the {Devil Book}.

:dahmum: /dah'mum/ /n./ [Usenet] The material of which

protracted {flame war}s, especially those about operating

systems, is composed. Homeomorphic to {spam}. The term

`dahmum' is derived from the name of a militant {OS/2}

advocate, and originated when an extensively crossposted

OS/2-versus-{Linux} debate was fed through {Dissociated

Press}.

:dangling pointer: /n./ A reference that doesn't actually lead

anywhere (in C and some other languages, a pointer that doesn't

actually point at anything valid). Usually this happens because it

formerly pointed to something that has moved or disappeared. Used

as jargon in a generalization of its techspeak meaning; for

example, a local phone number for a person who has since moved to

the other coast is a dangling pointer. Compare {dead link}.

:dark-side hacker: /n./ A criminal or malicious hacker; a

{cracker}. From George Lucas's Darth Vader, "seduced by the

dark side of the Force". The implication that hackers form a sort

of elite of technological Jedi Knights is intended. Oppose

{samurai}.

:Datamation: /day`t*-may'sh*n/ /n./ A magazine that many

hackers assume all {suit}s read. Used to question an unbelieved

quote, as in "Did you read that in `Datamation?'" (But see

below; this slur may be dated by the time you read this.) It used

to publish something hackishly funny every once in a while, like

the original paper on {COME FROM} in 1973, and Ed Post's

"Real Programmers Don't Use Pascal" ten years later, but for

a long time after that it was much more exclusively

{suit}-oriented and boring. Following a change of editorship in

1994, Datamation is trying for more of the technical content and

irreverent humor that marked its early days.

Datamation now has a WWW page at http://www.datamation.com

worth visiting for its selection of computer humor, including

"Real Programmers Don't Use Pascal" and the `Bastard Operator

From Hell' stories by Simon Travaglia (see {BOFH}).

:DAU: /dow/ [German FidoNet] /n./ German acronym for

D"ummster Anzunehmender User (stupidest imaginable user).

From the engineering-slang GAU for Gr"osster Anzunehmender

Unfall, worst assumable accident, esp. of a LNG tank farm plant

or something with similarly disastrous consequences. In popular

German, GAU is used only to refer to worst-case nuclear acidents

such as a core meltdown. See {cretin}, {fool}, {loser} and

{weasel}.

:day mode: /n./ See {phase} (sense 1). Used of people only.

:dd: /dee-dee/ /vt./ [Unix: from IBM {JCL}] Equivalent to

{cat} or {BLT}. Originally the name of a Unix copy command

with special options suitable for block-oriented devices; it was

often used in heavy-handed system maintenance, as in "Let's

`dd' the root partition onto a tape, then use the boot PROM to

load it back on to a new disk". The Unix `dd(1)' was

designed with a weird, distinctly non-Unixy keyword option syntax

reminiscent of IBM System/360 JCL (which had an elaborate DD

`Dataset Definition' specification for I/O devices); though the

command filled a need, the interface design was clearly a prank.

The jargon usage is now very rare outside Unix sites and now nearly

obsolete even there, as `dd(1)' has been {deprecated} for a

long time (though it has no exact replacement). The term has been

displaced by {BLT} or simple English `copy'.

:DDT: /D-D-T/ /n./ 1. Generic term for a program that assists

in debugging other programs by showing individual machine

instructions in a readable symbolic form and letting the user

change them. In this sense the term DDT is now archaic, having

been widely displaced by `debugger' or names of individual

programs like `adb', `sdb', `dbx', or `gdb'.

2. [ITS] Under MIT's fabled {{ITS}} operating system, DDT (running

under the alias HACTRN, a six-letterism for `Hack Translator') was

also used as the {shell} or top level command language used to

execute other programs. 3. Any one of several specific DDTs (sense

1) supported on early {DEC} hardware. The DEC PDP-10 Reference

Handbook (1969) contained a footnote on the first page of the

documentation for DDT that illuminates the origin of the term:

Historical footnote: DDT was developed at MIT for the PDP-1

computer in 1961. At that time DDT stood for "DEC Debugging

Tape". Since then, the idea of an on-line debugging program has

propagated throughout the computer industry. DDT programs are

now available for all DEC computers. Since media other than tape

are now frequently used, the more descriptive name "Dynamic

Debugging Technique" has been adopted, retaining the DDT

abbreviation. Confusion between DDT-10 and another well known

pesticide, dichloro-diphenyl-trichloroethane (C14-H9-Cl5) should

be minimal since each attacks a different, and apparently

mutually exclusive, class of bugs.

(The `tape' referred to was, incidentally, not magnetic but paper.)

Sadly, this quotation was removed from later editions of the

handbook after the {suit}s took over and DEC became much more

`businesslike'.

The history above is known to many old-time hackers. But there's

more: Peter Samson, compiler of the original {TMRC} lexicon,

reports that he named `DDT' after a similar tool on the TX-0

computer, the direct ancestor of the PDP-1 built at MIT's Lincoln

Lab in 1957. The debugger on that ground-breaking machine (the

first transistorized computer) rejoiced in the name FLIT

(FLexowriter Interrogation Tape).

:de-rezz: /dee-rez'/ [from `de-resolve' via the movie

"Tron"] (also `derez') 1. /vi./ To disappear or dissolve; the

image that goes with it is of an object breaking up into raster

lines and static and then dissolving. Occasionally used of a

person who seems to have suddenly `fuzzed out' mentally rather than

physically. Usage: extremely silly, also rare. This verb was

actually invented as *fictional* hacker jargon, and adopted in

a spirit of irony by real hackers years after the fact. 2. /vt./

The

Macintosh resource decompiler. On a Macintosh, many program

structures (including the code itself) are managed in small

segments of the program file known as `resources'; `Rez' and

`DeRez' are a pair of utilities for compiling and decompiling

resource files. Thus, decompiling a resource is `derezzing'.

Usage: very common.

:dead: /adj./ 1. Non-functional; {down}; {crash}ed.

Especially used of hardware. 2. At XEROX PARC, software that is

working but not undergoing continued development and support.

3. Useless; inaccessible. Antonym: `live'. Compare {dead

code}.

:dead code: /n./ Routines that can never be accessed because

all calls to them have been removed, or code that cannot be reached

because it is guarded by a control structure that provably must

always transfer control somewhere else. The presence of dead code

may reveal either logical errors due to alterations in the program

or significant changes in the assumptions and environment of the

program (see also {software rot}); a good compiler should report

dead code so a maintainer can think about what it means.

(Sometimes it simply means that an *extremely* defensive

programmer has inserted {can't happen} tests which really can't

happen -- yet.) Syn. {grunge}. See also {dead}, and

{The Story of Mel, a Real Programmer}.

:dead link: /n./ [WWW] A World-Wide-Web URL that no longer

points to the information it was written to reach. Usually this

happens because the document has been moved or deleted. Lots of

dead links make a WWW page frustrating and useless and are the #1

sign of poor page maintainance. Compare {dangling pointer}.

:DEADBEEF: /ded-beef/ /n./ The hexadecimal word-fill pattern

for freshly allocated memory (decimal -21524111) under a number of

IBM environments, including the RS/6000. Some modern debugging

tools deliberately fill freed memory with this value as a way of

converting {heisenbug}s into {Bohr bug}s. As in "Your

program is DEADBEEF" (meaning gone, aborted, flushed from memory);

if you start from an odd half-word boundary, of course, you have

BEEFDEAD. See also the anecdote under {fool}.

:deadlock: /n./ 1. [techspeak] A situation wherein two or more

processes are unable to proceed because each is waiting for one of

the others to do something. A common example is a program

communicating to a server, which may find itself waiting for output

from the server before sending anything more to it, while the

server is similarly waiting for more input from the controlling

program before outputting anything. (It is reported that this

particular flavor of deadlock is sometimes called a `starvation

deadlock', though the term `starvation' is more properly used for

situations where a program can never run simply because it never

gets high enough priority. Another common flavor is

`constipation', in which each process is trying to send stuff to

the other but all buffers are full because nobody is reading

anything.) See {deadly embrace}. 2. Also used of deadlock-like

interactions between humans, as when two people meet in a narrow

corridor, and each tries to be polite by moving aside to let the

other pass, but they end up swaying from side to side without

making any progress because they always move the same way at the

same time.

:deadly embrace: /n./ Same as {deadlock}, though usually

used only when exactly two processes are involved. This is the

more popular term in Europe, while {deadlock} predominates in

the United States.

:death code: /n./ A routine whose job is to set everything in

the computer -- registers, memory, flags, everything -- to zero,

including that portion of memory where it is running; its last act

is to stomp on its own "store zero" instruction. Death code

isn't very useful, but writing it is an interesting hacking

challenge on architectures where the instruction set makes it

possible, such as the PDP-8 (it has also been done on the DG Nova).

Perhaps the ultimate death code is on the TI 990 series, where all

registers are actually in RAM, and the instruction "store

immediate 0" has the opcode "0". The PC will immediately wrap

around core as many times as it can until a user hits HALT. Any

empty memory location is death code. Worse, the manufacturer

recommended use of this instruction in startup code (which would be

in ROM and therefore survive).

:Death Square: /n./ The corporate logo of Novell, the people

who acquired USL after AT&T let go of it (Novell eventually sold

the Unix group to SCO). Coined by analogy with {Death Star},

because many people believed Novell was bungling the lead in Unix

systems exactly as AT&T did for many years.

:Death Star: /n./ [from the movie "Star Wars"] 1. The

AT&T corporate logo, which appears on computers sold by AT&T and

bears an uncanny resemblance to the Death Star in the movie. This

usage is particularly common among partisans of {BSD} Unix, who

tend to regard the AT&T versions as inferior and AT&T as a bad guy.

Copies still circulate of a poster printed by Mt. Xinu showing a

starscape with a space fighter labeled 4.2 BSD streaking away from

a broken AT&T logo wreathed in flames. 2. AT&T's internal

magazine, "Focus", uses `death star' to describe an

incorrectly done AT&T logo in which the inner circle in the top

left is dark instead of light -- a frequent result of

dark-on-light logo images.

:DEC:: /dek/ /n./ Commonly used abbreviation for Digital

Equipment Corporation, now deprecated by DEC itself in favor of

"Digital". Before the {killer micro} revolution of the late

1980s, hackerdom was closely symbiotic with DEC's pioneering

timesharing machines. The first of the group of cultures described

by this lexicon nucleated around the PDP-1 (see {TMRC}).

Subsequently, the PDP-6, {PDP-10}, {PDP-20}, PDP-11 and

{VAX} were all foci of large and important hackerdoms, and DEC

machines long dominated the ARPANET and Internet machine

population. DEC was the technological leader of the minicomputer

era (roughly 1967 to 1987), but its failure to embrace

microcomputers and Unix early cost it heavily in profits and

prestige after {silicon} got cheap. Nevertheless, the

microprocessor design tradition owes a heavy debt to the PDP-11

instruction set, and every one of the major general-purpose

microcomputer OSs so far (CP/M, MS-DOS, Unix, OS/2, Windows NT)

was either genetically descended from a DEC OS, or incubated on

DEC hardware, or both. Accordingly, DEC is still regarded with a

certain wry affection even among many hackers too young to have

grown up on DEC machines. The contrast with {IBM} is

instructive.

[1996 update: DEC has gradually been reclaiming some of its old

reputation among techies in the last five years. The success of

the Alpha, an innovatively-designed and very high-performance

{killer micro}, has helped a lot. So has DEC's newfound

receptiveness to Unix and open systems in general. --ESR]

:dec: /dek/ /v./ Verbal (and only rarely written) shorthand

for decrement, i.e. `decrease by one'. Especially used by

assembly programmers, as many assembly languages have a `dec'

mnemonic. Antonym: {inc}.

:DEC Wars: /n./ A 1983 {Usenet} posting by Alan Hastings and

Steve Tarr spoofing the "Star Wars" movies in hackish terms.

Some years later, ESR (disappointed by Hastings and Tarr's failure

to exploit a great premise more thoroughly) posted a 3-times-longer

complete rewrite called "Unix WARS"; the two are often

confused.

:decay: /n.,vi/ [from nuclear physics] An automatic conversion which

is applied to most array-valued expressions in {C}; they `decay

into' pointer-valued expressions pointing to the array's first

element. This term is borderline techspeak, but is not used in the

official standard for the language.

:DEChead: /dek'hed/ /n./ 1. A {DEC} {field servoid}.

Not flattering. 2. [from `deadhead'] A Grateful Dead fan working

at DEC.

:deckle: /dek'l/ /n./ [from dec- and {nybble}; the original

spelling seems to have been `decle'] Two {nickle}s; 10

bits. Reported among developers for Mattel's GI 1600 (the

Intellivision games processor), a chip with 16-bit-wide RAM but

10-bit-wide ROM. See {nybble} for other such terms.

:DED: /D-E-D/ /n./ Dark-Emitting Diode (that is, a burned-out

LED). Compare {SED}, {LER}, {write-only memory}. In the

early 1970s both Signetics and Texas instruments released DED spec

sheets as {AFJ}s (suggested uses included "as a power-off

indicator").

:deep hack mode: /n./ See {hack mode}.

:deep magic: /n./ [poss. from C. S. Lewis's "Narnia"

books] An awesomely arcane technique central to a program or

system, esp. one neither generally published nor available to

hackers at large (compare {black art}); one that could only have

been composed by a true {wizard}. Compiler optimization

techniques and many aspects of {OS} design used to be {deep

magic}; many techniques in cryptography, signal processing,

graphics, and AI still are. Compare {heavy wizardry}. Esp.

found in comments of the form "Deep magic begins here...".

Compare {voodoo programming}.

:deep space: /n./ 1. Describes the notional location of any

program that has gone {off the trolley}. Esp. used of

programs that just sit there silently grinding long after either

failure or some output is expected. "Uh oh. I should have gotten

a prompt ten seconds ago. The program's in deep space somewhere."

Compare {buzz}, {catatonic}, {hyperspace}. 2. The

metaphorical location of a human so dazed and/or confused or caught

up in some esoteric form of {bogosity} that he or she no longer

responds coherently to normal communication. Compare {page

out}.

:defenestration: /n./ [from the traditional Czechoslovakian

method of assassinating prime ministers, via SF fandom] 1. Proper

karmic retribution for an incorrigible punster. "Oh, ghod, that

was *awful*!" "Quick! Defenestrate him!" 2. The act of

exiting a window system in order to get better response time from a

full-screen program. This comes from the dictionary meaning of

`defenestrate', which is to throw something out a window. 3. The

act of discarding something under the assumption that it will

improve matters. "I don't have any disk space left." "Well,

why don't you defenestrate that 100 megs worth of old core dumps?"

4. Under a GUI, the act of dragging something out of a window

(onto the screen). "Next, defenestrate the MugWump icon."

5. [proposed] The requirement to support a command-line interface.

"It has to run on a VT100." "Curses! I've been

defenestrated!"

:defined as: /adj./ In the role of, usually in an

organization-chart sense. "Pete is currently defined as bug

prioritizer." Compare {logical}.

:dehose: /dee-hohz/ /vt./ To clear a {hosed} condition.

:delint: /dee-lint/ /v. obs./ To modify code to remove

problems detected when {lint}ing. Confusingly, this process is

also referred to as `linting' code. This term is no longer in

general use because ANSI C compilers typically issue compile-time

warnings almost as detailed as lint warnings.

:delta: /n./ 1. [techspeak] A quantitative change, especially a

small or incremental one (this use is general in physics and

engineering). "I just doubled the speed of my program!" "What

was the delta on program size?" "About 30 percent." (He

doubled the speed of his program, but increased its size by only 30

percent.) 2. [Unix] A {diff}, especially a {diff} stored

under the set of version-control tools called SCCS (Source Code

Control System) or RCS (Revision Control System). 3. /n./ A small

quantity, but not as small as {epsilon}. The jargon usage of

{delta} and {epsilon} stems from the traditional use of these

letters in mathematics for very small numerical quantities,

particularly in `epsilon-delta' proofs in limit theory (as in the

differential calculus). The term {delta} is often used, once

{epsilon} has been mentioned, to mean a quantity that is

slightly bigger than {epsilon} but still very small. "The cost

isn't epsilon, but it's delta" means that the cost isn't totally

negligible, but it is nevertheless very small. Common

constructions include `within delta of ---', `within epsilon of

---': that is, `close to' and `even closer to'.

:demented: /adj./ Yet another term of disgust used to describe

a program. The connotation in this case is that the program works

as designed, but the design is bad. Said, for example, of a

program that generates large numbers of meaningless error messages,

implying that it is on the brink of imminent collapse. Compare

{wonky}, {bozotic}.

:demigod: /n./ A hacker with years of experience, a world-wide

reputation, and a major role in the development of at least one

design, tool, or game used by or known to more than half of the

hacker community. To qualify as a genuine demigod, the person must

recognizably identify with the hacker community and have helped

shape it. Major demigods include Ken Thompson and Dennis Ritchie

(co-inventors of {{Unix}} and {C}), Richard M. Stallman

(inventor of {EMACS}), Linus Torvalds (inventor of Linux), and

most recently James Gosling (inventor of Java). In their hearts of

hearts, most hackers dream of someday becoming demigods themselves,

and more than one major software project has been driven to

completion by the author's veiled hopes of apotheosis. See also

{net.god}, {true-hacker}.

:demo: /de'moh/ [short for `demonstration'] 1. /v./ To

demonstrate a product or prototype. A far more effective way of

inducing bugs to manifest than any number of {test} runs,

especially when important people are watching. 2. /n./ The act of

demoing. "I've gotta give a demo of the drool-proof interface;

how does it work again?" 3. /n./ Esp. as `demo version', can

refer either to an early, barely-functional version of a program

which can be used for demonstration purposes as long as the

operator uses *exactly* the right commands and skirts its

numerous bugs, deficiencies, and unimplemented portions, or to a

special version of a program (frequently with some features

crippled) which is distributed at little or no cost to the user for

enticement purposes.

:demo mode: /n./ 1. [Sun] The state of being {heads down}

in order to finish code in time for a {demo}, usually due

yesterday. 2. A mode in which video games sit by themselves

running through a portion of the game, also known as `attract

mode'. Some serious {app}s have a demo mode they use as a

screen saver, or may go through a demo mode on startup (for

example, the Microsoft Windows opening screen -- which lets you

impress your neighbors without actually having to put up with

{Microsloth Windows}).

:demon: /n./ 1. [MIT] A portion of a program that is not

invoked explicitly, but that lies dormant waiting for some

condition(s) to occur. See {daemon}. The distinction is that

demons are usually processes within a program, while daemons are

usually programs running on an operating system. 2. [outside MIT]

Often used equivalently to {daemon} -- especially in the

{{Unix}} world, where the latter spelling and pronunciation is

considered mildly archaic.

Demons in sense 1 are particularly common in AI programs. For

example, a knowledge-manipulation program might implement inference

rules as demons. Whenever a new piece of knowledge was added,

various demons would activate (which demons depends on the

particular piece of data) and would create additional pieces of

knowledge by applying their respective inference rules to the

original piece. These new pieces could in turn activate more

demons as the inferences filtered down through chains of logic.

Meanwhile, the main program could continue with whatever its

primary task was.

:demon dialer: /n./ A program which repeatedly calls the same

telephone number. Demon dialing may be benign (as when a number of

communications programs contend for legitimate access to a {BBS}

line) or malign (that is, used as a prank or denial-of-service

attack). This term dates from the {blue box} days of the 1970s

and early 1980s and is now semi-obsolescent among {phreaker}s;

see {war dialer} for its contemporary progeny.

:depeditate: /dee-ped'*-tayt/ /n./ [by (faulty) analogy with

`decapitate'] Humorously, to cut off the feet of. When one is

using some computer-aided typesetting tools, careless placement of

text blocks within a page or above a rule can result in chopped-off

letter descenders. Such letters are said to have been depeditated.

:deprecated: /adj./ Said of a program or feature that is

considered obsolescent and in the process of being phased out,

usually in favor of a specified replacement. Deprecated features

can, unfortunately, linger on for many years. This term appears

with distressing frequency in standards documents when the

committees writing the documents realize that large amounts of

extant (and presumably happily working) code depend on the

feature(s) that have passed out of favor. See also {dusty

deck}.

:derf: /derf/ /v.,n./ [PLATO] The act of exploiting a

terminal which someone else has absentmindedly left logged on, to

use that person's account, especially to post articles intended to

make an ass of the victim you're impersonating.

:deserves to lose: /adj./ Said of someone who willfully does

the {Wrong Thing}; humorously, if one uses a feature known to be

{marginal}. What is meant is that one deserves the consequences

of one's {losing} actions. "Boy, anyone who tries to use

{mess-dos} deserves to {lose}!" ({{ITS}} fans used to say

the same thing of {{Unix}}; many still do.) See also {screw},

{chomp}, {bagbiter}.

:desk check: /n.,v./ To {grovel} over hardcopy of source

code, mentally simulating the control flow; a method of catching

bugs. No longer common practice in this age of on-screen editing,

fast compiles, and sophisticated debuggers -- though some maintain

stoutly that it ought to be. Compare {eyeball search},

{vdiff}, {vgrep}.

:despew: /d*-spyoo'/ /v./ [Usenet] To automatically generate

a large amount of garbage to the net, esp. from an automated

posting program gone wild. See {ARMM}.

:Devil Book: /n./ See {daemon book}, the term preferred by

its authors.

:dickless workstation: /n./ Extremely pejorative hackerism for

`diskless workstation', a class of botches including the Sun 3/50

and other machines designed exclusively to network with an

expensive central disk server. These combine all the disadvantages

of time-sharing with all the disadvantages of distributed personal

computers; typically, they cannot even {boot} themselves without

help (in the form of some kind of {breath-of-life packet}) from

the server.

:dictionary flame: /n./ [Usenet] An attempt to sidetrack a

debate away from issues by insisting on meanings for key terms that

presuppose a desired conclusion or smuggle in an implicit premise.

A common tactic of people who prefer argument over definitions to

disputes about reality. Compare {spelling flame}.

:diddle: 1. /vt./ To work with or modify in a not particularly

serious manner. "I diddled a copy of {ADVENT} so it didn't

double-space all the time." "Let's diddle this piece of code and

see if the problem goes away." See {tweak} and {twiddle}.

2. /n./ The action or result of diddling. See also {tweak},

{twiddle}, {frob}.

:die: /v./ Syn. {crash}. Unlike {crash}, which is used

primarily of hardware, this verb is used of both hardware and

software. See also {go flatline}, {casters-up mode}.

:die horribly: /v./ The software equivalent of {crash and

burn}, and the preferred emphatic form of {die}. "The

converter choked on an FF in its input and died horribly".

:diff: /dif/ /n./ 1. A change listing, especially giving

differences between (and additions to) source code or documents

(the term is often used in the plural `diffs'). "Send me your

diffs for the Jargon File!" Compare {vdiff}. 2. Specifically,

such a listing produced by the `diff(1)' command, esp. when

used as specification input to the `patch(1)' utility (which

can actually perform the modifications; see {patch}). This is a

common method of distributing patches and source updates in the

Unix/C world. 3. /v./ To compare (whether or not by use of

automated

tools on machine-readable files); see also {vdiff}, {mod}.

:digit: /n./ An employee of Digital Equipment Corporation. See

also {VAX}, {VMS}, {PDP-10}, {{TOPS-10}}, {DEChead},

{double DECkers}, {field circus}.

:dike: /vt./ To remove or disable a portion of something, as a

wire from a computer or a subroutine from a program. A standard

slogan is "When in doubt, dike it out". (The implication is that

it is usually more effective to attack software problems by

reducing complexity than by increasing it.) The word `dikes' is

widely used among mechanics and engineers to mean `diagonal

cutters', esp. the heavy-duty metal-cutting version, but may also

refer to a kind of wire-cutters used by electronics techs. To

`dike something out' means to use such cutters to remove

something. Indeed, the TMRC Dictionary defined dike as "to attack

with dikes". Among hackers this term has been metaphorically

extended to informational objects such as sections of code.

:Dilbert: /n./ Name and title character of a comic strip

nationally syndicated in the U.S. and enormously popular among

hackers. Dilbert is an archetypical engineer-nerd who works at an

anonymous high-technology company; the strips present a lacerating

satire of insane working conditions and idiotic {management}

practices all too readily recognized by hackers. Adams, who spent

nine years in {cube} 4S700R at Pacific Bell (not {DEC} as often

reported), often remarks that he has never been able to come up

with a fictional management blunder that his correspondents didn't

quickly either report to have actually happened or top with a

similar but even more bizarre incident. In 1996 Adams distilled

his insights into the collective psychology of businesses into an

even funnier book, "The Dilbert Principle" (HarperCollins,

ISBN 0-887-30787-6). See also {rat dance}.

:ding: /n.,vi./ 1. Synonym for {feep}. Usage: rare among

hackers, but commoner in the {Real World}. 2. `dinged': What

happens when someone in authority gives you a minor bitching about

something, esp. something trivial. "I was dinged for having a

messy desk."

:dink: /dink/ /adj./ Said of a machine that has the {bitty

box} nature; a machine too small to be worth bothering with ---

sometimes the system you're currently forced to work on. First

heard from an MIT hacker working on a CP/M system with 64K, in

reference to any 6502 system, then from fans of 32-bit

architectures about 16-bit machines. "GNUMACS will never work on

that dink machine." Probably derived from mainstream `dinky',

which isn't sufficiently pejorative. See {macdink}.

:dinosaur: /n./ 1. Any hardware requiring raised flooring and

special power. Used especially of old minis and mainframes, in

contrast with newer microprocessor-based machines. In a famous

quote from the 1988 Unix EXPO, Bill Joy compared the liquid-cooled

mainframe in the massive IBM display with a grazing dinosaur "with

a truck outside pumping its bodily fluids through it". IBM was

not amused. Compare {big iron}; see also {mainframe}.

2. [IBM] A very conservative user; a {zipperhead}.

:dinosaur pen: /n./ A traditional {mainframe} computer room

complete with raised flooring, special power, its own

ultra-heavy-duty air conditioning, and a side order of Halon fire

extinguishers. See {boa}.

:dinosaurs mating: /n./ Said to occur when yet another {big

iron} merger or buyout occurs; reflects a perception by hackers

that these signal another stage in the long, slow dying of the

{mainframe} industry. In its glory days of the 1960s, it was

`IBM and the Seven Dwarves': Burroughs, Control Data, General

Electric, Honeywell, NCR, RCA, and Univac. RCA and GE sold out

early, and it was `IBM and the Bunch' (Burroughs, Univac, NCR,

Control Data, and Honeywell) for a while. Honeywell was bought out

by Bull; Burroughs merged with Univac to form Unisys (in 1984 ---

this was when the phrase `dinosaurs mating' was coined); and in

1991 AT&T absorbed NCR. More such earth-shaking unions of doomed

giants seem inevitable.

:dirtball: /n./ [XEROX PARC] A small, perhaps struggling

outsider; not in the major or even the minor leagues. For example,

"Xerox is not a dirtball company".

[Outsiders often observe in the PARC culture an institutional

arrogance which usage of this term exemplifies. The brilliance and

scope of PARC's contributions to computer science have been such

that this superior attitude is not much resented. --ESR]

:dirty power: /n./ Electrical mains voltage that is unfriendly

to the delicate innards of computers. Spikes, {drop-outs},

average voltage significantly higher or lower than nominal, or just

plain noise can all cause problems of varying subtlety and severity

(these are collectively known as {power hit}s).

:disclaimer: /n./ [Usenet] Statement ritually appended to many

Usenet postings (sometimes automatically, by the posting software)

reiterating the fact (which should be obvious, but is easily

forgotten) that the article reflects its author's opinions and not

necessarily those of the organization running the machine through

which the article entered the network.

:Discordianism: /dis-kor'di-*n-ism/ /n./ The veneration of

{Eris}, a.k.a. Discordia; widely popular among hackers.

Discordianism was popularized by Robert Shea and Robert Anton

Wilson's novel "{Illuminatus!}" as a sort of

self-subverting Dada-Zen for Westerners -- it should on no account

be taken seriously but is far more serious than most jokes.

Consider, for example, the Fifth Commandment of the Pentabarf, from

"Principia Discordia": "A Discordian is Prohibited of

Believing What he Reads." Discordianism is usually connected with

an elaborate conspiracy theory/joke involving millennia-long

warfare between the anarcho-surrealist partisans of Eris and a

malevolent, authoritarian secret society called the Illuminati.

See {Religion} in Appendix B, {Church of the

SubGenius}, and {ha ha only serious}.

:disk farm: /n./ (also {laundromat}) A large room or rooms

filled with disk drives (esp. {washing machine}s).

:display hack: /n./ A program with the same approximate purpose

as a kaleidoscope: to make pretty pictures. Famous display hacks

include {munching squares}, {smoking clover}, the BSD Unix

`rain(6)' program, `worms(6)' on miscellaneous Unixes,

and the {X} `kaleid(1)' program. Display hacks can also be

implemented without programming by creating text files containing

numerous escape sequences for interpretation by a video terminal;

one notable example displayed, on any VT100, a Christmas tree with

twinkling lights and a toy train circling its base. The {hack

value} of a display hack is proportional to the esthetic value of

the images times the cleverness of the algorithm divided by the

size of the code. Syn. {psychedelicware}.

:Dissociated Press: /n./ [play on `Associated Press'; perhaps

inspired by a reference in the 1950 Bugs Bunny cartoon

"What's Up, Doc?"] An algorithm for transforming any text

into potentially humorous garbage even more efficiently than by

passing it through a {marketroid}. The algorithm starts by

printing any N consecutive words (or letters) in the text.

Then at every step it searches for any random occurrence in the

original text of the last N words (or letters) already

printed and then prints the next word or letter. {EMACS} has a

handy command for this. Here is a short example of word-based

Dissociated Press applied to an earlier version of this Jargon

File:

wart: /n./ A small, crocky {feature} that sticks out of an array

(C has no checks for this). This is relatively benign and easy

to spot if the phrase is bent so as to be not worth paying

attention to the medium in question.

Here is a short example of letter-based Dissociated Press applied

to the same source:

window sysIWYG: /n./ A bit was named aften /bee't*/ prefer to use

the other guy's re, especially in every cast a chuckle on

neithout getting into useful informash speech makes removing a

featuring a move or usage actual abstractionsidered /interj./

Indeed spectace logic or problem!

A hackish idle pastime is to apply letter-based Dissociated Press

to a random body of text and {vgrep} the output in hopes of finding

an interesting new word. (In the preceding example, `window

sysIWYG' and `informash' show some promise.) Iterated applications

of Dissociated Press usually yield better results. Similar

techniques called `travesty generators' have been employed with

considerable satirical effect to the utterances of Usenet flamers;

see {pseudo}.

:distribution: /n./ 1. A software source tree packaged for

distribution; but see {kit}. 2. A vague term encompassing

mailing lists and Usenet newsgroups (but not {BBS} {fora});

any topic-oriented message channel with multiple recipients. 3. An

information-space domain (usually loosely correlated with

geography) to which propagation of a Usenet message is restricted;

a much-underutilized feature.

:disusered: /adj./ [Usenet] Said of a person whose account on a

computer has been removed, esp. for cause rather than through

normal attrition. "He got disusered when they found out he'd been

cracking through the school's Internet access." The verbal form

`disuser' is live but less common. Both usages probably derive

from the DISUSER account status flag on VMS; setting it disables

the account. Compare {star out}.

:do protocol: /vi./ [from network protocol programming] To

perform an interaction with somebody or something that follows a

clearly defined procedure. For example, "Let's do protocol with

the check" at a restaurant means to ask for the check, calculate

the tip and everybody's share, collect money from everybody,

generate change as necessary, and pay the bill. See {protocol}.

:doc: /dok/ /n./ Common spoken and written shorthand for

`documentation'. Often used in the plural `docs' and in the

construction `doc file' (i.e., documentation available on-line).

:documentation:: /n./ The multiple kilograms of macerated,

pounded, steamed, bleached, and pressed trees that accompany most

modern software or hardware products (see also {tree-killer}).

Hackers seldom read paper documentation and (too) often resist

writing it; they prefer theirs to be terse and on-line. A common

comment on this predilection is "You can't {grep} dead trees".

See {drool-proof paper}, {verbiage}, {treeware}.

:dodgy: /adj./ Syn. with {flaky}. Preferred outside the

U.S.

:dogcow: /dog'kow/ /n./ See {Moof}. The dogcow is a

semi-legendary creature that lurks in the depths of the Macintosh

Technical Notes Hypercard stack V3.1. The full story of the dogcow

is told in technical note #31 (the particular dogcow illustrated is

properly named `Clarus'). Option-shift-click will cause it to emit

a characteristic `Moof!' or `!fooM' sound. *Getting* to tech

note 31 is the hard part; to discover how to do that, one must

needs examine the stack script with a hackerly eye. Clue:

{rot13} is involved. A dogcow also appears if you choose `Page

Setup...' with a LaserWriter selected and click on the

`Options' button.

:dogpile: /v./ [Usenet: prob. fr. mainstream "puppy pile"]

When many people post unfriendly responses in short order to a

single posting, they are sometimes said to "dogpile" or "dogpile

on" the person to whom they're responding. For example, when a

religious missionary posts a simplistic appeal to alt.atheism,

he can expect to be dogpiled.

:dogwash: /dog'wosh/ [From a quip in the `urgency' field

of a very optional software change request, ca. 1982. It was

something like "Urgency: Wash your dog first".] 1. /n./ A project

of minimal priority, undertaken as an escape from more serious

work. 2. /v./ To engage in such a project. Many games and much

{freeware} get written this way.

:domainist: /doh-mayn'ist/ /adj./ 1. [USENET, by pointed

analogy with "sexist", "racist", etc.] Someone who judges

people by the domain of their email addresses; esp. someone who

dismisses anyone who posts from a public internet provider. "What

do you expect from an article posted from aol.com?" 2. Said of an

{{Internet address}} (as opposed to a {bang path}) because the

part to the right of the `@' specifies a nested series of

`domains'; for example, esr@snark.thyrsus.com specifies

the machine called snark in the subdomain called thyrsus

within the top-level domain called com. See also

{big-endian}, sense 2.

The meaning of this term has drifted. At one time sense 2 was

primary. In elder days it was also used of a site, mailer, or

routing program which knew how to handle domainist addresses; or of

a person (esp. a site admin) who preferred domain addressing,

supported a domainist mailer, or proselytized for domainist

addressing and disdained {bang path}s. These senses are now

(1996) obsolete, as effectively all sites have converted.

:Don't do that, then!: /imp./ [from an old doctor's office joke

about a patient with a trivial complaint] Stock response to a user

complaint. "When I type control-S, the whole system comes to a

halt for thirty seconds." "Don't do that, then!" (or "So don't

do that!"). Compare {RTFM}.

:dongle: /dong'gl/ /n./ 1. A security or {copy protection}

device for commercial microcomputer programs consisting of a

serialized EPROM and some drivers in a D-25 connector shell, which

must be connected to an I/O port of the computer while the program

is run. Programs that use a dongle query the port at startup and

at programmed intervals thereafter, and terminate if it does not

respond with the dongle's programmed validation code. Thus, users

can make as many copies of the program as they want but must pay

for each dongle. The idea was clever, but it was initially a

failure, as users disliked tying up a serial port this way. Almost

all dongles on the market today (1993) will pass data through the

port and monitor for {magic} codes (and combinations of status

lines) with minimal if any interference with devices further down

the line -- this innovation was necessary to allow daisy-chained

dongles for multiple pieces of software. The devices are still not

widely used, as the industry has moved away from copy-protection

schemes in general. 2. By extension, any physical electronic key

or transferable ID required for a program to function. Common

variations on this theme have used parallel or even joystick ports.

See {dongle-disk}.

[Note: in early 1992, advertising copy from Rainbow Technologies (a

manufacturer of dongles) included a claim that the word derived

from "Don Gall", allegedly the inventor of the device. The

company's receptionist will cheerfully tell you that the story is a

myth invented for the ad copy. Nevertheless, I expect it to haunt

my life as a lexicographer for at least the next ten years. :-(

--ESR]

:dongle-disk: /don'gl disk/ /n./ A special floppy disk that

is required in order to perform some task. Some contain special

coding that allows an application to identify it uniquely, others

*are* special code that does something that normally-resident

programs don't or can't. (For example, AT&T's "Unix PC" would

only come up in {root mode} with a special boot disk.) Also

called a `key disk'. See {dongle}.

:donuts: /n. obs./ A collective noun for any set of memory bits.

This usage is extremely archaic and may no longer be live jargon;

it dates from the days of ferrite-{core} memories in which each

bit was implemented by a doughnut-shaped magnetic flip-flop.

:doorstop: /n./ Used to describe equipment that is

non-functional and halfway expected to remain so, especially

obsolete equipment kept around for political reasons or ostensibly

as a backup. "When we get another Wyse-50 in here, that ADM 3

will turn into a doorstop." Compare {boat anchor}.

:dot file: [Unix] /n./ A file that is not visible by default to

normal directory-browsing tools (on Unix, files named with a

leading dot are, by convention, not normally presented in directory

listings). Many programs define one or more dot files in which

startup or configuration information may be optionally recorded; a

user can customize the program's behavior by creating the

appropriate file in the current or home directory. (Therefore, dot

files tend to {creep} -- with every nontrivial application

program defining at least one, a user's home directory can be

filled with scores of dot files, of course without the user's

really being aware of it.) See also {profile} (sense 1), {rc

file}.

:double bucky: /adj./ Using both the CTRL and META keys. "The

command to burn all LEDs is double bucky F."

This term originated on the Stanford extended-ASCII keyboard, and

was later taken up by users of the {space-cadet keyboard} at

MIT. A typical MIT comment was that the Stanford {bucky bits}

(control and meta shifting keys) were nice, but there weren't

enough of them; you could type only 512 different characters on a

Stanford keyboard. An obvious way to address this was simply to

add more shifting keys, and this was eventually done; but a

keyboard with that many shifting keys is hard on touch-typists, who

don't like to move their hands away from the home position on the

keyboard. It was half-seriously suggested that the extra shifting

keys be implemented as pedals; typing on such a keyboard would be

very much like playing a full pipe organ. This idea is mentioned

in a parody of a very fine song by Jeffrey Moss called

"Rubber Duckie", which was published in "The Sesame

Street Songbook" (Simon and Schuster 1971, ISBN 0-671-21036-X).

These lyrics were written on May 27, 1978, in celebration of the

Stanford keyboard:

The Jargon File, Version 4.0.0, 24 Jul 1996 · 第 2 / 18 题