# 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.

## 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.

## 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]

## 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.

## 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.