The New Hacker's Dictionary, Eric S. Raymond [bill gates book recommendations .txt] 📗
- Author: Eric S. Raymond
- Performer: 0262680920
Book online «The New Hacker's Dictionary, Eric S. Raymond [bill gates book recommendations .txt] 📗». Author Eric S. Raymond
preferring [1060]excl or [1061]shriek; but the spread of Unix has
carried `bang' with it (esp. via the term [1062]bang path) and it is
now certainly the most common spoken name for !. Note that it is used
exclusively for non-emphatic written !; one would not say
"Congratulations bang" (except possibly for humorous purposes), but if
one wanted to specify the exact characters `foo!' one would speak "Eff
oh oh bang". See [1063]shriek, [1064]ASCII. 2. interj. An exclamation
signifying roughly "I have achieved enlightenment!", or "The dynamite
has cleared out my brain!" Often used to acknowledge that one has
perpetrated a [1065]thinko immediately after one has been called on
it.
Node:bang on, Next:[1066]bang path, Previous:[1067]bang, Up:[1068]= B
=
bang on vt.
To stress-test a piece of hardware or software: "I banged on the new
version of the simulator all day yesterday and it didn't crash once. I
guess it is ready for release." The term [1069]pound on is synonymous.
Node:bang path, Next:[1070]banner, Previous:[1071]bang on, Up:[1072]=
B =
bang path n.
[now historical] An old-style UUCP electronic-mail address specifying
hops to get from some assumed-reachable location to the addressee, so
called because each [1073]hop is signified by a [1074]bang sign. Thus,
for example, the path ...!bigsite!foovax!barbox!me directs people to
route their mail to machine bigsite (presumably a well-known location
accessible to everybody) and from there through the machine foovax to
the account of user me on barbox.
In the bad old days of not so long ago, before autorouting mailers
became commonplace, people often published compound bang addresses
using the { } convention (see [1075]glob) to give paths from several
big machines, in the hopes that one's correspondent might be able to
get mail to one of them reliably (example: ...!{seismo, ut-sally,
ihnp4}!rice!beta!gamma!me). Bang paths of 8 to 10 hops were not
uncommon in 1981. Late-night dial-up UUCP links would cause week-long
transmission times. Bang paths were often selected by both
transmission time and reliability, as messages would often get lost.
See [1076]Internet address, [1077]the network, and [1078]sitename.
Node:banner, Next:[1079]banner ad, Previous:[1080]bang path,
Up:[1081]= B =
banner n.
The title page added to printouts by most print spoolers (see[1082]spool). Typically includes user or account ID information in
very large character-graphics capitals. Also called a `burst page',
because it indicates where to burst (tear apart) fanfold paper to
separate one user's printout from the next. 2. A similar printout
generated (typically on multiple pages of fan-fold paper) from
user-specified text, e.g., by a program such as Unix's banner({1,6}).
On interactive software, a first screen containing a logo and/orauthor credits and/or a copyright notice. This is probably now the
commonest sense.
Node:banner ad, Next:[1083]banner site, Previous:[1084]banner,
Up:[1085]= B =
banner ad n.
Any of the annoying graphical advertisements that span the tops of way
too many Web pages.
Node:banner site, Next:[1086]bar, Previous:[1087]banner ad, Up:[1088]=
B =
banner site n.
[warez d00dz] A FTP site storing pirated files where one must first
click on several banners and/or subscribe to various `free' services,
usually generating some form of revenues for the site owner, to be
able to access the site. More often than not, the username/password
painfully obtained by clicking on banners and subscribing to bogus
services or mailing lists turns out to be non-working or gives access
to a site that always responds busy. See [1089]ratio site, [1090]leech
mode.
Node:bar, Next:[1091]bare metal, Previous:[1092]banner site,
Up:[1093]= B =
bar /bar/ n.
[very common] The second [1094]metasyntactic variable, after[1095]foo and before [1096]baz. "Suppose we have two functions: FOO
and BAR. FOO calls BAR...." 2. Often appended to [1097]foo to produce
[1098]foobar.
Node:bare metal, Next:[1099]barf, Previous:[1100]bar, Up:[1101]= B =
bare metal n.
[common] New computer hardware, unadorned with such snares anddelusions as an [1102]operating system, an [1103]HLL, or even
assembler. Commonly used in the phrase `programming on the bare
metal', which refers to the arduous work of [1104]bit bashing needed
to create these basic tools for a new machine. Real bare-metal
programming involves things like building boot proms and BIOS chips,
implementing basic monitors used to test device drivers, and writing
the assemblers that will be used to write the compiler back ends that
will give the new machine a real development environment. 2.
`Programming on the bare metal' is also used to describe a style of
[1105]hand-hacking that relies on bit-level peculiarities of a
particular hardware design, esp. tricks for speed and space
optimization that rely on crocks such as overlapping instructions (or,
as in the famous case described in [1106]The Story of Mel (in Appendix
A), interleaving of opcodes on a magnetic drum to minimize fetch
delays due to the device's rotational latency). This sort of thing has
become less common as the relative costs of programming time and
machine resources have changed, but is still found in heavily
constrained environments such as industrial embedded systems, and in
the code of hackers who just can't let go of that low-level control.
See [1107]Real Programmer.
In the world of personal computing, bare metal programming (especially
in sense 1 but sometimes also in sense 2) is often considered a
[1108]Good Thing, or at least a necessary evil (because these machines
have often been sufficiently slow and poorly designed to make it
necessary; see [1109]ill-behaved). There, the term usually refers to
bypassing the BIOS or OS interface and writing the application to
directly access device registers and machine addresses. "To get 19.2
kilobaud on the serial port, you need to get down to the bare metal."
People who can do this sort of thing well are held in high regard.
Node:barf, Next:[1110]barfmail, Previous:[1111]bare metal, Up:[1112]=
B =
barf /barf/ n.,v.
[common; from mainstream slang meaning `vomit'] 1. interj. Term of
disgust. This is the closest hackish equivalent of the Valspeak "gag
me with a spoon". (Like, euwww!) See [1113]bletch. 2. vi. To say
"Barf!" or emit some similar expression of disgust. "I showed him my
latest hack and he barfed" means only that he complained about it, not
that he literally vomited. 3. vi. To fail to work because of
unacceptable input, perhaps with a suitable error message, perhaps
not. Examples: "The division operation barfs if you try to divide by
0." (That is, the division operation checks for an attempt to divide
by zero, and if one is encountered it causes the operation to fail in
some unspecified, but generally obvious, manner.) "The text editor
barfs if you try to read in a new file before writing out the old
one." See [1114]choke, [1115]gag. In Commonwealth Hackish, `barf' is
generally replaced by puke' orvom'. [1116]barf is sometimes also
used as a [1117]metasyntactic variable, like [1118]foo or [1119]bar.
Node:barfmail, Next:[1120]barfulation, Previous:[1121]barf, Up:[1122]=
B =
barfmail n.
Multiple [1123]bounce messages accumulating to the level of serious
annoyance, or worse. The sort of thing that happens when an
inter-network mail gateway goes down or wonky.
Node:barfulation, Next:[1124]barfulous, Previous:[1125]barfmail,
Up:[1126]= B =
barfulation /bar`fyoo-lay'sh*n/ interj.
Variation of [1127]barf used around the Stanford area. An exclamation,
expressing disgust. On seeing some particularly bad code one might
exclaim, "Barfulation! Who wrote this, Quux?"
Node:barfulous, Next:[1128]barn, Previous:[1129]barfulation,
Up:[1130]= B =
barfulous /bar'fyoo-l*s/ adj.
(alt. `barfucious', /bar-fyoo-sh*s/) Said of something that would make
anyone barf, if only for esthetic reasons.
Node:barn, Next:[1131]barney, Previous:[1132]barfulous, Up:[1133]= B =
barn n.
[uncommon; prob. from the nuclear military] An unexpectedly large
quantity of something: a unit of measurement. "Why is /var/adm taking
up so much space?" "The logs have grown to several barns." The source
of this is clear: when physicists were first studying nuclear
interactions, the probability was thought to be proportional to the
cross-sectional area of the nucleus (this probability is still called
the cross-section). Upon experimenting, they discovered the
interactions were far more probable than expected; the nuclei were `as
big as a barn'. The units for cross-sections were christened Barns,
(10^-24 cm^2) and the book containing cross-sections has a picture of
a barn on the cover.
Node:barney, Next:[1134]baroque, Previous:[1135]barn, Up:[1136]= B =
barney n.
In Commonwealth hackish, `barney' is to [1137]fred (sense #1) as
[1138]bar is to [1139]foo. That is, people who commonly use `fred' as
their first metasyntactic variable will often use `barney' second. The
reference is, of course, to Fred Flintstone and Barney Rubble in the
Flintstones cartoons.
Node:baroque, Next:[1140]BASIC, Previous:[1141]barney, Up:[1142]= B =
baroque adj.
[common] Feature-encrusted; complex; gaudy; verging on excessive. Said
of hardware or (esp.) software designs, this has many of the
connotations of [1143]elephantine or [1144]monstrosity but is less
extreme and not pejorative in itself. "Metafont even has features to
introduce random variations to its letterform output. Now that is
baroque!" See also [1145]rococo.
Node:BASIC, Next:[1146]batbelt, Previous:[1147]baroque, Up:[1148]= B =
BASIC /bay'-sic/ n.
A programming language, originally designed for Dartmouth's
experimental timesharing system in the early 1960s, which for many
years was the leading cause of brain damage in proto-hackers. Edsger
W. Dijkstra observed in "Selected Writings on Computing: A Personal
Perspective" that "It is practically impossible to teach good
programming style to students that have had prior exposure to BASIC:
as potential programmers they are mentally mutilated beyond hope of
regeneration." This is another case (like [1149]Pascal) of the
cascading [1150]lossage that happens when a language deliberately
designed as an educational toy gets taken too seriously. A novice can
write short BASIC programs (on the order of 10-20 lines) very easily;
writing anything longer (a) is very painful, and (b) encourages bad
habits that will make it harder to use more powerful languages well.
This wouldn't be so bad if historical accidents hadn't made BASIC so
common on low-end micros in the 1980s. As it is, it probably ruined
tens of thousands of potential wizards.
[1995: Some languages called `BASIC' aren't quite this nasty any more,
having acquired Pascal- and C-like procedures and control structures
and shed their line numbers. --ESR]
Note: the name is commonly parsed as Beginner's All-purpose Symbolic
Instruction Code, but this is a [1151]backronym. BASIC was originally
named Basic, simply because it was a simple and basic programming
language. Because most programming language names were in fact
acronyms, BASIC was often capitalized just out of habit or to be
silly. No acronym for BASIC originally existed or was intended (as one
can verify by reading texts through the early 1970s). Later, around
the mid-1970s, people began to make up backronyms for BASIC because
they weren't sure. Beginner's All-purpose Symbolic Instruction Code is
the one that caught on.
Node:batbelt, Next:[1152]batch, Previous:[1153]BASIC, Up:[1154]= B =
batbelt n.
Many hackers routinely hang numerous devices such as pagers,
cell-phones, personal organizers, leatherman multitools, pocket
knives, flashlights, walkie-talkies, even miniature computers from
their belts. When many of these devices are worn at once, the hacker's
belt somewhat resembles Batman's utility belt; hence it is referred to
as a batbelt.
Node:batch, Next:[1155]bathtub curve, Previous:[1156]batbelt,
Up:[1157]= B =
batch adj.
Non-interactive. Hackers use this somewhat more loosely than thetraditional technical definitions justify; in particular, switches on
a normally interactive program that prepare it to receive
non-interactive command input are often referred to as `batch mode'
switches. A `batch file' is a series of instructions written to be
handed to an interactive program running in batch mode. 2. Performance
of dreary tasks all at one sitting. "I finally sat down in batch mode
and wrote out checks for all those bills; I guess they'll turn the
electricity back on next week..." 3. `batching up': Accumulation of a
number of small tasks that can be lumped together for greater
efficiency. "I'm batching up those letters to send sometime" "I'm
batching up bottles to take to the recycling center."
Node:bathtub curve, Next:[1158]baud, Previous:[1159]batch, Up:[1160]=
B =
bathtub curve n.
Common term for the curve (resembling an end-to-end section of one of
those claw-footed antique bathtubs) that describes the expected
failure rate of electronics with time: initially high, dropping to
near 0 for most of the system's lifetime, then
Comments (0)