p-books.com
The Jargon File, Version 4.0.0
Previous Part     1  2  3  4  5  6  7  8  9  10  11  12  13     Next Part
Home - Random Browse

:sunspots: /n./ 1. Notional cause of an odd error. "Why did the program suddenly turn the screen blue?" "Sunspots, I guess." 2. Also the cause of {bit rot} — from the myth that sunspots will increase {cosmic rays}, which can flip single bits in memory. See also {phase of the moon}.

:super source quench: /n./ A special packet designed to shut up an Internet host. The Internet Protocol (IP) has a control message called Source Quench that asks a host to transmit more slowly on a particular connection to avoid congestion. It also has a Redirect control message intended to instruct a host to send certain packets to a different local router. A "super source quench" is actually a redirect control packet, forged to look like it came from a local router, that instructs a host to send all packets to its own local loopback address. This will effectively tie many Internet hosts up in knots. Compare {Godzillagram}, {breath-of-life packet}.

:superloser: /n./ [Unix] A superuser with no clue — someone with root privileges on a Unix system and no idea what he/she is doing, the moral equivalent of a three-year-old with an unsafetied Uzi. Anyone who thinks this is an uncommon situation reckons without the territorial urges of {management}.

:superprogrammer: /n./ A prolific programmer; one who can code exceedingly well and quickly. Not all hackers are superprogrammers, but many are. (Productivity can vary from one programmer to another by three orders of magnitude. For example, one programmer might be able to write an average of 3 lines of working code in one day, while another, with the proper tools, might be able to write 3,000. This range is astonishing; it is matched in very few other areas of human endeavor.) The term 'superprogrammer' is more commonly used within such places as IBM than in the hacker community. It tends to stress naive measures of productivity and to underweight creativity, ingenuity, and getting the job *done* — and to sidestep the question of whether the 3,000 lines of code do more or less useful work than three lines that do the {Right Thing}. Hackers tend to prefer the terms {hacker} and {wizard}.

:superuser: /n./ [Unix] Syn. {root}, {avatar}. This usage has spread to non-Unix environments; the superuser is any account with all {wheel} bits on. A more specific term than {wheel}.

:support: /n./ After-sale handholding; something many software vendors promise but few deliver. To hackers, most support people are useless — because by the time a hacker calls support he or she will usually know the software and the relevant manuals better than the support people (sadly, this is *not* a joke or exaggeration). A hacker's idea of 'support' is a t^ete-'a-t^ete with the software's designer.

:surf: /v./ [from the 'surf' idiom for rapidly flipping TV channels] To traverse the Internet in search of interesting stuff, used esp. if one is doing so with a World Wide Web browser. It is also common to speak of 'surfing in' to a particular resource.

:Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank Zappa's 'Suzy Creamcheese'] /n./ A coder straight out of training school who knows everything except the value of comments in plain English. Also (fashionable among personkind wishing to avoid accusations of sexism) 'Sammy Cobol' or (in some non-IBM circles) 'Cobol Charlie'. 2. [proposed] Meta-name for any {code grinder}, analogous to {J. Random Hacker}.

:swab: /swob/ [From the mnemonic for the PDP-11 'SWAp Byte' instruction, as immortalized in the 'dd(1)' option 'conv=swab' (see {dd})] 1. /vt./ To solve the {NUXI problem} by swapping bytes in a file. 2. /n./ The program in V7 Unix used to perform this action, or anything functionally equivalent to it. See also {big-endian}, {little-endian}, {middle-endian}, {bytesexual}.

:swap: /vt./ 1. [techspeak] To move information from a fast-access memory to a slow-access memory ('swap out'), or vice versa ('swap in'). Often refers specifically to the use of disks as 'virtual memory'. As pieces of data or program are needed, they are swapped into {core} for processing; when they are no longer needed they may be swapped out again. 2. The jargon use of these terms analogizes people's short-term memories with core. Cramming for an exam might be spoken of as swapping in. If you temporarily forget someone's name, but then remember it, your excuse is that it was swapped out. To 'keep something swapped in' means to keep it fresh in your memory: "I reread the TECO manual every few months to keep it swapped in." If someone interrupts you just as you got a good idea, you might say "Wait a moment while I swap this out", implying that a piece of paper is your extra-somatic memory and that if you don't swap the idea out by writing it down it will get overwritten and lost as you talk. Compare {page in}, {page out}.

:swap space: /n./ Storage space, especially temporary storage space used during a move or reconfiguration. "I'm just using that corner of the machine room for swap space."

:swapped in: /n./ See {swap}. See also {page in}.

:swapped out: /n./ See {swap}. See also {page out}.

:swizzle: /v./ To convert external names, array indices, or references within a data structure into address pointers when the data structure is brought into main memory from external storage (also called 'pointer swizzling'); this may be done for speed in chasing references or to simplify code (e.g., by turning lots of name lookups into pointer dereferences). The converse operation is sometimes termed 'unswizzling'. See also {snap}.

:sync: /sink/ n., /vi./ (var. 'synch') 1. To synchronize, to bring into synchronization. 2. [techspeak] To force all pending I/O to the disk; see {flush}, sense 2. 3. More generally, to force a number of competing processes or agents to a state that would be 'safe' if the system were to crash; thus, to checkpoint (in the database-theory sense).

:syntactic salt: /n./ The opposite of {syntactic sugar}, a feature designed to make it harder to write bad code. Specifically, syntactic salt is a hoop the programmer must jump through just to prove that he knows what's going on, rather than to express a program action. Some programmers consider required type declarations to be syntactic salt. A requirement to write 'end if', 'end while', 'end do', etc. to terminate the last block controlled by a control construct (as opposed to just 'end') would definitely be syntactic salt. Syntactic salt is like the real thing in that it tends to raise hackers' blood pressures in an unhealthy way. Compare {candygrammar}.

:syntactic sugar: /n./ [coined by Peter Landin] Features added to a language or other formalism to make it 'sweeter' for humans, features which do not affect the expressiveness of the formalism (compare {chrome}). Used esp. when there is an obvious and trivial translation of the 'sugar' feature into other constructs already present in the notation. C's 'a[i]' notation is syntactic sugar for '*(a + i)'. "Syntactic sugar causes cancer of the semicolon." — Alan Perlis.

The variants 'syntactic saccharin' and 'syntactic syrup' are also recorded. These denote something even more gratuitous, in that syntactic sugar serves a purpose (making something more acceptable to humans), but syntactic saccharin or syrup serve no purpose at all. Compare {candygrammar}, {syntactic salt}.

:sys-frog: /sis'frog/ /n./ [the PLATO system] Playful variant of 'sysprog', which is in turn short for 'systems programmer'.

:sysadmin: /sis'ad-min/ /n./ Common contraction of 'system admin'; see {admin}.

:sysape: /sys'ayp/ /n./ A rather derogatory term for a computer operator; a play on {sysop} common at sites that use the banana hierarchy of problem complexity (see {one-banana problem}).

:sysop: /sis'op/ /n./ [esp. in the BBS world] The operator (and usually the owner) of a bulletin-board system. A common neophyte mistake on {FidoNet} is to address a message to 'sysop' in an international {echo}, thus sending it to hundreds of sysops around the world.

:system: /n./ 1. The supervisor program or OS on a computer. 2. The entire computer system, including input/output devices, the supervisor program or OS, and possibly other software. 3. Any large-scale program. 4. Any method or algorithm. 5. 'System hacker': one who hacks the system (in senses 1 and 2 only; for sense 3 one mentions the particular program: e.g., 'LISP hacker')

:systems jock: /n./ See {jock}, sense 2.

:system mangler: /n./ Humorous synonym for 'system manager', poss. from the fact that one major IBM OS had a {root} account called SYSMANGR. Refers specifically to a systems programmer in charge of administration, software maintenance, and updates at some site. Unlike {admin}, this term emphasizes the technical end of the skills involved.

:SysVile: /sis-vi:l'/ /n./ See {Missed'em-five}.

= T = =====

:T: /T/ 1. [from LISP terminology for 'true'] Yes. Used in reply to a question (particularly one asked using {The '-P' convention}). In LISP, the constant T means 'true', among other things. Some Lisp hackers use 'T' and 'NIL' instead of 'Yes' and 'No' almost reflexively. This sometimes causes misunderstandings. When a waiter or flight attendant asks whether a hacker wants coffee, he may absently respond 'T', meaning that he wants coffee; but of course he will be brought a cup of tea instead. Fortunately, most hackers (particularly those who frequent Chinese restaurants) like tea at least as well as coffee — so it is not that big a problem. 2. See {time T} (also {since time T equals minus infinity}). 3. [techspeak] In transaction-processing circles, an abbreviation for the noun 'transaction'. 4. [Purdue] Alternate spelling of {tee}. 5. A dialect of {LISP} developed at Yale. (There is an intended allusion to NIL, "New Implementation of Lisp", another dialect of Lisp developed for the {VAX})

:tail recursion: /n./ If you aren't sick of it already, see {tail recursion}.

:talk mode: /n./ A feature supported by Unix, ITS, and some other OSes that allows two or more logged-in users to set up a real-time on-line conversation. It combines the immediacy of talking with all the precision (and verbosity) that written language entails. It is difficult to communicate inflection, though conventions have arisen for some of these (see the section on writing style in the Prependices for details).

Talk mode has a special set of jargon words, used to save typing, which are not used orally. Some of these are identical to (and probably derived from) Morse-code jargon used by ham-radio amateurs since the 1920s.

AFAIK as far as I know BCNU be seeing you BTW by the way BYE? are you ready to unlink? (this is the standard way to end a talk-mode conversation; the other person types 'BYE' to confirm, or else continues the conversation) CUL see you later ENQ? are you busy? (expects 'ACK' or 'NAK' in return) FOO? are you there? (often used on unexpected links, meaning also "Sorry if I butted in ..." (linker) or "What's up?" (linkee)) FWIW for what it's worth FYI for your information FYA for your amusement GA go ahead (used when two people have tried to type simultaneously; this cedes the right to type to the other) GRMBL grumble (expresses disquiet or disagreement) HELLOP hello? (an instance of the '-P' convention) IIRC if I recall correctly JAM just a minute (equivalent to 'SEC....') MIN same as 'JAM' NIL no (see {NIL}) O over to you OO over and out / another form of "over to you" (from x/y as "x over y") lambda (used in discussing LISPy things) OBTW oh, by the way OTOH on the other hand R U THERE? are you there? SEC wait a second (sometimes written 'SEC...') T yes (see the main entry for {T}) TNX thanks TNX 1.0E6 thanks a million (humorous) TNXE6 another form of "thanks a million" WRT with regard to, or with respect to. WTF the universal interrogative particle; WTF knows what it means? WTH what the hell? When the typing party has finished, he/she types two newlines to signal that he/she is done; this leaves a blank line between 'speeches' in the conversation, making it easier to reread the preceding text. : When three or more terminals are linked, it is conventional for each typist to {prepend} his/her login name or handle and a colon (or a hyphen) to each line to indicate who is typing (some conferencing facilities do this automatically). The login name is often shortened to a unique prefix (possibly a single letter) during a very long conversation. /// A giggle or chuckle. On a MUD, this usually means 'earthquake fault'.

