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

The New Hacker's Dictionary

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

541

Node:hacked up, Next:[6501]hacker, Previous:[6502]hacked off, Up:[6503]= H =

hacked up adj.

Sufficiently patched, kluged, and tweaked that the surgical scars are beginning to crowd out normal tissue (compare [6504]critical mass). Not all programs that are hacked become `hacked up'; if modifications are done with some eye to coherence and continued maintainability, the software may emerge better for the experience. Contrast [6505]hack up.

---

Node:hacker, Next:[6506]hacker ethic, Previous:[6507]hacked up, Up:[6508]= H =

hacker n.

[originally, someone who makes furniture with an axe] 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating [6509]hack value. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in `a Unix hacker'. (Definitions 1 through 5 are correlated, and people who fit them congregate.) 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example. 7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations. 8. [deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence `password hacker', `network hacker'. The correct term for this sense is [6510]cracker.

The term `hacker' also tends to connote membership in the global community defined by the net (see [6511]the network and [6512]Internet

542

address). For discussion of some of the basics of this culture, see the [6513]How To Become A Hacker FAQ. It also implies that the person described is seen to subscribe to some version of the hacker ethic (see [6514]hacker ethic).

It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled [6515]bogus). See also [6516]wannabee.

This term seems to have been first adopted as a badge in the 1960s by the hacker culture surrounding TMRC and the MIT AI Lab. We have a report that it was used in a sense close to this entry's by teenage radio hams and electronics tinkerers in the mid-1950s.

---

Node:hacker ethic, Next:[6517]hacker humor, Previous:[6518]hacker, Up:[6519]= H =

hacker ethic n.

1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing open-source and facilitating access to information and to computing resources wherever possible. 2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality.

Both of these normative ethical principles are widely, but by no means universally, accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away open-source software. A few go further and assert that all information should be free and any proprietary control of it is bad; this is the philosophy behind the

543

[6520]GNU project.

Sense 2 is more controversial: some people consider the act of cracking itself to be unethical, like breaking and entering. But the belief that `ethical' cracking excludes destruction at least moderates the behavior of people who see themselves as `benign' crackers (see also [6521]samurai). On this view, it may be one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by email from a [6522]superuser account, exactly how it was done and how the hole can be plugged -- acting as an unpaid (and unsolicited) [6523]tiger team.

The most reliable manifestation of either version of the hacker ethic is that almost all hackers are actively willing to share technical tricks, software, and (where possible) computing resources with other hackers. Huge cooperative networks such as [6524]Usenet, [6525]FidoNet and Internet (see [6526]Internet address) can function without central control because of this trait; they both rely on and reinforce a sense of community that may be hackerdom's most valuable intangible asset.

---

Node:hacker humor, Next:[6527]Hackers (the movie),

Previous:[6528]hacker ethic, Up:[6529]= H =

hacker humor

A distinctive style of shared intellectual humor found among hackers, having the following marked characteristics:

1. Fascination with form-vs.-content jokes, paradoxes, and humor having to do with confusion of metalevels (see [6530]meta). One way to make a hacker laugh: hold a red index card in front of him/her with "GREEN" written on it, or vice-versa (note, however, that this is funny only the first time).

544

2.Elaborate deadpan parodies of large intellectual constructs, such as specifications (see [6531]write-only memory), standards documents, language descriptions (see [6532]INTERCAL), and even entire scientific theories (see [6533]quantum bogodynamics, [6534]computron).

3.Jokes that involve screwily precise reasoning from bizarre, ludicrous, or just grossly counter-intuitive premises.

4.Fascination with puns and wordplay.

5.A fondness for apparently mindless humor with subversive currents of intelligence in it -- for example, old Warner Brothers and Rocky & Bullwinkle cartoons, the Marx brothers, the early B-52s, and Monty Python's Flying Circus. Humor that combines this trait with elements of high camp and slapstick is especially favored.

6.References to the symbol-object antinomies and associated ideas in Zen Buddhism and (less often) Taoism. See [6535]has the X nature, [6536]Discordianism, [6537]zen, [6538]ha ha only serious, [6539]koan, [6540]AI koans.

