Skip to content

Chapter V: Front Matter (5)

Text size

[very common; by analogy with proton/electron/neutron, but doubtless reinforced after 1980 by the similarity to Douglas Adams's `Vogons'; see the Bibliography in Appendix C and note that Arthur Dent actually mispronounces `Vogons' as `Bogons' at one point] 1. The elementary particle of bogosity (see quantum bogodynamics). For instance, "the Ethernet is emitting bogons again" means that it is broken or acting in an erratic or bogus fashion. 2. A query packet sent from a TCP/IP domain resolver to a root server, having the reply bit set instead of the query bit. 3. Any bogus or incorrectly formed packet sent on a network. 4. By synecdoche, used to refer to any bogus thing, as in "I'd like to go to lunch with you but I've got to go to the weekly staff bogon". 5. A person who is bogus or who says bogus things. This was historically the original usage, but has been overtaken by its derivative senses 1-4. See also bogosity, bogus; compare psyton, fat electrons, magic smoke.

The bogon has become the type case for a whole bestiary of nonce particle names, including the `clutron' or `cluon' (indivisible particle of cluefulness, obviously the antiparticle of the bogon) and the futon (elementary particle of randomness, or sometimes of lameness). These are not so much live usages in themselves as examples of a live meta-usage: that is, it has become a standard joke or linguistic maneuver to "explain" otherwise mysterious circumstances by inventing nonce particle names. And these imply nonce particle theories, with all their dignity or lack thereof (we might note parenthetically that this is a generalization from "(bogus particle) theories" to "bogus (particle theories)"!). Perhaps such particles are the modern-day equivalents of trolls and wood-nymphs as standard starting-points around which to construct explanatory myths. Of course, playing on an existing word (as in the `futon') yields additional flavor. Compare magic smoke.

Node:bogon filter, Next:bogon flux, Previous:bogon, Up:= B =

bogon filter /boh'gon fil'tr/ n.

Any device, software or hardware, that limits or suppresses the flow and/or emission of bogons. "Engineering hacked a bogon filter between the Cray and the VAXen, and now we're getting fewer dropped packets." See also bogosity, bogus.

Node:bogon flux, Next:bogosity, Previous:bogon filter, Up:= B =

bogon flux /boh'gon fluhks/ n.

A measure of a supposed field of bogosity emitted by a speaker, measured by a bogometer; as a speaker starts to wander into increasing bogosity a listener might say "Warning, warning, bogon flux is rising". See quantum bogodynamics.

Node:bogosity, Next:bogotify, Previous:bogon flux, Up:= B =

bogosity /boh-go's*-tee/ n.

1. [orig. CMU, now very common] The degree to which something is bogus. Bogosity is measured with a bogometer; in a seminar, when a speaker says something bogus, a listener might raise his hand and say "My bogometer just triggered". More extremely, "You just pinned my bogometer" means you just said or did something so outrageously bogus that it is off the scale, pinning the bogometer needle at the highest possible reading (one might also say "You just redlined my bogometer"). The agreed-upon unit of bogosity is the microLenat. 2. The potential field generated by a bogon flux; see quantum bogodynamics. See also bogon flux, bogon filter, bogus.

Node:bogotify, Next:bogue out, Previous:bogosity, Up:= B =

bogotify /boh-go't*-fi:/ vt.

To make or become bogus. A program that has been changed so many times as to become completely disorganized has become bogotified. If you tighten a nut too hard and strip the threads on the bolt, the bolt has become bogotified and you had better not use it any more. This coinage led to the notional `autobogotiphobia' defined as `the fear of becoming bogotified'; but is not clear that the latter has ever been `live' jargon rather than a self-conscious joke in jargon about jargon. See also bogosity, bogus.

Node:bogue out, Next:bogus, Previous:bogotify, Up:= B =

bogue out /bohg owt/ vi.

To become bogus, suddenly and unexpectedly. "His talk was relatively sane until somebody asked him a trick question; then he bogued out and did nothing but flame afterwards." See also bogosity, bogus.

