Chapter 7 of 61 · 3966 words · ~20 min read

Part 7

1. [common] Used by hackers (in a generalization of its technical meaning) as the volume of information per unit time that a computer, person, or transmission medium can handle. "Those are amazing graphics, but I missed some of the detail -- not enough bandwidth, I guess." Compare low-bandwidth. This generalized usage began to go mainstream after the Internet population explosion of 1993-1994. 2. Attention span. 3. On Usenet, a measure of network capacity that is often wasted by people complaining about how items posted by others are a waste of bandwidth.

Node:bang, Next:bang on, Previous:bandwidth, Up:= B =

bang

1. n. Common spoken name for ! (ASCII 0100001), especially when used in pronouncing a bang path in spoken hackish. In elder days this was considered a CMUish usage, with MIT and Stanford hackers preferring excl or shriek; but the spread of Unix has carried `bang' with it (esp. via the term 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 shriek, 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 thinko immediately after one has been called on it.

Node:bang on, Next:bang path, Previous:bang, Up:= 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 pound on is synonymous.

Node:bang path, Next:banner, Previous:bang on, Up:= 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 hop is signified by a 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 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 Internet address, the network, and sitename.

Node:banner, Next:banner ad, Previous:bang path, Up:= B =

banner n.

1. The title page added to printouts by most print spoolers (see 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}). 3. 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:banner site, Previous:banner, Up:= B =

banner ad n.

Any of the annoying graphical advertisements that span the tops of way too many Web pages.

Node:banner site, Next:bar, Previous:banner ad, Up:= 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 ratio site, leech mode.

Node:bar, Next:bare metal, Previous:banner site, Up:= B =

bar /bar/ n.

1. [very common] The second metasyntactic variable, after foo and before baz. "Suppose we have two functions: FOO and BAR. FOO calls BAR...." 2. Often appended to foo to produce foobar.

Node:bare metal, Next:barf, Previous:bar, Up:= B =

bare metal n.

1. [common] New computer hardware, unadorned with such snares and delusions as an operating system, an HLL, or even assembler. Commonly used in the phrase `programming on the bare metal', which refers to the arduous work of 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 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 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 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 Good Thing, or at least a necessary evil (because these machines have often been sufficiently slow and poorly designed to make it necessary; see 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:barfmail, Previous:bare metal, Up:= 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 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 choke, gag. In Commonwealth Hackish, `barf' is generally replaced by `puke' or `vom'. barf is sometimes also used as a metasyntactic variable, like foo or bar.

Node:barfmail, Next:barfulation, Previous:barf, Up:= B =

barfmail n.

Multiple 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:barfulous, Previous:barfmail, Up:= B =

barfulation /bar`fyoo-lay'sh*n/ interj.

Variation of 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:barn, Previous:barfulation, Up:= 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:barney, Previous:barfulous, Up:= 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:baroque, Previous:barn, Up:= B =

barney n.

In Commonwealth hackish, `barney' is to fred (sense #1) as bar is to 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:BASIC, Previous:barney, Up:= 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 elephantine or 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 rococo.

Node:BASIC, Next:batbelt, Previous:baroque, Up:= 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 Pascal) of the cascading 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 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:batch, Previous:BASIC, Up:= 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:bathtub curve, Previous:batbelt, Up:= B =

batch adj.

1. 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:baud, Previous:batch, Up:= 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 rising again as it `tires out'. See also burn-in period, infant mortality.

Node:baud, Next:baud barf, Previous:bathtub curve, Up:= B =

baud /bawd/ n.

[simplified from its technical meaning] n. Bits per second. Hence kilobaud or Kbaud, thousands of bits per second. The technical meaning is `level transitions per second'; this coincides with bps only for two-level modulation with no framing or stop bits. Most hackers are aware of these nuances but blithely ignore them.

Historical note: `baud' was originally a unit of telegraph signalling speed, set at one pulse per second. It was proposed at the November, 1926 conference of the Comité Consultatif International Des Communications Télégraphiques as an improvement on the then standard practice of referring to line speeds in terms of words per minute, and named for Jean Maurice Emile Baudot (1845-1903), a French engineer who did a lot of pioneering work in early teleprinters.

Node:baud barf, Next:baz, Previous:baud, Up:= B =

baud barf /bawd barf/ n.

The garbage one gets a terminal (or terminal emulator) when using a modem connection with some protocol setting (esp. line speed) incorrect, or when someone picks up a voice extension on the same line, or when really bad line noise disrupts the connection. Baud barf is not completely random, by the way; hackers with a lot of serial-line experience can usually tell whether the device at the other end is expecting a higher or lower speed than the terminal is set to. Really experienced ones can identify

## particular speeds.

Node:baz, Next:bazaar, Previous:baud barf, Up:= B =

baz /baz/ n.

1. [common] The third metasyntactic variable "Suppose we have three functions: FOO, BAR, and BAZ. FOO calls BAR, which calls BAZ...." (See also fum) 2. interj. A term of mild annoyance. In this usage the term is often drawn out for 2 or 3 seconds, producing an effect not unlike the bleating of a sheep; /baaaaaaz/. 3. Occasionally appended to foo to produce `foobaz'.

