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

The New Hacker's Dictionary

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

591

of the imminent collapse (or death) of the net. Ten years and numerous doublings later, enough of these gloomy prognostications have been confounded that the phrase "Imminent Death Of The Net Predicted!" has become a running joke, hauled out any time someone grumbles about the [7137]S/N ratio or the huge and steadily increasing volume, or the possible loss of a key node or link, or the potential for lawsuits when ignoramuses post copyrighted material, etc., etc., etc.

---

Node:in the extreme, Next:[7138]inc, Previous:[7139]Imminent Death Of The Net Predicted!, Up:[7140]= I =

in the extreme adj.

A preferred superlative suffix for many hackish terms. See, for example, `obscure in the extreme' under [7141]obscure, and compare [7142]highly.

---

Node:inc, Next:[7143]incantation, Previous:[7144]in the extreme, Up:[7145]= I =

inc /ink/ v.

Verbal (and only rarely written) shorthand for increment, i.e. `increase by one'. Especially used by assembly programmers, as many assembly languages have an inc mnemonic. Antonym: dec (see [7146]DEC).

---

Node:incantation, Next:[7147]include, Previous:[7148]inc, Up:[7149]= I =

incantation n.

592

Any particularly arbitrary or obscure command that one must mutter at a system to attain a desired result. Not used of passwords or other explicit security features. Especially used of tricks that are so poorly documented that they must be learned from a [7150]wizard. "This compiler normally locates initialized data in the data segment, but if you [7151]mutter the right incantation they will be forced into text space."

---

Node:include, Next:[7152]include war, Previous:[7153]incantation, Up:[7154]= I =

include vt.

[Usenet] 1. To duplicate a portion (or whole) of another's message (typically with attribution to the source) in a reply or followup, for clarifying the context of one's response. See the discussion of inclusion styles under "Hacker Writing Style". 2. [from [7155]C] #include <disclaimer.h> has appeared in [7156]sig blocks to refer to a notional `standard [7157]disclaimer file'.

---

Node:include war, Next:[7158]indent style, Previous:[7159]include, Up:[7160]= I =

include war n.

Excessive multi-leveled inclusion within a discussion [7161]thread, a practice that tends to annoy readers. In a forum with high-traffic newsgroups, such as Usenet, this can lead to [7162]flames and the urge to start a [7163]kill file.

---

593

Node:indent style, Next:[7164]index of X, Previous:[7165]include war, Up:[7166]= I =

indent style n.

[C, C++, and Java programmers] The rules one uses to indent code in a readable fashion. There are four major C indent styles, described below; all have the aim of making it easier for the reader to visually track the scope of control constructs. They have been inherited by C++ and Java, which have C-like syntaxes. The significant variable is the placement of { and } with respect to the statement(s) they enclose and to the guard or controlling statement (if, else, for, while, or do) on the block, if any.

`K&R style' -- Named after Kernighan & Ritchie, because the examples in [7167]K&R are formatted this way. Also called `kernel style' because the Unix kernel is written in it, and the `One True Brace Style' (abbrev. 1TBS) by its partisans. In C code, the body is typically indented by eight spaces (or one tab) per level, as shown here. Four spaces are occasionally seen in C, but in C++ and Java four tends to be the rule rather than the exception. if (<cond>) { <body> }

`Allman style' -- Named for Eric Allman, a Berkeley hacker who wrote a lot of the BSD utilities in it (it is sometimes called `BSD style'). Resembles normal indent style in Pascal and Algol. It is the only style other than K&R in widespread use among Java programmers. Basic indent per level shown here is eight spaces, but four (or sometimes three) spaces are generally preferred by C++ and Java programmers. if (<cond>) { <body> }

`Whitesmiths style' -- popularized by the examples that came with Whitesmiths C, an early commercial C compiler. Basic indent per level shown here is eight spaces, but four spaces are occasionally seen. if (<cond>) { <body> }

`GNU style' -- Used throughout GNU EMACS and the Free Software Foundation code, and just about nowhere else. Indents are always four spaces per level, with { and } halfway between the outer and inner indent

594

levels. if (<cond>) { <body> }

Surveys have shown the Allman and Whitesmiths styles to be the most common, with about equal mind shares. K&R/1TBS used to be nearly universal, but is now much less common in C (the opening brace tends to get lost against the right paren of the guard part in an if or while, which is a [7168]Bad Thing). Defenders of 1TBS argue that any putative gain in readability is less important than their style's relative economy with vertical space, which enables one to see more code on one's screen at once.

