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 ... 10 11 12 13 14 15 16 17 18 ... 125
Go to page:
a CMUish usage, with MIT and Stanford hackers

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/or

author 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 and

delusions 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 the

traditional 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

1 ... 10 11 12 13 14 15 16 17 18 ... 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