Earlier versions of this lexicon derived `baz' as a Stanford corruption of bar. However, Pete Samson (compiler of the TMRC lexicon) reports it was already current when he joined TMRC in 1958. He says "It came from "Pogo". Albert the Alligator, when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!' The club layout was said to model the (mythical) New England counties of Rowrfolk and Bassex (Rowrbazzle mingled with (Norfolk/Suffolk/Middlesex/Essex)."

Node:bazaar, Next:bboard, Previous:baz, Up:= B =

bazaar n.,adj.

In 1997, after meditatating on the success of Linux for three years, the Jargon File's own editor ESR wrote an analytical paper on hacker culture and development models titled The Cathedral and the Bazaar. The main argument of the paper was that Brooks's Law is not the whole story; given the right social machinery, debugging can be efficiently parallelized across large numbers of programmers. The title metaphor caught on (see also cathedral), and the style of development typical in the Linux community is now often referred to as the bazaar mode. Its characteristics include releasing code early and often, and actively seeking the largest possible pool of peer reviewers.

Node:bboard, Next:BBS, Previous:bazaar, Up:= B =

bboard /bee'bord/ n.

[contraction of `bulletin board'] 1. Any electronic bulletin board; esp. used of BBS systems running on personal micros, less frequently of a Usenet newsgroup (in fact, use of this term for a newsgroup generally marks one either as a newbie fresh in from the BBS world or as a real old-timer predating Usenet). 2. At CMU and other colleges with similar facilities, refers to campus-wide electronic bulletin boards. 3. The term `physical bboard' is sometimes used to refer to an old-fashioned, non-electronic cork-and-thumbtack memo board. At CMU, it refers to a particular one outside the CS Lounge.

