Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

The New Hacker's Dictionary

.pdf
Скачиваний:
224
Добавлен:
10.08.2013
Размер:
1.62 Mб
Скачать

221

*[2357]crippleware:

*[2358]critical mass:

*[2359]crlf:

*[2360]crock:

*[2361]cross-post:

*[2362]crossload:

*[2363]crudware:

*[2364]cruft:

*[2365]cruft together:

*[2366]cruftsmanship:

*[2367]crufty:

*[2368]crumb:

*[2369]crunch:

*[2370]cryppie:

*[2371]CTSS:

*[2372]cube:

*[2373]cubing:

*[2374]cup holder:

222

*[2375]cursor dipped in X:

*[2376]cuspy:

*[2377]cut a tape:

*[2378]cybercrud:

*[2379]cyberpunk:

*[2380]cyberspace:

*[2381]cycle:

*[2382]cycle crunch:

*[2383]cycle drought:

*[2384]cycle of reincarnation:

*[2385]cycle server:

*[2386]cypherpunk:

*[2387]C|N>K:

---

Node:C, Next:[2388]C Programmer's Disease, Previous:[2389]Bzzzt!

Wrong., Up:[2390]= C =

C n.

1. The third letter of the English alphabet. 2. ASCII 1000011. 3. The name of a programming language designed by Dennis Ritchie during the early 1970s and immediately used to reimplement [2391]Unix; so called because

223

many features derived from an earlier compiler named `B' in commemoration of its parent, BCPL. (BCPL was in turn descended from an earlier Algol-derived language, CPL.) Before Bjarne Stroustrup settled the question by designing [2392]C++, there was a humorous debate over whether C's successor should be named `D' or `P'. C became immensely popular outside Bell Labs after about 1980 and is now the dominant language in systems and microcomputer applications programming. See also [2393]languages of choice, [2394]indent style.

C is often described, with a mixture of fondness and disdain varying according to the speaker, as "a language that combines all the elegance and power of assembly language with all the readability and maintainability of assembly language".

---

Node:C Programmer's Disease, Next:[2395]C&C, Previous:[2396]C,

Up:[2397]= C =

C Programmer's Disease n.

