The Jargon File, Version 4.0.0, 24 Jul 1996
Chapter 11
: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 [email protected] 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.