Most of the above sub-jargon is used at both Stanford and MIT. Several of these expressions are also common in {email}, esp. FYI, FYA, BTW, BCNU, WTF, and CUL. A few other abbreviations have been reported from commercial networks, such as GEnie and CompuServe, where on-line 'live' chat including more than two people is common and usually involves a more 'social' context, notably the following:

grin grinning, running, and ducking BBL be back later BRB be right back HHOJ ha ha only joking HHOK ha ha only kidding HHOS {ha ha only serious} IMHO in my humble opinion (see {IMHO}) LOL laughing out loud NHOH Never Heard of Him/Her (often used in {initgame}) ROTF rolling on the floor ROTFL rolling on the floor laughing AFK away from keyboard b4 before CU l8tr see you later MORF male or female? TTFN ta-ta for now TTYL talk to you later OIC oh, I see rehi hello again

Most of these are not used at universities or in the Unix world, though ROTF and TTFN have gained some currency there and IMHO is common; conversely, most of the people who know these are unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.

The {MUD} community uses a mixture of Usenet/Internet emoticons, a few of the more natural of the old-style talk-mode abbrevs, and some of the 'social' list above; specifically, MUD respondents report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH. The use of 'rehi' is also common; in fact, mudders are fond of re- compounds and will frequently 'rehug' or 'rebonk' (see {bonk/oif}) people. The word 're' by itself is taken as 'regreet'. In general, though, MUDders express a preference for typing things out in full rather than using abbreviations; this may be due to the relative youth of the MUD cultures, which tend to include many touch typists and to assume high-speed links. The following uses specific to MUDs are reported:

CU l8er see you later (mutant of 'CU l8tr') FOAD fuck off and die (use of this is generally OTT) OTT over the top (excessive, uncalled for) ppl abbrev for "people" THX thanks (mutant of 'TNX'; clearly this comes in batches of 1138 (the Lucasian K)). UOK? are you OK?

Some {B1FF}isms (notably the variant spelling 'd00d') appear to be passing into wider use among some subgroups of MUDders.

One final note on talk mode style: neophytes, when in talk mode, often seem to think they must produce letter-perfect prose because they are typing rather than speaking. This is not the best approach. It can be very frustrating to wait while your partner pauses to think of a word, or repeatedly makes the same spelling error and backs up to fix it. It is usually best just to leave typographical errors behind and plunge forward, unless severe confusion may result; in that case it is often fastest just to type "xxx" and start over from before the mistake.

See also {hakspek}, {emoticon}.

:talker system: /n./ British hackerism for software that enables real-time chat or {talk mode}.

:tall card: /n./ A PC/AT-size expansion card (these can be larger than IBM PC or XT cards because the AT case is bigger). See also {short card}. When IBM introduced the PS/2 model 30 (its last gasp at supporting the ISA) they made the case lower and many industry-standard tall cards wouldn't fit; this was felt to be a reincarnation of the {connector conspiracy}, done with less style.

:tanked: /adj./ Same as {down}, used primarily by Unix hackers. See also {hosed}. Popularized as a synonym for 'drunk' by Steve Dallas in the late lamented "Bloom County" comic strip.

:TANSTAAFL: /tan'stah-fl/ [acronym, from Robert Heinlein's classic "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 free 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 {A Portrait of J. Random Hacker} in Appendix B).

:tar and feather: /vi./ [from Unix 'tar(1)'] To create a transportable archive from a group of files by first sticking them together with 'tar(1)' (the Tape ARchiver) and then compressing the result (see {compress}). The latter action is dubbed 'feathering' partly for euphony and (if only for contrived effect) by analogy to what you do with an airplane propeller to decrease wind resistance, or with an oar to reduce water resistance; smaller files, after all, slip through comm links more easily.

:taste: [primarily MIT] /n./ 1. The quality in a program that tends to be inversely proportional to the number of features, hacks, and kluges programmed into it. Also 'tasty', 'tasteful', 'tastefulness'. "This feature comes in N tasty flavors." Although 'tasty' and 'flavorful' are essentially synonyms, 'taste' and {flavor} are not. Taste refers to sound judgment on the part of the creator; a program or feature can *exhibit* taste but cannot *have* taste. On the other hand, a feature can have {flavor}. Also, {flavor} has the additional meaning of 'kind' or 'variety' not shared by 'taste'. The marked sense of {flavor} is more popular than 'taste', though both are widely used. See also {elegant}. 2. Alt. sp. of {tayste}.

:tayste: /tayst/ /n./ Two bits; also as {taste}. Syn. {crumb}, {quarter}. See {nybble}.

:TCB: /T-C-B/ /n./ [IBM] 1. Trouble Came Back. An intermittent or difficult-to-reproduce problem that has failed to respond to neglect or {shotgun debugging}. Compare {heisenbug}. Not to be confused with: 2. Trusted Computing Base, an 'official' jargon term from the {Orange Book}.

:TCP/IP: /T'C-P I'P/ /n./ 1. [Transmission Control Protocol/Internet Protocol] The wide-area-networking protocol that makes the Internet work, and the only one most hackers can speak the name of without laughing or retching. Unlike such allegedly 'standard' competitors such as X.25, DECnet, and the ISO 7-layer stack, TCP/IP evolved primarily by actually being *used*, rather than being handed down from on high by a vendor or a heavily-politicized standards committee. Consequently, it (a) works, (b) actually promotes cheap cross-platform connectivity, and (c) annoys the hell out of corporate and governmental empire-builders everywhere. Hackers value all three of these properties. See {creationism}. 2. [Amateur Packet Radio] Sometimes expanded as "The Crap Phil Is Pushing". The reference is to Phil Karn, KA9Q, and the context is an ongoing technical/political war between the majority of sites still running AX.25 and a growing minority of TCP/IP relays.

:tea, ISO standard cup of: /n./ [South Africa] A cup of tea with milk and one teaspoon of sugar, where the milk is poured into the cup before the tea. Variations are ISO 0, with no sugar; ISO 2, with two spoons of sugar; and so on.

Like many ISO standards, this one has a faintly alien ring in North America, where hackers generally shun the decadent British practice of adulterating perfectly good tea with dairy products and prefer instead to add a wedge of lemon, if anything. If one were feeling extremely silly, one might hypothesize an analogous 'ANSI standard cup of tea' and wind up with a political situation distressingly similar to several that arise in much more serious technical contexts. Milk and lemon don't mix very well.

:TechRef: /tek'ref/ /n./ [MS-DOS] The original "IBM PC Technical Reference Manual", including the BIOS listing and complete schematics for the PC. The only PC documentation in the original-issue package that was considered serious by real hackers.

:TECO: /tee'koh/ /n.,v. obs./ 1. [originally an acronym for '[paper] Tape Editor and COrrector'; later, 'Text Editor and COrrector'] /n./ A text editor developed at MIT and modified by just about everybody. With all the dialects included, TECO may have been the most prolific editor in use before {EMACS}, to which it was directly ancestral. Noted for its powerful programming-language-like features and its unspeakably hairy syntax. It is literally the case that every string of characters is a valid TECO program (though probably not a useful one); one common game used to be mentally working out what the TECO commands corresponding to human names did. 2. /vt./ Originally, to edit using the TECO editor in one of its infinite variations (see below). 3. vt.,obs. To edit even when TECO is *not* the editor being used! This usage is rare and now primarily historical.

As an example of TECO's obscurity, here is a TECO program that takes a list of names such as:

Loser, J. Random Quux, The Great Dick, Moby

sorts them alphabetically according to surname, and then puts the surname last, removing the comma, to produce the following:

Moby Dick J. Random Loser The Great Quux

The program is