In either of senses 1 or 2, the term is usually prefixed by the name of the intended board (`the Moonlight Casino bboard' or `market bboard'); however, if the context is clear, the better-read bboards may be referred to by name alone, as in (at CMU) "Don't post for-sale ads on general".

Node:BBS, Next:BCPL, Previous:bboard, Up:= B =

BBS /B-B-S/ n.

[common; abbreviation, `Bulletin Board System'] An electronic bulletin board system; that is, a message database where people can log in and leave broadcast messages for others grouped (typically) into topic groups. The term was especially applied to the thousands of local BBS systems that operated during the pre-Internet microcomputer era of roughly 1980 to 1995, typically run by amateurs for fun out of their homes on MS-DOS boxes with a single modem line each. Fans of Usenet and Internet or the big commercial timesharing bboards such as CompuServe and GEnie tended to consider local BBSes the low-rent district of the hacker culture, but they served a valuable function by knitting together lots of hackers and users in the personal-micro world who would otherwise have been unable to exchange code at all. Post-Internet, BBSs are likely to be local newsgroups on an ISP; efficiency has increased but a certain flavor has been lost. See also bboard.

Node:BCPL, Next:beam, Previous:BBS, Up:= B =

BCPL // n.

[abbreviation, `Basic Combined Programming Language') A programming language developed by Martin Richards in Cambridge in 1967. It is remarkable for its rich syntax, small size of compiler (it can be run in 16k) and extreme portability. It reached break-even point at a very early stage, and was the language in which the original hello world program was written. It has been ported to so many different systems that its creator confesses to having lost count. It has only one data type (a machine word) which can be used as an integer, a character, a floating point number, a pointer, or almost anything else, depending on context. BCPL was a precursor of C, which inherited some of its features.

Node:beam, Next:beanie key, Previous:BCPL, Up:= B =

beam vt.

[from Star Trek Classic's "Beam me up, Scotty!"] 1. To transfer softcopy of a file electronically; most often in combining forms such as `beam me a copy' or `beam that over to his site'. 2. Palm Pilot users very commonly use this term for the act of exchanging bits via the infrared links on their machines (this term seems to have originated with the ill-fated Newton Message Pad). Compare blast, snarf, BLT.

Node:beanie key, Next:beep, Previous:beam, Up:= B =

beanie key n.

[Mac users] See command key.

Node:beep, Next:Befunge, Previous:beanie key, Up:= B =

beep n.,v.

Syn. feep. This term is techspeak under MS-DOS and OS/2, and seems to be generally preferred among micro hobbyists.

Node:Befunge, Next:beige toaster, Previous:beep, Up:= B =

Befunge n.

A worthy companion to INTERCAL; a computer language family which escapes the quotidian limitation of linear control flow and embraces program counters flying through multiple dimensions with exotic topologies. Sadly, the Befunge home page has vanished, but a Befunge version of the hello world program is at http://www.catseye.mb.ca/esoteric/befunge.html.

Node:beige toaster, Next:bells and whistles, Previous:Befunge, Up:= B =

beige toaster n.

A Macintosh. See toaster; compare Macintrash, maggotbox.

Node:bells and whistles, Next:bells whistles and gongs, Previous:beige toaster, Up:= B =

bells and whistles n.

[common] Features added to a program or system to make it more flavorful from a hacker's point of view, without necessarily adding to its utility for its primary function. Distinguished from chrome, which is intended to attract users. "Now that we've got the basic program working, let's go back and add some bells and whistles." No one seems to know what distinguishes a bell from a whistle. The recognized emphatic form is "bells, whistles, and gongs".

It used to be thought that this term derived from the toyboxes on theater organs. However, the "and gongs" strongly suggests a different origin, at sea. Before powered horns, ships routinely used bells, whistles, and gongs to signal each other over longer distances than voice can carry.

Node:bells whistles and gongs, Next:benchmark, Previous:bells and whistles, Up:= B =

bells whistles and gongs n.

A standard elaborated form of bells and whistles; typically said with a pronounced and ironic accent on the `gongs'.

Node:benchmark, Next:Berkeley Quality Software, Previous:bells whistles and gongs, Up:= B =

benchmark n.

[techspeak] An inaccurate measure of computer performance. "In the computer industry, there are three kinds of lies: lies, damn lies, and benchmarks." Well-known ones include Whetstone, Dhrystone, Rhealstone (see h), the Gabriel LISP benchmarks (see gabriel), the SPECmark suite, and LINPACK. See also machoflops, MIPS, smoke and mirrors.

Node:Berkeley Quality Software, Next:berklix, Previous:benchmark, Up:= B =

Berkeley Quality Software adj.

(often abbreviated `BQS') Term used in a pejorative sense to refer to software that was apparently created by rather spaced-out hackers late at night to solve some unique problem. It usually has nonexistent, incomplete, or incorrect documentation, has been tested on at least two examples, and core dumps when anyone else attempts to use it. This term was frequently applied to early versions of the dbx(1) debugger. See also Berzerkeley.

Note to British and Commonwealth readers: that's /berk'lee/, not /bark'lee/ as in British Received Pronunciation.

Node:berklix, Next:Berzerkeley, Previous:Berkeley Quality Software, Up:= B =

berklix /berk'liks/ n.,adj.

[contraction of `Berkeley Unix'] See BSD. Not used at Berkeley itself. May be more common among suits attempting to sound like cognoscenti than among hackers, who usually just say `BSD'.

Node:Berzerkeley, Next:beta, Previous:berklix, Up:= B =

Berzerkeley /b*r-zer'klee/ n.

[from `berserk', via the name of a now-deceased record label; poss. originated by famed columnist Herb Caen] Humorous distortion of `Berkeley' used esp. to refer to the practices or products of the BSD Unix hackers. See software bloat, Missed'em-five, Berkeley Quality Software.

Mainstream use of this term in reference to the cultural and political peculiarities of UC Berkeley as a whole has been reported from as far back as the 1960s.

Node:beta, Next:BFI, Previous:Berzerkeley, Up:= B =

beta /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n.

1. Mostly working, but still under test; usu. used with `in': `in beta'. In the Real World, systems (hardware or software) software often go through two stages of release testing: Alpha (in-house) and Beta (out-house?). Beta releases are generally made to a group of lucky (or unlucky) trusted customers. 2. Anything that is new and experimental. "His girlfriend is in beta" means that he is still testing for compatibility and reserving judgment. 3. Flaky; dubious; suspect (since beta software is notoriously buggy).

Historical note: More formally, to beta-test is to test a pre-release (potentially unreliable) version of a piece of software by making it available to selected (or self-selected) customers and users. This term derives from early 1960s terminology for product cycle checkpoints, first used at IBM but later standard throughout the industry. `Alpha Test' was the unit, module, or component test phase; `Beta Test' was initial system test. These themselves came from earlier A- and B-tests for hardware. The A-test was a feasibility and manufacturability evaluation done before any commitment to design and development. The B-test was a demonstration that the engineering model functioned as specified. The C-test (corresponding to today's beta) was the B-test performed on early samples of the production design, and the D test was the C test repeated after the model had been in production a while.

Node:BFI, Next:bible, Previous:beta, Up:= B =

BFI /B-F-I/ n.