The Java Language Specification legislates not only the capitalization of identifiers, but where nouns, adjectives, and verbs should be in method, class, interface, and variable names (section 6.8). While the specification stops short of also standardizing on a bracing style, all source code originating from Sun Laboratories uses the K&R style. This has set a precedent for Java programmers, which most follow.

Doubtless these issues will continue to be the subject of [7169]holy wars.

---

Node:index of X, Next:[7170]infant mortality, Previous:[7171]indent style, Up:[7172]= I =

index of X n.

See [7173]coefficient of X.

---

Node:infant mortality, Next:[7174]infinite, Previous:[7175]index of X, Up:[7176]= I =

infant mortality n.

595

It is common lore among hackers (and in the electronics industry at large; this term is possibly techspeak by now) that the chances of sudden hardware failure drop off exponentially with a machine's time since first use (that is, until the relatively distant time at which enough mechanical wear in I/O devices and thermal-cycling stress in components has accumulated for the machine to start going senile). Up to half of all chip and wire failures happen within a new system's first few weeks; such failures are often referred to as `infant mortality' problems (or, occasionally, as `sudden infant death syndrome'). See [7177]bathtub curve, [7178]burn-in period.

---

Node:infinite, Next:[7179]infinite loop, Previous:[7180]infant mortality, Up:[7181]= I =

infinite adj.

[common] Consisting of a large number of objects; extreme. Used very loosely as in: "This program produces infinite garbage." "He is an infinite loser." The word most likely to follow `infinite', though, is [7182]hair. (It has been pointed out that fractals are an excellent example of infinite hair.) These uses are abuses of the word's mathematical meaning. The term `semi-infinite', denoting an immoderately large amount of some resource, is also heard. "This compiler is taking a semi-infinite amount of time to optimize my program." See also [7183]semi.

---

Node:infinite loop, Next:[7184]Infinite-Monkey Theorem, Previous:[7185]infinite, Up:[7186]= I =

infinite loop n.

One that never terminates (that is, the machine [7187]spins or [7188]buzzes forever and goes [7189]catatonic). There is a standard joke that has been

596

made about each generation's exemplar of the ultra-fast machine: "The Cray-3 is so fast it can execute an infinite loop in under 2 seconds!"

---

Node:Infinite-Monkey Theorem, Next:[7190]infinity,

Previous:[7191]infinite loop, Up:[7192]= I =

Infinite-Monkey Theorem n.

"If you put an [7193]infinite number of monkeys at typewriters, eventually one will bash out the script for Hamlet." (One may also hypothesize a small number of monkeys and a very long period of time.) This theorem asserts nothing about the intelligence of the one [7194]random monkey that eventually comes up with the script (and note that the mob will also type out all the possible incorrect versions of Hamlet). It may be referred to semi-seriously when justifying a [7195]brute force method; the implication is that, with enough resources thrown at it, any technical challenge becomes a [7196]one-banana problem. This argument gets more respect since [7197]Linux justified the [7198]bazaar mode of development.

This theorem was first popularized by the astronomer Sir Arthur Eddington. It became part of the idiom of techies via the classic SF short story "Inflexible Logic" by Russell Maloney, and many younger hackers know it through a reference in Douglas Adams's "Hitchhiker's Guide to the Galaxy". On 1 April 2000 the usage acquired its own Internet standard, [7199]http://www.rfc-editor.org/rfc/rfc2795.txt (Infinite Monkey Protocol Suite).

---

Node:infinity, Next:[7200]inflate, Previous:[7201]Infinite-Monkey

Theorem, Up:[7202]= I =

infinity n.

597

