Books: The New Hacker\'s Dictionary version 4.2.2
V >>
Various editors >> The New Hacker\'s Dictionary version 4.2.2
Pages:
1 |
2 |
3 |
4 |
5 |
6 |
7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37
Common variants of this style omit the asterisks in column 2 or add a
matching row of asterisks closing the right side of the box. The
sparest variant omits all but the comment delimiters themselves; the
`box' is implied. Oppose [1873]winged comments.
_________________________________________________________________
Node:boxen, Next:[1874]boxology, Previous:[1875]boxed comments,
Up:[1876]= B =
boxen /bok'sn/ pl.n.
[very common; by analogy with [1877]VAXen] Fanciful plural of
[1878]box often encountered in the phrase `Unix boxen', used to
describe commodity [1879]Unix hardware. The connotation is that any
two Unix boxen are interchangeable.
_________________________________________________________________
Node:boxology, Next:[1880]bozotic, Previous:[1881]boxen, Up:[1882]= B
=
boxology /bok-sol'*-jee/ n.
Syn. [1883]ASCII art. This term implies a more restricted domain, that
of box-and-arrow drawings. "His report has a lot of boxology in it."
Compare [1884]macrology.
_________________________________________________________________
Node:bozotic, Next:[1885]BQS, Previous:[1886]boxology, Up:[1887]= B =
bozotic /boh-zoh'tik/ or /boh-zo'tik/ adj.
[from the name of a TV clown even more losing than Ronald McDonald]
Resembling or having the quality of a bozo; that is, clownish,
ludicrously wrong, unintentionally humorous. Compare [1888]wonky,
[1889]demented. Note that the noun `bozo' occurs in slang, but the
mainstream adjectival form would be `bozo-like' or (in New England)
`bozoish'.
_________________________________________________________________
Node:BQS, Next:[1890]brain dump, Previous:[1891]bozotic, Up:[1892]= B
=
BQS /B-Q-S/ adj.
Syn. [1893]Berkeley Quality Software.
_________________________________________________________________
Node:brain dump, Next:[1894]brain fart, Previous:[1895]BQS, Up:[1896]=
B =
brain dump n.
[common] The act of telling someone everything one knows about a
particular topic or project. Typically used when someone is going to
let a new party maintain a piece of code. Conceptually analogous to an
operating system [1897]core dump in that it saves a lot of useful
[1898]state before an exit. "You'll have to give me a brain dump on
FOOBAR before you start your new job at HackerCorp." See [1899]core
dump (sense 4). At Sun, this is also known as `TOI' (transfer of
information).
_________________________________________________________________
Node:brain fart, Next:[1900]brain-damaged, Previous:[1901]brain dump,
Up:[1902]= B =
brain fart n.
The actual result of a [1903]braino, as opposed to the mental glitch
that is the braino itself. E.g., typing dir on a Unix box after a
session with DOS.
_________________________________________________________________
Node:brain-damaged, Next:[1904]brain-dead, Previous:[1905]brain fart,
Up:[1906]= B =
brain-damaged adj.
1. [common; generalization of `Honeywell Brain Damage' (HBD), a
theoretical disease invented to explain certain utter cretinisms in
Honeywell [1907]Multics] adj. Obviously wrong; [1908]cretinous;
[1909]demented. There is an implication that the person responsible
must have suffered brain damage, because he should have known better.
Calling something brain-damaged is really bad; it also implies it is
unusable, and that its failure to work is due to poor design rather
than some accident. "Only six monocase characters per file name? Now
that's brain-damaged!" 2. [esp. in the Mac world] May refer to free
demonstration software that has been deliberately crippled in some way
so as not to compete with the product it is intended to sell. Syn.
[1910]crippleware.
_________________________________________________________________
Node:brain-dead, Next:[1911]braino, Previous:[1912]brain-damaged,
Up:[1913]= B =
brain-dead adj.
[common] Brain-damaged in the extreme. It tends to imply terminal
design failure rather than malfunction or simple stupidity. "This comm
program doesn't know how to send a break -- how brain-dead!"
_________________________________________________________________
Node:braino, Next:[1914]branch to Fishkill, Previous:[1915]brain-dead,
Up:[1916]= B =
braino /bray'no/ n.
Syn. for [1917]thinko. See also [1918]brain fart.
_________________________________________________________________
Node:branch to Fishkill, Next:[1919]bread crumbs,
Previous:[1920]braino, Up:[1921]= B =
branch to Fishkill n.
[IBM: from the location of one of the corporation's facilities] Any
unexpected jump in a program that produces catastrophic or just plain
weird results. See [1922]jump off into never-never land,
[1923]hyperspace.
_________________________________________________________________
Node:bread crumbs, Next:[1924]break, Previous:[1925]branch to
Fishkill, Up:[1926]= B =
bread crumbs n.
1. Debugging statements inserted into a program that emit output or
log indicators of the program's [1927]state to a file so you can see
where it dies or pin down the cause of surprising behavior. The term
is probably a reference to the Hansel and Gretel story from the
Brothers Grimm or the older French folktale of Thumbelina; in several
variants of these, a character leaves a trail of bread crumbs so as
not to get lost in the woods. 2. In user-interface design, any feature
that allows some tracking of where you've been, like coloring visited
links purple rather than blue in Netscape (also called `footrinting').
_________________________________________________________________
Node:break, Next:[1928]break-even point, Previous:[1929]bread crumbs,
Up:[1930]= B =
break
1. vt. To cause to be [1931]broken (in any sense). "Your latest patch
to the editor broke the paragraph commands." 2. v. (of a program) To
stop temporarily, so that it may debugged. The place where it stops is
a `breakpoint'. 3. [techspeak] vi. To send an RS-232 break (two
character widths of line high) over a serial comm line. 4. [Unix] vi.
To strike whatever key currently causes the tty driver to send SIGINT
to the current process. Normally, break (sense 3), delete or
[1932]control-C does this. 5. `break break' may be said to interrupt a
conversation (this is an example of verb doubling). This usage comes
from radio communications, which in turn probably came from landline
telegraph/teleprinter usage, as badly abused in the Citizen's Band
craze a few years ago.
_________________________________________________________________
Node:break-even point, Next:[1933]breath-of-life packet,
Previous:[1934]break, Up:[1935]= B =
break-even point n.
In the process of implementing a new computer language, the point at
which the language is sufficiently effective that one can implement
the language in itself. That is, for a new language called,
hypothetically, FOOGOL, one has reached break-even when one can write
a demonstration compiler for FOOGOL in FOOGOL, discard the original
implementation language, and thereafter use working versions of FOOGOL
to develop newer ones. This is an important milestone; see [1936]MFTL.
Since this entry was first written, several correspondents have
reported that there actually was a compiler for a tiny Algol-like
language called Foogol floating around on various [1937]VAXen in the
early and mid-1980s. A FOOGOL implementation is available at the
Retrocomputing Museum [1938]http://www.ccil.org/retro.
_________________________________________________________________
Node:breath-of-life packet, Next:[1939]breedle,
Previous:[1940]break-even point, Up:[1941]= B =
breath-of-life packet n.
[XEROX PARC] An Ethernet packet that contains bootstrap (see
[1942]boot) code, periodically sent out from a working computer to
infuse the `breath of life' into any computer on the network that has
happened to crash. Machines depending on such packets have sufficient
hardware or firmware code to wait for (or request) such a packet
during the reboot process. See also [1943]dickless workstation.
The notional `kiss-of-death packet', with a function complementary to
that of a breath-of-life packet, is recommended for dealing with hosts
that consume too many network resources. Though `kiss-of-death packet'
is usually used in jest, there is at least one documented instance of
an Internet subnet with limited address-table slots in a gateway
machine in which such packets were routinely used to compete for
slots, rather like Christmas shoppers competing for scarce parking
spaces.
_________________________________________________________________
Node:breedle, Next:[1944]Breidbart Index,
Previous:[1945]breath-of-life packet, Up:[1946]= B =
breedle n.
See [1947]feep.
_________________________________________________________________
Node:Breidbart Index, Next:[1948]bring X to its knees,
Previous:[1949]breedle, Up:[1950]= B =
Breidbart Index /bri:d'bart ind*ks/
A measurement of the severity of spam invented by long-time hacker
Seth Breidbart, used for programming cancelbots. The Breidbart Index
takes into account the fact that excessive multi-posting [1951]EMP is
worse than excessive cross-posting [1952]ECP. The Breidbart Index is
computed as follows: For each article in a spam, take the square-root
of the number of newsgroups to which the article is posted. The
Breidbart Index is the sum of the square roots of all of the posts in
the spam. For example, one article posted to nine newsgroups and again
to sixteen would have BI = sqrt(9) + sqrt(16) = 7. It is generally
agreed that a spam is cancelable if the Breidbart Index exceeds 20.
The Breidbart Index accumulates over a 45-day window. Ten articles
yesterday and ten articles today and ten articles tomorrow add up to a
30-article spam. Spam fighters will often reset the count if you can
convince them that the spam was accidental and/or you have seen the
error of your ways and won't repeat it. Breidbart Index can accumulate
over multiple authors. For example, the "Make Money Fast" pyramid
scheme exceeded a BI of 20 a long time ago, and is now considered
"cancel on sight".
_________________________________________________________________
Node:bring X to its knees, Next:[1953]brittle,
Previous:[1954]Breidbart Index, Up:[1955]= B =
bring X to its knees v.
[common] To present a machine, operating system, piece of software, or
algorithm with a load so extreme or [1956]pathological that it grinds
to a halt. "To bring a MicroVAX to its knees, try twenty users running
[1957]vi -- or four running [1958]EMACS." Compare [1959]hog.
_________________________________________________________________
Node:brittle, Next:[1960]broadcast storm, Previous:[1961]bring X to
its knees, Up:[1962]= B =
brittle adj.
Said of software that is functional but easily broken by changes in
operating environment or configuration, or by any minor tweak to the
software itself. Also, any system that responds inappropriately and
disastrously to abnormal but expected external stimuli; e.g., a file
system that is usually totally scrambled by a power failure is said to
be brittle. This term is often used to describe the results of a
research effort that were never intended to be robust, but it can be
applied to commercial software, which (due to closed-source
development) displays the quality far more often than it ought to.
Oppose [1963]robust.
_________________________________________________________________
Node:broadcast storm, Next:[1964]brochureware, Previous:[1965]brittle,
Up:[1966]= B =
broadcast storm n.
[common] An incorrect packet broadcast on a network that causes most
hosts to respond all at once, typically with wrong answers that start
the process over again. See [1967]network meltdown; compare [1968]mail
storm.
_________________________________________________________________
Node:brochureware, Next:[1969]broken, Previous:[1970]broadcast storm,
Up:[1971]= B =
brochureware n.
Planned but non-existent product like [1972]vaporware, but with the
added implication that marketing is actively selling and promoting it
(they've printed brochures). Brochureware is often deployed as a
strategic weapon; the idea is to con customers into not committing to
an existing product of the competition's. It is a safe bet that when a
brochureware product finally becomes real, it will be more expensive
than and inferior to the alternatives that had been available for
years.
_________________________________________________________________
Node:broken, Next:[1973]broken arrow, Previous:[1974]brochureware,
Up:[1975]= B =
broken adj.
1. Not working properly (of programs). 2. Behaving strangely;
especially (when used of people) exhibiting extreme depression.
_________________________________________________________________
Node:broken arrow, Next:[1976]BrokenWindows, Previous:[1977]broken,
Up:[1978]= B =
broken arrow n.
[IBM] The error code displayed on line 25 of a 3270 terminal (or a PC
emulating a 3270) for various kinds of protocol violations and
"unexpected" error conditions (including connection to a [1979]down
computer). On a PC, simulated with `->/_', with the two center
characters overstruck.
Note: to appreciate this term fully, it helps to know that `broken
arrow' is also military jargon for an accident involving nuclear
weapons....
_________________________________________________________________
Node:BrokenWindows, Next:[1980]broket, Previous:[1981]broken arrow,
Up:[1982]= B =
BrokenWindows n.
Abusive hackerism for the [1983]crufty and [1984]elephantine [1985]X
environment on Sun machines; properly called `OpenWindows'.
_________________________________________________________________
Node:broket, Next:[1986]Brooks's Law, Previous:[1987]BrokenWindows,
Up:[1988]= B =
broket /broh'k*t/ or /broh'ket`/ n.
[rare; by analogy with `bracket': a `broken bracket'] Either of the
characters < and >, when used as paired enclosing delimiters. This
word originated as a contraction of the phrase `broken bracket', that
is, a bracket that is bent in the middle. (At MIT, and apparently in
the [1989]Real World as well, these are usually called [1990]angle
brackets.)
_________________________________________________________________
Node:Brooks's Law, Next:[1991]brown-paper-bag bug,
Previous:[1992]broket, Up:[1993]= B =
Brooks's Law prov.
"Adding manpower to a late software project makes it later" -- a
result of the fact that the expected advantage from splitting
development work among N programmers is O(N) (that is, proportional to
N), but the complexity and communications cost associated with
coordinating and then merging their work is O(N^2) (that is,
proportional to the square of N). The quote is from Fred Brooks, a
manager of IBM's OS/360 project and author of "The Mythical Man-Month"
(Addison-Wesley, 1975, ISBN 0-201-00650-2), an excellent early book on
software engineering. The myth in question has been most tersely
expressed as "Programmer time is fungible" and Brooks established
conclusively that it is not. Hackers have never forgotten his advice
(though it's not the whole story; see [1994]bazaar); too often,
[1995]management still does. See also [1996]creationism,
[1997]second-system effect, [1998]optimism.
_________________________________________________________________
Node:brown-paper-bag bug, Next:[1999]browser, Previous:[2000]Brooks's
Law, Up:[2001]= B =
brown-paper-bag bug n.
A bug in a public software release that is so embarrassing that the
author notionally wears a brown paper bag over his head for a while so
he won't be recognized on the net. Entered popular usage after the
early-1999 release of the first Linux 2.2, which had one. The phrase
was used in Linus Torvalds's apology posting.
_________________________________________________________________
Node:browser, Next:[2002]BRS, Previous:[2003]brown-paper-bag bug,
Up:[2004]= B =
browser n.
A program specifically designed to help users view and navigate
hypertext, on-line documentation, or a database. While this general
sense has been present in jargon for a long time, the proliferation of
browsers for the World Wide Web after 1992 has made it much more
popular and provided a central or default techspeak meaning of the
word previously lacking in hacker usage. Nowadays, if someone mentions
using a `browser' without qualification, one may assume it is a Web
browser.
_________________________________________________________________
Node:BRS, Next:[2005]brute force, Previous:[2006]browser, Up:[2007]= B
=
BRS /B-R-S/ n.
Syn. [2008]Big Red Switch. This abbreviation is fairly common on-line.
_________________________________________________________________
Node:brute force, Next:[2009]brute force and ignorance,
Previous:[2010]BRS, Up:[2011]= B =
brute force adj.
Describes a primitive programming style, one in which the programmer
relies on the computer's processing power instead of using his or her
own intelligence to simplify the problem, often ignoring problems of
scale and applying naive methods suited to small problems directly to
large ones. The term can also be used in reference to programming
style: brute-force programs are written in a heavyhanded, tedious way,
full of repetition and devoid of any elegance or useful abstraction
(see also [2012]brute force and ignorance).
The [2013]canonical example of a brute-force algorithm is associated
with the `traveling salesman problem' (TSP), a classical [2014]NP-hard
problem: Suppose a person is in, say, Boston, and wishes to drive to N
other cities. In what order should the cities be visited in order to
minimize the distance travelled? The brute-force method is to simply
generate all possible routes and compare the distances; while
guaranteed to work and simple to implement, this algorithm is clearly
very stupid in that it considers even obviously absurd routes (like
going from Boston to Houston via San Francisco and New York, in that
order). For very small N it works well, but it rapidly becomes
absurdly inefficient when N increases (for N = 15, there are already
1,307,674,368,000 possible routes to consider, and for N = 1000 --
well, see [2015]bignum). Sometimes, unfortunately, there is no better
general solution than brute force. See also [2016]NP-.
A more simple-minded example of brute-force programming is finding the
smallest number in a large list by first using an existing program to
sort the list in ascending order, and then picking the first number
off the front.
Whether brute-force programming should actually be considered stupid
or not depends on the context; if the problem is not terribly big, the
extra CPU time spent on a brute-force solution may cost less than the
programmer time it would take 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.
1. 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 NSWC still had the bug, but had unsuccessfully tried to get
the Smithsonian to accept it -- and that the present curator of their
History of American Technology Museum didn't know this and agreed that
it would make a worthwhile exhibit. It was moved to the Smithsonian in
mid-1991, but due to space and money constraints was not actually
exhibited years afterwards. Thus, the process of investigating the
original-computer-bug bug fixed it in an entirely unexpected way, by
making the myth true! --ESR]
_________________________________________________________________
Node:bug-compatible, Next:[2087]bug-for-bug compatible,
Previous:[2088]bug, Up:[2089]= B =
bug-compatible adj.
[common] Said of a design or revision that has been badly compromised
by a requirement to be compatible with [2090]fossils or
[2091]misfeatures in other programs or (esp.) previous releases of
itself. "MS-DOS 2.0 used \ as a path separator to be bug-compatible
with some cretin's choice of / as an option character in 1.0."
_________________________________________________________________
Node:bug-for-bug compatible, Next:[2092]bug-of-the-month club,
Previous:[2093]bug-compatible, Up:[2094]= B =
bug-for-bug compatible n.
Same as [2095]bug-compatible, with the additional implication that
much tedious effort went into ensuring that each (known) bug was
replicated.
_________________________________________________________________
Node:bug-of-the-month club, Next:[2096]buglix,
Previous:[2097]bug-for-bug compatible, Up:[2098]= B =
bug-of-the-month club n.
[from "book-of-the-month club", a time-honored mail-order-marketing
technique in the U.S.] A mythical club which users of `sendmail(8)'
(the UNIX mail daemon) belong to; this was coined on the Usenet
newsgroup comp.security.unix at a time when sendmail security holes,
which allowed outside [2099]crackers access to the system, were being
uncovered at an alarming rate, forcing sysadmins to update very often.
Also, more completely, `fatal security bug-of-the-month club'. See
also [2100]kernel-of-the-week club.
_________________________________________________________________
Node:buglix, Next:[2101]bulletproof, Previous:[2102]bug-of-the-month
club, Up:[2103]= B =
buglix /buhg'liks/ n.
[uncommon] Pejorative term referring to [2104]DEC's ULTRIX operating
system in its earlier severely buggy versions. Still used to describe
ULTRIX, but without nearly so much venom. Compare [2105]AIDX,
[2106]HP-SUX, [2107]Nominal Semidestructor, [2108]Telerat,
[2109]sun-stools.
_________________________________________________________________
Node:bulletproof, Next:[2110]bullschildt, Previous:[2111]buglix,
Up:[2112]= B =
bulletproof adj.
Used of an algorithm or implementation considered extremely
[2113]robust; lossage-resistant; capable of correctly recovering from
any imaginable exception condition -- a rare and valued quality.
Implies that the programmer has thought of all possible errors, and
added [2114]code to protect against each one. Thus, in some cases,
this can imply code that is too heavyweight, due to excessive paranoia
on the part of the programmer. Syn. [2115]armor-plated.
_________________________________________________________________
Node:bullschildt, Next:[2116]bum, Previous:[2117]bulletproof,
Up:[2118]= B =
bullschildt /bul'shilt/ n.
[comp.lang.c on USENET] A confident, but incorrect, statement about a
programming language. This immortalizes a very bad book about [2119]C,
Herbert Schildt's "C - The Complete Reference". One reviewer commented
"The naive errors in this book would be embarassing even in a
programming assignment turned in by a computer science college
sophomore."
_________________________________________________________________
Node:bum, Next:[2120]bump, Previous:[2121]bullschildt, Up:[2122]= B =
bum
1. vt. To make highly efficient, either in time or space, often at the
expense of clarity. "I managed to bum three more instructions out of
that code." "I spent half the night bumming the interrupt code." In
1996, this term and the practice it describes are semi-obsolete. In
[2123]elder days, John McCarthy (inventor of [2124]LISP) used to
compare some efficiency-obsessed hackers among his students to "ski
bums"; thus, optimization became "program bumming", and eventually
just "bumming". 2. To squeeze out excess; to remove something in order
to improve whatever it was removed from (without changing function;
this distinguishes the process from a [2125]featurectomy). 3. n. A
small change to an algorithm, program, or hardware device to make it
more efficient. "This hardware bum makes the jump instruction faster."
Usage: now uncommon, largely superseded by v. [2126]tune (and n.
[2127]tweak, [2128]hack), though none of these exactly capture sense
2. All these uses are rare in Commonwealth hackish, because in the
parent dialects of English the noun `bum' is a rude synonym for
`buttocks' and the verb `bum' for buggery.
_________________________________________________________________
Node:bump, Next:[2129]burble, Previous:[2130]bum, Up:[2131]= B =
bump vt.
Synonym for increment. Has the same meaning as C's ++ operator. Used
esp. of counter variables, pointers, and index dummies in for, while,
and do-while loops.
_________________________________________________________________
Node:burble, Next:[2132]buried treasure, Previous:[2133]bump,
Up:[2134]= B =
burble v.
[from Lewis Carroll's "Jabberwocky"] Like [2135]flame, but connotes
that the source is truly clueless and ineffectual (mere flamers can be
competent). A term of deep contempt. "There's some guy on the phone
burbling about how he got a DISK FULL error and it's all our comm
software's fault." This is mainstream slang in some parts of England.
_________________________________________________________________
Node:buried treasure, Next:[2136]burn-in period,
Previous:[2137]burble, Up:[2138]= B =
buried treasure n.
A surprising piece of code found in some program. While usually not
wrong, it tends to vary from [2139]crufty to [2140]bletcherous, and
has lain undiscovered only because it was functionally correct,
however horrible it is. Used sarcastically, because what is found is
anything but treasure. Buried treasure almost always needs to be dug
up and removed. "I just found that the scheduler sorts its queue using
[2141]bubble sort! Buried treasure!"
_________________________________________________________________
Node:burn-in period, Next:[2142]burst page, Previous:[2143]buried
treasure, Up:[2144]= B =
burn-in period n.
1. A factory test designed to catch systems with [2145]marginal
components before they get out the door; the theory is that burn-in
will protect customers by outwaiting the steepest part of the
[2146]bathtub curve (see [2147]infant mortality). 2. A period of
indeterminate length in which a person using a computer is so
intensely involved in his project that he forgets basic needs such as
food, drink, sleep, etc. Warning: Excessive burn-in can lead to
burn-out. See [2148]hack mode, [2149]larval stage.
Historical note: the origin of "burn-in" (sense 1) is apparently the
practice of setting a new-model airplane's brakes on fire, then
extinguishing the fire, in order to make them hold better. This was
done on the first version of the U.S. spy-plane, the U-2.
_________________________________________________________________
Node:burst page, Next:[2150]busy-wait, Previous:[2151]burn-in period,
Up:[2152]= B =
burst page n.
Syn. [2153]banner, sense 1.
_________________________________________________________________
Node:busy-wait, Next:[2154]buzz, Previous:[2155]burst page, Up:[2156]=
B =
busy-wait vi.
Used of human behavior, conveys that the subject is busy waiting for
someone or something, intends to move instantly as soon as it shows
up, and thus cannot do anything else at the moment. "Can't talk now,
I'm busy-waiting till Bill gets off the phone."
Technically, `busy-wait' means to wait on an event by [2157]spinning
through a tight or timed-delay loop that polls for the event on each
pass, as opposed to setting up an interrupt handler and continuing
execution on another part of the task. In applications this is a
wasteful technique, and best avoided on time-sharing systems where a
busy-waiting program may [2158]hog the processor. However, it is often
unavoidable in kernel programming. In the Linux world, kernel
busy-waits are usually referred to as `spinlocks'.
_________________________________________________________________
Node:buzz, Next:[2159]BWQ, Previous:[2160]busy-wait, Up:[2161]= B =
buzz vi.
1. Of a program, to run with no indication of progress and perhaps
without guarantee of ever finishing; esp. said of programs thought to
be executing tight loops of code. A program that is buzzing appears to
be [2162]catatonic, but never gets out of catatonia, while a buzzing
loop may eventually end of its own accord. "The program buzzes for
about 10 seconds trying to sort all the names into order." See
[2163]spin; see also [2164]grovel. 2. [ETA Systems] To test a wire or
printed circuit trace for continuity, esp. by applying an AC rather
than DC signal. Some wire faults will pass DC tests but fail an AC
buzz test. 3. To process an array or list in sequence, doing the same
thing to each element. "This loop buzzes through the tz array looking
for a terminator type."
_________________________________________________________________
Node:BWQ, Next:[2165]by hand, Previous:[2166]buzz, Up:[2167]= B =
BWQ /B-W-Q/ n.
[IBM: abbreviation, `Buzz Word Quotient'] The percentage of buzzwords
in a speech or documents. Usually roughly proportional to
[2168]bogosity. See [2169]TLA.
_________________________________________________________________
Node:by hand, Next:[2170]byte, Previous:[2171]BWQ, Up:[2172]= B =
by hand adv.
[common] 1. Said of an operation (especially a repetitive, trivial,
and/or tedious one) that ought to be performed automatically by the
computer, but which a hacker instead has to step tediously through.
"My mailer doesn't have a command to include the text of the message
I'm replying to, so I have to do it by hand." This does not
necessarily mean the speaker has to retype a copy of the message; it
might refer to, say, dropping into a subshell from the mailer, making
a copy of one's mailbox file, reading that into an editor, locating
the top and bottom of the message in question, deleting the rest of
the file, inserting `>' characters on each line, writing the file,
leaving the editor, returning to the mailer, reading the file in, and
later remembering to delete the file. Compare [2173]eyeball search. 2.
By extension, writing code which does something in an explicit or
low-level way for which a presupplied library routine ought to have
been available. "This cretinous B-tree library doesn't supply a decent
iterator, so I'm having to walk the trees by hand."
_________________________________________________________________
Node:byte, Next:[2174]byte sex, Previous:[2175]by hand, Up:[2176]= B =
byte /bi:t/ n.
[techspeak] A unit of memory or data equal to the amount used to
represent one character; on modern architectures this is usually 8
bits, but may be 9 on 36-bit machines. Some older architectures used
`byte' for quantities of 6 or 7 bits, and the PDP-10 supported `bytes'
that were actually bitfields of 1 to 36 bits! These usages are now
obsolete, and even 9-bit bytes have become rare in the general trend
toward power-of-2 word sizes.
Historical note: The term was coined by Werner Buchholz in 1956 during
the early design phase for the IBM Stretch computer; originally it was
described as 1 to 6 bits (typical I/O equipment of the period used
6-bit chunks of information). The move to an 8-bit byte happened in
late 1956, and this size was later adopted and promulgated as a
standard by the System/360. The word was coined by mutating the word
`bite' so it would not be accidentally misspelled as [2177]bit. See
also [2178]nybble.
_________________________________________________________________
Node:byte sex, Next:[2179]bytesexual, Previous:[2180]byte, Up:[2181]=
B =
byte sex n.
[common] The byte sex of hardware is [2182]big-endian or
[2183]little-endian; see those entries.
_________________________________________________________________
Node:bytesexual, Next:[2184]Bzzzt! Wrong., Previous:[2185]byte sex,
Up:[2186]= B =
bytesexual /bi:t`sek'shu-*l/ adj.
[rare] Said of hardware, denotes willingness to compute or pass data
in either [2187]big-endian or [2188]little-endian format (depending,
presumably, on a [2189]mode bit somewhere). See also [2190]NUXI
problem.
_________________________________________________________________
Node:Bzzzt! Wrong., Next:[2191]C, Previous:[2192]bytesexual,
Up:[2193]= B =
Bzzzt! Wrong. /bzt rong/ excl.
[common; Usenet/Internet; punctuation varies] From a Robin Williams
routine in the movie "Dead Poets Society" spoofing radio or TV quiz
programs, such as Truth or Consequences, where an incorrect answer
earns one a blast from the buzzer and condolences from the
interlocutor. A way of expressing mock-rude disagreement, usually
immediately following an included quote from another poster. The less
abbreviated "*Bzzzzt*, wrong, but thank you for playing" is also
common; capitalization and emphasis of the buzzer sound varies.
_________________________________________________________________
Node:= C =, Next:[2194]= D =, Previous:[2195]= B =, Up:[2196]The
Jargon Lexicon
= C =
Pages:
1 |
2 |
3 |
4 |
5 |
6 |
7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37