Node:bogus, Next:Bohr bug, Previous:bogue out, Up:= B =

bogus adj.

1. Non-functional. "Your patches are bogus." 2. Useless. "OPCON is a bogus program." 3. False. "Your arguments are bogus." 4. Incorrect. "That algorithm is bogus." 5. Unbelievable. "You claim to have solved the halting problem for Turing Machines? That's totally bogus." 6. Silly. "Stop writing those bogus sagas."

Astrology is bogus. So is a bolt that is obviously about to break. So is someone who makes blatantly false claims to have solved a scientific problem. (This word seems to have some, but not all, of the connotations of random -- mostly the negative ones.)

It is claimed that `bogus' was originally used in the hackish sense at Princeton in the late 1960s. It was spread to CMU and Yale by Michael Shamos, a migratory Princeton alumnus. A glossary of bogus words was compiled at Yale when the word was first popularized there about 1975-76. These coinages spread into hackerdom from CMU and MIT. Most of them remained wordplay objects rather than actual vocabulary items or live metaphors. Examples: `amboguous' (having multiple bogus interpretations); `bogotissimo' (in a gloriously bogus manner); `bogotophile' (one who is pathologically fascinated by the bogus); `paleobogology' (the study of primeval bogosity).

Some bogowords, however, obtained sufficient live currency to be listed elsewhere in this lexicon; see bogometer, bogon, bogotify, and quantum bogodynamics and the related but unlisted Dr. Fred Mbogo.

By the early 1980s `bogus' was also current in something like hacker usage sense in West Coast teen slang, and it had gone mainstream by 1985. A correspondent from Cambridge reports, by contrast, that these uses of `bogus' grate on British nerves; in Britain the word means, rather specifically, `counterfeit', as in "a bogus 10-pound note".

Node:Bohr bug, Next:boink, Previous:bogus, Up:= B =

Bohr bug /bohr buhg/ n.

[from quantum physics] A repeatable bug; one that manifests reliably under a possibly unknown but well-defined set of conditions. Antonym of heisenbug; see also mandelbug, schroedinbug.

Node:boink, Next:bomb, Previous:Bohr bug, Up:= B =

boink /boynk/

[Usenet: variously ascribed to the TV series "Cheers" "Moonlighting", and "Soap"] 1. v. To have sex with; compare bounce, sense 3. (This is mainstream slang.) In Commonwealth hackish the variant `bonk' is more common. 2. n. After the original Peter Korn `Boinkon' Usenet parties, used for almost any net social gathering, e.g., Miniboink, a small boink held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday get-togethers held in the San Francisco Bay Area. Compare @-party. 3. Var of `bonk'; see bonk/oif.

Node:bomb, Next:bondage-and-discipline language, Previous:boink, Up:= B =

bomb

1. v. General synonym for crash (sense 1) except that it is not used as a noun; esp. used of software or OS failures. "Don't run Empire with less than 32K stack, it'll bomb." 2. n.,v. Atari ST and Macintosh equivalents of a Unix `panic' or Amiga guru meditation, in which icons of little black-powder bombs or mushroom clouds are displayed, indicating that the system has died. On the Mac, this may be accompanied by a decimal (or occasionally hexadecimal) number indicating what went wrong, similar to the Amiga guru meditation number. MS-DOS machines tend to get locked up in this situation.

Node:bondage-and-discipline language, Next:bonk/oif, Previous:bomb, Up:= B =

bondage-and-discipline language n.

A language (such as Pascal, Ada, APL, or Prolog) that, though ostensibly general-purpose, is designed so as to enforce an author's theory of `right programming' even though said theory is demonstrably inadequate for systems hacking or even vanilla general-purpose programming. Often abbreviated `B&D'; thus, one may speak of things "having the B&D nature". See Pascal; oppose languages of choice.

Node:bonk/oif, Next:book titles, Previous:bondage-and-discipline language, Up:= B =

bonk/oif /bonk/, /oyf/ interj.

