========= THIS IS THE JARGON FILE, VERSION 2.4.4 25 JAN 1991 ================= Introduction ************ This document is a collection of slang terms used by various subcultures of computer hackers. Though some technical material is included for background and flavor, it is not a technical dictionary; what we describe here is the language hackers use among themselves for fun, social communication and debate within their communities. The `hacker culture' is actually a loosely networked collection of subcultures that is nevertheless conscious of some important shared experiences, shared roots, and shared values. It has its own myths, heroes, villains, folk epics, in-jokes, taboos and dreams. Because hackers as a group are particularly creative people who define themselves partly by rejection of `normal' values and working habits, it has unusually rich and conscious traditions for an intentional culture less than thirty-five years old. Hackers, as a rule, love word-play and are very conscious in their use of language. Thus, a compilation of their slang is a particularly effective window into their culture --- and, in fact, this one is the latest version of an evolving compilation called the `Jargon File' maintained by hackers themselves for over fifteen years. This one (like its ancestors) is primarily a lexicon, but also includes `topic entries' which collect background or sidelight information on hacker culture that would be awkward to try to subsume under a single term. Though the format is that of a reference, it is also intended that the material be enjoyable to browse or read straight through. Even a complete outsider should find at least a chuckle on nearly every page, and much that is amusingly thought-provoking. But it is also true that hackers use humorous word-play to make strong, sometime combative statements about what they feel. Some of these entries reflect the views of opposing sides in disputes which have been genuinely passionate, and they deliberately reflect this. We have not tried to moderate or pretty up these disputes; rather we have attempted to ensure that *everyone's* sacred cows get gored, impartially. Compromise is not particularly a hackish virtue, but the honest presentation of divergent viewpoints is. A selection of longer items of hacker folklore and humor are included in appendix A. The `outside' reader's attention is particularly directed to Appendix B, the Portrait of J. Random Hacker. Appendix C is a bibliography of non-technical works which have either influenced or described the hacker culture. Because hackerdom is an intentional culture (one which each individual must choose consciously to join), one should not be surprised that the line between description and influence can become more than a little blurred. Earlier Jargon File versions have played a central role in spreading hacker language and the culture that goes with it to successively larger populations, and we hope and expect that this one will do likewise. Revision History ================ The original Jargon File was a collection of hacker slang from technical cultures including the MIT AI Lab, the Stanford AI lab (SAIL), the old ARPANET AI/LISP/PDP-10 communities, Carnegie-Mellon University (CMU), and Worcester Polytechnic Institute (WPI). The Jargon File (hereafter referred to as `jargon-1' or `the File') was begun by Raphael Finkel at Stanford in 1975, though some terms in it date back considerably earlier ( and some senses of , for instance, go back to the MIT Model Railroad Club and are are believed to date at least back to the early nineteen-sixties). The revisions of jargon-1 were all un-numbered and may be collectively considered `Version 1'. In 1976, Mark Crispin brought the File to MIT; he and Guy Steele then added a first wave of new entries. Richard Frankel dropped out of active participation shortly thereafter, and Don Woods became the SAIL contact for the file (which was subsequently kept in duplicate at SAIL and MIT, with periodic re-synchronizations). The file expanded by fits and starts until about 1983; Richard Stallman was prominent among the contributors, adding many MIT and ITS-related coinages. A late version of jargon-1, expanded with commentary for the mass market, was edited by Guy L. Steele into a book published in 1983 as `The Hacker's Dictionary' (Harper & Row CN 1082, ISBN 0-06-091082-8). The other jargon-1 editors (Raphael Finkel, Don Woods and Mark Crispin) contributed to the revision, as did also Richard M. Stallman and Geoff Goodfellow. This book is hereafter referred to as `Steele-1983'. It is now out of print. Shortly after the publication of Steele-1983 the File effectively stopped growing and changing. The PDP-10-centered cultures that had originally nourished it were dealt a serious blow by the cancellation of the Jupiter project at DEC. The AI-Lab culture died and its best and brightest dispersed; the File's compilers moved on to other things. By the mid-1980s the File's contents was dated, but the legend that had grown up around it never quite died out. The book and softcopies snarfed off the ARPANET circulated even in cultures far removed from MIT's; the content exerted a strong and continuing influence on hackish slang and humor. Even as the advent of the microcomputer and other trends fueled a tremendous expansion of hackerdom, the File (and related materials like the AI Koans in Appendix A) came to be seen as a sort of sacred epic, a hacker-culture Matter of Britain chronicling the heroic exploits of the Knights of the Lab. The pace of change in hackerdom at large accelerated tremendously, but the Jargon File passed from living document to icon and remained essentially untouched for seven years. This revision contains nearly the entire text of a late version of jargon-1 (a few obsolete PDP-10-related entries have been dropped following careful consultation with the editors of Steele-1983). It merges in about about 80% of the Steele-1983 text, omitting some framing material and a very few entries introduced in Steele-1983 which are now also obsolescent. This new version casts a wider net than the old jargon file; its aim is to cover not just AI but all the technical computing cultures wherein the true hacker-nature is manifested. More than half of the entries now derive from USENET and represent slang now current in the C and UNIX communities, but special efforts have been made to collect slang from other cultures including IBM-PC programmers, Mac fans and even the IBM mainframe world. Where a term can be attributred to a particular subculture or is known to have originated there, we have tried to so indicate. Here is a list of abbreviations used in etymologies: *Berkeley* University of California at Berkeley. *Cambridge* Cambridge University, England (*not* Cambridge, Mass!). *CMU* Carnegie-Mellon University *Commodore* Commodore Business Nachines. *Fidonet* See the entry. *IBM* International Business Machines *MIT* Massachusetts Institute of Technology; esp. the legendary MIT AI Lab culture of roughly 1971 to 1983. Some MITisms go back to the MIT Model Railroad Club of c.1960. *NYU* New York University. *Purdue* Purdue University. *SAIL* Stanford Artificial Intelliegence Laboratory. *Stanford* Stanford University. *Sun* Sun Microsystems. *UCLA* University of California at Los Angeles. *USENET* See the entry. *WPI* Worcester Polytechnic Institute, site of a very active community of PDP-10 hackers during the Seventies. *Xerox PARC* Xerox's Palo Alto Research Center, site of much pioneering research in user interface design and networking. *Yale* Yale University. Some other etymology abbreviations such as , , etc. refer to technical cultures surrounding specific operating systems, processors or other environments. Eric S. Raymond (eric@snark.thyrsus.com) maintains the new File with assistance from Guy L. Steele (gls@think.com); these are the persons primarily reflected in the File's editorial `we', though we take pleasure in acknowledging the special contribution of the other coauthors of Steele-1983. Please email all additions, corrections and correspondence relating to the jargon file to jargon@thyrsus.com (UUCP-only sites without connections to an autorouting smart site can use ...!uunet!snark!jargon). (Warning: other email addresses appear in this file *but are not guaranteed to be correct* later than the revision date on the first line. *Don't* email us if an attempt to reach your idol bounces --- we have no magic way of checking addresses or looking up people) Some snapshot of this on-line version will become the main text of a `New Hacker's Dictionary' possibly as early as Fall 1991. The maintainers are committed to updating the on-line version of the jargon file through and beyond paper publication, and will continue to make it available to archives and public-access sites as a trust of the hacker community. Here is a chronology of the recent on-line revisions: Version 2.1.1, Jun 12 1990: the jargon file comes alive again after a seven-year hiatus. Reorganization and massive additions were by Eric S. Raymond, approved by Guy Steele. Many items of UNIX, C, USENET and microcomputer-based slang were added at that time (as well as The Untimely Demise of Mabel The Monkey). Some obsolete usages (mostly PDP-10 derived) were moved to appendix B. Version 2.1.5, Nov 28 1990: changes and additions by ESR in response to numerous USENET submissions and comment from the First Edition coauthors. The bibliography (Appendix C) was also appended. Version 2.2.1, Dec 15 1990: most of the contents of the 1983 paper edition edited by Guy Steele was merged in. Many more USENET submissions added, including the International Style and material. This version had 9394 lines, 75954 words, 490501 chars, and 1046 entries. Version 2.3.1, Jan 03 1991: the great format change --- case is no longer smashed in lexicon keys and cross-references. A very few entries from jargon-1 which were basically straight tech-speak were deleted; this enabled the rest of Appendix B to be merged back into main text and the appendix replaced with the Portrait of J. Random Hacker. More USENET submissions were added. This version had 10728 lines, 85070 words, 558261 characters, and 1138 entries. Version 2.4.1, Jan 14 1991: the Story of Mel and many more USENET submissions merged in. More material on hackish writing habits added. Numerous typo fixes. This version had 12362 lines, 97819 words, 642899 characters, and 1239 entries. Version numbering: Read versions as ... Major version 1 is reserved for the `old' (ITS) Jargon File, jargon-1. Major version 2 encompasses revisions by ESR with assistance from GLS. Someday, the next maintainer will take over and spawn `version 3'. In general, later versions will either completely obsolesce or incorporate earlier versions, so there is generally no point in keeping old versions around. Our thanks to the other co-authors of Steele-1983 for oversight and assistance; also to all the USENETters who contributed entries and encouragement. Special thanks go to our Scandinavian correspondent Per Lindberg (per@front.se), author of the remarkable Swedish language 'zine `Hackerbladet', for bringing FOO! comics to our attention and smuggling one of the IBM hacker underground's own baby jargon files out to us. Also, much gratitude to ace hacker/linguist Joe Keane (jkg@osc.osc.com) for helping us improve the pronunciation guides; and to Maarten Litmath for generously allowing the inclusion of the ASCII pronunciation guide he formerly maintained. Finally, Mark Brader (msb@sq.sq.com) submitted many thoughtful comments and did yeoman service in catching typos and minor usage bobbles. Format For New Entries ====================== Try to conform to the format already being used --- definitions and cross-references in angle brackets, pronunciations in slashes, etymologies in square brackets, single-space after definition numbers and word classes, etc. Stick to the standard ASCII character set (no high-half characters or [nt]roff/TeX/Scribe escapes), as one of the versions generated from the master file is an info document that has to be viewable on a character tty. Please note that as of 2.3.1 the preferred format has changed rather dramatically; please *don't* all-caps your entry keys any more. Besides preserving case information, this enables the maintainers to process the File into a rather spiffy [nt]roff document with font switches via an almost trivial lex(1) program. This is all in aid of preventing the freely-available on-line document and the book from diverging. We are looking to expand the file's range of technical specialties covered. There are doubtless rich veins of jargon yet untapped in the scientific computing, graphics, and networking hacker communities; also in numerical analysis, computer architectures and VLSI design, language design, and many other related fields. Send us your slang! We are *not* interested in straight technical terms explained by textbooks or technical dictionaries unless an entry illuminates `underground' meanings or aspects not covered by official histories. We are also not interested in `joke' entries --- there is a lot of humor in the file but it must flow naturally out of the explanations of what hackers do and how they think. It is OK to submit items of slang you have originated if they have spread to the point of being used by people who are not personally acquainted with you. We prefer items to be attested by independent submission from two different sites. A few new definitions attached to entries are marked [proposed]. These are usually generalizations suggested by editors or USENET respondents in the process of commenting on previous definitions of those entries. These are *not* represented as established jargon. The jargon file will be regularly maintained and re-posted from now on and will include a version number. Read it, pass it around, contribute --- this is *your* monument! Jargon Construction =================== There are some standard methods of jargonification which became established quite early (i.e. before 1970), spreading from such sources as the MIT Model Railroad Club, the PDP-1 SPACEWAR hackers, and John McCarthy's original crew of LISPers. These include: Verb doubling: A standard construction in English is to double a verb and use it as an exclamation, such as "Bang, bang!" or "Quack, quack!". Most of these are names for noises. Hackers also double verbs as a concise, sometimes sarcastic comment on what the implied subject does. Also, a doubled verb is often used to terminate a conversation, in the process remarking on the current state of affairs or what the speaker intends to do next. Typical examples involve , , , , , : "The disk heads just crashed." "Lose, lose." "Mostly he talked about his latest crock. Flame, flame." "Boy, what a bagbiter! Chomp, chomp!" Some verb-doubled constructions have special meanings not immediately obvious from the verb. These have their own listings in the lexicon. Soundalike slang: Hackers will often make rhymes or puns in order to convert an ordinary word or phrase into something more interesting. It is considered particularly if the phrase is bent so as to include some other slang word; thus the computer hobbyist magazine `Dr. Dobb's Journal' is almost always referred to among hackers as `Dr. Frob's Journal' or simply `Dr. Frob's'. Terms of this kind that have been in fairly wide use include names for newspapers: Boston Herald American => Horrid (or Harried) American Boston Globe => Boston Glob San Francisco Chronicle => the Crocknicle New York Times => New York Slime However, terms like these are often made up on the spur of the moment. Standard examples include: Prime Time => Slime Time Data General => Dirty Genitals Government Property - Do Not Duplicate (seen on keys) => Government Duplicity - Do Not Propagate for historical reasons => for hysterical raisins Margaret Jacks Hall => Marginal Hacks Hall This is not really similar to the Cockney rhyming slang it has been compared to in the past, because Cockney substitutions are opaque whereas hacker rhyming slang is intentionally transparent. The -P convention: turning a word into a question by appending the syllable `P'; from the LISP convention of appending the letter `P' to denote a predicate (a Boolean-valued function). The question should expect a yes/no answer, though it needn't. (See T and NIL.) At dinnertime: Q: "Foodp?" A: "Yeah, I'm pretty hungry." or "T!" Q: "State-of-the-world-P?" A: (Straight) "I'm about to go home." A: (Humorous) "Yes, the world has a state." On the phone to Florida: Q: "State-p Florida?" A: "Been reading JARGON.TXT again, eh?" [One of the best of these is a Gosperism (i.e., due to Bill Gosper). When we were at a Chinese restaurant, he wanted to know whether someone would like to share with him a two-person-sized bowl of soup. His inquiry was: "Split-p soup?" --GLS] Overgeneralization: A very conspicuous feature of hackerspeak is the frequency with which names of program tools, command language primitives, and even assembler opcodes are applied to contexts outside of computing wherever hackers find amusing analogies to them. Thus, (to cite one of the best-known examples) UNIX hackers often for things rather than *searching* for them. Many of the lexicon entries are generalizations of exactly this kind. Hackers enjoy overgeneralization on the grammatical level as well. Many hackers love to take various words and add the wrong endings to them to make nouns and verbs, often by extending a standard rule to nonuniform cases (or vice versa). For example, because porous => porosity generous => generosity hackers happily generalize: mysterious => mysteriosity ferrous => ferrocity obvious => obviosity dubious => dubiosity Also, note that all nouns can be verbed. e.g.: "All nouns can be verbed", "I'll mouse it up", "Hang on while I clipboard it over", "I'm grepping the files". English as a whole is already heading in this direction (towards pure-positional grammar like Chinese); hackers are simply a bit ahead of the curve. Similarly, all verbs can be nouned. Thus: win => winnitude, winnage disgust => disgustitude hack => hackification Finally, note the prevalence of certain kinds of nonstandard plural forms. Anything ending in x may form plurals in -xen (see and in the main text). Even words ending in phonetic /k/ alone are sometimes treated this way; ex. `soxen' for a bunch of socks. Other funny plurals are `frobbotzim' for the plural of (see main text) and `Unices' and `Tenices' (rather than `Unixes' and `Tenexes'; see , in main text). But note that `Unixen' and `Tenexen' are *never* used; it has been suggested that this is because -ix and -ex are latin singular endings that attract a Latinate plural. The pattern here, as with other hackish grammatical quirks, is generalization of an inflectional rule which (in English) is either an import or a fossil (such as Hebrew plural in `-im', or the Anglo-Saxon plural in `en') to cases where it isn't normally considered to apply. This is not `poor grammar', as hackers are generally quite well aware of what they are doing when they distort the language. It is grammatical creativity, a form of playfulness. Spoken inarticulations: Words such as `mumble', `sigh', and `groan' are spoken in places where their referent might more naturally be used. It has been suggested that this usage derives from the impossibility of representing such noises on a comm link or in email. Another expression sometimes heard is "Complain!", meaning "I have a complaint!" Of the five listed constructions, verb doubling, peculiar noun formations, and (especially!) spoken inarticulations have become quite general; but rhyming slang is still largely confined to MIT and other large universities, and the P convention is found only where LISPers flourish. Finally, note that many words in hacker jargon have to be understood as members of sets of comparatives. This is especially true of the adjectives and nouns used to describe the beauty and functional quality of code. Here is an approximately correct spectrum: MONSTROSITY BRAIN-DAMAGE SCREW BUG LOSE MISFEATURE CROCK KLUGE HACK WIN FEATURE ELEGANCE PERFECTION The last is spoken of as a mythical absolute, approximated but never actually attained. Coinages for describing seem to call forth the very finest in hackish linguistic inventiveness; it has been truly said that " have more words for equipment failures than Inuit have for snow", or than Yiddish has for obnoxious people. Hacker Speech Style =================== Features extremely precise diction, careful word choice, a relatively large working vocabulary, and relatively little use of contractions or `street slang'. Dry humor, irony, puns, and a mildly flippant attitude are highly valued --- but an underlying seriousness and intelligence is essential. One should use just enough jargon to communicate precisely and identify oneself as `in the culture'; overuse of jargon or a breathless, excessively gung-ho attitude are considered tacky and the mark of a loser. This speech style is a variety of the precisionist English normally spoken by scientists, design engineers, and academics in technical fields. Unlike the jargon construction methods, it is fairly constant throughout hackerdom. It has been observed that many hackers are confused by negative questions --- or, at least, the people they're talking to are often confused by the sense of their answers. The problem is that they've done so much coding that distinguishes between if (going) { and if (!going) { that when they parse the question "Aren't you going?" it seems to be asking the opposite question from "Are you going?", and so merits an answer in the opposite sense. This confuses English-speaking non-hackers because they were taught to answer as though the negative part weren't there (in some other languages, including Chinese and Japanese, the hackish interpretation is standard and the problem wouldn't arise). Hackers often find themselves wishing for a word like French `si' or German `doch' with which one could unambiguously answer `yes' to a negative question. For similar reasons, English-speaking hackers almost never use a double negative even if they live in a region where colloquial usage allows it. The thought of uttering something that logically ought to be an affirmative knowing it will be mis-parsed as a negative tends to disturb them. Hacker Writing Style ==================== Hackers tend to use quotes as balanced delimiters like parens, much to the dismay of American editors. Thus, if "Jim is going" is a phrase, and so is "Bill runs" and "Spock groks", then hackers generally prefer to write: "Jim is going", "Bill runs", and "Spock groks". This is incorrect according to standard American usage (which would put the continuation commas and the final period inside the string quotes) but it is counter-intuitive to hackers to mutilate literal strings with characters that don't belong in them. Given the sorts of examples that can come up in discussing programming, American-style quoting can even be grossly misleading. When communicating command lines or small pieces of code extra characters can be a real pain in the neck. For example: First do "foo -acrZ tempo | bar -," then... is different from First do "foo -acrZ tempo | bar -", then... from a computer's point of view. While the first is correct according to the stylebooks and would probably be parsed correctly by the a human recipient, the second is unambiguous. The Jargon File follows hackish usage consistently throughout. Interestingly, a similar style is now preferred practice in Great Britain, though the older style (which became established for typographical reasons having to do with the aesthetics of comma and quotes in typeset text) is still accepted there. Hart's Rules and the Oxford Dictionary for Writers and Editors call it `new' or `logical' style quoting. Another hacker quirk about quoting style is a tendency to distinguish between `marking' quotes and "speech" quotes; that is, to use British-style single quotes for emphasis and reserve double quotes for actual reports of speach or text included from elsewhere. Interestingly, some authorities describe this as correct general usage, but mainstream American English has gone to using double-quotes thoroughly enough that hacker usage appears marked [and, in fact, I thought this was a personal quirk of mine until I checked with USENET -- ESR]. One further permutation that is definitely *not* standard is a hackish tendency to do marking quotes by using apostrophes in pairs; that is, 'like this'. This is modelled on string and character literal syntax in some programming languages. There seems to be a meta-rule behind these nonstandard hackerisms to the effect that precision of expression is more important than conformance to traditional rules; where the latter create ambiguity or lose information they can be discarded without a second thought. It is notable in this respect that other hackish inventions (for example, in vocabulary) also tend to carry very precise shades of meaning even when constructed to appear slangy and loose. There is another respect in which hackish usage often parallels British usage; it tends to choose British spellings whenever these seem more phonetically consistent than the American ones. For example, a hacker is likely to insist on (British-style) `signalling' rather than American-standard `signaling' on the grounds that the latter ought to be pronounced /sig'nay'ling/ rather than /sig'n@-ling/. Similarly, `travelling' is preferred to `traveling'. Hackers have also developed a number of punctuation and emphasis conventions adapted to single-font all-ASCII communications links, and these are occasionally carried over into written documents even when normal means of font changes, underlining, and the like are available. One of these is that TEXT IN ALL CAPS IS INTERPRETED AS `LOUD', and this becomes such a synesthetic reflex that a person who goes to caps-lock while in (see main text) may be asked to "stop shouting, please, you're hurting my ears!". Also, it is common to use bracketing with asterisks to signify emphasis, as in "What the *hell*?" (mote that this interferes with the common use of asterisk suffix is a footnote mark). An alternative form uses paired slash and backslash: "What the \hell/?". The latter is never used in text documents, as many formatters treat backslash as an and may do inappropriate things with the following text. Also note that there is a semantic difference between *emphasis like this*, (which emphasizes the phrase as a whole) and *emphasis* *like* *this* (which suggests the writer speaking very slowly and distinctly, as if to a very young child or mentallly impaired person). In a formula, `*' signifies multiplication, and two asterisks in a row are a shorthand for exponentiation (this derives from FORTRAN). Thus, one might write `2 ** 8 = 256'. Another notation for exponentiation one sees more frequently uses the caret (^, ASCII 1011110); one might write instead `2 ^ 8 = 256'. This goes all the way back to Algol-60, which used the archaic ASCII `up-arrow' that later became caret; this was picked up by Kemeny & Kurtz's original BASIC, which in turn influenced the design of the bc(1) and dc(1) UNIX tools that have probably done most to reinforce the convention on USENET. The notation is mildly confusing to C programmers, because `^' means logical in C. Despite this, it was favored 3--1 over ** in a late-1990 snapshot of USENET. It is used consistently in this text. Another on-line convention, used especially for very large or very small numbers, is taken from C (which derived it from FORTRAN). This is a form of `scientific notation' using `e' to replace `*10^'; for example, one year is about 3e7 seconds long. The tilde (`~') is commonly used in its mathematical sense of `approximately'; that is, `~50' means "about fifty". Underlining is often suggested by substituting underscores for spaces and prepending and appending one underscore to the underlined phrase. Example: "It is often alleged that Haldeman wrote _The_Forever_War_ in response to Robert Heinlein's earlier _Starship_Troopers_" On USENET and in the world common C boolean operators (`|, !, ==, !=, >, <') are often combined with English by analogy with mainstream usage of &. The Pascal not-equals, `<>', is also recognized. The use of prefix `!' as a loose synonym for `not-' or `no-' is particularly common; thus, `!clue' is read `no-clue' or `clueless'. Another habit is that of using enclosure to genericize a term; this derives from conventions used in . Uses like the following are common: So this walks into a bar one day, and... In flat-ASCII renderings of the Jargon File, you will see <> used in exactly this way to bracket words which themselves have entries in the File. This isn't done all the time for every such word, but it is done everywhere that the reader needs specially to be aware that the term has a jargon meaning and might wish to refer to its entry. One quirk that shows up frequently in the style of UNIX hackers in particular is a tendency for some things which are normally all-lowercase (including usernames and the names of commands and C routines) to remain uncapitalized even when they occur at the beginning of sentences. It is clear that, for many hackers, the case of such identifiers becomes a part of their internal representation (the "spelling") and cannot be overridden without mental effort (an appropriate reflex because UNIX and C both distinguish cases and confusing them can lead to lossage). Another way of dealing with this is simply to avoid using these constructions at the beginning of sentences. Finally, it should be noted that hackers exhibit much less reluctance to use multiply-nested parentheses than is normal in English. Partly this is almost certainly due to influence from LISP ((which uses deeply nested parentheses (like this) in its syntax) (a lot (see?))), but it has also been suggested that a more basic hacker trait of enjoying playing with complexity and pushing systems to their limits is in operation. One area where hackish conventions for on-line writing are still in some flux is the marking of included material from earlier messages --- what would be called `block quotations' in ordinary English. From the usual typographic convention employed for these (smaller font at an extra indent) there derived the notation of included text being indented by one ASCII TAB (0001001) character, which under UNIX and many other environments gives the appearance of an 8-space indent. Early mail and netnews readers had no facility for including messages, this way so people had to paste in copy manually. BSD `Mail(1)' was the first message agent to support inclusion, and early USENETters emulated its style. But the TAB character tended to push included text too far to the right (especially in multiply nested inclusions), leading to ugly wraparounds. After a brief period of confusion (during which an inclusion leader consisting of three or four spaces became established in EMACS and a few mailers), the use of leading ">" or "> " became standard, perhaps because the character suggests movement to the right (alternatively, it may derve from the ">" that some V7 UNIX mailers use to quote leading instances of "From" in text). Inclusions within inclusions keep their > leaders, so the `nesting level' of a quotation is visuallly apparent. Now, it was rapidly observed that the practice of including text helped solve what had been a major nuisance on USENET: the fact that articles do not arrive at different sites in the same order. Careless posters used to post articles that would begin with, or even consist entirely of, "No, that's wrong", or "I agree" or the like. It was hard to see who was responding to what. Consequently, in about 1984, new news posting software was created with a facility to automatically include the text of a previous article, marked with "> " or whatever the poster chose. The poster was expected to delete all but the relevant lines. The result has been that, now, careless posters post articles containing the *entire* text of a preceding article, *followed* only by "No, that's wrong" or "I agree". Many people feel that this cure is worse than the original disease, and there soon appeared newsreaders software designed to let the reader skip over included text if desired. Today, some posting software rejects articles containing too many lines beginning with ">", but this too has led to undesirable workarounds (in particular, the deliberate use of nonstandard quote characters, which are visually confusing). Because the default mailers supplied with UNIX and other operating systems haven't evolved as quickly as human usage, the older conventions using a leading TAB or three or four spaces are still alive; however, >-inclusion is now clearly the preferred form in both netnews and mail. However, practice is still evolving. One variant style reported uses the leader "| " in place of "> " for extended quotations where original variations in indentation are being retained. One also sees different styles of quoting a number of authors in the same message: one (deprecated because it loses information) is "> " for everyone, another (the most common) is "> > > > ", "> > > ", etc. (or ">>>> ", ">>> ", etc., depending on line length and nesting depth) reflecting the original order of messages, and yet another is to use a different character for each author, say "> ", ": ", "| ", "} " (preserving nesting so that the inclusion order of messages is still apparent). Occasionally one sees a "# " leader used for quotations from *authoritative* sources such as standards documents; the intended connotation is to the root prompt. International Style =================== Although the Jargon File remains primarily a lexicon of hacker usage in American English, we have made some effort to get input from abroad. Though the hacker-speak of other languages often uses translations of English slang (often as transmitted to them by earlier Jargon File versions!) the local variations are interesting, and knowledge of them may be of some use to travelling hackers. There are some references to `Commonwealth English'. These are intended to describe some variations in hacker usage as reported in the English spoken in Great Britain and the Commonwealth (Canada, Australia, India, etc., though Canada is heavily influenced by American usage). There is also an entry on COMMONWEALTH HACKISH, which see. Hackers in Western Europe and (especially) Scandinavia are reported to often use a mixture of English and their native languages for technical conversation. Occasionally they develop idioms in their English usage which are influenced by their native-language styles. Some of these are reported here. A note or two on hackish usages in Russian have been added where they are parallel with and comprehensible to English-speakers. UNIX Conventions ================ References such as `malloc(3)' and `patch(1)' are to UNIX facilities (some of which, such as patch(1), are actually freeware distributed over USENET). The UNIX manuals use `foo(n)' to refer to item foo in section (n) of the manual, where n=1 is utilities, n=2 is system calls, n=3 is C library routines, n=6 is games, and n=8 (where present) is system administration utilities. Sections 4, 5, and 7 have changed roles frequently and in any case are not referred to from any of the entries. Pronunciation Guide =================== Pronunciation keys are provided in the jargon listing for all entries that are neither dictionary words pronounced as in standard English nor obvious compounds of same. Slashes bracket a phonetic pronunciation to be interpreted using the following conventions: 1. Syllables are hyphen-separated, except that an apostrophe or back-apostrophe follows each accented syllable (the back apostrophe marks a secondary accent in some words of four or more syllables). 2. Consonants are pronounced as in American English. The letter "g" is always hard (as in "got" rather than "giant"); "ch" is soft ("church" rather than "chemist"). The letter "j" is the sound that occurs twice in "judge". The letter "s" is always as in "pass", never a z sound (but it is sometimes doubled at the end of syllables to emphasize this). The digraph `kh' is the guttural of `loch' or `l'chaim'. 3. Vowels are represented as follows: a back, that ah father, palm ar far, mark aw flaw, caught ay bake, rain e less, men ee easy, ski eir their, software i trip, hit ie life, sky o cot, top oh flow, sew oo loot, through or more, door ow out, how oy boy, coin uh but, some u put, foot y yet yoo few [y]oo oo with optional fronting as in `news' (noos or nyoos) An at-sign is used for the `schwa' sound of unstressed or occluded vowels (the one that is often written with an upside-down `e'). The schwa vowel is omitted in syllables containing vocalic r, l, m or n; that is, `kitten' and `color' would be rendered /kit'n/ and /kuhl'r/, not /kit'@n/ and /kuhl'@r/. Entries are sorted in case-blind ASCII collation order (rather than the letter-by-letter order ignoring interword spacing common in mainstream dictionaries). The case-blindness is a feature, not a bug. The Jargon Lexicon ****************** {= [^A-Za-z] (see ) =} <@-party> /at'par`tee/ [from the @-sign in an Internet address] n. (also `@-sign party' /at'sien par`tee/) Semi-closed parties thrown at SF conventions (esp. the annual Worldcon) for hackers; one must have a to get in, or at least be in company with someone who does. One of the most reliable opportunities for hackers to meet face to face with people who might otherwise be represented by mere phosphor dots on their screens. Compare . <@Begin> [primarily CMU] n. Scribe-influenced equivalent of <\begin>. <'Snooze> [Fidonet] n. Fidonews, the weekly official on-line newsletter of Fidonet. As the editorial policy of Fidonews is "anything that arrives, we print", there are often large articles completely unrelated to Fidonet, which in turn tend to elicit in subsequent issues. <(tm)> [USENET] ASCII rendition of the trademark symbol, appended to phrases that the author feels should be recorded for posterity, perhaps in the Jargon File. Sometimes used ironically as a form of protest against the recent spate of software and algorithm patents, and `look and feel' lawsuits. /dev-nuhl/ [from the UNIX null device, used as a data sink] n. A notional `black hole' in any information space being discussed, used or referred to. A controversial posting, for example, might end "Kudos to rasputin@kremlin.org, flames to /dev/null". See , . <120 reset> n. To cycle power on a machine in order to reset or unjam it. Compare , . <2 (infix)> n. In translation software written by hackers, infix 2 often represents the syllable to with the connotation "translate to"; as in dvi2ps (DVI to PostScript), int2string (integer to string) and texi2roff (Texinfo to [nt]roff). <\begin> with \end, used humorously in writing to indicate a context or to remark on the surrounded text. From the LaTeX command of the same name. For example: \begin{Flame} Predicate logic is the only good programming language. Anyone who would use anything else is an idiot. Also, computers should be tredecimal instead of binary. \end{Flame} The Scribe users at CMU and elsewhere used to use @Begin/@End in an identical way. On USENET, this construct would more frequently be rendered as "" and "". {= A =} n. Archaic term for a register. Cited here because on-line use of it is a fairly reliable indication that the user has been around for quite a while, and/or the architecture under discussion is quite old. The term in full is never used of microprocessor registers, for example, though symbolic names for arithmetic registers beginning in A derive from historical use of `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. /ak/ interj. 1. [from the ASCII mnemonic for 0000110] Acknowledge. Used to register one's presence (compare mainstream Yo!). An appropriate response to or . 2. [prob. from the Bloom County comic strip] An exclamation of surprised disgust, esp. in "Oop ack!". Semi-humorous. 3. Used to politely interrupt someone to tell them you understand their point. See . Thus, for example, you might cut off an overly long explanation with "Ack. Ack. Ack. I get it now". See also . 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 to see if the person has gone away (the standard humorous response is of course (sense #2), i.e., "I'm not here"). /adj'r/ [UCLA] vt. To make a bonehead move with consequences that could have been foreseen with a slight amount of mental effort. E.g., "He started removing files and promptly adgered the whole project." Compare . /ad-hok'@r-ee/ [Purdue] n. 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. 2. Special-case code to cope with some awkward input which would otherwise cause a program to , presuming normal inputs are dealt with in some cleaner and more regular way. Also called "ad-hackery". /ad'vent/ n. The prototypical computer adventure game, first implemented on the by Will Crowther as an attempt at computer-refereed fantasy gaming, and expanded into a puzzle-oriented game by Don Woods. Now bet operating system only permitted 6-letter filenames. This game defined the terse, dryly humorous style now 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 X some noun). "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" and 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. 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. A selection are included in Appendix A. See also and . /ayds/ n. Short for A* Infected Disk Syndrome ("A*" matches, but not limited to, Apple), this condition is the quite often the result of practicing unsafe . See , , n. "Complexity increases the possibility of failure; a twin-engine aeroplane has twice as many engine problems as a single engine aeroplane." By analogy, in both software and electronics, the rule that simplicity increases robustness (see also . It is correspondingly argued that the right way to build reliable systems is to put all your design eggs in one basket and then build a *really good* basket. [C programmers] n. A class of subtle programming errors which can arise in code that does dynamic allocation, esp. via `malloc(3)'. If more than one pointer addresses (`aliases for') a given hunk of storage, it may happen that the storage is freed through one alias and then referenced through another, leading to subtle (and possibly intermittent) lossage depending on the state and the allocation history of the malloc . Avoidable by use of allocation strategies that never alias allocated core. Also avoidable by use of higher-level languages such as which employ a garbage collector (see ). Also called a . See also , , , , , . adj. Of a TSR (terminate-and-stay-resident) IBM PC program, such as the N pop-up calendar and calculator utilities that circulate on 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 also . /awlt/ [PDP-10] n.obs. Alternate name for the ASCII ESC character, after the keycap labeling on some older terminals. Also "ALTMODE". 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 was probably 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!). /alt bit/ [from alternate] adj. See . [MIT] n. `Common Lisp: The Language', by Guy L. Steele Jr., Digital Press, first edition, 1984, second edition 1990. Strictly speaking, only the first edition is the aluminum book, since the second edition has a yucky pale green cover. See also , , , , , , , , . /@-mee'b@/ n. Humorous term for the Commodore Amiga personal computer. [Purdue] vt. To run in . From the UNIX shell `&' operator. n. Either of the characters `<' and `>' (ASCII less-than or greater-than signs). The angle brackets used by typographers are actually taller than a less-than or greater-than sign. See , . 1. /aws/ (East coast), /ay-os/ (West coast) [based on a PDP-10 increment instruction] vt.,obs. To increase the amount of something. "Aos the campfire." Usage: considered silly, and now obsolescent. See . Now largely supplanted by . 2. A crufty -derived OS supported at one time by Data General. This was pronounced /ay-oh-ess/ or /ay-ahs/, the latter being prevalent internally at DG. 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 allegedly released. It was called `How to goad and levitate your chaos system'. Historical note: AOS in sense #1 was the name of a instruction that took any memory location in the computer and added one 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 one and then skipped the next instruction if the result was Equal to zero; AOSG added one and then skipped if the result was Greater than zero; AOSN added one and then skipped if the result was Not zero; AOSA added one 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 means "do not JUMP". Such were the perverse mysteries of assembler programming. /ap/ n. Short for "application program", as opposed to a systems program. What systems vendors are forever chasing developers to do 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 apps. Oppose , . [primarily MSDOS] vt. to create a compressed archive from a group of files using the SEA ARC, PKWare PKARC, or compatible program. Rapidly becoming obsolete as the ARC compression method is falling into disuse, having been replaced by newer compression techniques. See , . [primarily MSDOS] n. over which archiving program one should use. The first arc war was sparked when System Enhancement Associates (SEA) sued PKWare for copyright and trademark infringement on its ARC program. PKWare's PKARC outperformed ARC on both compression and speed while largely retaining compatibility (it introduced a new compression type which could be disabled for backward-compatibility). PKWare settled out of court to avoid enormous legal costs (both SEA and PKWare are small companies); as part of the settlement, it was prohibited from distributing ARC-compatible archivers in the future. The public backlash against SEA for bringing suit helped to hasten the demise of ARC as a standard when PKWare and others introduced new, incompatible but better-compressing, archivers. [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 semi-mythical `malloc: corrupt arena' message supposedly emitted when some early versions became terminally confused. See , , , . /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 one arg, but the arc-tangent function can take either one or two args". Compare , . n. Syn. for . n. Once, long ago at MIT, there was a so consistently obnoxious that another hacker designed, had made, and distributed posters announcing that said flamer had been nominated for the "asbestos cork award". Persons in any doubt as to the intended application of the cork should consult the etymology under . 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's no agreement on *which* few. n. Metaphoric garments often donned by posters just before emitting a remark they expect will elicit . Also "asbestos underwear", "asbestos overcoat", etc. [American Standard Code for Information Interchange] /as'kee/ n. Common slang names for ASCII characters are collected here. See individual entries for , , , , , , , , , , , and . This list derives from revision 2.2 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 which are reported but rarely seen; official ANSI/CCIT names are parenthesized. `!' Common: , pling, excl shriek, (exclamation point). Rare: factorial, exclam, smash, cuss, boing, yell, wow, hey, wham, spot-spark, soldier.. `"' Common: double quote, quote. Rare: literal mark, double-glitch, (quotation marks), (diaresis), dirk.. `#' Common: (number sign), pound, hash, sharp, , mesh, hex. Rare: flash, crosshatch, grid, pig-pen, tictactoe, scratchmark, octothorpe, thud, .. `$' Common: dollar, (dollar sign). Rare: currency symbol, buck, cash, string (from BASIC), escape (from ), ding, cache.. `%' Common: percent, (percent sign), mod, grapes.. `&' Common: (ampersand), amper, and. Rare: address (from C), reference (from C++), andpersand, bitand, background (from `sh(1)'), pretzel.. `'' Common: single quote, quote, (apostrophe). Rare: prime, glitch, tick, irk, pop, spark, (closing single quotation mark), (acute accent).. `()' Common: left/right paren, left/right parenthesis, left/right, paren/thesis, open/close paren, open/close, open/close parenthesis, left/right banana. Rare: lparen/rparen, so/already, wax/wane, (opening/closing parenthesis), left/right ear, parenthisey/unparenthisey, open/close round bracket.. `*' Common: star, , (asterisk). Rare: wildcard, gear, dingle, mult, spider, aster, times, twinkle, glob (see ), .. `+' Common: (plus), add. Rare: cross.. `,' Common: (comma). Rate: (cedilla).. `-' Common: dash, (hyphen), (minus). Rare: worm, option, dak, bithorpe.. `.' Common: dot, point, (period), (decimal point), Rare: radix point, full stop.. `/' Common: slash, stroke, (slant), forward slash. Rare: diagonal, solidus, over, slak, virgule.. `:' Common: (colon). Rare: two-spot.. `;' Common: (semicolon), semi. Rere: weenie.. `<>' Common: (less/greater than), left/right angle bracket, bra/ket, left/right broket. Rare: from/{into,towards}, read from/write to, suck/blow, comes-from/gozinta, in/out, crunch/zap (all from UNIX). `=' Common: (equals), gets. Rare: quadrathorpe.. `?' Common: query, (question mark), . Rare: whatmark, what, wildchar, huh, hook, buttonhook, hunchback.. `@' Common: at-sign, at, strudel. Rare: each, vortex, whorl, cyclone, snail, ape, cat, rose, cabbage, (commercial at).. `V' Rare: vee, book.. `[]' Common: left/right square bracket, (opening/closing bracket), bracket/unbracket left/right bracket, Rare: square/unsquare.. `\' Common: backslash, escape (from C/UNIX), reverse slash, slosh, backslant. Rare: bash, backwhack, (reversed slant), reversed virgule.. `^' Common: hat, control, (as in `control to'), uparrow, (caret). Rare: (circumflex), chevron, shark (or shark fin), to (`to the power of'), fang.. `_' Common: (underline), underscore, underbar, under. Rare: score, backarrow.. ``' Common: backquote, left quote, open quote, (grave accent), grave. Rare: backprime, backspark, unapostrophe, birk, blugle, back tick, back glitch, push, (opening single quotation mark).. `{}' Common: open/close brace, left/right brace, left/right squiggly bracket, (opening/closing brace), left/right curly bracket. Rare: brace/unbrace, curly/uncurly, leftit/rytit.. `|' Common: bar, or, or-bar, v-bar, pipe. Rare: vertical bar, (vertical line), gozinta, thru, pipesinta (last three ones from UNIX).. `~' Common: (tilde), squiggle, , not. Rare: approx, wiggle, swung dash, enyay, sqiggle. 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'. The U.S. practice seems to derive from an old-time habit of using `#' to tag pound weights on bills of lading. The character is usually pronounced `hash' outside the U.S. Also note that the `swung dash' or `approx' sign is not quite the same as tilde in typeset material, but the ASCII tilde serves for both (compare ). Some other common usages cause odd overlaps. The `#', `$', `>' and `&' chars, for example, are all pronounced "hex" in different communities because various assemblers use them as a prefix tag for hexadecimal constants (in particular, $ in the 6502 world, > at Texas Instruments, and & on the Sinclair and some other Z80 machines). adj. Infinitely close to. This is used in a generalization of its mathematical meaning to allege that something is some standard, reference, or goal (see ). /aw'to-boh-got'@-foh`bee-uh/ n. See . /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k@l-ee/ adv. Automatically, but in a way which, 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 . "The C-INTERCAL compiler generates C, then automagically invokes `cc(1)' to produce an executable." 1. n. [UNIX] An interpreted language developed by Aho, Weinberg and Kernighan (the name is from their initials). characterized by: C-like syntax, a BASIC-like approach to variable typing and declarations, associative arrays, and field-oriented text processing. See also . 2. Editing term for an expression awkward to manipulate through normal regular expression facilities. 2. vt. To process data using `awk(1)'. {= B =} n. A group of large-site administrators who pushed through the and reined in the chaos of during most of the 1980s. The cabal disbanded in late 1988 after a bitter internal catfight, but the net hardly noticed. n. A hole in the security of a system deliberately left in place by designers or maintainers. The motivation for this is not always sinister; some operating systems, for example, come out of the box with privileged accounts intended for use by field service or the vendor's maintenance programmers. Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. The famous RTM worm of late 1988, for example, used a back door in the `sendmail(1)' utility. Ken Thompson's 1983 Turing Award lecture to the ACM revealed the existence of a back door in early UNIX versions that may have qualified as the most fiendishly clever security hack of all time. The binaries of the C compiler had code in them which a) would automatically patch itself into the output executable whenver whenever the compiler itself was being recompiled, b) would also patch the `login' command, when *it* was being recompiled, to accept a password that gave Thompson entry to the computer whether or not an account had been created for him! This back door was propagated through hundreds of machines without any clue to it ever showing up in source. Syn. ; may also be called a "wormhole". See also , , , . vt.,adj. A task running in background is detached from the terminal where it was started (and often running at a lower priority); oppose . Nowadays this term is primarily associated with , but it appears first to have been used in this sense on OS/360. By extension, to do a task "in background" is to do it whenever matters are not claiming your undivided attention, and "to background" something means to relegate it to a lower priority. 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. Compare , . interj. Whoa! Back up. Used to suggest that someone just said or did something wrong. Common among APL programmers. [IBM; acronym, Broken As Designed] adj. Said of a program which is due to bad design and misfeatures rather than due to bugginess. See . [from the 1962 Sellars & Yeatman parody `1066 and All That'] n. Something which 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 . British correspondents confirm that and (and prob. therefore and ) 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 their side of the pond. /bag'biet-@r/ n. 1. Something, such as a program or a computer, that fails to work, or works in a remarkably clumsy manner. Example: "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: , , . 3. Also in the form "bagbiting" adj. Having the quality of a bagbiter. "This bagbiting system won't let me compute the factorial of a negative number." Compare , , , and "chomping" (under ). 4. "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. /bamf/ 1. [from old X-men comics] interj. Notional sound made by a person or object teleporting in or out of the hearer's vicinity. Often used in (esp. ) electronic fora when a character wishes to make a dramatic entrance or exit. 2. [from `Don Washington's Survival Guide'] n. Acronym for `Bad-Ass Mother Fucker', used to refer to one of the handful of nastiest monsters on an LPMUD or similar MUD. n. The labels often used on the sides of reels, so called because they're shaped roughly like blunt-ended bananas. This term, like macrotapes themselves, is still current but visibly headed for obsolescence. 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. 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 ). 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." 2. Attention span. 3. On , a measure of network capacity that is often wasted by people complaining about how network news items posted by others are a waste of bandwidth. 1. n. Common spoken name for `!' (ASCII 0100001), especially when used in pronouncing a in spoken hackish. In elder days this was considered a CMUish usage, with MIT and Stanford hackers preferring or ; but the spread of UNIX has carried with it (esp. via the term ) 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 , . 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 immediately after one has been called on it. 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 sign. Thus the path `...!bigsite!foovax!barbox!me' directs correspondents 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 ) to give paths from *several* big machines, in the hopes that one's correspondent might be able to get mail to one of them reliable (example: ...!{seismo, ut-sally, gatech}!rice!beta!gamma!me). Bang paths of 8 to ten 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 , , and . n. 1. The title page added to printouts by most print spoolers see . Typically includes user or account ID information in very large character-graphics capitals. 2. A similar printout generated from user-specified text, e.g by a program such as UNIX's `banner[16]'. 3. On interactive software, a first screen containing a logo and/or author credits and/or copyright notice. /bar/ n. 1. The second metasyntactic variable, after and before . "Suppose we have two functions FOO and BAR. FOO calls BAR..." 2. Often appended to to produce . n. 1. New computer hardware, unadorned with such snares and delusions as an , , or even assembler. Commonly in the phrase `programming on the bare metal', which refers to the arduous work of 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. The same phrase is also used to describe a style of 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 opcodes (or, as in the famous case described 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 like industrial embedded systems. See . /barf/ [from mainstream slang meaning `vomit'] 1. interj. Term of disgust. This is the closest hackish equivalent of the Valspeak `gag me with a spoon'. See . 2. 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. May mean to give an error message. Examples: "The division operation barfs if you try to divide by zero." (that is, division by zero fails in some unspecified spectacular way) "The text editor barfs if you try to read in a new file before writing out the old one." See , . Note that in Commonwealth hackish, `barf' is generally replaced by `puke' or `vom'. is sometimes also used as a metasyntactic variable like or . adj. (also ) Said of something which would make anyone barf, if only for esthetic reasons. interj. Variation of used around the Stanford area. An exclamation, expressing disgust. On seeing some particularly bad code one might exclaim, "Barfulation! Who wrote this, Quux?" adj. Feature-encrusted; complex; gaudy; verging on excessive. Said of hardware or (esp.) software designs, this has many of the connotations of or but is less extreme and not pejorative in itself. n. Any of the MUDs which are devived from the original MUD game (see ) or use the same software drivers. BartleMUDs are noted for their (usually slightly offbeat) humour, dry but friendly syntax, and lack of adjectives in object descriptions, so a player is likely to come across `brand172', for instance (see ). Some mudders intensely dislike Bartle and this term, preferring to speak of `MUD-1'. adj. Non-interactive. Hackers use this somewhat more loosely than the traditional technical definitions justify; in particular, switches on a normally interactive program that prepare it to receive what would normally be keyboard input from a file are often referred to as switches. A "batch file" is a series of instructions written to be handed to an interactive program running in batch mode. Compare