[1 J^P$L$$ J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$

(where ^B means 'Control-B' (ASCII 0000010) and $ is actually an {alt} or escape (ASCII 0011011) character).

In fact, this very program was used to produce the second, sorted list from the first list. The first hack at it had a {bug}: GLS (the author) had accidentally omitted the '@' in front of 'F^B', which as anyone can see is clearly the {Wrong Thing}. It worked fine the second time. There is no space to describe all the features of TECO, but it may be of interest that '^P' means 'sort' and 'J' is an idiomatic series of commands for 'do once for every line'.

In mid-1991, TECO is pretty much one with the dust of history, having been replaced in the affections of hackerdom by {EMACS}. Descendants of an early (and somewhat lobotomized) version adopted by DEC can still be found lurking on VMS and a couple of crufty PDP-11 operating systems, however, and ports of the more advanced MIT versions remain the focus of some antiquarian interest. See also {retrocomputing}, {write-only language}.

:tee: /n.,vt./ [Purdue] A carbon copy of an electronic transmission. "Oh, you're sending him the {bits} to that? Slap on a tee for me." From the Unix command 'tee(1)', itself named after a pipe fitting (see {plumbing}). Can also mean 'save one for me', as in "Tee a slice for me!" Also spelled 'T'.

:teledildonics: /tel'*-dil-do'-niks/ /n./ Sex in a computer simulated virtual reality, esp. computer-mediated sexual interaction between the {VR} presences of two humans. This practice is not yet possible except in the rather limited form of erotic conversation on {MUD}s and the like. The term, however, is widely recognized in the VR community as a {ha ha only serious} projection of things to come. "When we can sustain a multi-sensory surround good enough for teledildonics, *then* we'll know we're getting somewhere." See also {hot chat}.

:Telerat: /tel'*-rat/ /n. obs./ Unflattering hackerism for 'Teleray', a now-extinct line of extremely losing terminals. Compare {AIDX}, {Macintrash} {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {HP-SUX}.

:TELNET: /tel'net/ /vt./ (also commonly lowercased as 'telnet') To communicate with another Internet host using the TELNET ({RFC} 854) protocol (usually using a program of the same name). TOPS-10 people used the word IMPCOM, since that was the program name for them. Sometimes abbreviated to TN /T-N/. "I usually TN over to SAIL just to read the AP News."

:ten-finger interface: /n./ The interface between two networks that cannot be directly connected for security reasons; refers to the practice of placing two terminals side by side and having an operator read from one and type into the other.

:tense: /adj./ Of programs, very clever and efficient. A tense piece of code often got that way because it was highly {bum}med, but sometimes it was just based on a great idea. A comment in a clever routine by Mike Kazar, once a grad-student hacker at CMU: "This routine is so tense it will bring tears to your eyes." A tense programmer is one who produces tense code.

:tentacle: /n./ A covert {pseudo}, sense 1. An artificial identity created in cyberspace for nefarious and deceptive purposes. The implication is that a single person may have multiple tentacles. This term was originally floated in some paranoid ravings on the cypherpunks list (see {cypherpunk}), and adopted in a spirit of irony by other, saner members. It has since shown up, used seriously, in the documentation for some remailer software, and is now (1994) widely recognized on the net.

:tenured graduate student: /n./ One who has been in graduate school for 10 years (the usual maximum is 5 or 6): a 'ten-yeared' student (get it?). Actually, this term may be used of any grad student beginning in his seventh year. Students don't really get tenure, of course, the way professors do, but a tenth-year graduate student has probably been around the university longer than any untenured professor.

:tera-: /te'r*/ /pref./ [SI] See {{quantifiers}}.

:teraflop club: /te'r*-flop kluhb/ /n./ [FLOP = Floating Point Operation] A mythical association of people who consume outrageous amounts of computer time in order to produce a few simple pictures of glass balls with intricate ray-tracing techniques. Caltech professor James Kajiya is said to have been the founder. Compare {Knights of the Lambda Calculus}.

:terminak: /ter'mi-nak'/ /n./ [Caltech, ca. 1979] Any malfunctioning computer terminal. A common failure mode of Lear-Siegler ADM 3a terminals caused the 'L' key to produce the 'K' code instead; complaints about this tended to look like "Terminak #3 has a bad keyboard. Pkease fix." Compare {dread high-bit disease}, {frogging}; see also {AIDX}, {Nominal Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools}, {Telerat}, {HP-SUX}.

:terminal brain death: /n./ The extreme form of {terminal illness} (sense 1). What someone who has obviously been hacking continuously for far too long is said to be suffering from.

:terminal illness: /n./ 1. Syn. {raster burn}. 2. The 'burn-in' condition your CRT tends to get if you don't have a screen saver.

:terminal junkie: /n./ [UK] A {wannabee} or early {larval stage} hacker who spends most of his or her time wandering the directory tree and writing {noddy} programs just to get a fix of computer time. Variants include 'terminal jockey', 'console junkie', and {console jockey}. The term 'console jockey' seems to imply more expertise than the other three (possibly because of the exalted status of the {{console}} relative to an ordinary terminal). See also {twink}, {read-only user}.

:terpri: /ter'pree/ /vi./ [from LISP 1.5 (and later, MacLISP)] To output a {newline}. Now rare as jargon, though still used as techspeak in Common LISP. It is a contraction of 'TERminate PRInt line', named for the fact that, on some early OSes and hardware, no characters would be printed until a complete line was formed, so this operation terminated the line and emitted the output.

:test: /n./ 1. Real users bashing on a prototype long enough to get thoroughly acquainted with it, with careful monitoring and followup of the results. 2. Some bored random user trying a couple of the simpler features with a developer looking over his or her shoulder, ready to pounce on mistakes. Judging by the quality of most software, the second definition is far more prevalent. See also {demo}.

:TeX:: /tekh/ /n./ An extremely powerful {macro}-based text formatter written by Donald E. {Knuth}, very popular in the computer-science community (it is good enough to have displaced Unix {{troff}}, the other favored formatter, even at many Unix installations). TeX fans insist on the correct (guttural) pronunciation, and the correct spelling (all caps, squished together, with the E depressed below the baseline; the mixed-case 'TeX' is considered an acceptable kluge on ASCII-only devices). Fans like to proliferate names from the word 'TeX' — such as TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster (competent TeX programmer), TeXhax, and TeXnique. See also {CrApTeX}.

Knuth began TeX because he had become annoyed at the declining quality of the typesetting in volumes I—III of his monumental "Art of Computer Programming" (see {Knuth}, also {bible}). In a manifestation of the typical hackish urge to solve the problem at hand once and for all, he began to design his own typesetting language. He thought he would finish it on his sabbatical in 1978; he was wrong by only about 8 years. The language was finally frozen around 1985, but volume IV of "The Art of Computer Programming" is not expected to appear until 2002. The impact and influence of TeX's design has been such that nobody minds this very much. Many grand hackish projects have started as a bit of {toolsmith}ing on the way to something else; Knuth's diversion was simply on a grander scale than most.

TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth used to offer monetary awards to people who found and reported bugs in it; as the years wore on and the few remaining bugs were fixed (and new ones even harder to find), the bribe went up. Though well-written, TeX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every Pascal system it has been compiled with.

:text: /n./ 1. [techspeak] Executable code, esp. a 'pure code' portion shared between multiple instances of a program running in a multitasking OS. Compare {English}. 2. Textual material in the mainstream sense; data in ordinary {{ASCII}} or {{EBCDIC}} representation (see {flat-ASCII}). "Those are text files; you can review them using the editor." These two contradictory senses confuse hackers, too.

:thanks in advance: [Usenet] Conventional net.politeness ending a posted request for information or assistance. Sometimes written 'advTHANKSance' or 'aTdHvAaNnKcSe' or abbreviated 'TIA'. See {net.-}, {netiquette}.

:That's not a bug, that's a feature!: The {canonical} first parry in a debate about a purported bug. The complainant, if unconvinced, is likely to retort that the bug is then at best a {misfeature}. See also {feature}.

:the X that can be Y is not the true X: Yet another instance of hackerdom's peculiar attraction to mystical references — a common humorous way of making exclusive statements about a class of things. The template is from the "Tao te Ching": "The Tao which can be spoken of is not the true Tao." The implication is often that the X is a mystery accessible only to the enlightened. See the {trampoline} entry for an example, and compare {has the X nature}.

:theology: /n./ 1. Ironically or humorously used to refer to {religious issues}. 2. Technical fine points of an abstruse nature, esp. those where the resolution is of theoretical interest but is relatively {marginal} with respect to actual use of a design or system. Used esp. around software issues with a heavy AI or language-design component, such as the smart-data vs. smart-programs dispute in AI.

:theory: /n./ The consensus, idea, plan, story, or set of rules that is currently being used to inform a behavior. This usage is a generalization and (deliberate) abuse of the technical meaning. "What's the theory on fixing this TECO loss?" "What's the theory on dinner tonight?" ("Chinatown, I guess.") "What's the current theory on letting lusers on during the day?" "The theory behind this change is to fix the following well-known screw...."

:thinko: /thing'koh/ /n./ [by analogy with 'typo'] A momentary, correctable glitch in mental processing, especially one involving recall of information learned by rote; a bubble in the stream of consciousness. Syn. {braino}; see also {brain fart}. Compare {mouso}.

:This can't happen: Less clipped variant of {can't happen}.

:This time, for sure!: /excl./ Ritual affirmation frequently uttered during protracted debugging sessions involving numerous small obstacles (e.g., attempts to bring up a UUCP connection). For the proper effect, this must be uttered in a fruity imitation of Bullwinkle J. Moose. Also heard: "Hey, Rocky! Watch me pull a rabbit out of my hat!" The {canonical} response is, of course, "But that trick *never* works!" See {{hacker humor}}.

:thrash: /vi./ To move wildly or violently, without accomplishing anything useful. Paging or swapping systems that are overloaded waste most of their time moving data into and out of core (rather than performing useful computation) and are therefore said to thrash. Someone who keeps changing his mind (esp. about what to work on next) is said to be thrashing. A person frantically trying to execute too many tasks at once (and not spending enough time on any single task) may also be described as thrashing. Compare {multitask}.

:thread: /n./ [Usenet, GEnie, CompuServe] Common abbreviation of 'topic thread', a more or less continuous chain of postings on a single topic. To 'follow a thread' is to read a series of Usenet postings sharing a common subject or (more correctly) which are connected by Reference headers. The better newsreaders can present news in thread order automatically.

Interestingly, this is far from a neologism. The OED says: "That which connects the successive points in anything, esp. a narrative, train of thought, or the like; the sequence of events or ideas continuing throughout the whole course of anything;" Citations are given going back to 1642!

:three-finger salute: /n./ Syn. {Vulcan nerve pinch}.

:thud: /n./ 1. Yet another {metasyntactic variable} (see {foo}). It is reported that at CMU from the mid-1970s the canonical series of these was 'foo', 'bar', 'thud', 'blat'. 2. Rare term for the hash character, '#' (ASCII 0100011). See {ASCII} for other synonyms.

:thumb: /n./ The slider on a window-system scrollbar. So called because moving it allows you to browse through the contents of a text window in a way analogous to thumbing through a book.

:thunk: /thuhnk/ /n./ 1. "A piece of coding which provides an address", according to P. Z. Ingerman, who invented thunks in 1961 as a way of binding actual parameters to their formal definitions in Algol-60 procedure calls. If a procedure is called with an expression in the place of a formal parameter, the compiler generates a thunk which computes the expression and leaves the address of the result in some standard location. 2. Later generalized into: an expression, frozen together with its environment, for later evaluation if and when needed (similar to what in techspeak is called a 'closure'). The process of unfreezing these thunks is called 'forcing'. 3. A {stubroutine}, in an overlay programming environment, that loads and jumps to the correct overlay. Compare {trampoline}. 4. People and activities scheduled in a thunklike manner. "It occurred to me the other day that I am rather accurately modeled by a thunk — I frequently need to be forced to completion." —- paraphrased from a {plan file}.

Historical note: There are a couple of onomatopoeic myths circulating about the origin of this term. The most common is that it is the sound made by data hitting the stack; another holds that the sound is that of the data hitting an accumulator. Yet another suggests that it is the sound of the expression being unfrozen at argument-evaluation time. In fact, according to the inventors, it was coined after they realized (in the wee hours after hours of discussion) that the type of an argument in Algol-60 could be figured out in advance with a little compile-time thought, simplifying the evaluation machinery. In other words, it had 'already been thought of'; thus it was christened a 'thunk', which is "the past tense of 'think' at two in the morning".

