# The jargon file

## AFAIK: //, n.

[Usenet; common] Abbrev. for “As Far As I Know”. There is a variant AFAICT “As Far As I Can Tell”; where AFAIK suggests that the writer knows his knowledge is limited, AFAICT suggests that he feels his knowledge is as complete as anybody else's but that the best available knowledge does not support firm conclusions.

## BOF: /B·O·F/, /bof/, n.

1. [common] Abbreviation for the phrase “Birds Of a Feather” (flocking together), an informal discussion group and/or bull session scheduled on a conference program. It is not clear where or when this term originated, but it is now associated with the USENIX conferences for Unix techies and was already established there by 1984. It was used earlier than that at DECUS conferences and is reported to have been common at SHARE meetings as far back as the early 1960s.

2. Acronym, “Beginning of File”.

## BSOD: /B·S·O·D/

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

## Blue Screen of Death: n.

[common] This term is closely related to the older Black Screen of Death but much more common (many non-hackers have picked it up). Due to the extreme fragility and bugginess of Microsoft Windows, misbehaving applications can readily crash the OS (and the OS sometimes crashes itself spontaneously). The Blue Screen of Death, sometimes decorated with hex error codes, is what you get when this happens. (Commonly abbreviated BSOD.) The following entry from the Salon Haiku Contest, seems to have predated popular use of the term:

> Windows NT crashed.
> I am the Blue Screen of Death
> No one hears your screams.

## EOD: n.

[IRC, Usenet] Abbreviation: End of Discussion. Used when the speaker believes he has stated his case and will not respond to further arguments or attacks.

## FAQ: /F·A·Q/, /fak/, n.

[Usenet]

1. A Frequently Asked Question.

2. A compendium of accumulated lore, posted periodically to high-volume newsgroups in an attempt to forestall such questions. Some people prefer the term ‘FAQ list’ or ‘FAQL’ /fa´kl/, reserving ‘FAQ’ for sense 1.

This lexicon itself serves as a good example of a collection of one kind of lore, although it is far too big for a regular FAQ posting. Examples: “What is the proper type of NULL?” and “What's that funny name for the # character?” are both Frequently Asked Questions. Several FAQs refer readers to the Jargon File.

## FUD: /fuhd/, n.

Defined by Gene Amdahl after he left IBM to found his own company: “FUD is the fear, uncertainty, and doubt that IBM sales people instill in the minds of potential customers who might be considering [Amdahl] products.” The idea, of course, was to persuade them to go with safe IBM gear rather than with competitors' equipment. This implicit coercion was traditionally accomplished by promising that Good Things would happen to people who stuck with IBM, but Dark Shadows loomed over the future of competitors' equipment or software. See IBM. After 1990 the term FUD was associated increasingly frequently with Microsoft, and has become generalized to refer to any kind of disinformation used as a competitive weapon.