1. The largest value that can be represented in a particular type of variable (register, memory location, data type, whatever). 2. `minus infinity': The smallest such value, not necessarily or even usually the simple negation of plus infinity. In N-bit twos-complement arithmetic, infinity is 2^(N-1) - 1 but minus infinity is - (2^(N-1)), not -(2^(N-1) - 1). Note also that this is different from time T equals minus infinity, which is closer to a mathematician's usage of infinity.

---

Node:inflate, Next:[7203]Infocom, Previous:[7204]infinity, Up:[7205]= I =

inflate vt.

To decompress or [7206]puff a file. Rare among Internet hackers, used primarily by MS-DOS/Windows types.

---

Node:Infocom, Next:[7207]initgame, Previous:[7208]inflate, Up:[7209]= I

=

Infocom n.

A now-legendary games company, active from 1979 to 1989, that commercialized the MDL parser technology used for [7210]Zork to produce a line of text adventure games that remain favorites among hackers. Infocom's games were intelligent, funny, witty, erudite, irreverent, challenging, satirical, and most thoroughly hackish in spirit. The physical game packages from Infocom are now prized collector's items. After being acquired by Activision in 1989 they did a few more "modern" (e.g. graphics-intensive) games which were less successful than reissues of their classics.

The software, thankfully, is still extant; Infocom games were written in a kind of P-code and distributed with a P-code interpreter core, and not only

598

freeware emulators for that interpreter but an actual compiler as well have been written to permit the P-code to be run on platforms the games never originally graced. In fact, new games written in this P-code are still bering written. (Emulators that can run Infocom game ZIPs, and new games, are available at [7211]ftp://wuarchive.wustl.edu:/doc/misc/if-archive/infocom.)

---

Node:initgame, Next:[7212]insanely great, Previous:[7213]Infocom, Up:[7214]= I =

initgame /in-it'gaym/ n.

[IRC] An [7215]IRC version of the trivia game "Botticelli", in which one user changes his [7216]nick to the initials of a famous person or other named entity, and the others on the channel ask yes or no questions, with the one to guess the person getting to be "it" next. As a courtesy, the one picking the initials starts by providing a 4-letter hint of the form sex, nationality, life-status, reality-status. For example, MAAR means "Male, American, Alive, Real" (as opposed to "fictional"). Initgame can be surprisingly addictive. See also [7217]hing.

[1996 update: a recognizable version of the initgame has become a staple of some radio talk shows in the U.S. We had it first! - ESR]

---

Node:insanely great, Next:[7218]installfest, Previous:[7219]initgame, Up:[7220]= I =

insanely great adj.

[Mac community, from Steve Jobs; also BSD Unix people via Bill Joy] Something so incredibly [7221]elegant that it is imaginable only to someone possessing the most puissant of [7222]hacker-natures.

599

---

Node:installfest, Next:[7223]INTERCAL, Previous:[7224]insanely great, Up:[7225]= I =

installfest

[Linux community since c.1998] Common portmanteau word for "installation festival"; Linux user groups frequently run these. Computer users are invited to bring their machines to have Linux installed on their machines. The idea is to get them painlessly over the biggest hump in migrating to Linux, which is initially installing and configuring it for the user's machine.

---

Node:INTERCAL, Next:[7226]interesting, Previous:[7227]installfest,

Up:[7228]= I =

INTERCAL /in't*r-kal/ n.

[said by the authors to stand for `Compiler Language With No Pronounceable Acronym'] A computer language designed by Don Woods and James Lyons in 1972. INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. An excerpt from the INTERCAL Reference Manual will make the style of the language clear:

It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is: DO :1 <- #0$#256

any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course have happened to turn up, as

600

bosses are wont to do. The effect would be no less devastating for the programmer having been correct.

INTERCAL has many other peculiar features designed to make it even more unspeakable. The Woods-Lyons implementation was actually used by many (well, at least several) people at Princeton. The language has been recently reimplemented as C-INTERCAL and is consequently enjoying an unprecedented level of unpopularity; there is even an alt.lang.intercal newsgroup devoted to the study and ... appreciation of the language on Usenet.

Inevitably, INTERCAL has a home page on the Web: [7229]http://www.tuxedo.org/~esr/intercal/. An extended version, implemented in (what else?) [7230]Perl and adding object-oriented features, is available at [7231]http://dd-sh.assurdo.com/INTERCAL. See also [7232]Befunge.

---

Node:interesting, Next:[7233]Internet, Previous:[7234]INTERCAL,

Up:[7235]= I =

interesting adj.

In hacker parlance, this word has strong connotations of `annoying', or `difficult', or both. Hackers relish a challenge, and enjoy wringing all the irony possible out of the ancient Chinese curse "May you live in interesting times". Oppose [7236]trivial, [7237]uninteresting.

---

Node:Internet, Next:[7238]Internet address, Previous:[7239]interesting, Up:[7240]= I =

Internet n.

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