The Jargon File, Version 4.0.0, 24 Jul 1996
Chapter 3
:bamf: /bamf/ 1. [from X-Men comics; originally "bampf"] /interj./ Notional sound made by a person or object teleporting in or out of the hearer's vicinity. Often used in {virtual reality} (esp. {MUD}) electronic {fora} when a character wishes to make a dramatic entrance or exit. 2. The sound of magical transformation, used in virtual reality {fora} like MUDs. 3. In MUD circles, "bamf" is also used to refer to the act by which a MUD server sends a special notification to the MUD client to switch its connection to another server ("I'll set up the old site to just bamf people over to our new location."). 4. Used by MUDders on occasion in a more general sense related to sense 3, to refer to directing someone to another location or resource ("A user was asking about some technobabble so I bamfed them to http://www.ccil.org/jargon/jargon.html.")
:banana label: /n./ The labels often used on the sides of {macrotape} reels, so called because they are shaped roughly like blunt-ended bananas. This term, like macrotapes themselves, is still current but visibly headed for obsolescence.
:banana problem: /n./ [from the story of the little girl who said "I know how to spell `banana', but I don't know when to stop"]. Not knowing where or when to bring a production to a close (compare {fencepost error}). One may say `there is a banana problem' of an algorithm with poorly defined or incorrect termination conditions, or in discussing the evolution of a design that may be succumbing to featuritis (see also {creeping elegance}, {creeping featuritis}). See item 176 under {HAKMEM}, which describes a banana problem in a {Dissociated Press} implementation. Also, see {one-banana problem} for a superficially similar but unrelated usage.
:bandwidth: /n./ 1. 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}. 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.
: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.
: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.
:bang path: /n./ 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}}, {network, the}, and {sitename}.
: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.
:bar: /bar/ /n./ 1. 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}.
:bare metal: /n./ 1. 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, a Real Programmer} (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.
:barf: /barf/ /n.,v./ [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}.
:barfmail: /n./ Multiple {bounce message}s 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.
: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?"
: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.
: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.
:baroque: /adj./ 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}.
:BASIC: /bay'-sic/ /n./ [acronym: Beginner's All-purpose Symbolic Instruction Code] A programming language, originally designed for Dartmouth's experimental timesharing system in the early 1960s, which has since become 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. As it is, it ruins thousands of potential wizards a year.
[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]
: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."
: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}.
: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 International Telegraph Conference of 1927, and named after J.M.E. Baudot (1845--1903), the French engineer who constructed the first successful teleprinter.
:baud barf: /bawd barf/ /n./ The garbage one gets on the monitor 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.
:baz: /baz/ /n./ 1. 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)."
: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".
:BBS: /B-B-S/ /n./ [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 group}s. Thousands of local BBS systems are in operation throughout the U.S., 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 tend to consider local BBSes the low-rent district of the hacker culture, but they serve a valuable function by knitting together lots of hackers and users in the personal-micro world who would otherwise be unable to exchange code at all. See also {bboard}.
:beam: /vt./ [from Star Trek Classic's "Beam me up, Scotty!"] 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'. Compare {blast}, {snarf}, {BLT}.
:beanie key: /n./ [Mac users] See {command key}.
:beep: /n.,v./ Syn. {feep}. This term is techspeak under MS-DOS and OS/2, and seems to be generally preferred among micro hobbyists.
:beige toaster: /n./ A Macintosh. See {toaster}; compare {Macintrash}, {maggotbox}.
:bells and whistles: /n./ [by analogy with the toyboxes on theater organs] 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.
:bells, whistles, and gongs: /n./ A standard elaborated form of {bells and whistles}; typically said with a pronounced and ironic accent on the `gongs'.
:benchmark: [techspeak] /n./ 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}.
: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.
:berklix: /berk'liks/ /n.,adj./ [contraction of `Berkeley Unix'] See {BSD}. Not used at Berkeley itself. May be more common among {suit}s attempting to sound like cognoscenti than among hackers, who usually just say `BSD'.
:Berzerkeley: /b*r-zer'klee/ /n./ [from `berserk', via the name of a now-deceased record label] 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.
: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.
:BFI: /B-F-I/ /n./ See {brute force and ignorance}. Also encountered in the variants `BFMI', `brute force and *massive* ignorance' and `BFBI' `brute force and bloody ignorance'.
:bible: /n./ 1. One of a small number of fundamental source books such as {Knuth} and {K&R}. 2. The most detailed and authoritative reference for a particular language, operating system, or other complex software system.
:BiCapitalization: /n./ The act said to have been performed on trademarks (such as {PostScript}, NeXT, {NeWS}, VisiCalc, FrameMaker, TK!solver, EasyWriter) that have been raised above the ruck of common coinage by nonstandard capitalization. Too many {marketroid} types think this sort of thing is really cute, even the 2,317th time they do it. Compare {studlycaps}.
:B1FF: /bif/ [Usenet] (alt. `BIFF') /n./ The most famous {pseudo}, and the prototypical {newbie}. Articles from B1FF feature all uppercase letters sprinkled liberally with bangs, typos, `cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE THIS!!!), use (and often misuse) of fragments of {talk mode} abbreviations, a long {sig block} (sometimes even a {doubled sig}), and unbounded naivete. B1FF posts articles using his elder brother's VIC-20. B1FF's location is a mystery, as his articles appear to come from a variety of sites. However, {BITNET} seems to be the most frequent origin. The theory that B1FF is a denizen of BITNET is supported by B1FF's (unfortunately invalid) electronic mail address: [email protected].
[1993: Now It Can Be Told! My spies inform me that B1FF was originally created by Joe Talmadge <[email protected]>, also the author of the infamous and much-plagiarized "Flamer's Bible". The BIFF filter he wrote was later passed to Richard Sexton, who posted BIFFisms much more widely. Versions have since been posted for the amusement of the net at large. --ESR]
:biff: /bif/ /vt./ To notify someone of incoming mail. From the BSD utility `biff(1)', which was in turn named after a friendly golden Labrador who used to chase frisbees in the halls at UCB while 4.2BSD was in development. There was a legend that it had a habit of barking whenever the mailman came, but the author of `biff' says this is not true. No relation to {B1FF}.
:Big Gray Wall: /n./ What faces a {VMS} user searching for documentation. A full VMS kit comes on a pallet, the documentation taking up around 15 feet of shelf space before the addition of layered products such as compilers, databases, multivendor networking, and programming tools. Recent (since VMS version 5) DEC documentation comes with gray binders; under VMS version 4 the binders were orange (`big orange wall'), and under version 3 they were blue. See {VMS}. Often contracted to `Gray Wall'.
:big iron: /n./ Large, expensive, ultra-fast computers. Used generally of {number-crunching} supercomputers such as Crays, but can include more conventional big commercial IBMish mainframes. Term of approval; compare {heavy metal}, oppose {dinosaur}.