The Project Gutenberg eBook of The Jargon File, Version 4.0.0, 24 Jul 1996

This eBook is for the use of anyone anywhere in the United States and most other parts of the world at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org. If you are not located in the United States, you will have to check the laws of the country where you are located before using this eBook.

Title: The Jargon File, Version 4.0.0, 24 Jul 1996

Editor: Eric S. Raymond

Guy L. Steele


Release date: February 1, 1997 [eBook #817]
Most recently updated: April 2, 2015

Language: English

Other information and formats: www.gutenberg.org/ebooks/817

*** START OF THE PROJECT GUTENBERG EBOOK THE JARGON FILE, VERSION 4.0.0, 24 JUL 1996 ***

The preface has gotten so long an intertwined that we moved it to the end

for the Project Gutenberg Etext of the Jargon file. You can find it by a search for the following line:

#======= THIS IS THE JARGON FILE, VERSION 4.0.0, 24 JUL 1996 =======#

The Jargon Lexicon ******************

= A = =====

:abbrev: /*-breev'/, /*-brev'/ /n./ Common abbreviation for `abbreviation'.

:ABEND: /a'bend/, /*-bend'/ /n./ [ABnormal END] Abnormal termination (of software); {crash}; {lossage}. Derives from an error message on the IBM 360; used jokingly by hackers but seriously mainly by {code grinder}s. Usually capitalized, but may appear as `abend'. Hackers will try to persuade you that ABEND is called `abend' because it is what system operators do to the machine late on Friday when they want to call it a day, and hence is from the German `Abend' = `Evening'.

:accumulator: /n. obs./ 1. Archaic term for a register. On-line use of it as a synonym for `register' is a fairly reliable indication that the user has been around for quite a while and/or that the architecture under discussion is quite old. The term in full is almost never used of microprocessor registers, for example, though symbolic names for arithmetic registers beginning in `A' derive from historical use of the term `accumulator' (and not, actually, from `arithmetic'). Confusingly, though, an `A' register name prefix may also stand for `address', as for example on the Motorola 680x0 family. 2. A register being used for arithmetic or logic (as opposed to addressing or a loop index), especially one being used to accumulate a sum or count of many items. This use is in context of a particular routine or stretch of code. "The FOOBAZ routine uses A3 as an accumulator." 3. One's in-basket (esp. among old-timers who might use sense 1). "You want this reviewed? Sure, just put it in the accumulator." (See {stack}.)

:ACK: /ak/ /interj./ 1. [from the ASCII mnemonic for 0000110] Acknowledge. Used to register one's presence (compare mainstream *Yo!*). An appropriate response to {ping} or {ENQ}. 2. [from the comic strip "Bloom County"] An exclamation of surprised disgust, esp. in "Ack pffft!" Semi-humorous. Generally this sense is not spelled in caps (ACK) and is distinguished by a following exclamation point. 3. Used to politely interrupt someone to tell them you understand their point (see {NAK}). Thus, for example, you might cut off an overly long explanation with "Ack. Ack. Ack. I get it now".

There is also a usage "ACK?" (from sense 1) meaning "Are you there?", often used in email when earlier mail has produced no reply, or during a lull in {talk mode} to see if the person has gone away (the standard humorous response is of course {NAK} (sense 2), i.e., "I'm not here").

:Acme: /n./ The canonical supplier of bizarre, elaborate, and non-functional gadgetry — where Rube Goldberg and Heath Robinson shop. Describing some X as an "Acme X" either means "This is {insanely great}", or, more likely, "This looks {insanely great} on paper, but in practice it's really easy to shoot yourself in the foot with it." Compare {pistol}.

This term, specially cherished by American hackers and explained here for the benefit of our overseas brethren, comes from the Warner Brothers' series of "Roadrunner" cartoons. In these cartoons, the famished Wile E. Coyote was forever attempting to catch up with, trap, and eat the Roadrunner. His attempts usually involved one or more high-technology Rube Goldberg devices — rocket jetpacks, catapults, magnetic traps, high-powered slingshots, etc. These were usually delivered in large cardboard boxes, labeled prominently with the Acme name. These devices invariably malfunctioned in violent and improbable ways.

:acolyte: /n. obs./ [TMRC] An {OSU} privileged enough to submit data and programs to a member of the {priesthood}.

:ad-hockery: /ad-hok'*r-ee/ /n./ [Purdue] 1. Gratuitous assumptions made inside certain programs, esp. expert systems, which lead to the appearance of semi-intelligent behavior but are in fact entirely arbitrary. For example, fuzzy-matching of input tokens that might be typing errors against a symbol table can make it look as though a program knows how to spell. 2. Special-case code to cope with some awkward input that would otherwise cause a program to {choke}, presuming normal inputs are dealt with in some cleaner and more regular way. Also called `ad-hackery', `ad-hocity' (/ad-hos'*-tee/), `ad-crockery'. See also {ELIZA effect}.

:Ada:: /n./ A {{Pascal}}-descended language that has been made mandatory for Department of Defense software projects by the Pentagon. Hackers are nearly unanimous in observing that, technically, it is precisely what one might expect given that kind of endorsement by fiat; designed by committee, crockish, difficult to use, and overall a disastrous, multi-billion-dollar boondoggle (one common description is "The PL/I of the 1980s"). Hackers find Ada's exception-handling and inter-process communication features particularly hilarious. Ada Lovelace (the daughter of Lord Byron who became the world's first programmer while cooperating with Charles Babbage on the design of his mechanical computing engines in the mid-1800s) would almost certainly blanch at the use to which her name has latterly been put; the kindest thing that has been said about it is that there is probably a good small language screaming to get out from inside its vast, {elephantine} bulk.

:adger: /aj'r/ /vt./ [UCLA mutant of {nadger}, poss. from the middle name of an infamous {tenured graduate student}] To make a bonehead move with consequences that could have been foreseen with even slight mental effort. E.g., "He started removing files and promptly adgered the whole project". Compare {dumbass attack}.

:admin: /ad-min'/ /n./ Short for `administrator'; very
   commonly used in speech or on-line to refer to the systems person
   in charge on a computer. Common constructions on this include
   `sysadmin' and `site admin' (emphasizing the administrator's
   role as a site contact for email and news) or `newsadmin'
   (focusing specifically on news). Compare {postmaster},
   {sysop}, {system mangler}.

:ADVENT: /ad'vent/ /n./ The prototypical computer adventure
   game, first designed by Will Crowther on the {PDP-10} in the
   mid-1970s as an attempt at computer-refereed fantasy gaming, and
   expanded into a puzzle-oriented game by Don Woods at Stanford in
   1976. Now better known as Adventure, but the {{TOPS-10}}
   operating system permitted only six-letter filenames. See also
   {vadding}, {Zork}, and {Infocom}.

This game defined the terse, dryly humorous style since expected in text adventure games, and popularized several tag lines that have become fixtures of hacker-speak: "A huge green fierce snake bars the way!" "I see no X here" (for some noun X). "You are in a maze of twisty little passages, all alike." "You are in a little maze of twisty passages, all different." The `magic words' {xyzzy} and {plugh} also derive from this game.

Crowther, by the way, participated in the exploration of the Mammoth & Flint Ridge cave system; it actually *has* a `Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that also turns up is cavers' jargon for a map reference to a secondary entrance.

:AFAIK: // /n./ [Usenet] Abbrev. for "As Far As I Know".

:AFJ: // /n./ Written-only abbreviation for "April Fool's Joke". Elaborate April Fool's hoaxes are a long-established tradition on Usenet and Internet; see {kremvax} for an example. In fact, April Fool's Day is the *only* seasonal holiday consistently marked by customary observances on Internet and other hacker networks.

:AI: /A-I/ /n./ Abbreviation for `Artificial Intelligence', so common that the full form is almost never written or spoken among hackers.

:AI-complete: /A-I k*m-pleet'/ /adj./ [MIT, Stanford: by analogy with `NP-complete' (see {NP-})] Used to describe problems or subproblems in AI, to indicate that the solution presupposes a solution to the `strong AI problem' (that is, the synthesis of a human-level intelligence). A problem that is AI-complete is, in other words, just too hard.

Examples of AI-complete problems are `The Vision Problem' (building a system that can see as well as a human) and `The Natural Language Problem' (building a system that can understand and speak a natural language as well as a human). These may appear to be modular, but all attempts so far (1996) to solve them have foundered on the amount of context information and `intelligence' they seem to require. See also {gedanken}.

:AI koans: /A-I koh'anz/ /pl.n./ A series of pastiches of Zen
   teaching riddles created by Danny Hillis at the MIT AI Lab around
   various major figures of the Lab's culture (several are included
   under {AI Koans} in Appendix A). See also {ha ha
   only serious}, {mu}, and {{hacker humor}}.

:AIDS: /aydz/ /n./ Short for A* Infected Disk Syndrome (`A*'
   is a {glob} pattern that matches, but is not limited to, Apple
   or Amiga), this condition is quite often the result of practicing
   unsafe {SEX}. See {virus}, {worm}, {Trojan horse},
   {virgin}.

:AIDX: /ayd'k*z/ /n./ Derogatory term for IBM's perverted version of Unix, AIX, especially for the AIX 3.? used in the IBM RS/6000 series (some hackers think it is funnier just to pronounce "AIX" as "aches"). A victim of the dreaded "hybridism" disease, this attempt to combine the two main currents of the Unix stream ({BSD} and {USG Unix}) became a {monstrosity} to haunt system administrators' dreams. For example, if new accounts are created while many users are logged on, the load average jumps quickly over 20 due to silly implementation of the user databases. For a quite similar disease, compare {HP-SUX}. Also, compare {Macintrash}, {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}.

:airplane rule: /n./ "Complexity increases the possibility of failure; a twin-engine airplane has twice as many engine problems as a single-engine airplane." By analogy, in both software and electronics, the rule that simplicity increases robustness. It is correspondingly argued that the right way to build reliable systems is to put all your eggs in one basket, after making sure that you've built a really *good* basket. See also {KISS Principle}.

:aliasing bug: /n./ A class of subtle programming errors that can arise in code that does dynamic allocation, esp. via `malloc(3)' or equivalent. If several pointers address (`aliases for') a given hunk of storage, it may happen that the storage is freed or reallocated (and thus moved) through one alias and then referenced through another, which may lead to subtle (and possibly intermittent) lossage depending on the state and the allocation history of the malloc {arena}. Avoidable by use of allocation strategies that never alias allocated core, or by use of higher-level languages, such as {LISP}, which employ a garbage collector (see {GC}). Also called a {stale pointer bug}. See also {precedence lossage}, {smash the stack}, {fandango on core}, {memory leak}, {memory smash}, {overrun screw}, {spam}.

   Historical note: Though this term is nowadays associated with
   C programming, it was already in use in a very similar sense in the
   Algol-60 and FORTRAN communities in the 1960s.

:all-elbows: /adj./ [MS-DOS] Of a TSR (terminate-and-stay-resident) IBM PC program, such as the N pop-up calendar and calculator utilities that circulate on {BBS} systems: unsociable. Used to describe a program that rudely steals the resources that it needs without considering that other TSRs may also be resident. One particularly common form of rudeness is lock-up due to programs fighting over the keyboard interrupt. See {rude}, also {mess-dos}.

:alpha particles: /n./ See {bit rot}.

:alt: /awlt/ 1. /n./ The alt shift key on an IBM PC or {clone} keyboard; see {bucky bits}, sense 2 (though typical PC usage does not simply set the 0200 bit). 2. /n./ The `clover' or `Command' key on a Macintosh; use of this term usually reveals that the speaker hacked PCs before coming to the Mac (see also {feature key}). Some Mac hackers, confusingly, reserve `alt' for the Option key (and it is so labeled on some Mac II keyboards). 3. /n.,obs/. [PDP-10; often capitalized to ALT] Alternate name for the ASCII ESC character (ASCII 0011011), after the keycap labeling on some older terminals; also `altmode' (/awlt'mohd/). This character was almost never pronounced `escape' on an ITS system, in {TECO}, or under TOPS-10 — always alt, as in "Type alt alt to end a TECO command" or "alt-U onto the system" (for "log onto the [ITS] system"). This usage probably arose because alt is more convenient to say than `escape', especially when followed by another alt or a character (or another alt *and* a character, for that matter). 4. The alt hierarchy on Usenet, the tree of newsgroups created by users without a formal vote and approval procedure. There is a myth, not entirely implausible, that alt is acronymic for "anarchists, lunatics, and terrorists"; but in fact it is simply short for "alternative".

:alt bit: /awlt bit/ [from alternate] /adj./ See {meta bit}.

:altmode: /n./ Syn. {alt} sense 3.

:Aluminum Book: /n./ [MIT] "Common LISP: The Language", by Guy L. Steele Jr. (Digital Press, first edition 1984, second edition 1990). Note that due to a technical screwup some printings of the second edition are actually of a color the author describes succinctly as "yucky green". See also {{book titles}}.

:amoeba: /n./ Humorous term for the Commodore Amiga personal
   computer.

:amp off: /vt./ [Purdue] To run in {background}. From the
   Unix shell `&' operator.

:amper: /n./ Common abbreviation for the name of the ampersand
   (`&', ASCII 0100110) character. See {{ASCII}} for other synonyms.

:angle brackets: /n./ Either of the characters `<' (ASCII
   0111100) and `>' (ASCII 0111110) (ASCII less-than or
   greater-than signs). Typographers in the {Real World} use angle
   brackets which are either taller and slimmer (the ISO `Bra' and
   `Ket' characters), or significantly smaller (single or double
   guillemets) than the less-than and greater-than signs.
   See {broket}, {{ASCII}}.

:angry fruit salad: /n./ A bad visual-interface design that
   uses too many colors. (This term derives, of course, from the
   bizarre day-glo colors found in canned fruit salad.) Too often one
   sees similar effects from interface designers using color window
   systems such as {X}; there is a tendency to create displays that
   are flashy and attention-getting but uncomfortable for long-term
   use.

:annoybot: /*-noy-bot/ /n./ [IRC] See {robot}.

:ANSI: /an'see/ 1. /n./ [techspeak] The American National
   Standards Institute. ANSI, along with the International
Organization
   for Standards (ISO), standardized the C programming language (see
   {K&R}, {Classic C}), and promulgates many other important
   software standards. 2. /n./ [techspeak] A terminal may be said to
be
   `ANSI' if it meets the ANSI X.364 standard for terminal control.
   Unfortunately, this standard was both over-complicated and too
   permissive. It has been retired and replaced by the ECMA-48
   standard, which shares both flaws. 3. /n./ [BBS jargon] The set of
   screen-painting codes that most MS-DOS and Amiga computers accept.
   This comes from the ANSI.SYS device driver that must be loaded on
   an MS-DOS computer to view such codes. Unfortunately, neither DOS
   ANSI nor the BBS ANSIs derived from it exactly match the ANSI X.364
   terminal standard. For example, the ESC-[1m code turns on the bold
   highlight on large machines, but in IBM PC/MS-DOS ANSI, it turns on
   `intense' (bright) colors. Also, in BBS-land, the term `ANSI' is
   often used to imply that a particular computer uses or can emulate
   the IBM high-half character set from MS-DOS. Particular use
   depends on context. Occasionally, the vanilla ASCII character set
   is used with the color codes, but on BBSs, ANSI and `IBM
   characters' tend to go together.

:AOS: 1. /aws/ (East Coast), /ay'os/ (West Coast) /vt. obs./
   To increase the amount of something. "AOS the campfire."
   [based on a PDP-10 increment instruction] Usage:
   considered silly, and now obsolete. Now largely supplanted by
   {bump}. See {SOS}. 2. /n./ A {{Multics}}-derived OS
   supported at one time by Data General. This was pronounced
   /A-O-S/ or /A-os/. A spoof of the standard AOS system
   administrator's manual ("How to Load and Generate your AOS
   System") was created, issued a part number, and circulated as
   photocopy folklore; it was called "How to Goad and Levitate
   your CHAOS System". 3. /n./ Algebraic Operating System, in
reference
   to those calculators which use infix instead of postfix (reverse
   Polish) notation. 4. A {BSD}-like operating system for the IBM
   RT.

Historical note: AOS in sense 1 was the name of a {PDP-10} instruction that took any memory location in the computer and added 1 to it; AOS meant `Add One and do not Skip'. Why, you may ask, does the `S' stand for `do not Skip' rather than for `Skip'? Ah, here was a beloved piece of PDP-10 folklore. There were eight such instructions: AOSE added 1 and then skipped the next instruction if the result was Equal to zero; AOSG added 1 and then skipped if the result was Greater than 0; AOSN added 1 and then skipped if the result was Not 0; AOSA added 1 and then skipped Always; and so on. Just plain AOS didn't say when to skip, so it never skipped.

For similar reasons, AOJ meant `Add One and do not Jump'. Even more bizarre, SKIP meant `do not SKIP'! If you wanted to skip the next instruction, you had to say `SKIPA'. Likewise, JUMP meant `do not JUMP'; the unconditional form was JUMPA. However, hackers never did this. By some quirk of the 10's design, the {JRST} (Jump and ReSTore flag with no flag specified) was actually faster and so was invariably used. Such were the perverse mysteries of assembler programming.

:app: /ap/ /n./ Short for `application program', as opposed to a systems program. Apps are what systems vendors are forever chasing developers to create for their environments so they can sell more boxes. Hackers tend not to think of the things they themselves run as apps; thus, in hacker parlance the term excludes compilers, program editors, games, and messaging systems, though a user would consider all those to be apps. (Broadly, an app is often a self-contained environment for performing some well-defined task such as `word processing'; hackers tend to prefer more general-purpose tools.) See {killer app}; oppose {tool}, {operating system}.

:arena: [Unix] /n./ The area of memory attached to a process by `brk(2)' and `sbrk(2)' and used by `malloc(3)' as dynamic storage. So named from a `malloc: corrupt arena' message emitted when some early versions detected an impossible value in the free block list. See {overrun screw}, {aliasing bug}, {memory leak}, {memory smash}, {smash the stack}.

:arg: /arg/ /n./ Abbreviation for `argument' (to a function), used so often as to have become a new word (like `piano' from `pianoforte'). "The sine function takes 1 arg, but the arc-tangent function can take either 1 or 2 args." Compare {param}, {parm}, {var}.

:ARMM: /n./ [acronym, `Automated Retroactive Minimal Moderation'] A Usenet robot created by Dick Depew of Munroe Falls, Ohio. ARMM was intended to automatically cancel posts from anonymous-posting sites. Unfortunately, the robot's recognizer for anonymous postings triggered on its own automatically-generated control messages! Transformed by this stroke of programming ineptitude into a monster of Frankensteinian proportions, it broke loose on the night of March 31, 1993 and proceeded to {spam} news.admin.policy with a recursive explosion of over 200 messages.

ARMM's bug produced a recursive {cascade} of messages each of which mechanically added text to the ID and Subject and some other headers of its parent. This produced a flood of messages in which each header took up several screens and each message ID and subject line got longer and longer and longer.

Reactions varied from amusement to outrage. The pathological messages crashed at least one mail system, and upset people paying line charges for their Usenet feeds. One poster described the ARMM debacle as "instant Usenet history" (also establishing the term {despew}), and it has since been widely cited as a cautionary example of the havoc the combination of good intentions and incompetence can wreak on a network. Compare {Great Worm, the}; {sorcerer's apprentice mode}. See also {software laser}, {network meltdown}.

:armor-plated: /n./ Syn. for {bulletproof}.

:asbestos: /adj./ Used as a modifier to anything intended to protect one from {flame}s; also in other highly {flame}-suggestive usages. See, for example, {asbestos longjohns} and {asbestos cork award}.

:asbestos cork award: /n./ Once, long ago at MIT, there was a {flamer} so consistently obnoxious that another hacker designed, had made, and distributed posters announcing that said flamer had been nominated for the `asbestos cork award'. (Any reader in doubt as to the intended application of the cork should consult the etymology under {flame}.) Since then, it is agreed that only a select few have risen to the heights of bombast required to earn this dubious dignity — but there is no agreement on *which* few.

:asbestos longjohns: /n./ Notional garments donned by {Usenet} posters just before emitting a remark they expect will elicit {flamage}. This is the most common of the {asbestos} coinages. Also `asbestos underwear', `asbestos overcoat', etc.

:ASCII:: /as'kee/ /n./ [acronym: American Standard Code for
   Information Interchange] The predominant character set encoding of
   present-day computers. The modern version uses 7 bits for each
   character, whereas most earlier codes (including an early version
   of ASCII) used fewer. This change allowed the inclusion of
   lowercase letters — a major {win} — but it did not provide
   for accented letters or any other letterforms not used in English
   (such as the German sharp-S
   or the ae-ligature
   which is a letter in, for example, Norwegian). It could be worse,
   though. It could be much worse. See {{EBCDIC}} to understand how.

Computers are much pickier and less flexible about spelling than humans; thus, hackers need to be very precise when talking about characters, and have developed a considerable amount of verbal shorthand for them. Every character has one or more names — some formal, some concise, some silly. Common jargon names for ASCII characters are collected here. See also individual entries for {bang}, {excl}, {open}, {ques}, {semi}, {shriek}, {splat}, {twiddle}, and {Yu-Shiang Whole Fish}.

This list derives from revision 2.3 of the Usenet ASCII pronunciation guide. Single characters are listed in ASCII order; character pairs are sorted in by first member. For each character, common names are given in rough order of popularity, followed by names that are reported but rarely seen; official ANSI/CCITT names are surrounded by brokets: <>. Square brackets mark the particularly silly names introduced by {INTERCAL}. The abbreviations "l/r" and "o/c" stand for left/right and "open/close" respectively. Ordinary parentheticals provide some usage information.

!
     Common: {bang}; pling; excl; shriek; <exclamation mark>. Rare:
     factorial; exclam; smash; cuss; boing; yell; wow; hey; wham;
     eureka; [spark-spot]; soldier.

"
     Common: double quote; quote. Rare: literal mark; double-glitch;
     <quotation marks>; <dieresis>; dirk; [rabbit-ears]; double prime.

#
     Common: number sign; pound; pound sign; hash; sharp; {crunch};
     hex; [mesh]. Rare: grid; crosshatch; octothorpe; flash;
     <square>, pig-pen; tictactoe; scratchmark; thud; thump; {splat}.

$
     Common: dollar; <dollar sign>. Rare: currency symbol; buck;
     cash; string (from BASIC); escape (when used as the echo of ASCII
     ESC); ding; cache; [big money].

%
     Common: percent; <percent sign>; mod; grapes. Rare:
     [double-oh-seven].

&
     Common: <ampersand>; amper; and. Rare: address (from C);
     reference (from C++); andpersand; bitand; background (from
     `sh(1)'); pretzel; amp. [INTERCAL called this `ampersand'; what
     could be sillier?]

'
     Common: single quote; quote; <apostrophe>. Rare: prime; glitch;
     tick; irk; pop; [spark]; <closing single quotation mark>; <acute
     accent>.

( )

Common: l/r paren; l/r parenthesis; left/right; open/close; paren/thesis; o/c paren; o/c parenthesis; l/r parenthesis; l/r banana. Rare: so/already; lparen/rparen; <opening/closing parenthesis>; o/c round bracket, l/r round bracket, [wax/wane]; parenthisey/unparenthisey; l/r ear.

*
     Common: star; [{splat}]; <asterisk>. Rare: wildcard; gear;
     dingle; mult; spider; aster; times; twinkle; glob (see {glob});
     {Nathan Hale}.

+
     Common: <plus>; add. Rare: cross; [intersection].

,
     Common: <comma>. Rare: <cedilla>; [tail].

-
     Common: dash; <hyphen>; <minus>. Rare: [worm]; option; dak;
     bithorpe.

.
     Common: dot; point; <period>; <decimal point>. Rare: radix
     point; full stop; [spot].

/
     Common: slash; stroke; <slant>; forward slash. Rare: diagonal;
     solidus; over; slak; virgule; [slat].

:
     Common: <colon>. Rare: dots; [two-spot].

;
     Common: <semicolon>; semi. Rare: weenie; [hybrid], pit-thwong.

< >
     Common: <less/greater than>; bra/ket; l/r angle; l/r angle
     bracket; l/r broket. Rare: from/{into, towards}; read from/write
     to; suck/blow; comes-from/gozinta; in/out; crunch/zap (all from
     UNIX); [angle/right angle].

=
     Common: <equals>; gets; takes. Rare: quadrathorpe; [half-mesh].

?
     Common: query; <question mark>; {ques}. Rare: whatmark; [what];
     wildchar; huh; hook; buttonhook; hunchback.

@
     Common: at sign; at; strudel. Rare: each; vortex; whorl;
     [whirlpool]; cyclone; snail; ape; cat; rose; cabbage; <commercial
     at>.

V
     Rare: [book].

[ ]
     Common: l/r square bracket; l/r bracket; <opening/closing
     bracket>; bracket/unbracket. Rare: square/unsquare; [U turn/U
     turn back].

\
     Common: backslash; escape (from C/UNIX); reverse slash; slosh;
     backslant; backwhack. Rare: bash; <reverse slant>; reversed
     virgule; [backslat].

^
     Common: hat; control; uparrow; caret; <circumflex>. Rare:
     chevron; [shark (or shark-fin)]; to the (`to the power of');
     fang; pointer (in Pascal).

_
     Common: <underline>; underscore; underbar; under. Rare: score;
     backarrow; skid; [flatworm].

`
     Common: backquote; left quote; left single quote; open quote;
     <grave accent>; grave. Rare: backprime; [backspark];
     unapostrophe; birk; blugle; back tick; back glitch; push;
     <opening single quotation mark>; quasiquote.

{ }
     Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
     bracket/brace; l/r curly bracket/brace; <opening/closing brace>.
     Rare: brace/unbrace; curly/uncurly; leftit/rytit; l/r squirrelly;
     [embrace/bracelet].

|
     Common: bar; or; or-bar; v-bar; pipe; vertical bar. Rare:
     <vertical line>; gozinta; thru; pipesinta (last three from UNIX);
     [spike].

~
     Common: <tilde>; squiggle; {twiddle}; not. Rare: approx; wiggle;
     swung dash; enyay; [sqiggle (sic)].

   The pronunciation of `#' as `pound' is common in the U.S.
   but a bad idea; {{Commonwealth Hackish}} has its own, rather more
   apposite use of `pound sign' (confusingly, on British keyboards
   the pound graphic
   happens to replace `#'; thus Britishers sometimes
   call `#' on a U.S.-ASCII keyboard `pound', compounding the
   American error). The U.S. usage derives from an old-fashioned
   commercial practice of using a `#' suffix to tag pound weights
   on bills of lading. The character is usually pronounced `hash'
   outside the U.S. There are more culture wars over the correct
   pronunciation of this character than any other, which has led to
   the {ha ha only serious} suggestion that it be pronounced
   `shibboleth' (see Judges 12.6 in a Christian Bible).

   The `uparrow' name for circumflex and `leftarrow' name for
   underline are historical relics from archaic ASCII (the 1963
   version), which had these graphics in those character positions
   rather than the modern punctuation characters.

The `swung dash' or `approximation' sign is not quite the same as tilde in typeset material but the ASCII tilde serves for both (compare {angle brackets}).

Some other common usages cause odd overlaps. The `#', `$', `>', and `&' characters, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for hexadecimal constants (in particular, `#' in many assembler-programming cultures, `$' in the 6502 world, `>' at Texas Instruments, and `&' on the BBC Micro, Sinclair, and some Z80 machines). See also {splat}.

The inability of ASCII text to correctly represent any of the world's other major languages makes the designers' choice of 7 bits look more and more like a serious {misfeature} as the use of international networks continues to increase (see {software rot}). Hardware and software from the U.S. still tends to embody the assumption that ASCII is the universal character set and that characters have 7 bits; this is a a major irritant to people who want to use a character set suited to their own languages. Perversely, though, efforts to solve this problem by proliferating `national' character sets produce an evolutionary pressure to use a *smaller* subset common to all those in use.

:ASCII art: /n./ The fine art of drawing diagrams using the ASCII character set (mainly `|', `-', `/', `\', and `+'). Also known as `character graphics' or `ASCII graphics'; see also {boxology}. Here is a serious example:

         o——)||(—+—|<——+ +————-o + D O
           L )||( | | | C U
         A I )||( +—>|-+ | +-\/\/-+—o - T
         C N )||( | | | | P
           E )||( +—>|-+—)—-+—)|—+-o U
              )||( | | | GND T
         o——)||(—+—|<——+—————+

         A power supply consisting of a full wave rectifier circuit
         feeding a capacitor input filter circuit

And here are some very silly examples:

       |\/\/\/| ____/| ___ |\_/| ___
       | | \ o.O| ACK! / \ |` '| / \
       | | =()= THPHTH! / \/ \/ \
       | (o)(o) U / \
       C
) (__) \/\/\/\ _____ /\/\/\/
       | ,___| (oo) \/ \/
       | / \/———-\ U (__)
      /____\ || | \ /—-V `v'- oo )
     / \ ||—-W|| * * |—| || |`. |_/\

                    //-o-\\
             ____—-=======—-____
         ====___\ /.. ..\ /___==== Klingons rule OK!
       // —-\__O__/—- \\
       \\ //

   There is an important subgenre of ASCII art that puns on the
   standard character names in the fashion of a rebus.

+————————————————————————————+ | ^^^^^^^^^^^^ | | ^^^^^^^^^^^ ^^^^^^^^^ | | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ | | ^^^^^^^ B ^^^^^^^^^ | | ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ | +————————————————————————————+ " A Bee in the Carrot Patch "

Within humorous ASCII art, there is for some reason an entire flourishing subgenre of pictures of silly cows. Four of these are reproduced in the silly examples above, here are three more:

              (__) (__) (__)
              (\/) ($$) (**)
       /———-\/ /———-\/ /———-\/
      / | 666 || / |=====|| / | ||
     * ||——|| * ||——|| * ||——||
        ~~ ~~ ~~ ~~ ~~ ~~
     Satanic cow This cow is a Yuppie Cow in love

Finally, here's a magnificent example of ASCII art depicting an
Edwardian train station in Dunedin, New Zealand:

                                       .-.
                                      /___\
                                      |___|
                                      |][|
                                      / I \
                                   JL/ | \JL
        .-. i () | () i .-.
        |
| .^. /\ LJ=======LJ /\ .^. ||
     .
/___\._./___\...._.L_J_/.-. .-.\_L_J....._/___\._./___\..._
            ., |-,-| ., L_J || [I] || L_J ., |-,-| ., .,
            JL |-O-| JL L_J%%%%%%%%%%%%%%%L_J JL |-O-| JL JL
     IIIIII_HH_'-'-'_HH_IIIIII||=======H=======||IIIIII_HH_'-'-'_HH_IIIIII_HH_
     ———-[]———-[]———-[]——\.=I=./——[]———-[]———-[]————[]-
      /\ ||\\I//|| /\ [] []/_L_J_\[] [] /\ ||\\I//|| /\ ||\
      |__| ||=/|\=|| |__||| _L_L_J_J_ |||__| ||=/|\=|| |__| ||-
      |__| |||__|__||| |__[___]__—__===__—__[___]__| |||__|__||| |__| |||
     IIIIIII[]IIIII[]IIIIIL___J__II__|_|__II__L___JIIIII[]IIIII[]IIIIIIII[_]
      \I/ [_]\I/[_] \I[]\II/[]\\I//[]\II/[]\I/ [_]\I/[_] \I/ [_]
     ./ \.L_J/ \L_J./ L_JI I[]/ \[]I IL_J \.L_J/ \L_J./ \.L_J
     | |L_J| |L_J| L_J| |[]| |[]| |L_J |L_J| |L_J| |L_J
     |_____JL_JL___JL_JL____|-|| |[]| |[]| ||-|_____JL_JL___JL_JL_____JL_J

   There is a newsgroup, alt.ascii.art, devoted to this
   genre; however, see also {warlording}.

:ASCIIbetical order: /as'kee-be'-t*-kl or'dr/ /adj.,n./ Used to indicate that data is sorted in ASCII collated order rather than alphabetical order. This lexicon is sorted in something close to ASCIIbetical order, but with case ignored and entries beginning with non-alphabetic characters moved to the end.

:atomic: /adj./ [from Gk. `atomos', indivisible] 1. Indivisible; cannot be split up. For example, an instruction may be said to do several things `atomically', i.e., all the things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used esp. to convey that an operation cannot be screwed up by interrupts. "This routine locks the file and increments the file's semaphore atomically." 2. [primarily techspeak] Guaranteed to complete successfully or not at all, usu. refers to database transactions. If an error prevents a partially-performed transaction from proceeding to completion, it must be "backed out," as the database must not be left in an inconsistent state.

Computer usage, in either of the above senses, has none of the connotations that `atomic' has in mainstream English (i.e. of particles of matter, nuclear explosions etc.).

:attoparsec: /n./ About an inch. `atto-' is the standard SI prefix for multiplication by 10^(-18). A parsec (parallax-second) is 3.26 light-years; an attoparsec is thus 3.26 * 10^(-18) light years, or about 3.1 cm (thus, 1 attoparsec/{microfortnight} equals about 1 inch/sec). This unit is reported to be in use (though probably not very seriously) among hackers in the U.K. See {micro-}.

:autobogotiphobia: /aw'toh-boh-got`*-foh'bee-*/ /n./ See {bogotify}.

:automagically: /aw-toh-maj'i-klee/ /adv./ Automatically, but in a way that, for some reason (typically because it is too complicated, or too ugly, or perhaps even too trivial), the speaker doesn't feel like explaining to you. See {magic}. "The C-INTERCAL compiler generates C, then automagically invokes `cc(1)' to produce an executable."

   This term is quite old, going back at least to the mid-70s and
   probably much earlier. The word `automagic' occurred in
advertising
   (for a shirt-ironing gadget) as far back as the late 1940s.

:avatar: /n./ Syn. 1. Among people working on virtual reality
   and {cyberspace} interfaces, an "avatar" is an icon or
   representation of a user in a shared virtual reality. The term is
   sometimes used on {MUD}s. 2. [CMU, Tektronix] {root},
   {superuser}. There are quite a few Unix machines on which the
   name of the superuser account is `avatar' rather than `root'.
   This quirk was originated by a CMU hacker who disliked the term
   `superuser', and was propagated through an ex-CMU hacker at
   Tektronix.

:awk: /awk/ 1. /n./ [Unix techspeak] An interpreted language
   for massaging text data developed by Alfred Aho, Peter Weinberger,
   and Brian Kernighan (the name derives from their initials). It is
   characterized by C-like syntax, a declaration-free approach to
   variable typing and declarations, associative arrays, and
   field-oriented text processing. See also {Perl}. 2. n.
   Editing term for an expression awkward to manipulate through normal
   {regexp} facilities (for example, one containing a
   {newline}). 3. /vt./ To process data using `awk(1)'.

= B = =====

:back door: /n./ A hole in the security of a system deliberately left in place by designers or maintainers. The motivation for such holes is not always sinister; some operating systems, for example, come out of the box with privileged accounts intended for use by field service technicians or the vendor's maintenance programmers. Syn. {trap door}; may also be called a `wormhole'. See also {iron box}, {cracker}, {worm}, {logic bomb}.

Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. Ken Thompson's 1983 Turing Award lecture to the ACM admitted the existence of a back door in early Unix versions that may have qualified as the most fiendishly clever security hack of all time. In this scheme, the C compiler contained code that would recognize when the `login' command was being recompiled and insert some code recognizing a password chosen by Thompson, giving him entry to the system whether or not an account had been created for him.

Normally such a back door could be removed by removing it from the source code for the compiler and recompiling the compiler. But to recompile the compiler, you have to *use* the compiler — so Thompson also arranged that the compiler would *recognize when it was compiling a version of itself*, and insert into the recompiled compiler the code to insert into the recompiled `login' the code to allow Thompson entry — and, of course, the code to recognize itself and do the whole thing again the next time around! And having done this once, he was then able to recompile the compiler from the original sources; the hack perpetuated itself invisibly, leaving the back door in place and active but with no trace in the sources.

The talk that suggested this truly moby hack was published as "Reflections on Trusting Trust", "Communications of the ACM 27", 8 (August 1984), pp. 761—763 (text available at http://www.acm.org/classics). Ken Thompson has since confirmed that this hack was implemented and that the Trojan Horse code did appear in the login binary of a Unix Support group machine. Ken says the crocked compiler was never distributed. Your editor has heard two separate reports that suggest that the crocked login did make it out of Bell Labs, notably to BBN, and that it enabled at least one late-night login across the network by someone using the login name `kt'.

:backbone cabal: /n./ A group of large-site administrators who pushed through the {Great Renaming} and reined in the chaos of {Usenet} during most of the 1980s. The cabal {mailing list} disbanded in late 1988 after a bitter internal catfight.

:backbone site: /n./ A key Usenet and email site; one that processes a large amount of third-party traffic, especially if it is the home site of any of the regional coordinators for the Usenet maps. Notable backbone sites as of early 1993, when this sense of the term was beginning to pass out of general use due to wide availability of cheap Internet connections, included uunet and the mail machines at Rutgers University, UC Berkeley, {DEC}'s Western Research Laboratories, Ohio State University, and the University of Texas. Compare {rib site}, {leaf site}.

[1996 update: This term is seldom heard any more. The UUCP network world that gave it meaning has nearly disappeared; everyone is on the Internet now and network traffic is distributed in very different patterns. —ESR]

:backgammon:: See {bignum} (sense 3), {moby} (sense 4), and {pseudoprime}.

:background: /n.,adj.,vt./ To do a task `in background' is to do it whenever {foreground} matters are not claiming your undivided attention, and `to background' something means to relegate it to a lower priority. "For now, we'll just print a list of nodes and links; I'm working on the graph-printing problem in background." Note that this implies ongoing activity but at a reduced level or in spare time, in contrast to mainstream `back burner' (which connotes benign neglect until some future resumption of activity). Some people prefer to use the term for processing that they have queued up for their unconscious minds (a tack that one can often fruitfully take upon encountering an obstacle in creative work). Compare {amp off}, {slopsucker}.

Technically, a task running in background is detached from the terminal where it was started (and often running at a lower priority); oppose {foreground}. Nowadays this term is primarily associated with {{Unix}}, but it appears to have been first used in this sense on OS/360.

:backspace and overstrike: /interj./ Whoa! Back up. Used to suggest that someone just said or did something wrong. Common among APL programmers.

:backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ /n./ [CMU, Tektronix: from `backward compatibility'] A property of hardware or software revisions in which previous protocols, formats, layouts, etc. are irrevocably discarded in favor of `new and improved' protocols, formats, and layouts, leaving the previous ones not merely deprecated but actively defeated. (Too often, the old and new versions cannot definitively be distinguished, such that lingering instances of the previous ones yield crashes or other infelicitous effects, as opposed to a simple "version mismatch" message.) A backwards compatible change, on the other hand, allows old versions to coexist without crashes or error messages, but too many major changes incorporating elaborate backwards compatibility processing can lead to extreme {software bloat}. See also {flag day}.

:BAD: /B-A-D/ /adj./ [IBM: acronym, `Broken As Designed'] Said of a program that is {bogus} because of bad design and misfeatures rather than because of bugginess. See {working as designed}.

:Bad Thing: /n./ [from the 1930 Sellar & Yeatman parody "1066 And All That"] Something that can't possibly result in improvement of the subject. This term is always capitalized, as in "Replacing all of the 9600-baud modems with bicycle couriers would be a Bad Thing". Oppose {Good Thing}. British correspondents confirm that {Bad Thing} and {Good Thing} (and prob. therefore {Right Thing} and {Wrong Thing}) come from the book referenced in the etymology, which discusses rulers who were Good Kings but Bad Things. This has apparently created a mainstream idiom on the British side of the pond.

:bag on the side: /n./ [prob. originally related to a
   colostomy bag] An extension to an established hack that
   is supposed to add some functionality to the original. Usually
   derogatory, implying that the original was being overextended and
   should have been thrown away, and the new product is ugly,
   inelegant, or bloated. Also /v./ phrase, `to hang a bag on the
side
   [of]'. "C++? That's just a bag on the side of C …."
   "They want me to hang a bag on the side of the accounting
   system."

:bagbiter: /bag'bi:t-*r/ /n./ 1. Something, such as a program or a computer, that fails to work, or works in a remarkably clumsy manner. "This text editor won't let me make a file with a line longer than 80 characters! What a bagbiter!" 2. A person who has caused you some trouble, inadvertently or otherwise, typically by failing to program the computer properly. Synonyms: {loser}, {cretin}, {chomper}. 3. `bite the bag' /vi./ To fail in some manner. "The computer keeps crashing every five minutes." "Yes, the disk controller is really biting the bag." The original loading of these terms was almost undoubtedly obscene, possibly referring to the scrotum, but in their current usage they have become almost completely sanitized.

ITS's `lexiphage' program was the first and to date only known example of a program *intended* to be a bagbiter.

:bagbiting: /adj./ Having the quality of a {bagbiter}. "This bagbiting system won't let me compute the factorial of a negative number." Compare {losing}, {cretinous}, {bletcherous}, `barfucious' (under {barfulous}) and `chomping' (under {chomp}).

:balloonian variable: /n./ [Commodore users; perh. a deliberate phonetic mangling of `boolean variable'?] Any variable that doesn't actually hold or control state, but must nevertheless be declared, checked, or set. A typical balloonian variable started out as a flag attached to some environment feature that either became obsolete or was planned but never implemented. Compatibility concerns (or politics attached to same) may require that such a flag be treated as though it were {live}.

: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".