[In 2003, SCO sued IBM in an action which, among other things, alleged SCO's proprietary control of Linux. The SCO suit rapidly became infamous for the number and magnitude of falsehoods alleged in SCO's filings. In October 2003, SCO's lawyers filed a memorandum in which they actually had the temerity to link to the web version of this entry in furtherance of their claims. Whilst we appreciate the compliment of being treated as an authority, we can return it only by observing that SCO has become a nest of liars and thieves compared to which IBM at its historic worst looked positively angelic. Any judge or law clerk reading this should surf through to my collected resources on this topic for the appalling details.—ESR]

## GIGO: /gi:´goh/

1. ‘Garbage In, Garbage Out’ — usually said in response to lusers who complain that a program didn't “do the right thing” when given imperfect input or otherwise mistreated in some way. Also commonly used to describe failures in human decision making due to faulty, incomplete, or imprecise data.

2. Garbage In, Gospel Out: this more recent expansion is a sardonic comment on the tendency human beings have to put excessive trust in ‘computerized’ data.

## GIYF: n.

Abbrev: Google Is Your Friend. Used to suggest, gently and politely, that you have just asked a question of human beings that would have been better directed to a search engine. See also STFW.

## IANAL: //

[Usenet] Abbreviation, “I Am Not A Lawyer”. Usually precedes legal advice.

## IMHO: //, abbrev.

[from SF fandom via Usenet; abbreviation for ‘In My Humble Opinion’]“IMHO, mixed-case C names should be avoided, as mistyping something in the wrong case can cause hard-to-detect errors — and they look too Pascalish anyhow.” Also seen in variant forms such as IMNSHO (In My Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).

## indent style: n.

[C, C++, and Java programmers] The rules one uses to indent code in a readable fashion. There are four major C indent styles, described below; all have the aim of making it easier for the reader to visually track the scope of control constructs. They have been inherited by C++ and Java, which have C-like syntaxes. The significant variable is the placement of { and } with respect to the statement(s) they enclose and to the guard or controlling statement (if, else, for, while, or do) on the block, if any.

K&R style — Named after Kernighan & Ritchie, because the examples in K&R are formatted this way. Also called kernel style because the Unix kernel is written in it, and the ‘One True Brace Style’ (abbrev. 1TBS) by its partisans. In C code, the body is typically indented by eight spaces (or one tab) per level, as shown here. Four spaces are occasionally seen in C, but in C++ and Java four tends to be the rule rather than the exception.

    if (<cond>) {
            <body>
    }

Allman style — Named for Eric Allman, a Berkeley hacker who wrote a lot of the BSD utilities in it (it is sometimes called BSD style). Resembles normal indent style in Pascal and Algol. It is the only style other than K&R in widespread use among Java programmers. Basic indent per level shown here is eight spaces, but four (or sometimes three) spaces are generally preferred by C++ and Java programmers.

    if (<cond>)
    {
            <body>
    }

Whitesmiths style — popularized by the examples that came with Whitesmiths C, an early commercial C compiler. Basic indent per level shown here is eight spaces, but four spaces are occasionally seen.

    if (<cond>)
            {
            <body>
            }

GNU style — Used throughout GNU EMACS and the Free Software Foundation code, and just about nowhere else. Indents are always four spaces per level, with { and } halfway between the outer and inner indent levels.

    if (<cond>)
      {
        <body>
      }

Surveys have shown the Allman and Whitesmiths styles to be the most common, with about equal mind shares. K&R/1TBS used to be nearly universal, but is now much less common in C (the opening brace tends to get lost against the right paren of the guard part in an if or while, which is a Bad Thing). Defenders of 1TBS argue that any putative gain in readability is less important than their style's relative economy with vertical space, which enables one to see more code on one's screen at once. The Java Language Specification legislates not only the capitalization of identifiers, but where nouns, adjectives, and verbs should be in method, class, interface, and variable names (section 6.8). While the specification stops short of also standardizing on a bracing style, all source code originating from Sun Laboratories uses the K&R style. This has set a precedent for Java programmers, which most follow.

Doubtless these issues will continue to be the subject of holy wars.

## M$

Common net abbreviation for Microsoft, everybody's least favorite monopoly.

## MMF: //

[Usenet; common] Abbreviation: “Make Money Fast”. Refers to any kind of scheme which promises participants large profits with little or no risk or effort. Typically, it is a some kind of multi-level marketing operation which involves recruiting more members, or an illegal pyramid scam. The term is also used to refer to any kind of spam which promotes this. For more information, see the Make Money Fast Myth Page.

## OTOH: //

[Usenet; very common] On The Other Hand.

## RTFM: /R·T·F·M/, imp.

[Unix] Abbreviation for ‘Read The Fucking Manual’.

1. Used by gurus to brush off questions they consider trivial or annoying. Compare Don't do that then!.

2. Used when reporting a problem to indicate that you aren't just asking out of randomness. “No, I can't figure out how to interface Unix to my toaster, and yes, I have RTFM.” Unlike sense 1, this use is considered polite. See also FM, RTFAQ, RTFB, RTFS, STFW, RTM, all of which mutated from RTFM, and compare UTSL.

## SCNR: abbrev

[common] Sorry, Could Not Resist. Normally used to semi-apologize for an obvious wisecrack.

## TANSTAAFL: /tan´stah·fl/

[acronym, from Robert Heinlein's classic SF novel The Moon is a Harsh Mistress.] “There Ain't No Such Thing As A Free Lunch”, often invoked when someone is balking at the prospect of using an unpleasantly heavyweight technique, or at the poor quality of some piece of software, or at the signal-to-noise ratio of unmoderated Usenet newsgroups. “What? Don't tell me I have to implement a database back end to get my address book program to work!” “Well, TANSTAAFL you know.” This phrase owes some of its popularity to the high concentration of science-fiction fans and political libertarians in hackerdom (see Appendix B for discussion).

Outside hacker circles the variant TINSTAAFL (“There is No Such Thing...”) is apparently more common, and can be traced back to 1952 in the writings of ethicist Alvin Hansen. TANSTAAFL may well have arisen from it by mutation.

## TMTOWTDI: /tim·toh'·dee/, abbrev.

There's More Than One Way To Do It. This abbreviation of the official motto of Perl is frequently used on newsgroups and mailing lists related to that language.

## YHBT: //

[Usenet: very common] Abbreviation: You Have Been Trolled (see troll, sense 1). Especially used in “YHBT. YHL. HAND.”, which is widely understood to expand to “You Have Been Trolled. You Have Lost. Have A Nice Day”. You are quite likely to see this if you respond incautiously to a flame-provoking post that was obviously floated as sucker bait.