In the U.S. MUD community, it has become traditional to express pique or censure by `bonking' the offending person. Convention holds that one should acknowledge a bonk by saying `oif!' and there is a myth to the effect that failing to do so upsets the cosmic bonk/oif balance, causing much trouble in the universe. Some MUDs have implemented special commands for bonking and oifing. Note: in parts of the U.K. `bonk' is a sexually loaded slang term; care is advised in transatlantic conversations (see boink). Commonwealth hackers report a similar convention involving the `fish/bang' balance. See also talk mode.

Node:book titles, Next:boot, Previous:bonk/oif, Up:= B =

book titles

There is a tradition in hackerdom of informally tagging important textbooks and standards documents with the dominant color of their covers or with some other conspicuous feature of the cover. Many of these are described in this lexicon under their own entries. See Aluminum Book, Blue Book, Camel Book, Cinderella Book, Devil Book, Dragon Book, Green Book, Orange Book, Purple Book, Red Book, Silver Book, White Book, Wizard Book, Yellow Book, and bible; see also rainbow series. Since about 1983 this tradition has gotten a boost from the popular O'Reilly and Associates line of technical books, which usually feature some kind of exotic animal on the cover.

Node:boot, Next:Borg, Previous:book titles, Up:= B =

boot v.,n.

[techspeak; from `by one's bootstraps'] To load and initialize the operating system on a machine. This usage is no longer jargon (having passed into techspeak) but has given rise to some derivatives that are still jargon.

The derivative `reboot' implies that the machine hasn't been down for long, or that the boot is a bounce (sense 4) intended to clear some state of wedgitude. This is sometimes used of human thought processes, as in the following exchange: "You've lost me." "OK, reboot. Here's the theory...."

This term is also found in the variants `cold boot' (from power-off condition) and `warm boot' (with the CPU and all devices already powered up, as after a hardware reset or software crash).

Another variant: `soft boot', reinitialization of only part of a system, under control of other software still running: "If you're running the mess-dos emulator, control-alt-insert will cause a soft-boot of the emulator, while leaving the rest of the system running."

Opposed to this there is `hard boot', which connotes hostility towards or frustration with the machine being booted: "I'll have to hard-boot this losing Sun." "I recommend booting it hard." One often hard-boots by performing a power cycle.

Historical note: this term derives from `bootstrap loader', a short program that was read in from cards or paper tape, or toggled in from the front panel switches. This program was always very short (great efforts were expended on making it short in order to minimize the labor and chance of error involved in toggling it in), but was just smart enough to read in a slightly more complex program (usually from a card or paper tape reader), to which it handed control; this program in turn was smart enough to read the application or operating system from a magnetic tape drive or disk drive. Thus, in successive steps, the computer `pulled itself up by its bootstraps' to a useful operating state. Nowadays the bootstrap is usually found in ROM or EPROM, and reads the first stage in from a fixed location on the disk, called the `boot block'. When this program gains control, it is powerful enough to load the actual OS and hand control over to it.

Node:Borg, Next:borken, Previous:boot, Up:= B =

Borg n.

In "Star Trek: The Next Generation" the Borg is a species of cyborg that ruthlessly seeks to incorporate all sentient life into itself; their slogan is "You will be assimilated. Resistance is futile." In hacker parlance, the Borg is usually Microsoft, which is thought to be trying just as ruthlessly to assimilate all computers and the entire Internet to itself (there is a widely circulated image of Bill Gates as a Borg). Being forced to use Windows or NT is often referred to as being "Borged". Interestingly, the Halloween Documents reveal that this jargon is live within Microsoft itself. (Other companies, notably Intel and UUNet, have also occasionally been equated to the Borg.) See also Evil Empire, Internet Exploiter.

In IETF circles, where direct pressure from Microsoft is not a daily reality, the Borg is sometimes Cisco. This usage commemmorates their tendency to pay any price to hire talent away from their competitors. In fact, at the Spring 1997 IETF, a large number of ex-Cisco employees, all former members of Routing Geeks, showed up with t-shirts printed with "Recovering Borg".