:tick: /n./ 1. A {jiffy} (sense 1). 2. In simulations, the discrete unit of time that passes between iterations of the simulation mechanism. In AI applications, this amount of time is often left unspecified, since the only constraint of interest is the ordering of events. This sort of AI simulation is often pejoratively referred to as 'tick-tick-tick' simulation, especially when the issue of simultaneity of events with long, independent chains of causes is {handwave}d. 3. In the FORTH language, a single quote character.

:tick-list features: /n./ [Acorn Computers] Features in software or hardware that customers insist on but never use (calculators in desktop TSRs and that sort of thing). The American equivalent would be 'checklist features', but this jargon sense of the phrase has not been reported.

:tickle a bug: /vt./ To cause a normally hidden bug to manifest itself through some known series of inputs or operations. "You can tickle the bug in the Paradise VGA card's highlight handling by trying to set bright yellow reverse video."

:tiger team: /n./ [U.S. military jargon] 1. Originally, a team (of {sneaker}s) whose purpose is to penetrate security, and thus test security measures. These people are paid professionals who do hacker-type tricks, e.g., leave cardboard signs saying "bomb" in critical defense installations, hand-lettered notes saying "Your codebooks have been stolen" (they usually haven't been) inside safes, etc. After a successful penetration, some high-ranking security type shows up the next morning for a 'security review' and finds the sign, note, etc., and all hell breaks loose. Serious successes of tiger teams sometimes lead to early retirement for base commanders and security officers (see the {patch} entry for an example). 2. Recently, and more generally, any official inspection team or special {firefighting} group called in to look at a problem.

A subset of tiger teams are professional {cracker}s, testing the security of military computer installations by attempting remote attacks via networks or supposedly 'secure' comm channels. Some of their escapades, if declassified, would probably rank among the greatest hacks of all times. The term has been adopted in commercial computer-security circles in this more specific sense.

:time bomb: /n./ A subspecies of {logic bomb} that is triggered by reaching some preset time, either once or periodically. There are numerous legends about time bombs set up by programmers in their employers' machines, to go off if the programmer is fired or laid off and is not present to perform the appropriate suppressing action periodically.

Interestingly, the only such incident for which we have been pointed to documentary evidence took place in the Soviet Union in 1986! A disgruntled programmer at the Volga Automobile Plant (where the Fiat clones called Ladas were manufactured) planted a time bomb which, a week after he'd left on vacation, stopped the entire main assembly line for a day. The case attracted lots of attention in the Soviet Union because it was the first cracking case to make it to court there. The perpetrator got a suspended sentence of 3 years in jail and was barred from future work as a programmer.

:time sink: /n./ [poss. by analogy with 'heat sink' or 'current sink'] A project that consumes unbounded amounts of time.

:time T: /ti:m T/ /n./ 1. An unspecified but usually well-understood time, often used in conjunction with a later time T+1. "We'll meet on campus at time T or at Louie's at time T+1" means, in the context of going out for dinner: "We can meet on campus and go to Louie's, or we can meet at Louie's itself a bit later." (Louie's was a Chinese restaurant in Palo Alto that was a favorite with hackers.) Had the number 30 been used instead of the number 1, it would have implied that the travel time from campus to Louie's is 30 minutes; whatever time T is (and that hasn't been decided on yet), you can meet half an hour later at Louie's than you could on campus and end up eating at the same time. See also {since time T equals minus infinity}.

:times-or-divided-by: /quant./ [by analogy with 'plus-or-minus'] Term occasionally used when describing the uncertainty associated with a scheduling estimate, for either humorous or brutally honest effect. For a software project, the scheduling uncertainty factor is usually at least 2.

:Tinkerbell program: /n./ [Great Britain] A monitoring program used to scan incoming network calls and generate alerts when calls are received from particular sites, or when logins are attempted using certain IDs. Named after 'Project Tinkerbell', an experimental phone-tapping program developed by British Telecom in the early 1980s.

:tip of the ice-cube: /n./ [IBM] The visible part of something small and insignificant. Used as an ironic comment in situations where 'tip of the iceberg' might be appropriate if the subject were at all important.

:tired iron: /n./ [IBM] Hardware that is perfectly functional but far enough behind the state of the art to have been superseded by new products, presumably with sufficient improvement in bang-per-buck that the old stuff is starting to look a bit like a {dinosaur}.

:tits on a keyboard: /n./ Small bumps on certain keycaps to keep touch-typists registered (usually on the '5' of a numeric keypad, and on the 'F' and 'J' of a {QWERTY} keyboard; but the Mac, perverse as usual, has them on the 'D' and 'K' keys).

:TLA: /T-L-A/ /n./ [Three-Letter Acronym] 1. Self-describing abbreviation for a species with which computing terminology is infested. 2. Any confusing acronym. Examples include MCA, FTP, SNA, CPU, MMU, SCCS, DMU, FPU, NNTP, TLA. People who like this looser usage argue that not all TLAs have three letters, just as not all four-letter words have four letters. One also hears of 'ETLA' (Extended Three-Letter Acronym, pronounced /ee tee el ay/) being used to describe four-letter acronyms. The term 'SFLA' (Stupid Four-Letter Acronym) has also been reported. See also {YABA}.

The self-effacing phrase "TDM TLA" (Too Damn Many...) is often used to bemoan the plethora of TLAs in use. In 1989, a random of the journalistic persuasion asked hacker Paul Boutin "What do you think will be the biggest problem in computing in the 90s?" Paul's straight-faced response: "There are only 17,000 three-letter acronyms." (To be exact, there are 26^3 = 17,576.)

:TMRC: /tmerk'/ /n./ The Tech Model Railroad Club at MIT, one of the wellsprings of hacker culture. The 1959 "Dictionary of the TMRC Language" compiled by Peter Samson included several terms that became basics of the hackish vocabulary (see esp. {foo}, {mung}, and {frob}).

By 1962, TMRC's legendary layout was already a marvel of complexity (and has grown in the thirty years since; all the features described here are still present). The control system alone featured about 1200 relays. There were {scram switch}es located at numerous places around the room that could be thwacked if something undesirable was about to occur, such as a train going full-bore at an obstruction. Another feature of the system was a digital clock on the dispatch board, which was itself something of a wonder in those bygone days before cheap LEDs and seven-segment displays. When someone hit a scram switch the clock stopped and the display was replaced with the word 'FOO'; at TMRC the scram switches are therefore called 'foo switches'.

Steven Levy, in his book "Hackers" (see the {Bibliography} in Appendix C), gives a stimulating account of those early years. TMRC's Power and Signals group included most of the early PDP-1 hackers and the people who later became the core of the MIT AI Lab staff. Thirty years later that connection is still very much alive, and this lexicon accordingly includes a number of entries from a recent revision of the TMRC dictionary.

:TMRCie: /tmerk'ee/, /n./ [MIT] A denizen of {TMRC}.

:to a first approximation: /adj./ 1. [techspeak] When one is doing certain numerical computations, an approximate solution may be computed by any of several heuristic methods, then refined to a final value. By using the starting point of a first approximation of the answer, one can write an algorithm that converges more quickly to the correct result. 2. In jargon, a preface to any comment that indicates that the comment is only approximately true. The remark "To a first approximation, I feel good" might indicate that deeper questioning would reveal that not all is perfect (e.g., a nagging cough still remains after an illness).

:to a zeroth approximation: [from 'to a first approximation'] A *really* sloppy approximation; a wild guess. Compare {social science number}.

:toad: /vt./ [MUD] 1. Notionally, to change a {MUD} player into a toad. 2. To permanently and totally exile a player from the MUD. A very serious action, which can only be done by a MUD {wizard}; often involves a lot of debate among the other characters first. See also {frog}, {FOD}.

:toast: 1. /n./ Any completely inoperable system or component, esp. one that has just crashed and burned: "Uh, oh ... I think the serial board is toast." 2. /vt./ To cause a system to crash accidentally, especially in a manner that requires manual rebooting. "Rick just toasted the {firewall machine} again." Compare {fried}.

:toaster: /n./ 1. The archetypal really stupid application for an embedded microprocessor controller; often used in comments that imply that a scheme is inappropriate technology (but see {elevator controller}). "{DWIM} for an assembler? That'd be as silly as running Unix on your toaster!" 2. A very, very dumb computer. "You could run this program on any dumb toaster." See {bitty box}, {Get a real computer!}, {toy}, {beige toaster}. 3. A Macintosh, esp. the Classic Mac. Some hold that this is implied by sense 2. 4. A peripheral device. "I bought my box without toasters, but since then I've added two boards and a second disk drive."

:toeprint: /n./ A {footprint} of especially small size.

:toggle: /vt./ To change a {bit} from whatever state it is in to the other state; to change from 1 to 0 or from 0 to 1. This comes from 'toggle switches', such as standard light switches, though the word 'toggle' actually refers to the mechanism that keeps the switch in the position to which it is flipped rather than to the fact that the switch has two positions. There are four things you can do to a bit: set it (force it to be 1), clear (or zero) it, leave it alone, or toggle it. (Mathematically, one would say that there are four distinct boolean-valued functions of one boolean argument, but saying that is much less fun than talking about toggling bits.)

:tool: 1. /n./ A program used primarily to create, manipulate, modify, or analyze other programs, such as a compiler or an editor or a cross-referencing program. Oppose {app}, {operating system}. 2. [Unix] An application program with a simple, 'transparent' (typically text-stream) interface designed specifically to be used in programmed combination with other tools (see {filter}, {plumbing}). 3. [MIT: general to students there] /vi./ To work; to study (connotes tedium). The TMRC Dictionary defined this as "to set one's brain to the grindstone". See {hack}. 4. /n./ [MIT] A student who studies too much and hacks too little. (MIT's student humor magazine rejoices in the name "Tool and Die".)

:toolsmith: /n./ The software equivalent of a tool-and-die specialist; one who specializes in making the {tool}s with which other programmers create applications. Many hackers consider this more fun than applications per se; to understand why, see {uninteresting}. Jon Bentley, in the "Bumper-Sticker Computer Science" chapter of his book "More Programming Pearls", quotes Dick Sites from DEC as saying "I'd rather write programs to write programs than write programs".

:topic drift: /n./ Term used on GEnie, Usenet and other electronic fora to describe the tendency of a {thread} to drift away from the original subject of discussion (and thus, from the Subject header of the originating message), or the results of that tendency. Often used in gentle reminders that the discussion has strayed off any useful track. "I think we started with a question about Niven's last book, but we've ended up discussing the sexual habits of the common marmoset. Now *that's* topic drift!"

:topic group: /n./ Syn. {forum}.

:TOPS-10:: /tops-ten/ /n./ DEC's proprietary OS for the fabled {PDP-10} machines, long a favorite of hackers but now effectively extinct. A fountain of hacker folklore; see Appendix A. See also {{ITS}}, {{TOPS-20}}, {{TWENEX}}, {VMS}, {operating system}. TOPS-10 was sometimes called BOTS-10 (from 'bottoms-ten') as a comment on the inappropriateness of describing it as the top of anything.

:TOPS-20:: /tops-twen'tee/ /n./ See {{TWENEX}}.

:tourist: /n./ [ITS] A guest on the system, especially one who generally logs in over a network from a remote location for {comm mode}, email, games, and other trivial purposes. One step below {luser}. Hackers often spell this {turist}, perhaps by some sort of tenuous analogy with {luser} (this also expresses the ITS culture's penchant for six-letterisms). Compare {twink}, {read-only user}.

:tourist information: /n./ Information in an on-line display that is not immediately useful, but contributes to a viewer's gestalt of what's going on with the software or hardware behind it. Whether a given piece of info falls in this category depends partly on what the user is looking for at any given time. The 'bytes free' information at the bottom of an MS-DOS 'dir' display is tourist information; so (most of the time) is the TIME information in a Unix 'ps(1)' display.

:touristic: /adj./ Having the quality of a {tourist}. Often used as a pejorative, as in 'losing touristic scum'. Often spelled 'turistic' or 'turistik', so that phrase might be more properly rendered 'lusing turistic scum'.

:toy: /n./ A computer system; always used with qualifiers. 1. 'nice toy': One that supports the speaker's hacking style adequately. 2. 'just a toy': A machine that yields insufficient {computron}s for the speaker's preferred uses. This is not condemnatory, as is {bitty box}; toys can at least be fun. It is also strongly conditioned by one's expectations; Cray XMP users sometimes consider the Cray-1 a 'toy', and certainly all RISC boxes and mainframes are toys by their standards. See also {Get a real computer!}.

:toy language: /n./ A language useful for instructional purposes or as a proof-of-concept for some aspect of computer-science theory, but inadequate for general-purpose programming. {Bad Thing}s can result when a toy language is promoted as a general purpose solution for programming (see {bondage-and-discipline language}); the classic example is {{Pascal}}. Several moderately well-known formalisms for conceptual tasks such as programming Turing machines also qualify as toy languages in a less negative sense. See also {MFTL}.

:toy problem: /n./ [AI] A deliberately oversimplified case of a challenging problem used to investigate, prototype, or test algorithms for a real problem. Sometimes used pejoratively. See also {gedanken}, {toy program}.

:toy program: /n./ 1. One that can be readily comprehended; hence, a trivial program (compare {noddy}). 2. One for which the effort of initial coding dominates the costs through its life cycle. See also {noddy}.

:trampoline: /n./ An incredibly {hairy} technique, found in some {HLL} and program-overlay implementations (e.g., on the Macintosh), that involves on-the-fly generation of small executable (and, likely as not, self-modifying) code objects to do indirection between code sections. These pieces of {live data} are called 'trampolines'. Trampolines are notoriously difficult to understand in action; in fact, it is said by those who use this term that the trampoline that doesn't bend your brain is not the true trampoline. See also {snap}.

:trap: 1. /n./ A program interrupt, usually an interrupt caused by some exceptional situation in the user program. In most cases, the OS performs some action, then returns control to the program. 2. /vi./ To cause a trap. "These instructions trap to the monitor." Also used transitively to indicate the cause of the trap. "The monitor traps all input/output instructions."

This term is associated with assembler programming ('interrupt' or 'exception' is more common among {HLL} programmers) and appears to be fading into history among programmers as the role of assembler continues to shrink. However, it is still important to computer architects and systems hackers (see {system}, sense 1), who use it to distinguish deterministically repeatable exceptions from timing-dependent ones (such as I/O interrupts).

:trap door: /n./ (alt. 'trapdoor') 1. Syn. {back door} — a {Bad Thing}. 2. [techspeak] A 'trap-door function' is one which is easy to compute but very difficult to compute the inverse of. Such functions are {Good Thing}s with important applications in cryptography, specifically in the construction of public-key cryptosystems.

:trash: /vt./ To destroy the contents of (said of a data structure). The most common of the family of near-synonyms including {mung}, {mangle}, and {scribble}.

:trawl: /v./ To sift through large volumes of data (e.g., Usenet postings, FTP archives, or the Jargon File) looking for something of interest.

:tree-killer: /n./ [Sun] 1. A printer. 2. A person who wastes paper. This epithet should be interpreted in a broad sense; 'wasting paper' includes the production of {spiffy} but {content-free} documents. Thus, most {suit}s are tree-killers. The negative loading of this term may reflect the epithet 'tree-killer' applied by Treebeard the Ent to the Orcs in J.R.R. Tolkien's "Lord of the Rings" (see also {elvish}, {elder days}).

:treeware: /tree'weir/ /n./ Printouts, books, and other information media made from pulped dead trees. Compare {tree-killer}, see {documentation}.

:trit: /trit/ /n./ [by analogy with 'bit'] One base-3 digit; the amount of information conveyed by a selection among one of three equally likely outcomes (see also {bit}). Trits arise, for example, in the context of a {flag} that should actually be able to assume *three* values — such as yes, no, or unknown. Trits are sometimes jokingly called '3-state bits'. A trit may be semi-seriously referred to as 'a bit and a half', although it is linearly equivalent to 1.5849625 bits (that is, log2(3) bits).

:trivial: /adj./ 1. Too simple to bother detailing. 2. Not worth the speaker's time. 3. Complex, but solvable by methods so well known that anyone not utterly {cretinous} would have thought of them already. 4. Any problem one has already solved (some claim that hackish 'trivial' usually evaluates to 'I've seen it before'). Hackers' notions of triviality may be quite at variance with those of non-hackers. See {nontrivial}, {uninteresting}.

The physicist Richard Feynman, who had the hacker nature to an amazing degree (see his essay "Los Alamos From Below" in "Surely You're Joking, Mr. Feynman!"), defined 'trivial theorem' as "one that has already been proved".

:troff:: /T'rof/ or /trof/ /n./ [Unix] The gray eminence of Unix text processing; a formatting and phototypesetting program, written originally in PDP-11 assembler and then in barely-structured early C by the late Joseph Ossanna, modeled after the earlier ROFF which was in turn modeled after Multics' RUNOFF by Jerome Saltzer (*that* name came from the expression "to run off a copy"). A companion program, {nroff}, formats output for terminals and line printers.

In 1979, Brian Kernighan modified troff so that it could drive phototypesetters other than the Graphic Systems CAT. His paper describing that work ("A Typesetter-independent troff," AT&T CSTR #97) explains troff's durability. After discussing the program's "obvious deficiencies — a rebarbative input syntax, mysterious and undocumented properties in some areas, and a voracious appetite for computer resources" and noting the ugliness and extreme hairiness of the code and internals, Kernighan concludes:

None of these remarks should be taken as denigrating Ossanna's accomplishment with TROFF. It has proven a remarkably robust tool, taking unbelievable abuse from a variety of preprocessors and being forced into uses that were never conceived of in the original design, all with considerable grace under fire.

The success of {{TeX}} and desktop publishing systems have reduced 'troff''s relative importance, but this tribute perfectly captures the strengths that secured 'troff' a place in hacker folklore; indeed, it could be taken more generally as an indication of those qualities of good programs that, in the long run, hackers most admire.

:troglodyte: /n./ [Commodore] 1. A hacker who never leaves his cubicle. The term 'Gnoll' (from Dungeons & Dragons) is also reported. 2. A curmudgeon attached to an obsolescent computing environment. The combination 'ITS troglodyte' was flung around some during the Usenet and email wringle-wrangle attending the 2.x.x revision of the Jargon File; at least one of the people it was intended to describe adopted it with pride.

:troglodyte mode: /n./ [Rice University] Programming with the lights turned off, sunglasses on, and the terminal inverted (black on white) because you've been up for so many days straight that your eyes hurt (see {raster burn}). Loud music blaring from a stereo stacked in the corner is optional but recommended. See {larval stage}, {hack mode}.

:Trojan horse: /n./ [coined by MIT-hacker-turned-NSA-spook Dan Edwards] A malicious, security-breaking program that is disguised as something benign, such as a directory lister, archiver, game, or (in one notorious 1990 case on the Mac) a program to find and destroy viruses! See {back door}, {virus}, {worm}, {phage}, {mockingbird}.

:troll: /v.,n./ [From the Usenet group alt.folklore.urban] To utter a posting on {Usenet} designed to attract predictable responses or {flame}s. Derives from the phrase "trolling for {newbie}s" which in turn comes from mainstream "trolling", a style of fishing in which one trails bait through a likely spot hoping for a bite. The well-constructed troll is a post that induces lots of newbies and flamers to make themselves look even more clueless than they already do, while subtly conveying to the more savvy and experienced that it is in fact a deliberate troll. If you don't fall for the joke, you get to be in on it.

Some people claim that the troll is properly a narrower category than {flame bait}, that a troll is categorized by containing some assertion that is wrong but not overtly controversial.

:tron: /v./ [NRL, CMU; prob. fr. the movie "Tron"] To become inaccessible except via email or 'talk(1)', especially when one is normally available via telephone or in person. Frequently used in the past tense, as in: "Ran seems to have tronned on us this week" or "Gee, Ran, glad you were able to un-tron yourself". One may also speak of 'tron mode'; compare {spod}.

:true-hacker: /n./ [analogy with 'trufan' from SF fandom] One who exemplifies the primary values of hacker culture, esp. competence and helpfulness to other hackers. A high compliment. "He spent 6 hours helping me bring up UUCP and netnews on my FOOBAR 4000 last week — manifestly the act of a true-hacker." Compare {demigod}, oppose {munchkin}.

:tty: /T-T-Y/, /tit'ee/ /n./ The latter pronunciation was primarily ITS, but some Unix people say it this way as well; this pronunciation is *not* considered to have sexual undertones. 1. A terminal of the teletype variety, characterized by a noisy mechanical printer, a very limited character set, and poor print quality. Usage: antiquated (like the TTYs themselves). See also {bit-paired keyboard}. 2. [especially Unix] Any terminal at all; sometimes used to refer to the particular terminal controlling a given job. 3. [Unix] Any serial port, whether or not the device connected to it is a terminal; so called because under Unix such devices have names of the form tty*. Ambiguity between senses 2 and 3 is common but seldom bothersome.

:tube: 1. /n./ A CRT terminal. Never used in the mainstream sense of TV; real hackers don't watch TV, except for Loony Toons, Rocky & Bullwinkle, Trek Classic, the Simpsons, and the occasional cheesy old swashbuckler movie. 2. [IBM] To send a copy of something to someone else's terminal. "Tube me that note?"

:tube time: /n./ Time spent at a terminal or console. More inclusive than hacking time; commonly used in discussions of what parts of one's environment one uses most heavily. "I find I'm spending too much of my tube time reading mail since I started this revision."

:tunafish: /n./ In hackish lore, refers to the mutated punchline of an age-old joke to be found at the bottom of the manual pages of 'tunefs(8)' in the original {BSD} 4.2 distribution. The joke was removed in later releases once commercial sites started using 4.2. Tunefs relates to the 'tuning' of file-system parameters for optimum performance, and at the bottom of a few pages of wizardly inscriptions was a 'BUGS' section consisting of the line "You can tune a file system, but you can't tunafish". Variants of this can be seen in other BSD versions, though it has been excised from some versions by humorless management {droid}s. The [nt]roff source for SunOS 4.1.1 contains a comment apparently designed to prevent this: "Take this out and a Unix Demon will dog your steps from now until the 'time_t''s wrap around."

[It has since been pointed out that indeed you can tunafish. Usually at a canning factory... —ESR]

:tune: /vt./ [from automotive or musical usage] To optimize a program or system for a particular environment, esp. by adjusting numerical parameters designed as {hook}s for tuning, e.g., by changing '#define' lines in C. One may 'tune for time' (fastest execution), 'tune for space' (least memory use), or 'tune for configuration' (most efficient use of hardware). See {bum}, {hot spot}, {hand-hacking}.

:turbo nerd: /n./ See {computer geek}.

:Turing tar-pit: /n./ 1. A place where anything is possible but nothing of interest is practical. Alan Turing helped lay the foundations of computer science by showing that all machines and languages capable of expressing a certain very primitive set of operations are logically equivalent in the kinds of computations they can carry out, and in principle have capabilities that differ only in speed from those of the most powerful and elegantly designed computers. However, no machine or language exactly matching Turing's primitive set has ever been built (other than possibly as a classroom exercise), because it would be horribly slow and far too painful to use. A 'Turing tar-pit' is any computer language or other tool that shares this property. That is, it's theoretically universal — but in practice, the harder you struggle to get any real work done, the deeper its inadequacies suck you in. Compare {bondage-and-discipline language}. 2. The perennial {holy wars} over whether language A or B is the "most powerful".

:turist: /too'rist/ /n./ Var. sp. of {tourist}, q.v. Also in adjectival form, 'turistic'. Poss. influenced by {luser} and 'Turing'.

:tweak: /vt./ 1. To change slightly, usually in reference to a value. Also used synonymously with {twiddle}. If a program is almost correct, rather than figure out the precise problem you might just keep tweaking it until it works. See {frobnicate} and {fudge factor}; also see {shotgun debugging}. 2. To {tune} or {bum} a program; preferred usage in the U.K.

:tweeter: /n./ [University of Waterloo] Syn. {perf}, {chad} (sense 1). This term (like {woofer}) has been in use at Waterloo since 1972 but is elsewhere unknown. In audio jargon, the word refers to the treble speaker(s) on a hi-fi.

:TWENEX:: /twe'neks/ /n./ The TOPS-20 operating system by DEC — the second proprietary OS for the PDP-10 — preferred by most PDP-10 hackers over TOPS-10 (that is, by those who were not {{ITS}} or {{WAITS}} partisans). TOPS-20 began in 1969 as Bolt, Beranek & Newman's TENEX operating system using special paging hardware. By the early 1970s, almost all of the systems on the ARPANET ran TENEX. DEC purchased the rights to TENEX from BBN and began work to make it their own. The first in-house code name for the operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that 'krans' meant 'funeral wreath' in Swedish (though some Swedish speakers have since said it means simply 'wreath'; this part of the story may be apocryphal). Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community, mindful of its origins, quickly dubbed it TWENEX (a contraction of 'twenty TENEX'), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T V6 Unix and BSD). DEC people cringed when they heard "TWENEX", but the term caught on nevertheless (the written abbreviation '20x' was also used). TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix or ITS — but DEC's decision to scrap all the internal rivals to the VAX architecture and its relatively stodgy VMS OS killed the DEC-20 and put a sad end to TWENEX's brief day in the sun. DEC attempted to convince TOPS-20 users to convert to {VMS}, but instead, by the late 1980s, most of the TOPS-20 hackers had migrated to Unix.

:twiddle: /n./ 1. Tilde (ASCII 1111110, '~'). Also called 'squiggle', 'sqiggle' (sic — pronounced /skig'l/), and 'twaddle', but twiddle is the most common term. 2. A small and insignificant change to a program. Usually fixes one bug and generates several new ones (see also {shotgun debugging}). 3. /vt./ To change something in a small way. Bits, for example, are often twiddled. Twiddling a switch or knob implies much less sense of purpose than toggling or tweaking it; see {frobnicate}. To speak of twiddling a bit connotes aimlessness, and at best doesn't specify what you're doing to the bit; 'toggling a bit' has a more specific meaning (see {bit twiddling}, {toggle}).

:twilight zone: /n./ [IRC] Notionally, the area of cyberspace where {IRC} operators live. An {op} is said to have a "connection to the twilight zone".

:twink: /twink/ /n./ [UCSC] Equivalent to {read-only user}. Also reported on the Usenet group soc.motss; may derive from gay slang for a cute young thing with nothing upstairs (compare mainstream 'chick').

:twirling baton: /n./ [PLATO] The overstrike sequence -/ -/ - which produces an animated twirling baton. If you output it with a single backspace between characters, the baton spins in place. If you output the sequence BS SP between characters, the baton spins from left to right. If you output BS SP BS BS between characters, the baton spins from right to left.

The twirling baton was a popular component of animated signature files on the pioneering PLATO educational timesharing system. The 'archie' Internet service is perhaps the best-known baton program today; it uses the twirling baton as an idler indicating that the program is working on a query.

:two pi: /quant./ The number of years it takes to finish one's thesis. Occurs in stories in the following form: "He started on his thesis; 2 pi years later..."

:two-to-the-N: /quant./ An amount much larger than {N} but smaller than {infinity}. "I have 2-to-the-N things to do before I can go out for lunch" means you probably won't show up.

:twonkie: /twon'kee/ /n./ The software equivalent of a Twinkie (a variety of sugar-loaded junk food, or (in gay slang with a small t) the male equivalent of 'chick'); a useless 'feature' added to look sexy and placate a {marketroid} (compare {Saturday-night special}). The term may also be related to "The Twonky", title menace of a classic SF short story by Lewis Padgett (Henry Kuttner and C. L. Moore), first published in the September 1942 "Astounding Science Fiction" and subsequently much anthologized.

= U = =====

:u-: /pref./ Written shorthand for {micro-}; techspeak when applied to metric units, jargon when used otherwise. Derived from the Greek letter "mu", the first letter of "micro" (and which letter looks a lot like the English letter "u").

:UBD: /U-B-D/ /n./ [abbreviation for 'User Brain Damage'] An abbreviation used to close out trouble reports obviously due to utter cluelessness on the user's part. Compare {pilot error}; oppose {PBD}; see also {brain-damaged}.

:UN*X: /n./ Used to refer to the Unix operating system (a trademark of AT&T) in writing, but avoiding the need for the ugly {(TM)} typography. Also used to refer to any or all varieties of Unixoid operating systems. Ironically, lawyers now say that the requirement for the TM-postfix has no legal force, but the asterisk usage is entrenched anyhow. It has been suggested that there may be a psychological connection to practice in certain religions (especially Judaism) in which the name of the deity is never written out in full, e.g., 'YHWH' or 'G—d' is used. See also {glob}.

:undefined external reference: /excl./ [Unix] A message from Unix's linker. Used in speech to flag loose ends or dangling references in an argument or discussion.

:under the hood: /adj./ [hot-rodder talk] 1. Used to introduce the underlying implementation of a product (hardware, software, or idea). Implies that the implementation is not intuitively obvious from the appearance, but the speaker is about to enable the listener to {grok} it. "Let's now look under the hood to see how ...." 2. Can also imply that the implementation is much simpler than the appearance would indicate: "Under the hood, we are just fork/execing the shell." 3. Inside a chassis, as in "Under the hood, this baby has a 40MHz 68030!"

:undocumented feature: /n./ See {feature}.

:uninteresting: /adj./ 1. Said of a problem that, although {nontrivial}, can be solved simply by throwing sufficient resources at it. 2. Also said of problems for which a solution would neither advance the state of the art nor be fun to design and code.

Hackers regard uninteresting problems as intolerable wastes of time, to be solved (if at all) by lesser mortals. *Real* hackers (see {toolsmith}) generalize uninteresting problems enough to make them interesting and solve them — thus solving the original problem as a special case (and, it must be admitted, occasionally turning a molehill into a mountain, or a mountain into a tectonic plate). See {WOMBAT}, {SMOP}; compare {toy problem}, oppose {interesting}.

:Unix:: /yoo'niks/ /n./ [In the authors' words, "A weak pun on Multics"; very early on it was 'UNICS'] (also 'UNIX') An interactive time-sharing system invented in 1969 by Ken Thompson after Bell Labs left the Multics project, originally so he could play games on his scavenged PDP-7. Dennis Ritchie, the inventor of C, is considered a co-author of the system. The turning point in Unix's history came when it was reimplemented almost entirely in C during 1972—1974, making it the first source-portable OS. Unix subsequently underwent mutations and expansions at the hands of many different people, resulting in a uniquely flexible and developer-friendly environment. By 1991, Unix had become the most widely used multiuser general-purpose operating system in the world. Many people consider this the most important victory yet of hackerdom over industry opposition (but see {Unix weenie} and {Unix conspiracy} for an opposing point of view). See {Version 7}, {BSD}, {USG Unix}, {Linux}.

Some people are confused over whether this word is appropriately 'UNIX' or 'Unix'; both forms are common, and used interchangeably. Dennis Ritchie says that the 'UNIX' spelling originally happened in CACM's 1974 paper "The UNIX Time-Sharing System" because "we had a new typesetter and {troff} had just been invented and we were intoxicated by being able to produce small caps." Later, dmr tried to get the spelling changed to 'Unix' in a couple of Bell Labs papers, on the grounds that the word is not acronymic. He failed, and eventually (his words) "wimped out" on the issue. So, while the trademark today is 'UNIX', both capitalizations are grounded in ancient usage; the Jargon File uses 'Unix' in deference to dmr's wishes.

:Unix brain damage: /n./ Something that has to be done to break a network program (typically a mailer) on a non-Unix system so that it will interoperate with Unix systems. The hack may qualify as 'Unix brain damage' if the program conforms to published standards and the Unix program in question does not. Unix brain damage happens because it is much easier for other (minority) systems to change their ways to match non-conforming behavior than it is to change all the hundreds of thousands of Unix systems out there.

An example of Unix brain damage is a {kluge} in a mail server to recognize bare line feed (the Unix newline) as an equivalent form to the Internet standard newline, which is a carriage return followed by a line feed. Such things can make even a hardened {jock} weep.

:Unix conspiracy: /n./ [ITS] According to a conspiracy theory long popular among {{ITS}} and {{TOPS-20}} fans, Unix's growth is the result of a plot, hatched during the 1970s at Bell Labs, whose intent was to hobble AT&T's competitors by making them dependent upon a system whose future evolution was to be under AT&T's control. This would be accomplished by disseminating an operating system that is apparently inexpensive and easily portable, but also relatively unreliable and insecure (so as to require continuing upgrades from AT&T). This theory was lent a substantial impetus in 1984 by the paper referenced in the {back door} entry.

In this view, Unix was designed to be one of the first computer viruses (see {virus}) — but a virus spread to computers indirectly by people and market forces, rather than directly through disks and networks. Adherents of this 'Unix virus' theory like to cite the fact that the well-known quotation "Unix is snake oil" was uttered by DEC president Kenneth Olsen shortly before DEC began actively promoting its own family of Unix workstations. (Olsen now claims to have been misquoted.)

[If there was ever such a conspiracy, it got thoroughly out of the plotters' control after 1990. AT&T sold its UNIX operation to Novell around the same time {Linux} and other free-UNIX distributions were beginning to make noise. —ESR]

:Unix weenie: /n./ [ITS] 1. A derogatory play on 'Unix wizard', common among hackers who use Unix by necessity but would prefer alternatives. The implication is that although the person in question may consider mastery of Unix arcana to be a wizardly skill, the only real skill involved is the ability to tolerate (and the bad taste to wallow in) the incoherence and needless complexity that is alleged to infest many Unix programs. "This shell script tries to parse its arguments in 69 bletcherous ways. It must have been written by a real Unix weenie." 2. A derogatory term for anyone who engages in uncritical praise of Unix. Often appearing in the context "stupid Unix weenie". See {Weenix}, {Unix conspiracy}. See also {weenie}.

:unixism: /n./ A piece of code or a coding technique that depends on the protected multi-tasking environment with relatively low process-spawn overhead that exists on virtual-memory Unix systems. Common {unixism}s include: gratuitous use of 'fork(2)'; the assumption that certain undocumented but well-known features of Unix libraries such as 'stdio(3)' are supported elsewhere; reliance on {obscure} side-effects of system calls (use of 'sleep(2)' with a 0 argument to clue the scheduler that you're willing to give up your time-slice, for example); the assumption that freshly allocated memory is zeroed; and the assumption that fragmentation problems won't arise from never 'free()'ing memory. Compare {vaxocentrism}; see also {New Jersey}.

:unswizzle: /v./ See {swizzle}.

:unwind the stack: /vi./ 1. [techspeak] During the execution of a procedural language, one is said to 'unwind the stack' from a called procedure up to a caller when one discards the stack frame and any number of frames above it, popping back up to the level of the given caller. In C this is done with 'longjmp'/'setjmp', in LISP with 'throw/catch'. See also {smash the stack}. 2. People can unwind the stack as well, by quickly dealing with a bunch of problems: "Oh heck, let's do lunch. Just a second while I unwind my stack."

:unwind-protect: /n./ [MIT: from the name of a LISP operator] A task you must remember to perform before you leave a place or finish a project. "I have an unwind-protect to call my advisor."

:up: /adj./ 1. Working, in order. "The down escalator is up." Oppose {down}. 2. 'bring up': /vt./ To create a working version and start it. "They brought up a down system." 3. 'come up' /vi./ To become ready for production use.

:upload: /uhp'lohd/ /v./ 1. [techspeak] To transfer programs or data over a digital communications link from a smaller or peripheral 'client' system to a larger or central 'host' one. A transfer in the other direction is, of course, called a {download} (but see the note about ground-to-space comm under that entry). 2. [speculatively] To move the essential patterns and algorithms that make up one's mind from one's brain into a computer. Those who are convinced that such patterns and algorithms capture the complete essence of the self view this prospect with pleasant anticipation.

:upthread: /adv./ Earlier in the discussion (see {thread}), i.e., 'above'. "As Joe pointed out upthread, ..." See also {followup}.

:urchin: /n./ See {munchkin}.

:URL: /U-R-L/ or /erl/ /n./ Uniform Resource Locator, an address widget that identifies a document or resource on the World Wide Web. This entry is here primarily to record the fact that the term is commonly pronounced both /erl/, and /U-R-L/ (the latter predominates in more formal contexts).

:Usenet: /yoos'net/ or /yooz'net/ /n./ [from 'Users' Network'; the original spelling was USENET, but the mixed-case form is now widely preferred] A distributed {bboard} (bulletin board) system supported mainly by Unix machines. Originally implemented in 1979—1980 by Steve Bellovin, Jim Ellis, Tom Truscott, and Steve Daniel at Duke University, it has swiftly grown to become international in scope and is now probably the largest decentralized information utility in existence. As of early 1996, it hosts over 10,000 {newsgroup}s and an average of over 500 megabytes (the equivalent of several thousand paper pages) of new technical articles, news, discussion, chatter, and {flamage} every day.

By the year the Internet hit the mainstream (1994) the original UUCP transport for Usenet was fading out of use (see {UUCPNET}) — almost all Usenet connections were over Internet links. A lot of newbies and journalists began to refer to "Internet newsgroups" as though Usenet was and always had been just another Internet service. This ignorance greatly annoys experienced Usenetters.

:user: /n./ 1. Someone doing 'real work' with the computer, using it as a means rather than an end. Someone who pays to use a computer. See {real user}. 2. A programmer who will believe anything you tell him. One who asks silly questions. [GLS observes: This is slightly unfair. It is true that users ask questions (of necessity). Sometimes they are thoughtful or deep. Very often they are annoying or downright stupid, apparently because the user failed to think for two seconds or look in the documentation before bothering the maintainer.] See {luser}. 3. Someone who uses a program from the outside, however skillfully, without getting into the internals of the program. One who reports bugs instead of just going ahead and fixing them.

The general theory behind this term is that there are two classes of people who work with a program: there are implementors (hackers) and {luser}s. The users are looked down on by hackers to some extent because they don't understand the full ramifications of the system in all its glory. (The few users who do are known as 'real winners'.) The term is a relative one: a skilled hacker may be a user with respect to some program he himself does not hack. A LISP hacker might be one who maintains LISP or one who uses LISP (but with the skill of a hacker). A LISP user is one who uses LISP, whether skillfully or not. Thus there is some overlap between the two terms; the subtle distinctions must be resolved by context.

:user-friendly: /adj./ Programmer-hostile. Generally used by hackers in a critical tone, to describe systems that hold the user's hand so obsessively that they make it painful for the more experienced and knowledgeable to get any work done. See {menuitis}, {drool-proof paper}, {Macintrash}, {user-obsequious}.

:user-obsequious: /adj./ Emphatic form of {user-friendly}. Connotes a system so verbose, inflexible, and determinedly simple-minded that it is nearly unusable. "Design a system any fool can use and only a fool will want to use it." See {WIMP environment}, {Macintrash}.

:USG Unix: /U-S-G yoo'niks/ /n./ Refers to AT&T Unix commercial versions after {Version 7}, especially System III and System V releases 1, 2, and 3. So called because during most of the lifespan of those versions AT&T's support crew was called the 'Unix Support Group'. See {BSD}, {{Unix}}.

:UTSL: // /n./ [Unix] On-line acronym for 'Use the Source, Luke' (a pun on Obi-Wan Kenobi's "Use the Force, Luke!" in "Star Wars") — analogous to {RTFS} (sense 1), but more polite. This is a common way of suggesting that someone would be better off reading the source code that supports whatever feature is causing confusion, rather than making yet another futile pass through the manuals, or broadcasting questions on Usenet that haven't attracted {wizard}s to answer them.

Once upon a time in {elder days}, everyone running Unix had source. After 1978, AT&T's policy tightened up, so this objurgation was in theory appropriately directed only at associates of some outfit with a Unix source license. In practice, bootlegs of Unix source code (made precisely for reference purposes) were so ubiquitous that one could utter it at almost anyone on the network without concern.

Nowadays, free Unix clones have become widely enough distributed that anyone can read source legally. The most widely distributed is certainly Linux, with variants of the NET/2 and 4.4BSD distributions running second. Cheap commercial Unixes with source such as BSD/OS are accelerating this trend.

:UUCPNET: /n. obs./ The store-and-forward network consisting of all the world's connected Unix machines (and others running some clone of the UUCP (Unix-to-Unix CoPy) software). Any machine reachable only via a {bang path} is on UUCPNET. This term has been rendered obsolescent by the spread of cheap Internet connections in the 1990s; the few remaining UUCP links are essentially slow channels to the Internet rather than an autonomous network. See {network address}.

= V = =====

:V7: /V'sev'en/ /n./ See {Version 7}.

:vadding: /vad'ing/ /n./ [from VAD, a permutation of ADV (i.e., {ADVENT}), used to avoid a particular {admin}'s continual search-and-destroy sweeps for the game] A leisure-time activity of certain hackers involving the covert exploration of the 'secret' parts of large buildings — basements, roofs, freight elevators, maintenance crawlways, steam tunnels, and the like. A few go so far as to learn locksmithing in order to synthesize vadding keys. The verb is 'to vad' (compare {phreaking}; see also {hack}, sense 9). This term dates from the late 1970s, before which such activity was simply called 'hacking'; the older usage is still prevalent at MIT.

The most extreme and dangerous form of vadding is 'elevator rodeo', a.k.a. 'elevator surfing', a sport played by wrasslin' down a thousand-pound elevator car with a 3-foot piece of string, and then exploiting this mastery in various stimulating ways (such as elevator hopping, shaft exploration, rat-racing, and the ever-popular drop experiments). Kids, don't try this at home! See also {hobbit} (sense 2).

:vanilla: /adj./ [from the default flavor of ice cream in the U.S.] Ordinary {flavor}, standard. When used of food, very often does not mean that the food is flavored with vanilla extract! For example, 'vanilla wonton soup' means ordinary wonton soup, as opposed to hot-and-sour wonton soup. Applied to hardware and software, as in "Vanilla Version 7 Unix can't run on a vanilla 11/34." Also used to orthogonalize chip nomenclature; for instance, a 74V00 means what TI calls a 7400, as distinct from a 74LS00, etc. This word differs from {canonical} in that the latter means 'default', whereas vanilla simply means 'ordinary'. For example, when hackers go on a {great-wall}, hot-and-sour soup is the {canonical} soup to get (because that is what most of them usually order) even though it isn't the vanilla (wonton) soup.

:vannevar: /van'*-var/ /n./ A bogus technological prediction or a foredoomed engineering concept, esp. one that fails by implicitly assuming that technologies develop linearly, incrementally, and in isolation from one another when in fact the learning curve tends to be highly nonlinear, revolutions are common, and competition is the rule. The prototype was Vannevar Bush's prediction of 'electronic brains' the size of the Empire State Building with a Niagara-Falls-equivalent cooling system for their tubes and relays, a prediction made at a time when the semiconductor effect had already been demonstrated. Other famous vannevars have included magnetic-bubble memory, LISP machines, {videotex}, and a paper from the late 1970s that computed a purported ultimate limit on areal density for ICs that was in fact less than the routine densities of 5 years later.

:vaporware: /vay'pr-weir/ /n./ Products announced far in advance of any release (which may or may not actually take place). See also {brochureware}.

:var: /veir/ or /var/ /n./ Short for 'variable'. Compare {arg}, {param}.

:VAX: /vaks/ /n./ 1. [from Virtual Address eXtension] The most successful minicomputer design in industry history, possibly excepting its immediate ancestor, the PDP-11. Between its release in 1978 and its eclipse by {killer micro}s after about 1986, the VAX was probably the hacker's favorite machine of them all, esp. after the 1982 release of 4.2 BSD Unix (see {BSD}). Esp. noted for its large, assembler-programmer-friendly instruction set — an asset that became a liability after the RISC revolution. 2. A major brand of vacuum cleaner in Britain. Cited here because its sales pitch, "Nothing sucks like a VAX!" became a sort of battle-cry of RISC partisans. It is even sometimes claimed that DEC actually entered a cross-licensing deal with the vacuum-Vax people that allowed them to market VAX computers in the U.K. in return for not challenging the vacuum cleaner trademark in the U.S.

A rival brand actually pioneered the slogan: its original form was "Nothing sucks like Electrolux". It has apparently become a classic example (used in advertising textbooks) of the perils of not knowing the local idiom. But in 1996, the press manager of Electrolux AB, while confirming that the company used this slogan in the late 1960s, also tells us that their marketing people were fully aware of the possible double entendre and intended it to gain attention.

And gain attention it did — the VAX-vacuum-cleaner people thought the slogan a sufficiently good idea to copy it. Several British hackers report that VAX's promotions used it in 1986—1987, and we have one report from a New Zealander that the infamous slogan surfaced there in TV ads for the product in 1992.

:VAXectomy: /vak-sek't*-mee/ /n./ [by analogy with 'vasectomy'] A VAX removal. DEC's Microvaxen, especially, are much slower than newer RISC-based workstations such as the SPARC. Thus, if one knows one has a replacement coming, VAX removal can be cause for celebration.

:VAXen: /vak'sn/ /n./ [from 'oxen', perhaps influenced by 'vixen'] (alt. 'vaxen') The plural canonically used among hackers for the DEC VAX computers. "Our installation has four PDP-10s and twenty vaxen." See {boxen}.

:vaxherd: /vaks'herd/ /n. obs./ [from 'oxherd'] A VAX operator. The image is reinforced because VAXen actually did tend to come in herds, technically known as 'clusters'.

:vaxism: /vak'sizm/ /n./ A piece of code that exhibits {vaxocentrism} in critical areas. Compare {PC-ism}, {unixism}.

:vaxocentrism: /vak'soh-sen'trizm/ /n./ [analogy with 'ethnocentrism'] A notional disease said to afflict C programmers who persist in coding according to certain assumptions that are valid (esp. under Unix) on {VAXen} but false elsewhere. Among these are:

1. The assumption that dereferencing a null pointer is safe because it is all bits 0, and location 0 is readable and 0. Problem: this may instead cause an illegal-address trap on non-VAXen, and even on VAXen under OSes other than BSD Unix. Usually this is an implicit assumption of sloppy code (forgetting to check the pointer before using it), rather than deliberate exploitation of a misfeature.

2. The assumption that characters are signed.

3. The assumption that a pointer to any one type can freely be cast into a pointer to any other type. A stronger form of this is the assumption that all pointers are the same size and format, which means you don't have to worry about getting the casts or types correct in calls. Problem: this fails on word-oriented machines or others with multiple pointer formats.

4. The assumption that the parameters of a routine are stored in memory, on a stack, contiguously, and in strictly ascending or descending order. Problem: this fails on many RISC architectures.

5. The assumption that pointer and integer types are the same size, and that pointers can be stuffed into integer variables (and vice-versa) and drawn back out without being truncated or mangled. Problem: this fails on segmented architectures or word-oriented machines with funny pointer formats.

6. The assumption that a data type of any size may begin at any byte address in memory (for example, that you can freely construct and dereference a pointer to a word- or greater-sized object at an odd char address). Problem: this fails on many (esp. RISC) architectures better optimized for {HLL} execution speed, and can cause an illegal address fault or bus error.

7. The (related) assumption that there is no padding at the end of types and that in an array you can thus step right from the last byte of a previous component to the first byte of the next one. This is not only machine- but compiler-dependent.

8. The assumption that memory address space is globally flat and that the array reference 'foo[-1]' is necessarily valid. Problem: this fails at 0, or other places on segment-addressed machines like Intel chips (yes, segmentation is universally considered a {brain-damaged} way to design machines (see {moby}), but that is a separate issue).

9. The assumption that objects can be arbitrarily large with no special considerations. Problem: this fails on segmented architectures and under non-virtual-addressing environments.

10. The assumption that the stack can be as large as memory. Problem: this fails on segmented architectures or almost anything else without virtual addressing and a paged stack.

11. The assumption that bits and addressable units within an object are ordered in the same way and that this order is a constant of nature. Problem: this fails on {big-endian} machines.

12. The assumption that it is meaningful to compare pointers to different objects not located within the same array, or to objects of different types. Problem: the former fails on segmented architectures, the latter on word-oriented machines or others with multiple pointer formats.

13. The assumption that an 'int' is 32 bits, or (nearly equivalently) the assumption that 'sizeof(int) == sizeof(long)'. Problem: this fails on PDP-11s, 286-based systems and even on 386 and 68000 systems under some compilers.

14. The assumption that 'argv[]' is writable. Problem: this fails in many embedded-systems C environments and even under a few flavors of Unix.

Note that a programmer can validly be accused of vaxocentrism even if he or she has never seen a VAX. Some of these assumptions (esp. 2—5) were valid on the PDP-11, the original C machine, and became endemic years before the VAX. The terms 'vaxocentricity' and 'all-the-world's-a-VAX syndrome' have been used synonymously.

:vdiff: /vee'dif/ /v.,n./ Visual diff. The operation of finding differences between two files by {eyeball search}. The term 'optical diff' has also been reported, and is sometimes more specifically used for the act of superimposing two nearly identical printouts on one another and holding them up to a light to spot differences. Though this method is poor for detecting omissions in the 'rear' file, it can also be used with printouts of graphics, a claim few if any diff programs can make. See {diff}.

:veeblefester: /vee'b*l-fes'tr/ /n./ [from the "Born Loser" comix via Commodore; prob. originally from "Mad" Magazine's 'Veeblefeetzer' parodies ca. 1960] Any obnoxious person engaged in the (alleged) professions of marketing or management. Antonym of {hacker}. Compare {suit}, {marketroid}.

:ventilator card: /n./ Syn. {lace card}.

:Venus flytrap: /n./ [after the insect-eating plant] See {firewall machine}.

:verbage: /ver'b*j/ /n./ A deliberate misspelling and mispronunciation of {verbiage} that assimilates it to the word 'garbage'. Compare {content-free}. More pejorative than 'verbiage'.

:verbiage: /n./ When the context involves a software or hardware system, this refers to {{documentation}}. This term borrows the connotations of mainstream 'verbiage' to suggest that the documentation is of marginal utility and that the motives behind its production have little to do with the ostensible subject.

:Version 7: alt. V7 /vee' se'vn/ /n./ The first widely distributed version of {Unix}, released unsupported by Bell Labs in 1978. The term is used adjectivally to describe Unix features and programs that date from that release, and are thus guaranteed to be present and portable in all Unix versions (this was the standard gauge of portability before the POSIX and IEEE 1003 standards). Note that this usage does *not* derive from the release being the "seventh version of {Unix}"; research {Unix} at Bell Labs has traditionally been numbered according to the edition of the associated documentation. Indeed, only the widely-distributed Sixth and Seventh Editions are widely known as V[67]; the OS that might today be known as 'V10' is instead known in full as "Tenth Edition Research Unix" or just "Tenth Edition" for short. For this reason, "V7" is often read by cognoscenti as "Seventh Edition". See {BSD}, {USG Unix}, {{Unix}}. Some old-timers impatient with commercialization and kernel bloat still maintain that V7 was the Last True Unix.

Previous Part     1  2  3  4  5  6  7  8  9  10  11  12  13     Next Part
Home - Random Browse