readenglishbook.com » Other » The New Hacker's Dictionary, Eric S. Raymond [bill gates book recommendations .txt] 📗

Book online «The New Hacker's Dictionary, Eric S. Raymond [bill gates book recommendations .txt] 📗». Author Eric S. Raymond



1 ... 19 20 21 22 23 24 25 26 27 ... 125
Go to page:
to develop a more `intelligent'

algorithm. Additionally, a more intelligent algorithm may imply more

long-term complexity cost and bug-chasing than are justified by the

speed improvement.

Ken Thompson, co-inventor of Unix, is reported to have uttered the

epigram "When in doubt, use brute force". He probably intended this as

a [2017]ha ha only serious, but the original Unix kernel's preference

for simple, robust, and portable algorithms over [2018]brittle `smart'

ones does seem to have been a significant factor in the success of

that OS. Like so many other tradeoffs in software design, the choice

between brute force and complex, finely-tuned cleverness is often a

difficult one that requires both engineering savvy and delicate

esthetic judgment.

Node:brute force and ignorance, Next:[2019]BSD, Previous:[2020]brute

force, Up:[2021]= B =

brute force and ignorance n.

A popular design technique at many software houses -- [2022]brute

force coding unrelieved by any knowledge of how problems have been

previously solved in elegant ways. Dogmatic adherence to design

methodologies tends to encourage this sort of thing. Characteristic of

early [2023]larval stage programming; unfortunately, many never

outgrow it. Often abbreviated BFI: "Gak, they used a [2024]bubble

sort! That's strictly from BFI." Compare [2025]bogosity.

Node:BSD, Next:[2026]BSOD, Previous:[2027]brute force and ignorance,

Up:[2028]= B =

BSD /B-S-D/ n.

