The Jargon File, Version 4.0.0, 24 Jul 1996
Chapter 9
:Church of the SubGenius: /n./ A mutant offshoot of {Discordianism} launched in 1981 as a spoof of fundamentalist Christianity by the `Reverend' Ivan Stang, a brilliant satirist with a gift for promotion. Popular among hackers as a rich source of bizarre imagery and references such as "Bob" the divine drilling-equipment salesman, the Benevolent Space Xists, and the Stark Fist of Removal. Much SubGenius theory is concerned with the acquisition of the mystical substance or quality of {slack}.
:Cinderella Book: [CMU] /n./ "Introduction to Automata Theory, Languages, and Computation", by John Hopcroft and Jeffrey Ullman, (Addison-Wesley, 1979). So called because the cover depicts a girl (putatively Cinderella) sitting in front of a Rube Goldberg device and holding a rope coming out of it. On the back cover, the device is in shambles after she has (inevitably) pulled on the rope. See also {{book titles}}.
:CI$: // /n./ Hackerism for `CIS', CompuServe Information Service. The dollar sign refers to CompuServe's rather steep line charges. Often used in {sig block}s just before a CompuServe address. Syn. {Compu$erve}.
:Classic C: /klas'ik C/ [a play on `Coke Classic'] /n./ The C programming language as defined in the first edition of {K&R}, with some small additions. It is also known as `K&R C'. The name came into use while C was being standardized by the ANSI X3J11 committee. Also `C Classic'.
An analogous construction is sometimes applied elsewhere: thus, `X Classic', where X = Star Trek (referring to the original TV series) or X = PC (referring to IBM's ISA-bus machines as opposed to the PS/2 series). This construction is especially used of product series in which the newer versions are considered serious losers relative to the older ones.
:clean: 1. /adj./ Used of hardware or software designs, implies `elegance in the small', that is, a design or implementation that may not hold any surprises but does things in a way that is reasonably intuitive and relatively easy to comprehend from the outside. The antonym is `grungy' or {crufty}. 2. /v./ To remove unneeded or undesired files in a effort to reduce clutter: "I'm cleaning up my account." "I cleaned up the garbage and now have 100 Meg free on that partition."
:CLM: /C-L-M/ [Sun: `Career Limiting Move'] 1. /n./ An action endangering one's future prospects of getting plum projects and raises, and possibly one's job: "His Halloween costume was a parody of his manager. He won the prize for `best CLM'." 2. adj. Denotes extreme severity of a bug, discovered by a customer and obviously missed earlier because of poor testing: "That's a CLM bug!"
:clobber: /vt./ To overwrite, usually unintentionally: "I walked off the end of the array and clobbered the stack." Compare {mung}, {scribble}, {trash}, and {smash the stack}.
:clocks: /n./ Processor logic cycles, so called because each generally corresponds to one clock pulse in the processor's timing. The relative execution times of instructions on a machine are usually discussed in clocks rather than absolute fractions of a second; one good reason for this is that clock speeds for various models of the machine may increase as technology improves, and it is usually the relative times one is interested in when discussing the instruction set. Compare {cycle}.
:clone: /n./ 1. An exact duplicate: "Our product is a clone of their product." Implies a legal reimplementation from documentation or by reverse-engineering. Also connotes lower price. 2. A shoddy, spurious copy: "Their product is a clone of our product." 3. A blatant ripoff, most likely violating copyright, patent, or trade secret protections: "Your product is a clone of my product." This use implies legal action is pending. 4. `PC clone:' a PC-BUS/ISA or EISA-compatible 80x86-based microcomputer (this use is sometimes spelled `klone' or `PClone'). These invariably have much more bang for the buck than the IBM archetypes they resemble. 5. In the construction `Unix clone': An OS designed to deliver a Unix-lookalike environment without Unix license fees, or with additional `mission-critical' features such as support for real-time programming. 6. /v./ To make an exact copy of something. "Let me clone that" might mean "I want to borrow that paper so I can make a photocopy" or "Let me get a copy of that file before you {mung} it".
:clone-and-hack coding: /n./ [DEC] Syn. {case and paste}.
:clover key: /n./ [Mac users] See {feature key}.
:clustergeeking: /kluh'st*r-gee`king/ /n./ [CMU] Spending more time at a computer cluster doing CS homework than most people spend breathing.
:COBOL: /koh'bol/ /n./ [COmmon Business-Oriented Language] (Synonymous with {evil}.) A weak, verbose, and flabby language used by {card walloper}s to do boring mindless things on {dinosaur} mainframes. Hackers believe that all COBOL programmers are {suit}s or {code grinder}s, and no self-respecting hacker will ever admit to having learned the language. Its very name is seldom uttered without ritual expressions of disgust or horror. One popular one is Edsger W. Dijkstra's famous observation that "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." (from "Selected Writings on Computing: A Personal Perspective") See also {fear and loathing}, {software rot}.
:COBOL fingers: /koh'bol fing'grz/ /n./ Reported from Sweden, a (hypothetical) disease one might get from coding in COBOL. The language requires code verbose beyond all reason (see {candygrammar}); thus it is alleged that programming too much in COBOL causes one's fingers to wear down to stubs by the endless typing. "I refuse to type in all that source code again; it would give me COBOL fingers!"
:code grinder: /n./ 1. A {suit}-wearing minion of the sort hired in legion strength by banks and insurance companies to implement payroll packages in RPG and other such unspeakable horrors. In its native habitat, the code grinder often removes the suit jacket to reveal an underplumage consisting of button-down shirt (starch optional) and a tie. In times of dire stress, the sleeves (if long) may be rolled up and the tie loosened about half an inch. It seldom helps. The {code grinder}'s milieu is about as far from hackerdom as one can get and still touch a computer; the term connotes pity. See {Real World}, {suit}. 2. Used of or to a hacker, a really serious slur on the person's creative ability; connotes a design style characterized by primitive technique, rule-boundedness, {brute force}, and utter lack of imagination. Compare {card walloper}; contrast {hacker}, {Real Programmer}.
:Code of the Geeks: /n./ see {geek code}.
:code police: /n./ [by analogy with George Orwell's `thought police'] A mythical team of Gestapo-like storm troopers that might burst into one's office and arrest one for violating programming style rules. May be used either seriously, to underline a claim that a particular style violation is dangerous, or ironically, to suggest that the practice under discussion is condemned mainly by anal-retentive {weenie}s. "Dike out that goto or the code police will get you!" The ironic usage is perhaps more common.
:codes: /n./ [scientific computing] Programs. This usage is common in people who hack supercomputers and heavy-duty {number-crunching}, rare to unknown elsewhere (if you say "codes" to hackers outside scientific computing, their first association is likely to be "and cyphers").
:codewalker: /n./ A program component that traverses other programs for a living. Compilers have codewalkers in their front ends; so do cross-reference generators and some database front ends. Other utility programs that try to do too much with source code may turn into codewalkers. As in "This new `vgrind' feature would require a codewalker to implement."
:coefficient of X: /n./ Hackish speech makes heavy use of pseudo-mathematical metaphors. Four particularly important ones involve the terms `coefficient', `factor', `index', and `quotient'. They are often loosely applied to things you cannot really be quantitative about, but there are subtle distinctions among them that convey information about the way the speaker mentally models whatever he or she is describing.
`Foo factor' and `foo quotient' tend to describe something for which the issue is one of presence or absence. The canonical example is {fudge factor}. It's not important how much you're fudging; the term simply acknowledges that some fudging is needed. You might talk of liking a movie for its silliness factor. Quotient tends to imply that the property is a ratio of two opposing factors: "I would have won except for my luck quotient." This could also be "I would have won except for the luck factor", but using *quotient* emphasizes that it was bad luck overpowering good luck (or someone else's good luck overpowering your own).
`Foo index' and `coefficient of foo' both tend to imply that foo is, if not strictly measurable, at least something that can be larger or smaller. Thus, you might refer to a paper or person as having a `high bogosity index', whereas you would be less likely to speak of a `high bogosity factor'. `Foo index' suggests that foo is a condensation of many quantities, as in the mundane cost-of-living index; `coefficient of foo' suggests that foo is a fundamental quantity, as in a coefficient of friction. The choice between these terms is often one of personal preference; e.g., some people might feel that bogosity is a fundamental attribute and thus say `coefficient of bogosity', whereas others might feel it is a combination of factors and thus say `bogosity index'.
:cokebottle: /kohk'bot-l/ /n./ Any very unusual character, particularly one you can't type because it it isn't on your keyboard. MIT people used to complain about the `control-meta-cokebottle' commands at SAIL, and SAIL people complained right back about the `{altmode}-altmode-cokebottle' commands at MIT. After the demise of the {space-cadet keyboard}, `cokebottle' faded away as serious usage, but was often invoked humorously to describe an (unspecified) weird or non-intuitive keystroke command. It may be due for a second inning, however. The OSF/Motif window manager, `mwm(1)', has a reserved keystroke for switching to the default set of keybindings and behavior. This keystroke is (believe it or not) `control-meta-bang' (see {bang}). Since the exclamation point looks a lot like an upside down Coke bottle, Motif hackers have begun referring to this keystroke as `cokebottle'. See also {quadruple bucky}.
:cold boot: /n./ See {boot}.
:COME FROM: /n./ A semi-mythical language construct dual to the `go to'; `COME FROM' 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.