The tendency of the undisciplined C programmer to set arbitrary but supposedly generous static limits on table sizes (defined, if you're lucky, by constants in header files) rather than taking the trouble to do proper dynamic storage allocation. If an application user later needs to put 68 elements into a table of size 50, the afflicted programmer reasons that he or she can easily reset the table size to 68 (or even as much as 70, to allow for future expansion) and recompile. This gives the programmer the comfortable feeling of having made the effort to satisfy the user's (unreasonable) demands, and often affords the user multiple opportunities to explore the marvelous consequences of [2398]fandango on core. In severe cases of the disease, the programmer cannot comprehend why each fix of this kind seems only to further disgruntle the user.

---

224

Node:C&C, Next:[2399]C++, Previous:[2400]C Programmer's Disease,

Up:[2401]= C =

C&C //

[common, esp. on news.admin.net-abuse.email] Contraction of "Coffee & Cats". This frequently occurs as a warning label on USENET posts that are likely to cause you to [2402]snarf coffee onto your keyboard and startle the cat off your lap.

---

Node:C++, Next:[2403]calculator, Previous:[2404]C&C, Up:[2405]= C =

C++ /C'-pluhs-pluhs/ n.

Designed by Bjarne Stroustrup of AT&T Bell Labs as a successor to [2406]C. Now one of the [2407]languages of choice, although many hackers still grumble that it is the successor to either Algol 68 or [2408]Ada (depending on generation), and a prime example of [2409]second-system effect. Almost anything that can be done in any language can be done in C++, but it requires a [2410]language lawyer to know what is and what is not legal-- the design is almost too large to hold in even hackers' heads. Much of the [2411]cruft results from C++'s attempt to be backward compatible with C. Stroustrup himself has said in his retrospective book "The Design and Evolution of C++" (p. 207), "Within C++, there is a much smaller and cleaner language struggling to get out." [Many hackers would now add "Yes, and it's called [2412]Java" --ESR]

---

Node:calculator, Next:[2413]Camel Book, Previous:[2414]C++,

Up:[2415]= C =

calculator [Cambridge] n.

225

Syn. for [2416]bitty box.

---

Node:Camel Book, Next:[2417]can, Previous:[2418]calculator, Up:[2419]=

C =

Camel Book n.

Universally recognized nickname for the book "Programming Perl", by Larry Wall and Randal L. Schwartz, O'Reilly and Associates 1991, ISBN 0-937175-64-1 (second edition 1996, ISBN 1-56592-149-6). The definitive reference on [2420]Perl.

---

Node:can, Next:[2421]can't happen, Previous:[2422]Camel Book, Up:[2423]= C =

can vt.

To abort a job on a time-sharing system. Used esp. when the person doing the deed is an operator, as in "canned from the [2424]console". Frequently used in an imperative sense, as in "Can that print job, the LPT just popped a sprocket!" Synonymous with [2425]gun. It is said that the ASCII character with mnemonic CAN (0011000) was used as a kill-job character on some early OSes. Alternatively, this term may derive from mainstream slang `canned' for being laid off or fired.

---

Node:can't happen, Next:[2426]cancelbot, Previous:[2427]can, Up:[2428]= C =

can't happen

226

The traditional program comment for code executed under a condition that should never be true, for example a file size computed as negative. Often, such a condition being true indicates data corruption or a faulty algorithm; it is almost always handled by emitting a fatal error message and terminating or crashing, since there is little else that can be done. Some case variant of "can't happen" is also often the text emitted if the `impossible' error actually happens! Although "can't happen" events are genuinely infrequent in production code, programmers wise enough to check for them habitually are often surprised at how frequently they are triggered during development and how many headaches checking for them turns out to head off. See also [2429]firewall code (sense 2).

---

Node:cancelbot, Next:[2430]Cancelmoose[tm], Previous:[2431]can't happen, Up:[2432]= C =

cancelbot /kan'sel-bot/

[Usenet: compound, cancel + robot] 1. Mythically, a [2433]robocanceller 2. In reality, most cancelbots are manually operated by being fed lists of spam message IDs.

---

Node:Cancelmoose[tm], Next:[2434]candygrammar,

Previous:[2435]cancelbot, Up:[2436]= C =

Cancelmoose[tm] /kan'sel-moos/

[Usenet] The archetype and model of all good [2437]spam-fighters. Once upon a time, the 'Moose would send out spam-cancels and then post notice anonymously to news.admin.policy, news.admin.misc, and alt.current-events.net-abuse. The 'Moose stepped to the fore on its own initiative, at a time (mid-1994) when spam-cancels were irregular and disorganized, and behaved altogether admirably - fair, even-handed, and

227

quick to respond to comments and criticism, all without self-aggrandizement or martyrdom. Cancelmoose[tm] quickly gained near-unanimous support from the readership of all three above-mentioned groups.

Nobody knows who Cancelmoose[tm] really is, and there aren't even any good rumors. However, the 'Moose now has an e-mail address ([2438]moose@cm.org) and a web site ([2439]http://www.cm.org.)

By early 1995, others had stepped into the spam-cancel business, and appeared to be comporting themselves well, after the 'Moose's manner. The 'Moose has now gotten out of the business, and is more interested in ending spam (and cancels) entirely.

---

Node:candygrammar, Next:[2440]canonical,

Previous:[2441]Cancelmoose[tm], Up:[2442]= C =

candygrammar n.

A programming-language grammar that is mostly [2443]syntactic sugar; the term is also a play on `candygram'. [2444]COBOL, Apple's Hypertalk language, and a lot of the so-called `4GL' database languages share this property. The usual intent of such designs is that they be as English-like as possible, on the theory that they will then be easier for unskilled people to program. This intention comes to grief on the reality that syntax isn't what makes programming hard; it's the mental effort and organization required to specify an algorithm precisely that costs. Thus the invariable result is that `candygrammar' languages are just as difficult to program in as terser ones, and far more painful for the experienced hacker.

[The overtones from the old Chevy Chase skit on Saturday Night Live should not be overlooked. This was a "Jaws" parody. Someone lurking outside an apartment door tries all kinds of bogus ways to get the occupant to open up, while ominous music plays in the background. The last attempt

228

is a half-hearted "Candygram!" When the door is opened, a shark bursts in and chomps the poor occupant. [There is a similar gag in "Blazing Saddles" --ESR] There is a moral here for those attracted to candygrammars. Note that, in many circles, pretty much the same ones who remember Monty Python sketches, all it takes is the word "Candygram!", suitably timed, to get people rolling on the floor. -- GLS]

---

Node:canonical, Next:[2445]card walloper, Previous:[2446]candygrammar, Up:[2447]= C =

canonical adj.

[very common; historically, `according to religious law'] The usual or standard state or manner of something. This word has a somewhat more technical meaning in mathematics. Two formulas such as 9 + x and x + 9 are said to be equivalent because they mean the same thing, but the second one is in `canonical form' because it is written in the usual way, with the highest power of x first. Usually there are fixed rules you can use to decide whether something is in canonical form. The jargon meaning, a relaxation of the technical meaning, acquired its present loading in computer-science culture largely through its prominence in Alonzo Church's work in computation theory and mathematical logic (see [2448]Knights of the Lambda Calculus). Compare [2449]vanilla.

Non-technical academics do not use the adjective `canonical' in any of the senses defined above with any regularity; they do however use the nouns `canon' and `canonicity' (not **canonicalness or **canonicality). The `canon' of a given author is the complete body of authentic works by that author (this usage is familiar to Sherlock Holmes fans as well as to literary scholars). `The canon' is the body of works in a given field (e.g., works of literature, or of art, or of music) deemed worthwhile for students to study and for scholars to investigate.

229

The word `canon' has an interesting history. It derives ultimately from the Greek `kanon' (akin to the English `cane') referring to a reed. Reeds were used for measurement, and in Latin and later Greek the word `canon' meant a rule or a standard. The establishment of a canon of scriptures within Christianity was meant to define a standard or a rule for the religion. The above non-techspeak academic usages stem from this instance of a defined and accepted body of work. Alongside this usage was the promulgation of `canons' (`rules') for the government of the Catholic Church. The techspeak usages ("according to religious law") derive from this use of the Latin `canon'.

Hackers invest this term with a playfulness that makes an ironic contrast with its historical meaning. A true story: One Bob Sjoberg, new at the MIT AI Lab, expressed some annoyance at the incessant use of jargon. Over his loud objections, GLS and RMS made a point of using as much of it as possible in his presence, and eventually it began to sink in. Finally, in one conversation, he used the word `canonical' in jargon-like fashion without thinking. Steele: "Aha! We've finally got you talking jargon too!" Stallman: "What did he say?" Steele: "Bob just used `canonical' in the canonical way."

Of course, canonicality depends on context, but it is implicitly defined as the way hackers normally expect things to be. Thus, a hacker may claim with a straight face that `according to religious law' is not the canonical meaning of `canonical'.

---

Node:card walloper, Next:[2450]careware, Previous:[2451]canonical, Up:[2452]= C =

card walloper n.

An EDP programmer who grinds out batch programs that do stupid things like print people's paychecks. Compare [2453]code grinder. See also [2454]punched card, [2455]eighty-column mind.

230

---

Node:careware, Next:[2456]cargo cult programming, Previous:[2457]card walloper, Up:[2458]= C =

careware /keir'weir/ n.

A variety of [2459]shareware for which either the author suggests that some payment be made to a nominated charity or a levy directed to charity is included on top of the distribution charge. Syn. [2460]charityware; compare [2461]crippleware, sense 2.

---

Node:cargo cult programming, Next:[2462]cascade,

Previous:[2463]careware, Up:[2464]= C =

cargo cult programming n.

A style of (incompetent) programming dominated by ritual inclusion of code or program structures that serve no real purpose. A cargo cult programmer will usually explain the extra code as a way of working around some bug encountered in the past, but usually neither the bug nor the reason the code apparently avoided the bug was ever fully understood (compare [2465]shotgun debugging, [2466]voodoo programming).

The term `cargo cult' is a reference to aboriginal religions that grew up in the South Pacific after World War II. The practices of these cults center on building elaborate mockups of airplanes and military style landing strips in the hope of bringing the return of the god-like airplanes that brought such marvelous cargo during the war. Hackish usage probably derives from Richard Feynman's characterization of certain practices as "cargo cult science" in his book "Surely You're Joking, Mr. Feynman!" (W. W. Norton & Co, New York 1985, ISBN 0-393-01921-7).

---

Соседние файлы в предмете Английский язык