[abbreviation for `Berkeley Software Distribution'] a family of

[2029]Unix versions for the [2030]DEC [2031]VAX and PDP-11 developed

by Bill Joy and others at [2032]Berzerkeley starting around 1977,

incorporating paged virtual memory, TCP/IP networking enhancements,

and many other features. The BSD versions (4.1, 4.2, and 4.3) and the

commercial versions derived from them (SunOS, ULTRIX, and Mt. Xinu)

held the technical lead in the Unix world until AT&T's successful

standardization efforts after about 1986; descendants including

Free/Open/NetBSD, BSD/OS and MacOS X are still widely popular. Note

that BSD versions going back to 2.9 are often referred to by their

version numbers alone, without the BSD prefix. See [2033]4.2,

[2034]Unix, [2035]USG Unix.

Node:BSOD, Next:[2036]BUAF, Previous:[2037]BSD, Up:[2038]= B =

BSOD /B-S-O-D/

Very commmon abbreviation for [2039]Blue Screen of Death. Both spoken

and written.

Node:BUAF, Next:[2040]BUAG, Previous:[2041]BSOD, Up:[2042]= B =

BUAF // n.

[abbreviation, from alt.fan.warlord] Big Ugly ASCII Font -- a special

form of [2043]ASCII art. Various programs exist for rendering text

strings into block, bloob, and pseudo-script fonts in cells between

four and six character cells on a side; this is smaller than the

letters generated by older [2044]banner (sense 2) programs. These are

sometimes used to render one's name in a [2045]sig block, and are

critically referred to as `BUAF's. See [2046]warlording.

Node:BUAG, Next:[2047]bubble sort, Previous:[2048]BUAF, Up:[2049]= B =

BUAG // n.

[abbreviation, from alt.fan.warlord] Big Ugly ASCII Graphic.

Pejorative term for ugly [2050]ASCII art, especially as found in

[2051]sig blocks. For some reason, mutations of the head of Bart

Simpson are particularly common in the least imaginative [2052]sig

blocks. See [2053]warlording.

Node:bubble sort, Next:[2054]bucky bits, Previous:[2055]BUAG,

Up:[2056]= B =

bubble sort n.

Techspeak for a particular sorting technique in which pairs of

adjacent values in the list to be sorted are compared and interchanged

if they are out of order; thus, list entries `bubble upward' in the

list until they bump into one with a lower sort value. Because it is

not very good relative to other methods and is the one typically

stumbled on by [2057]naive and untutored programmers, hackers consider

it the [2058]canonical example of a naive algorithm. (However, it's

been shown by repeated experiment that below about 5000 records

bubble-sort is OK anyway.) The canonical example of a really bad

algorithm is [2059]bogo-sort. A bubble sort might be used out of

ignorance, but any use of bogo-sort could issue only from brain damage

or willful perversity.

Node:bucky bits, Next:[2060]buffer chuck, Previous:[2061]bubble sort,

Up:[2062]= B =

bucky bits /buh'kee bits/ n.

obs. The bits produced by the CONTROL and META shift keys on a SAIL

keyboard (octal 200 and 400 respectively), resulting in a 9-bit

keyboard character set. The MIT AI TV (Knight) keyboards extended this

with TOP and separate left and right CONTROL and META keys, resulting

in a 12-bit character set; later, LISP Machines added such keys as

SUPER, HYPER, and GREEK (see [2063]space-cadet keyboard). 2. By

extension, bits associated with `extra' shift keys on any keyboard,

e.g., the ALT on an IBM PC or command and option keys on a Macintosh.

It has long been rumored that `bucky bits' were named for Buckminster

Fuller during a period when he was consulting at Stanford. Actually,

bucky bits were invented by Niklaus Wirth when he was at Stanford in

1964-65; he first suggested the idea of an EDIT key to set the 8th bit

of an otherwise 7-bit ASCII character). It seems that, unknown to

Wirth, certain Stanford hackers had privately nicknamed him `Bucky'

after a prominent portion of his dental anatomy, and this nickname

transferred to the bit. Bucky-bit commands were used in a number of

editors written at Stanford, including most notably TV-EDIT and NLS.

The term spread to MIT and CMU early and is now in general use.

Ironically, Wirth himself remained unaware of its derivation for

nearly 30 years, until GLS dug up this history in early 1993! See

[2064]double bucky, [2065]quadruple bucky.

Node:buffer chuck, Next:[2066]buffer overflow, Previous:[2067]bucky

bits, Up:[2068]= B =

buffer chuck n.

Shorter and ruder syn. for [2069]buffer overflow.

Node:buffer overflow, Next:[2070]bug, Previous:[2071]buffer chuck,

Up:[2072]= B =

buffer overflow n.

What happens when you try to stuff more data into a buffer (holding

area) than it can handle. This problem is commonly exploited by

[2073]crackers to get arbitrary commands executed by a program running

with root permissions. This may be due to a mismatch in the processing

rates of the producing and consuming processes (see [2074]overrun and

[2075]firehose syndrome), or because the buffer is simply too small to

hold all the data that must accumulate before a piece of it can be

processed. For example, in a text-processing tool that [2076]crunches

a line at a time, a short line buffer can result in [2077]lossage as

input from a long line overflows the buffer and trashes data beyond

it. Good defensive programming would check for overflow on each

character and stop accepting data when the buffer is full up. The term

is used of and by humans in a metaphorical sense. "What time did I

agree to meet you? My buffer must have overflowed." Or "If I answer

that phone my buffer is going to overflow." See also [2078]spam,

[2079]overrun screw.

Node:bug, Next:[2080]bug-compatible, Previous:[2081]buffer overflow,

Up:[2082]= B =

bug n.

An unwanted and unintended property of a program or piece of hardware,

esp. one that causes it to malfunction. Antonym of [2083]feature.

Examples: "There's a bug in the editor: it writes things out

backwards." "The system crashed because of a hardware bug." "Fred is a

winner, but he has a few bugs" (i.e., Fred is a good guy, but he has a

few personality problems).

Historical note: Admiral Grace Hopper (an early computing pioneer

better known for inventing [2084]COBOL) liked to tell a story in which

a technician solved a [2085]glitch in the Harvard Mark II machine by

pulling an actual insect out from between the contacts of one of its

relays, and she subsequently promulgated [2086]bug in its hackish

sense as a joke about the incident (though, as she was careful to

admit, she was not there when it happened). For many years the logbook