Node:borken, Next:bot, Previous:Borg, Up:= B =

borken adj.

(also `borked') Common deliberate typo for `broken'.

Node:bot, Next:bot spot, Previous:borken, Up:= B =

bot n

[common on IRC, MUD and among gamers; from `robot'] 1. An IRC or MUD user who is actually a program. On IRC, typically the robot provides some useful service. Examples are NickServ, which tries to prevent random users from adopting nicks already claimed by others, and MsgServ, which allows one to send asynchronous messages to be delivered when the recipient signs on. Also common are `annoybots', such as KissServ, which perform no useful function except to send cute messages to other people. Service bots are less common on MUDs; but some others, such as the `Julia' bot active in 1990-91, have been remarkably impressive Turing-test experiments, able to pass as human for as long as ten or fifteen minutes of conversation. 2. An AI-controlled player in a computer game (especially a first-person shooter such as Quake) which, unlike ordinary monsters, operates like a human-controlled player, with access to a player's weapons and abilities. An example can be found at http://www.telefragged.com/thefatal/. 3. Term used, though less commonly, for a web spider. The file for controlling spider behavior on your site is officially the "Robots Exclusion File" and its URL is "http://<somehost>/robots.txt")

Note that bots in all senses were `robots' when the terms first appeared in the early 1990s, but the shortened form is now habitual.

Node:bot spot, Next:bottom feeder, Previous:bot, Up:= B =

bot spot n.

[MUD] The user on a MUD with the longest connect time. Derives from the fact that bots on MUDS often stay constantly connected and appear at the bottom of the list.

Node:bottom feeder, Next:bottom-up implementation, Previous:bot spot, Up:= B =

bottom feeder n.

1. An Internet user that leeches off ISPs - the sort you can never provide good enough services for, always complains about the price, no matter how low it may be, and will bolt off to another service the moment there is even the slimmest price difference. While most bottom feeders infest free or almost free services such as AOL, MSN, and Hotmail, too many flock to whomever happens to be the cheapest regional ISP at the time. Bottom feeders are often the classic problem user, known for unleashing spam, flamage, and other breaches of netiquette. 2. Syn. for slopsucker, derived from the fishermen's and naturalists' term for finny creatures who subsist on the primordial ooze. (This sense is older.)

Node:bottom-up implementation, Next:bounce, Previous:bottom feeder, Up:= B =

bottom-up implementation n.

Hackish opposite of the techspeak term `top-down design'. It has been received wisdom in most programming cultures that it is best to design from higher levels of abstraction down to lower, specifying sequences of action in increasing detail until you get to actual code. Hackers often find (especially in exploratory designs that cannot be closely specified in advance) that it works best to build things in the opposite order, by writing and testing a clean set of primitive operations and then knitting them together. Naively applied, this leads to hacked-together bottom-up implementations; a more sophisticated response is `middle-out implementation', in which scratch code within primitives at the mid-level of the system is gradually replaced with a more polished version of the lowest level at the same time the structure above the midlevel is being built.

Node:bounce, Next:bounce message, Previous:bottom-up implementation, Up:= B =

bounce v.

1. [common; perhaps by analogy to a bouncing check] An electronic mail message that is undeliverable and returns an error notification to the sender is said to `bounce'. See also bounce message. 2. [Stanford] To play volleyball. The now-demolished D. C. Power Lab building used by the Stanford AI Lab in the 1970s had a volleyball court on the front lawn. From 5 P.M. to 7 P.M. was the scheduled maintenance time for the computer, so every afternoon at 5 would come over the intercom the cry: "Now hear this: bounce, bounce!", followed by Brian McCune loudly bouncing a volleyball on the floor outside the offices of known volleyballers. 3. To engage in sexual intercourse; prob. from the expression `bouncing the mattress', but influenced by Roo's psychosexually loaded "Try bouncing me, Tigger!" from the "Winnie-the-Pooh" books. Compare boink. 4. To casually reboot a system in order to clear up a transient problem. Reported primarily among VMS and Unix users. 5. [VM/CMS programmers] Automatic warm-start of a machine after an error. "I logged on this morning and found it had bounced 7 times during the night" 6. [IBM] To power cycle a peripheral in order to reset it.

Node:bounce message, Next:boustrophedon, Previous:bounce, Up:= B =

bounce message n.

[common] Notification message returned to sender by a site unable to relay email to the intended Internet address recipient or the next link in a bang path (see bounce, sense 1). Reasons might include a nonexistent or misspelled username or a down relay site. Bounce messages can themselves fail, with occasionally ugly results; see sorcerer's apprentice mode and software laser. The terms `bounce mail' and `barfmail' are also common.

Node:boustrophedon, Next:box, Previous:bounce message, Up:= B =

boustrophedon n.

[from a Greek word for turning like an ox while plowing] An ancient method of writing using alternate left-to-right and right-to-left lines. This term is actually philologists' techspeak and typesetters' jargon. Erudite hackers use it for an optimization performed by some computer typesetting software and moving-head printers. The adverbial form `boustrophedonically' is also found (hackers purely love constructions like this).

Node:box, Next:boxed comments, Previous:boustrophedon, Up:= B =

box n.

1. A computer; esp. in the construction `foo box' where _foo_ is some functional qualifier, like `graphics', or the name of an OS (thus, `Unix box', `MS-DOS box', etc.) "We preprocess the data on Unix boxes before handing it up to the mainframe." 2. [IBM] Without qualification but within an SNA-using site, this refers specifically to an IBM front-end processor or FEP /F-E-P/. An FEP is a small computer necessary to enable an IBM mainframe to communicate beyond the limits of the dinosaur pen. Typically used in expressions like the cry that goes up when an SNA network goes down: "Looks like the box has fallen over." (See fall over.) See also IBM, fear and loathing, Blue Glue.

Node:boxed comments, Next:boxen, Previous:box, Up:= B =

boxed comments n.

Comments (explanatory notes attached to program instructions) that occupy several lines by themselves; so called because in assembler and C code they are often surrounded by a box in a style something like this:

/************************************************* * * This is a boxed comment in C style * *************************************************/

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 winged comments.

Node:boxen, Next:boxology, Previous:boxed comments, Up:= B =

boxen /bok'sn/ pl.n.

[very common; by analogy with VAXen] Fanciful plural of box often encountered in the phrase `Unix boxen', used to describe commodity Unix hardware. The connotation is that any two Unix boxen are interchangeable.

Node:boxology, Next:bozotic, Previous:boxen, Up:= B =

boxology /bok-sol'*-jee/ n.

Syn. 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 macrology.

Node:bozotic, Next:BQS, Previous:boxology, Up:= 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 wonky, 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:brain dump, Previous:bozotic, Up:= B =

BQS /B-Q-S/ adj.

Syn. Berkeley Quality Software.

Node:brain dump, Next:brain fart, Previous:BQS, Up:= 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 core dump in that it saves a lot of useful state before an exit. "You'll have to give me a brain dump on FOOBAR before you start your new job at HackerCorp." See core dump (sense 4). At Sun, this is also known as `TOI' (transfer of information).

Node:brain fart, Next:brain-damaged, Previous:brain dump, Up:= B =

brain fart n.

The actual result of a 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:brain-dead, Previous:brain fart, Up:= B =

brain-damaged adj.

1. [common; generalization of `Honeywell Brain Damage' (HBD), a theoretical disease invented to explain certain utter cretinisms in Honeywell Multics] adj. Obviously wrong; cretinous; 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. crippleware.

Node:brain-dead, Next:braino, Previous:brain-damaged, Up:= 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:branch to Fishkill, Previous:brain-dead, Up:= B =

braino /bray'no/ n.

Syn. for thinko. See also brain fart.

Node:branch to Fishkill, Next:bread crumbs, Previous:braino, Up:= 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 jump off into never-never land, hyperspace.

Node:bread crumbs, Next:break, Previous:branch to Fishkill, Up:= B =

bread crumbs n.

1. Debugging statements inserted into a program that emit output or log indicators of the program's 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:break-even point, Previous:bread crumbs, Up:= B =

break

1. vt. To cause to be 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 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:breath-of-life packet, Previous:break, Up:= 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 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 VAXen in the early and mid-1980s. A FOOGOL implementation is available at the Retrocomputing Museum http://www.ccil.org/retro.

Node:breath-of-life packet, Next:breedle, Previous:break-even point, Up:= B =

breath-of-life packet n.

[XEROX PARC] An Ethernet packet that contains bootstrap (see 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 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:Breidbart Index, Previous:breath-of-life packet, Up:= B =

breedle n.

See feep.

Node:Breidbart Index, Next:bring X to its knees, Previous:breedle, Up:= 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 EMP is worse than excessive cross-posting 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:brittle, Previous:Breidbart Index, Up:= 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 pathological that it grinds to a halt. "To bring a MicroVAX to its knees, try twenty users running vi -- or four running EMACS." Compare hog.

Node:brittle, Next:broadcast storm, Previous:bring X to its knees, Up:= 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 robust.

Node:broadcast storm, Next:brochureware, Previous:brittle, Up:= 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 network meltdown; compare mail storm.

Node:brochureware, Next:broken, Previous:broadcast storm, Up:= B =

brochureware n.

Planned but non-existent product like 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:broken arrow, Previous:brochureware, Up:= B =

broken adj.

1. Not working properly (of programs). 2. Behaving strangely; especially (when used of people) exhibiting extreme depression.

Node:broken arrow, Next:BrokenWindows, Previous:broken, Up:= 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 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:broket, Previous:broken arrow, Up:= B =

BrokenWindows n.

Abusive hackerism for the crufty and elephantine X environment on Sun machines; properly called `OpenWindows'.

Node:broket, Next:Brooks's Law, Previous:BrokenWindows, Up:= 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 Real World as well, these are usually called angle brackets.)

Node:Brooks's Law, Next:brown-paper-bag bug, Previous:broket, Up:= 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 bazaar); too often, management still does. See also creationism, second-system effect, optimism.

Node:brown-paper-bag bug, Next:browser, Previous:Brooks's Law, Up:= 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:BRS, Previous:brown-paper-bag bug, Up:= 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:brute force, Previous:browser, Up:= B =

BRS /B-R-S/ n.

Syn. Big Red Switch. This abbreviation is fairly common on-line.

Node:brute force, Next:brute force and ignorance, Previous:BRS, Up:= 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 brute force and ignorance).

The canonical example of a brute-force algorithm is associated with the `traveling salesman problem' (TSP), a classical 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 bignum). Sometimes, unfortunately, there is no better general solution than brute force. See also 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 ha ha only serious, but the original Unix kernel's preference for simple, robust, and portable algorithms over 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:BSD, Previous:brute force, Up:= B =

brute force and ignorance n.

A popular design technique at many software houses -- 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 larval stage programming; unfortunately, many never outgrow it. Often abbreviated BFI: "Gak, they used a bubble sort! That's strictly from BFI." Compare bogosity.

Node:BSD, Next:BSOD, Previous:brute force and ignorance, Up:= B =

BSD /B-S-D/ n.

[abbreviation for `Berkeley Software Distribution'] a family of Unix versions for the DEC VAX and PDP-11 developed by Bill Joy and others at 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 4.2, Unix, USG Unix.

Node:BSOD, Next:BUAF, Previous:BSD, Up:= B =

BSOD /B-S-O-D/

Very commmon abbreviation for Blue Screen of Death. Both spoken and written.

Node:BUAF, Next:BUAG, Previous:BSOD, Up:= B =

BUAF // n.

[abbreviation, from _alt.fan.warlord_] Big Ugly ASCII Font -- a special form of 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 banner (sense 2) programs. These are sometimes used to render one's name in a sig block, and are critically referred to as `BUAF's. See warlording.

Node:BUAG, Next:bubble sort, Previous:BUAF, Up:= B =

BUAG // n.

[abbreviation, from _alt.fan.warlord_] Big Ugly ASCII Graphic. Pejorative term for ugly ASCII art, especially as found in sig blocks. For some reason, mutations of the head of Bart Simpson are particularly common in the least imaginative sig blocks. See warlording.

Node:bubble sort, Next:bucky bits, Previous:BUAG, Up:= 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 naive and untutored programmers, hackers consider it the 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 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:buffer chuck, Previous:bubble sort, Up:= 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 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 double bucky, quadruple bucky.

Node:buffer chuck, Next:buffer overflow, Previous:bucky bits, Up:= B =

buffer chuck n.

Shorter and ruder syn. for buffer overflow.

Node:buffer overflow, Next:bug, Previous:buffer chuck, Up:= 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 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 overrun and 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 crunches a line at a time, a short line buffer can result in 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 spam, overrun screw.

Node:bug, Next:bug-compatible, Previous:buffer overflow, Up:= B =

bug n.

An unwanted and unintended property of a program or piece of hardware, esp. one that causes it to malfunction. Antonym of 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 COBOL) liked to tell a story in which a technician solved a 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 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:bug-for-bug compatible, Previous:bug, Up:= B =

bug-compatible adj.

[common] Said of a design or revision that has been badly compromised by a requirement to be compatible with fossils or 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:bug-of-the-month club, Previous:bug-compatible, Up:= B =

bug-for-bug compatible n.

Same as 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:buglix, Previous:bug-for-bug compatible, Up:= 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 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 kernel-of-the-week club.

Node:buglix, Next:bulletproof, Previous:bug-of-the-month club, Up:= B =

buglix /buhg'liks/ n.

[uncommon] Pejorative term referring to DEC's ULTRIX operating system in its earlier severely buggy versions. Still used to describe ULTRIX, but without nearly so much venom. Compare AIDX, HP-SUX, Nominal Semidestructor, Telerat, sun-stools.

Node:bulletproof, Next:bullschildt, Previous:buglix, Up:= B =

bulletproof adj.

Used of an algorithm or implementation considered extremely 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 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. armor-plated.

Node:bullschildt, Next:bum, Previous:bulletproof, Up:= 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 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:bump, Previous:bullschildt, Up:= 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 elder days, John McCarthy (inventor of 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 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. tune (and n. tweak, 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:burble, Previous:bum, Up:= 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:buried treasure, Previous:bump, Up:= B =

burble v.

[from Lewis Carroll's "Jabberwocky"] Like 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:burn-in period, Previous:burble, Up:= B =

buried treasure n.

A surprising piece of code found in some program. While usually not wrong, it tends to vary from crufty to 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 bubble sort! Buried treasure!"

Node:burn-in period, Next:burst page, Previous:buried treasure, Up:= B =

burn-in period n.

1. A factory test designed to catch systems with marginal components before they get out the door; the theory is that burn-in will protect customers by outwaiting the steepest part of the bathtub curve (see 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 hack mode, 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:busy-wait, Previous:burn-in period, Up:= B =

burst page n.

Syn. banner, sense 1.

Node:busy-wait, Next:buzz, Previous:burst page, Up:= 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 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 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:BWQ, Previous:busy-wait, Up:= 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 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 spin; see also 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:by hand, Previous:buzz, Up:= B =

BWQ /B-W-Q/ n.

[IBM: abbreviation, `Buzz Word Quotient'] The percentage of buzzwords in a speech or documents. Usually roughly proportional to bogosity. See TLA.

Node:by hand, Next:byte, Previous:BWQ, Up:= B =

by hand adv.

Comments

Log in to leave a comment.

The Jargon File, Version 4.2.2, 20 Aug 2000Chapter V: Front Matter (5)

0%36 min left in chapter