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

The New Hacker's Dictionary

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

371

Node:Duff's device, Next:[4287]dumb terminal, Previous:[4288]dub dub dub, Up:[4289]= D =

Duff's device n.

The most dramatic use yet seen of [4290]fall through in C, invented by Tom Duff when he was at Lucasfilm. Trying to [4291]bum all the instructions he could out of an inner loop that copied data serially onto an output port, he decided to unroll it. He then realized that the unrolled version could be implemented by interlacing the structures of a switch and a loop: register n = (count + 7) / 8; /* count > 0 assumed */

switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while (--n > 0); }

Shocking though it appears to all who encounter it for the first time, the device is actually perfectly valid, legal C. C's default [4292]fall through in case statements has long been its most controversial single feature; Duff observed that "This code forms some sort of argument in that debate, but I'm not sure whether it's for or against." Duff has discussed the device in detail at [4293]http://www.lysator.liu.se/c/duffs-device.html. Note that the omission of postfix ++ from *to was intentional (though confusing). Duff's device can be used to implement memory copy, but the original aim was to copy values serially into a magic IO register.

[For maximal obscurity, the outermost pair of braces above could actually be removed -- GLS]

---

Node:dumb terminal, Next:[4294]dumbass attack, Previous:[4295]Duff's device, Up:[4296]= D =

dumb terminal n.

372

A terminal that is one step above a [4297]glass tty, having a minimally addressable cursor but no on-screen editing or other features normally supported by a [4298]smart terminal. Once upon a time, when glass ttys were common and addressable cursors were something special, what is now called a dumb terminal could pass for a smart terminal.

---

Node:dumbass attack, Next:[4299]dumbed down, Previous:[4300]dumb terminal, Up:[4301]= D =

dumbass attack /duhm'as *-tak'/ n.

[Purdue] Notional cause of a novice's mistake made by the experienced, especially one made while running as [4302]root under Unix, e.g., typing rm -r * or mkfs on a mounted file system. Compare [4303]adger.

---

Node:dumbed down, Next:[4304]dump, Previous:[4305]dumbass attack, Up:[4306]= D =

dumbed down adj.

Simplified, with a strong connotation of oversimplified. Often, a [4307]marketroid will insist that the interfaces and documentation of software be dumbed down after the designer has burned untold gallons of midnight oil making it smart. This creates friction. See [4308]user-friendly.

---

Node:dump, Next:[4309]dumpster diving, Previous:[4310]dumbed down, Up:[4311]= D =

dump n.

373

1. An undigested and voluminous mass of information about a problem or the state of a system, especially one routed to the slowest available output device (compare [4312]core dump), and most especially one consisting of hex or octal [4313]runes describing the byte-by-byte state of memory, mass storage, or some file. In [4314]elder days, debugging was generally done by `groveling over' a dump (see [4315]grovel); increasing use of high-level languages and interactive debuggers has made such tedium uncommon, and the term `dump' now has a faintly archaic flavor. 2. A backup. This usage is typical only at large timesharing installations.

---

Node:dumpster diving, Next:[4316]dup killer, Previous:[4317]dump, Up:[4318]= D =

dumpster diving /dump'-ster di:'-ving/ n.