associated with the incident and the actual bug in question (a moth)

sat in a display case at the Naval Surface Warfare Center (NSWC). The

entire story, with a picture of the logbook and the moth taped into

it, is recorded in the "Annals of the History of Computing", Vol. 3,

No. 3 (July 1981), pp. 285-286.

The text of the log entry (from September 9, 1947), reads "1545 Relay

70 Panel F (moth) in relay. First actual case of bug being found".

This wording establishes that the term was already in use at the time

in its current specific sense -- and Hopper herself reports that the

term `bug' was regularly applied to problems in radar electronics

during WWII.

Indeed, the use of `bug' to mean an industrial defect was already

established in Thomas Edison's time, and a more specific and rather

modern use can be found in an electrical handbook from 1896 ("Hawkin's

New Catechism of Electricity", Theo. Audel & Co.) which says: "The

term `bug' is used to a limited extent to designate any fault or

trouble in the connections or working of electric apparatus." It

further notes that the term is "said to have originated in quadruplex

telegraphy and have been transferred to all electric apparatus."

The latter observation may explain a common folk etymology of the

term; that it came from telephone company usage, in which "bugs in a

telephone cable" were blamed for noisy lines. Though this derivation

seems to be mistaken, it may well be a distorted memory of a joke

first current among telegraph operators more than a century ago!

Or perhaps not a joke. Historians of the field inform us that the term

"bug" was regularly used in the early days of telegraphy to refer to a

variety of semi-automatic telegraphy keyers that would send a string

of dots if you held them down. In fact, the Vibroplex keyers (which

were among the most common of this type) even had a graphic of a

beetle on them (and still do)! While the ability to send repeated dots

automatically was very useful for professional morse code operators,

these were also significantly trickier to use than the older manual

keyers, and it could take some practice to ensure one didn't introduce

extraneous dots into the code by holding the key down a fraction too

long. In the hands of an inexperienced operator, a Vibroplex "bug" on

the line could mean that a lot of garbled Morse would soon be coming

your way.

Further, the term "bug" has long been used among radio technicians to

describe a device that converts electromagnetic field variations into

acoustic signals. It is used to trace radio interference and look for

dangerous radio emissions. Radio community usage derives from the

roach-like shape of the first versions used by 19th century

physicists. The first versions consisted of a coil of wire (roach

body), with the two wire ends sticking out and bent back to nearly

touch forming a spark gap (roach antennae). The bug is to the radio

technician what the stethoscope is to the stereotype medical doctor.

This sense is almost certainly ancestral to modern use of "bug" for a

covert monitoring device, but may also have contributed to the use of

"bug" for the effects of radio interference itself.

Actually, use of `bug' in the general sense of a disruptive event goes

back to Shakespeare! (Henry VI, part III - Act V, Scene II: King

Edward: "So, lie thou there. Die thou; and die our fear; For Warwick

was a bug that fear'd us all.") In the first edition of Samuel

Johnson's dictionary one meaning of `bug' is "A frightful object; a

walking spectre"; this is traced to `bugbear', a Welsh term for a

variety of mythological monster which (to complete the circle) has

recently been reintroduced into the popular lexicon through fantasy

role-playing games.

In any case, in jargon the word almost never refers to insects. Here

is a plausible conversation that never actually happened:

"There is a bug in this ant farm!"

"What do you mean? I don't see any ants in it."

"That's the bug."

A careful discussion of the etymological issues can be found in a

paper by Fred R. Shapiro, 1987, "Entomology of the Computer Bug:

History and Folklore", American Speech 62(4):376-378.

[There has been a widespread myth that the original bug was moved to

the Smithsonian, and an earlier version of this entry so asserted. A

correspondent who thought to check discovered that the bug was not

there. While investigating this in late 1990, your editor discovered

that the

1 ... 19 20 21 22 23 24 25 26 27 ... 125
Go to page:

Free e-book «The New Hacker's Dictionary, Eric S. Raymond [bill gates book recommendations .txt] 📗» - read online now

Comments (0)

There are no comments yet. You can be the first!
Add a comment