Part 16
:firewall code: n. The code you put in a system (say, a telephone switch) to make sure that the users can't do any damage. Since users always want to be able to do everything but never want to suffer for any mistakes, the construction of a firewall is a question not only of defensive coding but also of interface presentation, so that users don't even get curious about those corners of a system where they can burn themselves.
:firewall machine: n. A dedicated gateway machine with special security precautions on it, used to service outside network connections and dial-in lines. The idea is to protect a cluster of more loosely administered machines hidden behind it from {cracker}s. The typical firewall is an inexpensive micro-based UNIX box kept clean of critical data, with a bunch of modems and public network ports on it but just one carefully watched connection back to the rest of the cluster. The special precautions may include threat monitoring, callback, and even a complete {iron box} keyable to particular incoming IDs or activity patterns. Syn. {flytrap}, {Venus flytrap}.
:fireworks mode: n. The mode a machine is sometimes said to be in when it is performing a {crash and burn} operation.
:firmy: /fer'mee/ Syn. {stiffy} (a 3.5-inch floppy disk).
:fish: [Adelaide University, Australia] n. 1. Another {metasyntactic variable}. See {foo}. Derived originally from the Monty Python skit in the middle of "The Meaning of Life" entitled "Find the Fish". 2. A pun for `microfiche'. A microfiche file cabinet may be referred to as a `fish tank'.
:FISH queue: [acronym, by analogy with FIFO (First In, First Out)] n. `First In, Still Here'. A joking way of pointing out that processing of a particular sequence of events or requests has stopped dead. Also `FISH mode' and `FISHnet'; the latter may be applied to any network that is running really slowly or exhibiting extreme flakiness.
:FITNR: // [Thinking Machines, Inc.] Fixed In the Next Release. A written-only notation attached to bug reports. Often wishful thinking.
:fix: n.,v. What one does when a problem has been reported too many times to be ignored.
:flag: n. A variable or quantity that can take on one of two values; a bit, particularly one that is used to indicate one of two outcomes or is used to control which of two things is to be done. "This flag controls whether to clear the screen before printing the message." "The program status word contains several flag bits." Used of humans analogously to {bit}. See also {hidden flag}, {mode bit}.
:flag day: n. A software change that is neither forward- nor backward-compatible, and which is costly to make and costly to reverse. "Can we install that without causing a flag day for all users?" This term has nothing to do with the use of the word {flag} to mean a variable that has two values. It came into use when a massive change was made to the {{Multics}} timesharing system to convert from the old ASCII code to the new one; this was scheduled for Flag Day (a U.S. holiday), June 14, 1966. See also {backward combatability}.
:flaky: adj. (var sp. `flakey') Subject to frequent {lossage}. This use is of course related to the common slang use of the word to describe a person as eccentric, crazy, or just unreliable. A system that is flaky is working, sort of --- enough that you are tempted to try to use it --- but fails frequently enough that the odds in favor of finishing what you start are low. Commonwealth hackish prefers {dodgy} or {wonky}.
:flamage: /flay'm*j/ n. Flaming verbiage, esp. high-noise, low-signal postings to {USENET} or other electronic {fora}. Often in the phrase `the usual flamage'. `Flaming' is the act itself; `flamage' the content; a `flame' is a single flaming message. See {flame}.
:flame: 1. vi. To post an email message intended to insult and provoke. 2. vi. To speak incessantly and/or rabidly on some relatively uninteresting subject or with a patently ridiculous attitude. 3. vt. Either of senses 1 or 2, directed with hostility at a particular person or people. 4. n. An instance of flaming. When a discussion degenerates into useless controversy, one might tell the participants "Now you're just flaming" or "Stop all that flamage!" to try to get them to cool down (so to speak).
USENETter Marc Ramsey, who was at WPI from 1972 to 1976, adds: "I am 99% certain that the use of `flame' originated at WPI. Those who made a nuisance of themselves insisting that they needed to use a TTY for `real work' came to be known as `flaming asshole lusers'. Other particularly annoying people became `flaming asshole ravers', which shortened to `flaming ravers', and ultimately `flamers'. I remember someone picking up on the Human Torch pun, but I don't think `flame on/off' was ever much used at WPI." See also {asbestos}.
The term may have been independently invented at several different places; it is also reported that `flaming' was in use to mean something like `interminably drawn-out semi-serious discussions' (late-night bull sessions) at Carleton College during 1968--1971.
It's possible that the hackish sense of `flame' is much older than that. The poet Chaucer was also what passed for a wizard hacker in his time; he wrote a treatise on the astrolabe, the most advanced computing device of the day. In Chaucer's `Troilus and Cressida', Cressida laments her inability to grasp the proof of a particular mathematical theorem; her uncle Pandarus then observes that it's called "the fleminge of wrecches." This phrase seems to have been intended in context as "that which puts the wretches to flight" but was probably just as ambiguous in Middle English as "the flaming of wretches" would be today. One suspects that Chaucer would be right at home on USENET.
:flame bait: n. A posting intended to trigger a {flame war}, or one that invites flames in reply.
:flame on: vi.,interj. 1. To begin to {flame}. The punning reference to Marvel Comics's Human Torch is no longer widely recognized. 2. To continue to flame. See {rave}, {burble}.
:flame war: n. (var. `flamewar') An acrimonious dispute, especially when conducted on a public electronic forum such as {USENET}.
:flamer: n. One who habitually {flame}s. Said esp. of obnoxious {USENET} personalities.
:flap: vt. 1. To unload a DECtape (so it goes flap, flap, flap...). Old-time hackers at MIT tell of the days when the disk was device 0 and {microtape}s were 1, 2,... and attempting to flap device 0 would instead start a motor banging inside a cabinet near the disk. 2. By extension, to unload any magnetic tape. See also {macrotape}. Modern cartridge tapes no longer actually flap, but the usage has remained. (The term could well be re-applied to DEC's TK50 cartridge tape drive, a spectacularly misengineered contraption which makes a loud flapping sound, almost like an old reel-type lawnmower, in one of its many tape-eating failure modes.)
:flarp: /flarp/ [Rutgers University] n. Yet another {metasyntactic variable} (see {foo}). Among those who use it, it is associated with a legend that any program not containing the word `flarp' somewhere will not work. The legend is discreetly silent on the reliability of programs which *do* contain the magic word.
:flat: adj. 1. Lacking any complex internal structure. "That {bitty box} has only a flat filesystem, not a hierarchical one." The verb form is {flatten}. 2. Said of a memory architecture (like that of the VAX or 680x0) that is one big linear address space (typically with each possible value of a processor register corresponding to a unique core address), as opposed to a `segmented' architecture (like that of the 80x86) in which addresses are composed from a base-register/offset pair (segmented designs are generally considered {cretinous}).
Note that sense 1 (at least with respect to filesystems) is usually used pejoratively, while sense 2 is a {Good Thing}.
:flat-ASCII: adj. Said of a text file that contains only 7-bit ASCII characters and uses only ASCII-standard control characters (that is, has no embedded codes specific to a particular text formatter or markup language, and no {meta}-characters). Syn. {plain-ASCII}. Compare {flat-file}.
:flat-file: adj. A {flatten}ed representation of some database or tree or network structure as a single file from which the structure could implicitly be rebuilt, esp. one in {flat-ASCII} form.
:flatten: vt. To remove structural information, esp. to filter something with an implicit tree structure into a simple sequence of leaves; also tends to imply mapping to {flat-ASCII}. "This code flattens an expression with parentheses into an equivalent {canonical} form."
:flavor: n. 1. Variety, type, kind. "DDT commands come in two flavors." "These lights come in two flavors, big red ones and small green ones." See {vanilla}. 2. The attribute that causes something to be {flavorful}. Usually used in the phrase "yields additional flavor". "This convention yields additional flavor by allowing one to print text either right-side-up or upside-down." See {vanilla}. This usage was certainly reinforced by the terminology of quantum chromodynamics, in which quarks (the constituents of, e.g., protons) come in six flavors (up, down, strange, charm, top, bottom) and three colors (red, blue, green) --- however, hackish use of `flavor' at MIT predated QCD. 3. The term for `class' (in the object-oriented sense) in the LISP Machine Flavors system. Though the Flavors design has been superseded (notably by the Common LISP CLOS facility), the term `flavor' is still used as a general synonym for `class' by some LISP hackers.
:flavorful: adj. Full of {flavor}; esthetically pleasing. See {random} and {losing} for antonyms. See also the entries for {taste} and {elegant}.
:flippy: /flip'ee/ n. A single-sided floppy disk altered for double-sided use by addition of a second write-notch, so called because it must be flipped over for the second side to be accessible. No longer common.
:flood: [IRC] v. To dump large amounts of text onto an {IRC} channel. This is especially rude when the text is uninteresting and the other users are trying to carry on a serious conversation.
:flowchart:: [techspeak] n. An archaic form of visual control-flow specification employing arrows and `speech balloons' of various shapes. Hackers never use flowcharts, consider them extremely silly, and associate them with {COBOL} programmers, {card walloper}s, and other lower forms of life. This is because (from a hacker's point of view) they are no easier to read than code, are less precise, and tend to fall out of sync with the code (so that they either obfuscate it rather than explaining it or require extra maintenance effort that doesn't improve the code). See also {pdl}, sense 3.
:flower key: [Mac users] n. See {feature key}.
:flush: v. 1. To delete something, usually superfluous, or to abort an operation. "All that nonsense has been flushed." 2. [UNIX/C] To force buffered I/O to disk, as with an `fflush(3)' call. This is *not* an abort or deletion as in sense 1, but a demand for early completion! 3. To leave at the end of a day's work (as opposed to leaving for a meal). "I'm going to flush now." "Time to flush." 4. To exclude someone from an activity, or to ignore a person.
`Flush' was standard ITS terminology for aborting an output operation; one spoke of the text that would have been printed, but was not, as having been flushed. It is speculated that this term arose from a vivid image of flushing unwanted characters by hosing down the internal output buffer, washing the characters away before they can be printed. The UNIX/C usage, on the other hand, was propagated by the `fflush(3)' call in C's standard I/O library (though it is reported to have been in use among BLISS programmers at DEC and on Honeywell and IBM machines as far back as 1965). UNIX/C hackers find the ITS usage confusing, and vice versa.
:flypage: /fli: payj/n. (alt. `fly page') A {banner}, sense 1.
:Flyspeck 3: n. Standard name for any font that is so tiny as to be unreadable (by analogy with such names as `Helvetica 10' for 10-point Helvetica). Legal boilerplate is usually printed in Flyspeck 3.
:flytrap: n. See {firewall machine}.
:FM: n. *Not* `Frequency Modulation' but rather an abbreviation for `Fucking Manual', the back-formation from {RTFM}. Used to refer to the manual itself in the {RTFM}. "Have you seen the Networking FM lately?"
:FOAF: // [USENET] n. Acronym for `Friend Of A Friend'. The source of an unverified, possibly untrue story. This was not originated by hackers (it is used in Jan Brunvand's books on urban folklore), but is much better recognized on USENET and elsewhere than in mainstream English.
:FOD: /fod/ v. [Abbreviation for `Finger of Death', originally a spell-name from fantasy gaming] To terminate with extreme prejudice and with no regard for other people. From {MUD}s where the wizard command `FOD <player>' results in the immediate and total death of <player>, usually as punishment for obnoxious behavior. This migrated to other circumstances, such as "I'm going to fod the process that is burning all the cycles." Compare {gun}.
In aviation, FOD means Foreign Object Damage, e.g., what happens when a jet engine sucks up a rock on the runway or a bird in flight. Finger of Death is a distressingly apt description of what this does to the engine.
:fold case: v. See {smash case}. This term tends to be used more by people who don't mind that their tools smash case. It also connotes that case is ignored but case distinctions in data processed by the tool in question aren't destroyed.
:followup: n. On USENET, a {posting} generated in response to another posting (as opposed to a {reply}, which goes by email rather than being broadcast). Followups include the ID of the {parent message} in their headers; smart news-readers can use this information to present USENET news in `conversation' sequence rather than order-of-arrival. See {thread}.
:fontology: [XEROX PARC] n. The body of knowledge dealing with the construction and use of new fonts (e.g. for window systems and typesetting software). It has been said that fontology recapitulates file-ogeny.
[Unfortunately, this reference to the embryological dictum that "Ontogeny recapitulates phylogeny" is not merely a joke. On the Macintosh, for example, System 7 has to go through contortions to compensate for an earlier design error that created a whole different set of abstractions for fonts parallel to `files' and `folders' --- ESR]
:foo: /foo/ 1. interj. Term of disgust. 2. Used very generally as a sample name for absolutely anything, esp. programs and files (esp. scratch files). 3. First on the standard list of {metasyntactic variable}s used in syntax examples. See also {bar}, {baz}, {qux}, {quux}, {corge}, {grault}, {garply}, {waldo}, {fred}, {plugh}, {xyzzy}, {thud}.
The etymology of hackish `foo' is obscure. When used in connection with `bar' it is generally traced to the WWII-era Army slang acronym FUBAR (`Fucked Up Beyond All Recognition'), later bowdlerized to {foobar}. (See also {FUBAR}).
However, the use of the word `foo' itself has more complicated antecedents, including a long history in comic strips and cartoons. The old "Smokey Stover" comic strips by Bill Holman often included the word `FOO', in particular on license plates of cars; allegedly, `FOO' and `BAR' also occurred in Walt Kelly's "Pogo" strips. In the 1938 cartoon "Daffy Doc", a very early version of Daffy Duck holds up a sign saying "SILENCE IS FOO!"; oddly, this seems to refer to some approving or positive affirmative use of foo. It has been suggested that this might be related to the Chinese word `fu' (sometimes transliterated `foo'), which can mean "happiness" when spoken with the proper tone (the lion-dog guardians flanking the steps of many Chinese restaurants are properly called "fu dogs").
It is even possible that hacker usage actually springs from `FOO, Lampoons and Parody', the title of a comic book first issued in September 1958; the byline read `C. Crumb' but the style of the art suggests this may well have been a sort-of pseudonym for noted weird-comix artist Robert Crumb. The title FOO was featured in large letters on the front cover. What the word meant to Mr. Crumb is anybody's guess.
An old-time member reports that in the 1959 `Dictionary of the TMRC Language', compiled at {TMRC} there was an entry that went something like this:
FOO: The first syllable of the sacred chant phrase "FOO MANE PADME HUM." Our first obligation is to keep the foo counters turning.
For more about the legendary foo counters, see {TMRC}. Almost the entire staff of what became the MIT AI LAB was involved with TMRC, and probably picked the word up there.
Very probably, hackish `foo' had no single origin and derives through all these channels from Yiddish `feh' and/or English `fooey'.
:foobar: n. Another common {metasyntactic variable}; see {foo}. Hackers do *not* generally use this to mean {FUBAR} in either the slang or jargon sense.
:fool: n. As used by hackers, specifically describes a person who habitually reasons from obviously or demonstrably incorrect premises and cannot be persuaded by evidence to do otherwise; it is not generally used in its other senses, i.e., to describe a person with a native incapacity to reason correctly, or a clown. Indeed, in hackish experience many fools are capable of reasoning all too effectively in executing their errors. See also {cretin}, {loser}, {fool file, the}.
:fool file, the: [USENET] n. A notional repository of all the most dramatically and abysmally stupid utterances ever. There is a subgenre of {sig block}s that consists of the header "From the fool file:" followed by some quote the poster wishes to represent as an immortal gem of dimwittery; for this to be really effective, the quote has to be so obviously wrong as to be laughable. More than one USENETter has achieved an unwanted notoriety by being quoted in this way.
:Foonly: n. 1. The {PDP-10} successor that was to have been built by the Super Foonly project at the Stanford Artificial Intelligence Laboratory along with a new operating system. The intention was to leapfrog from the old DEC timesharing system SAIL was running to a new generation, bypassing TENEX which at that time was the ARPANET standard. ARPA funding for both the Super Foonly and the new operating system was cut in 1974. Most of the design team went to DEC and contributed greatly to the design of the PDP-10 model KL10. 2. The name of the company formed by Dave Poole, one of the principal Super Foonly designers, and one of hackerdom's more colorful personalities. Many people remember the parrot which sat on Poole's shoulder and was a regular companion. 3. Any of the machines built by Poole's company. The first was the F-1 (a.k.a. Super Foonly), which was the computational engine used to create the graphics in the movie "TRON". The F-1 was the fastest PDP-10 ever built, but only one was ever made. The effort drained Foonly of its financial resources, and they turned towards building smaller, slower, and much less expensive machines. Unfortunately, these ran not the popular {TOPS-20} but a TENEX variant called Foonex; this seriously limited their market. Also, the machines shipped were actually wire-wrapped engineering prototypes requiring individual attention from more than usually competent site personnel, and thus had significant reliability problems. Poole's legendary temper and unwillingness to suffer fools gladly did not help matters. By the time of the Jupiter project cancellation in 1983 Foonly's proposal to build another F-1 was eclipsed by the {Mars}, and the company never quite recovered. See the {Mars} entry for the continuation and moral of this story.
:footprint: n. 1. The floor or desk area taken up by a piece of hardware. 2. [IBM] The audit trail (if any) left by a crashed program (often in plural, `footprints'). See also {toeprint}.
:for free: adj. Said of a capability of a programming language or hardware equipment that is available by its design without needing cleverness to implement: "In APL, we get the matrix operations for free." "And owing to the way revisions are stored in this system, you get revision trees for free." Usually it refers to a serendipitous feature of doing things a certain way (compare {big win}), but it may refer to an intentional but secondary feature.
:for the rest of us: [from the Mac slogan "The computer for the rest of us"] adj. 1. Used to describe a {spiffy} product whose affordability shames other comparable products, or (more often) used sarcastically to describe {spiffy} but very overpriced products. 2. Describes a program with a limited interface, deliberately limited capabilities, non-orthogonality, inability to compose primitives, or any other limitation designed to not `confuse' a na"ive user. This places an upper bound on how far that user can go before the program begins to get in the way of the task instead of helping accomplish it. Used in reference to Macintosh software which doesn't provide obvious capabilities because it is thought that the poor lusers might not be able to handle them. Becomes `the rest of *them*' when used in third-party reference; thus, "Yes, it is an attractive program, but it's designed for The Rest Of Them" means a program that superficially looks neat but has no depth beyond the surface flash. See also {WIMP environment}, {Macintrash}, {point-and-drool interface}, {user-friendly}.
:for values of: [MIT] A common rhetorical maneuver at MIT is to use any of the canonical {random numbers} as placeholders for variables. "The max function takes 42 arguments, for arbitrary values of 42." "There are 69 ways to leave your lover, for 69 = 50." This is especially likely when the speaker has uttered a random number and realizes that it was not recognized as such, but even `non-random' numbers are occasionally used in this fashion. A related joke is that pi equals 3 --- for small values of pi and large values of 3.
Historical note: this usage probably derives from the programming language MAD (Michigan Algorithm Decoder), an Algol-like language that was the most common choice among mainstream (non-hacker) users at MIT in the mid-60s. It had a control structure FOR VALUES OF X = 3, 7, 99 DO ... that would repeat the indicated instructions for each value in the list (unlike the usual FOR that only works for arithmetic sequences of values). MAD is long extinct, but similar for-constructs still flourish (e.g. in UNIX's shell languages).
:fora: pl.n. Plural of {forum}.
:foreground: [UNIX] vt. To foreground a task is to bring it to the top of one's {stack} for immediate processing, and hackers often use it in this sense for non-computer tasks. "If your presentation is due next week, I guess I'd better foreground writing up the design document."
Technically, on a time-sharing system, a task executing in foreground is one able to accept input from and return output to the user; oppose {background}. Nowadays this term is primarily associated with {{UNIX}}, but it appears first to have been used in this sense on OS/360. Normally, there is only one foreground task per terminal (or terminal window); having multiple processes simultaneously reading the keyboard is a good way to {lose}.
:fork bomb: [UNIX] n. A particular species of {wabbit} that can be written in one line of C (`main() {for(;;)fork();}') or shell (`$0 & $0 &') on any UNIX system, or occasionally created by an egregious coding bug. A fork bomb process `explodes' by recursively spawning copies of itself (using the UNIX system call `fork(2)'). Eventually it eats all the process table entries and effectively wedges the system. Fortunately, fork bombs are relatively easy to spot and kill, so creating one deliberately seldom accomplishes more than to bring the just wrath of the gods down upon the perpetrator. See also {logic bomb}.
:forked: [UNIX; prob. influenced by a mainstream expletive] adj. Terminally slow, or dead. Originated when one system was slowed to a snail's pace by an inadvertent {fork bomb}.
:Fortrash: /for'trash/ n. Hackerism for the FORTRAN language, referring to its primitive design, gross and irregular syntax, limited control constructs, and slippery, exception-filled semantics.