See also [6541]filk, [6542]retrocomputing, and the Portrait of J. Random Hacker in [6543]Appendix B. If you have an itchy feeling that all six of these traits are really aspects of one thing that is incredibly difficult to talk about exactly, you are (a) correct and (b) responding like a hacker. These traits are also recognizable (though in a less marked form) throughout [6544]science-fiction fandom.

---

Node:Hackers (the movie), Next:[6545]hacking run, Previous:[6546]hacker humor, Up:[6547]= H =

Hackers (the movie) n.

545

A notable bomb from 1995. Should have been titled "Crackers", because cracking is what the movie was about. It's understandable that they didn't however; titles redolent of snack food are probably a tough sell in Hollywood.

---

Node:hacking run, Next:[6548]Hacking X for Y, Previous:[6549]Hackers (the movie), Up:[6550]= H =

hacking run n.

[analogy with `bombing run' or `speed run'] A hack session extended long outside normal working times, especially one longer than 12 hours. May cause you to `change phase the hard way' (see [6551]phase).

---

Node:Hacking X for Y, Next:[6552]Hackintosh, Previous:[6553]hacking run, Up:[6554]= H =

Hacking X for Y n.

[ITS] Ritual phrasing of part of the information which ITS made publicly available about each user. This information (the INQUIR record) was a sort of form in which the user could fill out various fields. On display, two of these fields were always combined into a project description of the form "Hacking X for Y" (e.g., "Hacking perceptrons for Minsky"). This form of description became traditional and has since been carried over to other systems with more general facilities for self-advertisement (such as Unix [6555]plan files).

---

Node:Hackintosh, Next:[6556]hackish, Previous:[6557]Hacking X for Y, Up:[6558]= H =

546

Hackintosh n.

1. An Apple Lisa that has been hacked into emulating a Macintosh (also called a `Mac XL'). 2. A Macintosh assembled from parts theoretically belonging to different models in the line.

---

Node:hackish, Next:[6559]hackishness, Previous:[6560]Hackintosh,

Up:[6561]= H =

hackish /hak'ish/ adj.

(also [6562]hackishness n.) 1. Said of something that is or involves a hack. 2. Of or pertaining to hackers or the hacker subculture. See also [6563]true-hacker.

---

Node:hackishness, Next:[6564]hackitude, Previous:[6565]hackish,

Up:[6566]= H =

hackishness n.

The quality of being or involving a hack. This term is considered mildly silly. Syn. [6567]hackitude.

---

Node:hackitude, Next:[6568]hair, Previous:[6569]hackishness, Up:[6570]=

H =

hackitude n.

Syn. [6571]hackishness; this word is considered sillier.

547

---

Node:hair, Next:[6572]hairball, Previous:[6573]hackitude, Up:[6574]= H =

hair n.

[back-formation from [6575]hairy] The complications that make something hairy. "Decoding [6576]TECO commands requires a certain amount of hair." Often seen in the phrase `infinite hair', which connotes extreme complexity. Also in `hairiferous' (tending to promote hair growth): "GNUMACS elisp encourages lusers to write complex editing modes." "Yeah, it's pretty hairiferous all right." (or just: "Hair squared!")

---

Node:hairball, Next:[6577]hairy, Previous:[6578]hair, Up:[6579]= H =

hairball n.

1. [Fidonet] A large batch of messages that a store-and-forward network is failing to forward when it should. Often used in the phrase "Fido coughed up a hairball today", meaning that the stuck messages have just come unstuck, producing a flood of mail where there had previously been drought. 2. An unmanageably huge mass of source code. "JWZ thought the Mozilla effort bogged down because the code was a huge hairball." 3. Any large amount of garbage coming out suddenly. "Sendmail is coughing up a hairball, so expect some slowness accessing the Internet."

---

Node:hairy, Next:[6580]HAKMEM, Previous:[6581]hairball, Up:[6582]=

H =

hairy adj.

548

1. Annoyingly complicated. "[6583]DWIM is incredibly hairy." 2. Incomprehensible. "[6584]DWIM is incredibly hairy." 3. Of people, high-powered, authoritative, rare, expert, and/or incomprehensible. Hard to explain except in context: "He knows this hairy lawyer who says there's nothing to worry about." See also [6585]hirsute.

A well-known result in topology called the Brouwer Fixed-Point Theorem states that any continuous transformation of a 2-sphere into itself has at least one fixed point. Mathematically literate hackers tend to associate the term `hairy' with the informal version of this theorem; "You can't comb a hairy ball smooth."

The adjective `long-haired' is well-attested to have been in slang use among scientists and engineers during the early 1950s; it was equivalent to modern `hairy' senses 1 and 2, and was very likely ancestral to the hackish use. In fact the noun `long-hair' was at the time used to describe a person satisfying sense 3. Both senses probably passed out of use when long hair was adopted as a signature trait by the 1960s counterculture, leaving hackish `hairy' as a sort of stunted mutant relic.

In British mainstream use, "hairy" means "dangerous", and consequently, in British programming terms, "hairy" may be used to denote complicated and/or incomprehensible code, but only if that complexity or incomprehesiveness is also considered dangerous.

---

Node:HAKMEM, Next:[6586]hakspek, Previous:[6587]hairy, Up:[6588]=

H =

HAKMEM /hak'mem/ n.

MIT AI Memo 239 (February 1972). A legendary collection of neat mathematical and programming hacks contributed by many people at MIT and elsewhere. (The title of the memo really is "HAKMEM", which is a 6-letterism for `hacks memo'.) Some of them are very useful techniques,

549

powerful theorems, or interesting unsolved problems, but most fall into the category of mathematical and computer trivia. Here is a sampling of the entries (with authors), slightly paraphrased:

Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less than 2^(18).

Item 46 (Rich Schroeppel): The most probable suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most evenly distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy.

Item 81 (Rich Schroeppel): Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns, and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and reflection.

Item 154 (Bill Gosper): The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2. If the result loops with period = 1 with sign +, you are on a sign-magnitude machine. If the result loops with period = 1 at -1, you are on a twos-complement machine. If the result loops with period greater than 1, including the beginning, you are on a ones-complement machine. If the result loops with period greater than 1, not including the beginning, your machine isn't binary -- the pattern should tell you the base. If you run out of memory, you are on a string or bignum system. If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent. By this strategy, consider the universe, or, more precisely, algebra: Let X = the sum of many powers of 2 = ...111111 (base 2). Now add X to itself: X + X = ...111110. Thus, 2X = X - 1, so X = -1. Therefore algebra is run on a machine (the universe) that is two's-complement.

Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only number such that if you represent it on the [6589]PDP-10 as both an integer and a

550

floating-point number, the bit patterns of the two representations are identical.

Item 176 (Gosper): The "banana phenomenon" was encountered when processing a character string by taking the last 3 letters typed out, searching for a random occurrence of that sequence in the text, taking the letter following that occurrence, typing it out, and iterating. This ensures that every 4-letter string output occurs in the original. The program typed BANANANANANANANA.... We note an ambiguity in the phrase, "the Nth occurrence of." In one sense, there are five 00's in 0000000000; in another, there are nine. The editing program TECO finds five. Thus it finds only the first ANA in BANANA, and is thus obligated to type N next. By Murphy's Law, there is but one NAN, thus forcing A, and thus a loop. An option to find overlapped instances would be useful, although it would require backing up N - 1 characters before seeking the next N-character string.

Note: This last item refers to a [6590]Dissociated Press implementation. See also [6591]banana problem.

HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavor.

An HTML transcription of the entire document is available at [6592]http://www.inwap.com/pdp10/hbaker/hakmem/hakmem.html.

---

Node:hakspek, Next:[6593]Halloween Documents,

Previous:[6594]HAKMEM, Up:[6595]= H =

hakspek /hak'speek/ n.

A shorthand method of spelling found on many British academic bulletin boards and [6596]talker systems. Syllables and whole words in a sentence are replaced by single ASCII characters the names of which are

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