1. The practice of sifting refuse from an office or technical installation to extract confidential data, especially security-compromising information (`dumpster' is an Americanism for what is elsewhere called a `skip'). Back in AT&T's monopoly days, before paper shredders became common office equipment, phone phreaks (see [4319]phreaking) used to organize regular dumpster runs against phone company plants and offices. Discarded and damaged copies of AT&T internal manuals taught them much. The technique is still rumored to be a favorite of crackers operating against careless targets. 2. The practice of raiding the dumpsters behind buildings where producers and/or consumers of high-tech equipment are located, with the expectation (usually justified) of finding discarded but still-valuable equipment to be nursed back to health in some hacker's den. Experienced dumpster-divers not infrequently accumulate basements full of moldering (but still potentially useful) [4320]cruft.

---

Node:dup killer, Next:[4321]dup loop, Previous:[4322]dumpster diving, Up:[4323]= D =

374

dup killer /d[y]oop kill'r/ n.

[FidoNet] Software that is supposed to detect and delete duplicates of a message that may have reached the FidoNet system via different routes.

---

Node:dup loop, Next:[4324]dusty deck, Previous:[4325]dup killer, Up:[4326]= D =

dup loop /d[y]oop loop/ (also `dupe loop') n.

[FidoNet] An infinite stream of duplicated, near-identical messages on a FidoNet [4327]echo, the only difference being unique or mangled identification information applied by a faulty or incorrectly configured system or network gateway, thus rendering [4328]dup killers ineffective. If such a duplicate message eventually reaches a system through which it has already passed (with the original identification information), all systems passed on the way back to that system are said to be involved in a [4329]dup loop.

---

Node:dusty deck, Next:[4330]DWIM, Previous:[4331]dup loop, Up:[4332]= D =

dusty deck n.

Old software (especially applications) which one is obliged to remain compatible with, or to maintain ([4333]DP types call this `legacy code', a term hackers consider smarmy and excessively reverent). The term implies that the software in question is a holdover from card-punch days. Used esp. when referring to old scientific and [4334]number-crunching software, much of which was written in FORTRAN and very poorly documented but is believed to be too expensive to replace. See [4335]fossil; compare [4336]crawling horror.

375

---

Node:DWIM, Next:[4337]dynner, Previous:[4338]dusty deck, Up:[4339]= D =

DWIM /dwim/

[acronym, `Do What I Mean'] 1. adj. Able to guess, sometimes even correctly, the result intended when bogus input was provided. 2. n. obs. The BBNLISP/INTERLISP function that attempted to accomplish this feat by correcting many of the more common errors. See [4340]hairy. 3. Occasionally, an interjection hurled at a balky computer, esp. when one senses one might be tripping over legalisms (see [4341]legalese). 4. Of a person, someone whose directions are incomprehensible and vague, but who nevertheless has the expectation that you will solve the problem using the specific method he/she has in mind.

Warren Teitelman originally wrote DWIM to fix his typos and spelling errors, so it was somewhat idiosyncratic to his style, and would often make hash of anyone else's typos if they were stylistically different. Some victims of DWIM thus claimed that the acronym stood for `Damn Warren's Infernal Machine!'.

In one notorious incident, Warren added a DWIM feature to the command interpreter used at Xerox PARC. One day another hacker there typed delete *$ to free up some disk space. (The editor there named backup files by appending $ to the original file name, so he was trying to delete any backup files left over from old editing sessions.) It happened that there weren't any editor backup files, so DWIM helpfully reported *$ not found, assuming you meant 'delete *'. It then started to delete all the files on the disk! The hacker managed to stop it with a [4342]Vulcan nerve pinch after only a half dozen or so files were lost.

The disgruntled victim later said he had been sorely tempted to go to Warren's office, tie Warren down in his chair in front of his workstation, and then type delete *$ twice.

376

DWIM is often suggested in jest as a desired feature for a complex program; it is also occasionally described as the single instruction the ideal computer would have. Back when proofs of program correctness were in vogue, there were also jokes about `DWIMC' (Do What I Mean, Correctly). A related term, more often seen as a verb, is DTRT (Do The Right Thing); see [4343]Right Thing.

---

Node:dynner, Next:[4344]earthquake, Previous:[4345]DWIM, Up:[4346]=

D =

dynner /din'r/ n.

32 bits, by analogy with [4347]nybble and [4348]byte. Usage: rare and extremely silly. See also [4349]playte, [4350]tayste, [4351]crumb. General discussion of such terms is under [4352]nybble.

---

Node:= E =, Next:[4353]= F =, Previous:[4354]= D =, Up:[4355]The Jargon Lexicon

= E =

*[4356]earthquake:

*[4357]Easter egg:

*[4358]Easter egging:

*[4359]eat flaming death:

*[4360]EBCDIC:

* [4361]echo:

377

*[4362]ECP:

*[4363]ed:

*[4364]egosurf:

*[4365]eighty-column mind:

*[4366]El Camino Bignum:

*[4367]elder days:

*[4368]elegant:

*[4369]elephantine:

*[4370]elevator controller:

*[4371]elite:

*[4372]ELIZA effect:

*[4373]elvish:

*[4374]EMACS:

*[4375]email:

*[4376]emoticon:

*[4377]EMP:

*[4378]empire:

*[4379]engine:

378

*[4380]English:

*[4381]enhancement:

*[4382]ENQ:

*[4383]EOF:

*[4384]EOL:

*[4385]EOU:

*[4386]epoch:

*[4387]epsilon:

*[4388]epsilon squared:

*[4389]era the:

*[4390]Eric Conspiracy:

*[4391]Eris:

*[4392]erotics:

*[4393]error 33:

*[4394]eurodemo:

*[4395]evil:

*[4396]evil and rude:

*[4397]Evil Empire:

379

*[4398]exa-:

*[4399]examining the entrails:

*[4400]EXCH:

*[4401]excl:

*[4402]EXE:

*[4403]exec:

*[4404]exercise left as an:

*[4405]Exon:

*[4406]Exploder:

*[4407]exploit:

*[4408]external memory:

*[4409]eye candy:

*[4410]eyeball search:

---

Node:earthquake, Next:[4411]Easter egg, Previous:[4412]dynner, Up:[4413]= E =

earthquake n.

[IBM] The ultimate real-world shock test for computer hardware. Hackish sources at IBM deny the rumor that the Bay Area quake of 1989 was initiated by the company to test quality-assurance procedures at its

380

California plants.

---

Node:Easter egg, Next:[4414]Easter egging, Previous:[4415]earthquake, Up:[4416]= E =

Easter egg n.

[from the custom of the Easter Egg hunt observed in the U.S. and many parts of Europe] 1. A message hidden in the object code of a program as a joke, intended to be found by persons disassembling or browsing the code. 2. A message, graphic, or sound effect emitted by a program (or, on a PC, the BIOS ROM) in response to some undocumented set of commands or keystrokes, intended as a joke or to display program credits. One well-known early Easter egg found in a couple of OSes caused them to respond to the command make love with not war?. Many personal computers have much more elaborate eggs hidden in ROM, including lists of the developers' names, political exhortations, snatches of music, and (in one case) graphics images of the entire development team.

---

Node:Easter egging, Next:[4417]eat flaming death, Previous:[4418]Easter egg, Up:[4419]= E =

Easter egging n.

[IBM] The act of replacing unrelated components more or less at random in hopes that a malfunction will go away. Hackers consider this the normal operating mode of [4420]field circus techs and do not love them for it. See also the jokes under [4421]field circus. Compare [4422]shotgun debugging.

---

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