Part 9 out of 11




By extension, the corruption resulting from N cascaded
fandangoes on core is `Nth-level damage'. There is at least
one case on record in which 17 hours of {grovel}ling with
`adb' actually dug up the underlying bug behind an instance of
seventh-level damage! The hacker who accomplished this
near-superhuman feat was presented with an award by his fellows.

:security through obscurity: n. A name applied by hackers to most
OS vendors' favorite way of coping with security holes --- namely,
ignoring them and not documenting them and trusting that nobody
will find out about them and that people who do find out about them
won't exploit them. This never works for long and occasionally
sets the world up for debacles like the {RTM} worm of 1988 (see
{Great Worm, the}), but once the brief moments of panic created
by such events subside most vendors are all too willing to turn
over and go back to sleep. After all, actually fixing the bugs
would siphon off the resources needed to implement the next
user-interface frill on marketing's wish list --- and besides, if
they started fixing security bugs customers might begin to
*expect* it and imagine that their warranties of
merchantability gave them some sort of *right* to a system
with fewer holes in it than a shotgunned Swiss cheese, and
*then* where would we be?

Historical note: There are conflicting stories about the origin of
this term. It has been claimed that it was first used in the
USENET newsgroup in comp.sys.apollo during a campaign to get
HP/Apollo to fix security problems in its UNIX-{clone}
Aegis/DomainOS (they didn't change a thing). {ITS} fans, on the
other hand, say it was coined years earlier in opposition to the
incredibly paranoid {Multics} people down the hall, for whom
security was everything. In the ITS culture it referred to (1) the
fact that that by the time a tourist figured out how to make
trouble he'd generally gotten over the urge to make it, because he
felt part of the community; and (2) (self-mockingly) the poor
coverage of the documentation and obscurity of many commands. One
instance of *deliberate* security through obscurity is
recorded; the command to allow patching the running ITS system
({altmode} altmode control-R) echoed as $$^D. If you actually
typed alt alt ^D, that set a flag which would prevent patching the
system even if you later got it right.

:SED: [TMRC, from `Light-Emitting Diode'] /S-E-D/ n.
Smoke-emitting diode. A {friode} that lost the war. See
{LER}.

:segfault: n.,vi. Syn. {segment}, {seggie}.

:seggie: /seg'ee/ [UNIX] n. Shorthand for {segmentation fault}
reported from Britain.

:segment: /seg'ment/ vi. To experience a {segmentation fault}.
Confusingly, this is often pronounced more like the noun `segment'
than like mainstream v. segment; this is because it is actually a
noun shorthand that has been verbed.

:segmentation fault: n. [UNIX] 1. An error in which a running program
attempts to access memory not allocated to it and {core dump}s
with a segmentation violation error. 2. To lose a train of
thought or a line of reasoning. Also uttered as an exclamation at
the point of befuddlement.

:segv: /seg'vee/ n.,vi. Yet another synonym for {segmentation
fault} (actually, in this case, `segmentation violation').

:self-reference: n. See {self-reference}.

:selvage: /sel'v*j/ [from sewing] n. See {chad} (sense 1).

:semi: /se'mee/ or /se'mi:/ 1. n. Abbreviation for
`semicolon', when speaking. "Commands to {grind} are
prefixed by semi-semi-star" means that the prefix is `;;*',
not 1/4 of a star. 2. A prefix used with words such as
`immediately' as a qualifier. "When is the system coming up?"
"Semi-immediately." (That is, maybe not for an hour.) "We did
consider that possibility semi-seriously." See also
{infinite}.

:semi-infinite: n. See {infinite}.

:senior bit: [IBM] n. Syn. {meta bit}.

:server: n. A kind of {daemon} that performs a service for the
requester and which often runs on a computer other than the one on
which the server runs. A particularly common term on the Internet,
which is rife with `name servers', `domain servers', `news
servers', `finger servers', and the like.

:SEX: /seks/ [Sun Users' Group & elsewhere] n. 1. Software
EXchange. A technique invented by the blue-green algae hundreds of
millions of years ago to speed up their evolution, which had been
terribly slow up until then. Today, SEX parties are popular among
hackers and others (of course, these are no longer limited to
exchanges of genetic software). In general, SEX parties are a
{Good Thing}, but unprotected SEX can propagate a {virus}.
See also {pubic directory}. 2. The rather Freudian mnemonic
often used for Sign EXtend, a machine instruction found in the
PDP-11 and many other architectures. The RCA 1802 chip used in the
early Elf and SuperElf personal computers had a `SEt X register'
SEX instruction, but this seems to have had little folkloric
impact.

DEC's engineers nearly got a PDP-11 assembler that used the
`SEX' mnemonic out the door at one time, but (for once)
marketing wasn't asleep and forced a change. That wasn't the last
time this happened, either. The author of `The Intel 8086
Primer', who was one of the original designers of the 8086, noted
that there was originally a `SEX' instruction on that
processor, too. He says that Intel management got cold feet and
decreed that it be changed, and thus the instruction was renamed
`CBW' and `CWD' (depending on what was being extended).
Amusingly, the Intel 8048 (the microcontroller used in IBM PC
keyboards) is also missing straight `SEX' but has logical-or
and logical-and instructions `ORL' and `ANL'.

The Motorola 6809, used in the U.K.'s `Dragon 32' personal
computer, actually had an official `SEX' instruction; the 6502
in the Apple II it competed with did not. British hackers thought
this made perfect mythic sense; after all, it was commonly
observed, you could (on some theoretical level) have sex with a
dragon, but you can't have sex with an apple.

:sex changer: n. Syn. {gender mender}.

:shambolic link: n. A UNIX symbolic link, particularly when it
confuses you, points to nothing at all, or results in you ending up
in some completely unexpected part of the filesystem....

:shareware: /sheir'weir/ n. {Freeware} (sense 1) for which the
author requests some payment, usually in the accompanying
documentation files or in an announcement made by the software
itself. Such payment may or may not buy additional support or
functionality. See also {careware}, {charityware},
{crippleware}, {guiltware}, {postcardware}, and
{-ware}; compare {payware}.

:shelfware: /shelfweir/ n. Software purchased on a whim (by an
individual user) or in accordance with policy (by a corporation or
government agency), but not actually required for any particular
use. Therefore, it often ends up on some shelf.

:shell: [orig. {{Multics}} techspeak, widely propagated via UNIX] n.
1. [techspeak] The command interpreter used to pass commands to an
operating system; so called because it is the part of the operating
system that interfaces with the outside world. 2. More generally,
any interface program that mediates access to a special resource
or {server} for convenience, efficiency, or security reasons; for
this meaning, the usage is usually `a shell around' whatever.
This sort of program is also called a `wrapper'.

:shell out: [UNIX] n. To spawn an interactive {subshell} from
within a program (e.g., a mailer or editor). "Bang foo runs foo in
a subshell, while bang alone shells out."

:shift left (or right) logical: [from any of various machines'
instruction sets] 1. vi. To move oneself to the left (right). To
move out of the way. 2. imper. "Get out of that (my) seat! You
can shift to that empty one to the left (right)." Often
used without the `logical', or as `left shift' instead of
`shift left'. Sometimes heard as LSH /lish/, from the {PDP-10}
instruction set. See {Programmer's Cheer}.

:shim: n. A small piece of data inserted in order to achieve a
desired memory alignment or other addressing property. For
example, the PDP-11 UNIX linker, in split I&D (instructions and
data) mode, inserts a two-byte shim at location 0 in data space so
that no data object will have an address of 0 (and be confused with
the C null pointer). See also {loose bytes}.

:shitogram: /shit'oh-gram/ n. A *really* nasty piece of email.
Compare {nastygram}, {flame}.

:short card: n. A half-length IBM PC expansion card or adapter that
will fit in one of the two short slots located towards the right
rear of a standard chassis (tucked behind the floppy disk drives).
See also {tall card}.

:shotgun debugging: n. The software equivalent of {Easter egging};
the making of relatively undirected changes to software in the hope
that a bug will be perturbed out of existence. This almost never
works, and usually introduces more bugs.

:showstopper: n. A hardware or (especially) software bug that makes
an implementation effectively unusable; one that absolutely has to
be fixed before development can go on. Opposite in connotation
from its original theatrical use, which refers to something
stunningly *good*.

:shriek: n. See {excl}. Occasional CMU usage, also in common use
among APL fans and mathematicians, especially category theorists.

:Shub-Internet: /shuhb in't*r-net/ [MUD: from H. P. Lovecraft's
evil fictional deity `Shub-Niggurath', the Black Goat with a
Thousand Young] n. The harsh personification of the Internet,
Beast of a Thousand Processes, Eater of Characters, Avatar of Line
Noise, and Imp of Call Waiting; the hideous multi-tendriled entity
formed of all the manifold connections of the net. A sect of
MUDders worships Shub-Internet, sacrificing objects and praying for
good connections. To no avail --- its purpose is malign and evil,
and is the cause of all network slowdown. Often heard as in
"Freela casts a tac nuke at Shub-Internet for slowing her down."
(A forged response often follows along the lines of:
"Shub-Internet gulps down the tac nuke and burps happily.") Also
cursed by users of {FTP} and {telnet} when the system slows
down. The dread name of Shub-Internet is seldom spoken aloud, as
it is said that repeating it three times will cause the being to
wake, deep within its lair beneath the Pentagon.

:sidecar: n. 1. Syn. {slap on the side}. Esp. used of add-ons
for the late and unlamented IBM PCjr. 2. The IBM PC compatibility
box that could be bolted onto the side of an Amiga. Designed and
produced by Commodore, it broke all of the company's own rules.
If it worked with any other peripherals, it was by {magic}.

:SIG: n. The Association for Computing Machinery traditionally
sponsors Special Interest Groups in various technical areas;
well-known ones include SIGARCH (the Special Interest Group for
Computer Architecture) and SIGGRAPH (the Special Interest Group for
Computer Graphics). Hackers, not surprisingly, like to overextend
this naming convention to less formal associations like SIGBEER (at
ACM conferences) and SIGFOOD (at University of Illinois).

:sig block: /sig blok/ [UNIX; often written `.sig' there] n.
Short for `signature', used specifically to refer to the
electronic signature block that most UNIX mail- and news-posting
software will {automagically} append to outgoing mail and news.
The composition of one's sig can be quite an art form, including an
ASCII logo or one's choice of witty sayings (see {sig quote},
{fool file, the}); but many consider large sigs a waste of
{bandwidth}, and it has been observed that the size of one's sig
block is usually inversely proportional to one's longevity and
level of prestige on the net.

:sig quote: /sig kwoht/ [USENET] n. A maxim, quote, proverb, joke,
or slogan embedded in one's {sig block} and intended to convey
something of one's philosophical stance, pet peeves, or sense of
humor. "Calm down, it's only ones and zeroes."

:sig virus: n. A parasitic {meme} embedded in a {sig block}.
There was a {meme plague} or fad for these on USENET in late
1991. Most were equivalents of "I am a .sig virus. Please reproduce
me in your .sig block.". Of course, the .sig virus's memetic hook
is the giggle value of going along with the gag; this, however,
was a self-limiting phenomenon as more and more people picked up
on the idea. There were creative variants on it; some people
stuck `sig virus antibody' texts in their sigs, and there was at
least one instance of a sig virus eater.

:signal-to-noise ratio: [from analog electronics] n. Used by hackers
in a generalization of its technical meaning. `Signal' refers to
useful information conveyed by some communications medium, and
`noise' to anything else on that medium. Hence a low ratio implies
that it is not worth paying attention to the medium in question.
Figures for such metaphorical ratios are never given. The term is
most often applied to {USENET} newsgroups during {flame war}s.
Compare {bandwidth}. See also {coefficient of X}, {lost in
the noise}.

:silicon: n. Hardware, esp. ICs or microprocessor-based computer
systems (compare {iron}). Contrasted with software. See also
{sandbender}.

:silicon foundry: n. A company that {fab}s chips to the designs
of others. As of the late 1980s, the combination of silicon
foundries and good computer-aided design software made it much
easier for hardware-designing startup companies to come into being.
The downside of using a silicon foundry is that the distance from
the actual chip-fabrication processes reduces designers' control of
detail. This is somewhat analogous to the use of {HLL}s versus
coding in assembler.

:silly walk: [from Monty Python's Flying Circus] vi. 1. A ridiculous
procedure required to accomplish a task. Like {grovel}, but more
{random} and humorous. "I had to silly-walk through half the
/usr directories to find the maps file." 2. Syn. {fandango on
core}.

:silo: n. The FIFO input-character buffer in an RS-232 line card. So
called from DEC terminology used on DH and DZ line cards for the
VAX and PDP-11, presumably because it was a storage space for
fungible stuff that you put in the top and took out the bottom.

:Silver Book: n. Jensen and Wirth's infamous `Pascal User Manual
and Report', so called because of the silver cover of the
widely distributed Springer-Verlag second edition of 1978 (ISBN
0-387-90144-2). See {{book titles}}, {Pascal}.

:since time T equals minus infinity: adj. A long time ago; for as
long as anyone can remember; at the time that some particular frob
was first designed. Usually the word `time' is omitted. See also
{time T}.

:sitename: /si:t'naym/ [UNIX/Internet] n. The unique electronic
name of a computer system, used to identify it in UUCP mail,
USENET, or other forms of electronic information interchange. The
folklore interest of sitenames stems from the creativity and humor
they often display. Interpreting a sitename is not unlike
interpreting a vanity license plate; one has to mentally unpack it,
allowing for mono-case and length restrictions and the lack of
whitespace. Hacker tradition deprecates dull,
institutional-sounding names in favor of punchy, humorous, and
clever coinages (except that it is considered appropriate for the
official public gateway machine of an organization to bear the
organization's name or acronym). Mythological references, cartoon
characters, animal names, and allusions to SF or fantasy literature
are probably the most popular sources for sitenames (in roughly
descending order). The obligatory comment when discussing these is
Harris's Lament: "All the good ones are taken!" See also
{network address}.

:skrog: v. Syn. {scrog}.

:skulker: n. Syn. {prowler}.

:slap on the side: n. (also called a {sidecar}, or abbreviated
`SOTS'.) A type of external expansion hardware marketed by
computer manufacturers (e.g., Commodore for the Amiga 500/1000
series and IBM for the hideous failure called `PCjr'). Various
SOTS boxes provided necessities such as memory, hard drive
controllers, and conventional expansion slots.

:slash: n. Common name for the slant (`/', ASCII 0101111)
character. See {ASCII} for other synonyms.

:sleep: vi. 1. [techspeak] On a timesharing system, a process that
relinquishes its claim on the scheduler until some given event
occurs or a specified time delay elapses is said to `go to
sleep'. 2. In jargon, used very similarly to v. {block}; also
in `sleep on', syn. with `block on'. Often used to
indicate that the speaker has relinquished a demand for resources
until some (possibly unspecified) external event: "They can't get
the fix I've been asking for into the next release, so I'm going to
sleep on it until the release, then start hassling them again."

:slim: n. A small, derivative change (e.g., to code).

:slop: n. 1. A one-sided {fudge factor}, that is, an allowance for
error but in only one of two directions. For example, if you need
a piece of wire 10 feet long and have to guess when you cut it,
you make very sure to cut it too long, by a large amount if
necessary, rather than too short by even a little bit, because you
can always cut off the slop but you can't paste it back on again.
When discrete quantities are involved, slop is often introduced to
avoid the possibility of being on the losing side of a {fencepost
error}. 2. The percentage of `extra' code generated by a compiler
over the size of equivalent assembler code produced by
{hand-hacking}; i.e., the space (or maybe time) you lose because
you didn't do it yourself. This number is often used as a measure
of the goodness of a compiler; slop below 5% is very good, and
10% is usually acceptable. With modern compiler technology, esp.
on RISC machines, the compiler's slop may actually be
*negative*; that is, humans may be unable to generate code as
good. This is one of the reasons assembler programming is no
longer common.

:slopsucker: /slop'suhk-r/ n. A lowest-priority task that must
wait around until everything else has `had its fill' of machine
resources. Only when the machine would otherwise be idle is the
task allowed to `suck up the slop'. Also called a `hungry puppy'
or `bottom feeder'. One common variety of slopsucker hunts for
large prime numbers. Compare {background}.

:slurp: vt. To read a large data file entirely into {core} before
working on it. This may be contrasted with the strategy of reading
a small piece at a time, processing it, and then reading the next
piece. "This program slurps in a 1K-by-1K matrix and does
an FFT." See also {sponge}.

:smart: adj. Said of a program that does the {Right Thing} in a
wide variety of complicated circumstances. There is a difference
between calling a program smart and calling it intelligent; in
particular, there do not exist any intelligent programs (yet ---
see {AI-complete}). Compare {robust} (smart programs can be
{brittle}).

:smart terminal: n. 1. A terminal that has enough computing capability
to render graphics or to offload some kind of front-end processing
from the computer it talks to. The development of workstations and
personal computers has made this term and the product it describes
semi-obsolescent, but one may still hear variants of the phrase
`act like a smart terminal' used to describe the behavior of
workstations or PCs with respect to programs that execute almost
entirely out of a remote {server}'s storage, using said devices
as displays. Compare {glass tty}. 2. obs. Any terminal with an
addressable cursor; the opposite of a {glass tty}. Today, a
terminal with merely an addressable cursor, but with none of the
more-powerful features mentioned in sense 1, is called a {dumb
terminal}.

There is a classic quote from Rob Pike (inventor of the {blit}
terminal): "A smart terminal is not a smart*ass* terminal,
but rather a terminal you can educate." This illustrates a common
design problem: The attempt to make peripherals (or anything else)
intelligent sometimes results in finicky, rigid `special
features' that become just so much dead weight if you try to use
the device in any way the designer didn't anticipate. Flexibility
and programmability, on the other hand, are *really* smart.
Compare {hook}.

:smash case: vi. To lose or obliterate the uppercase/lowercase
distinction in text input. "MS-DOS will automatically smash case
in the names of all the files you create." Compare {fold case}.

:smash the stack: [C programming] n. On many C implementations it
is possible to corrupt the execution stack by writing past the end
of an array declared `auto' in a routine. Code that does this
is said to `smash the stack', and can cause return from the
routine to jump to a random address. This can produce some of the
most insidious data-dependent bugs known to mankind. Variants
include `trash' the stack, {scribble} the stack, {mangle}
the stack; the term *{mung} the stack is not used, as this is
never done intentionally. See {spam}; see also {aliasing
bug}, {fandango on core}, {memory leak}, {memory smash},
{precedence lossage}, {overrun screw}.

:smiley: n. See {emoticon}.

:smoke and mirrors: n. Marketing deceptions. The term is
mainstream in this general sense. Among hackers it's strongly
associated with bogus demos and crocked {benchmark}s (see also
{MIPS}, {machoflops}). "They claim their new box cranks 5
MIPS for under $5000, but didn't specify the instruction mix ---
sounds like smoke and mirrors to me." The phrase has been said to
derive from carnie slang for magic acts and `freak show' displays
that depend on `trompe l'oeil' effects, but also calls to mind
the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") to whom
mass human sacrifices were regularly made. Upon hearing about a
rigged demo or yet another round of fantasy-based marketing
promises hackers often feel similarly disheartened.

:smoke test: n. 1. A rudimentary form of testing applied to
electronic equipment following repair or reconfiguration, in which
power is applied and the tester checks for sparks, smoke, or other
dramatic signs of fundamental failure. See {magic smoke}.
2. By extension, the first run of a piece of software after
construction or a critical change. See and compare {reality
check}.

There is an interesting semi-parallel to this term among
typographers and printers: When new typefaces are being punch-cut by
hand, a `smoke test' (hold the letter in candle smoke, then press
it onto paper) is used to check out new dies.

:smoking clover: [ITS] n. A {display hack} originally due to
Bill Gosper. Many convergent lines are drawn on a color monitor in
{AOS} mode (so that every pixel struck has its color
incremented). The lines all have one endpoint in the middle of the
screen; the other endpoints are spaced one pixel apart around the
perimeter of a large square. The color map is then repeatedly
rotated. This results in a striking, rainbow-hued, shimmering
four-leaf clover. Gosper joked about keeping it hidden from the
FDA (the U.S.'s Food and Drug Administration) lest its
hallucinogenic properties cause it to be banned.

:SMOP: /S-M-O-P/ [Simple (or Small) Matter of Programming] n.
1. A piece of code, not yet written, whose anticipated length is
significantly greater than its complexity. Used to refer to a
program that could obviously be written, but is not worth the
trouble. Also used ironically to imply that a difficult problem
can be easily solved because a program can be written to do it; the
irony is that it is very clear that writing such a program will be
a great deal of work. "It's easy to enhance a FORTRAN compiler to
compile COBOL as well; it's just a SMOP." 2. Often used
ironically by the intended victim when a suggestion for a program
is made which seems easy to the suggester, but is obviously (to the
victim) a lot of work.

:smurf: /smerf/ [from the soc.motss newsgroup on USENET,
after some obnoxiously gooey cartoon characters] n. A newsgroup
regular with a habitual style that is irreverent, silly, and
cute. Like many other hackish terms for people, this one may
be praise or insult depending on who uses it. In general, being
referred to as a smurf is probably not going to make your day
unless you've previously adopted the label yourself in a spirit of
irony. Compare {old fart}.

:SNAFU principle: /sna'foo prin'si-pl/ [from WWII Army acronym
for `Situation Normal, All Fucked Up'] n. "True communication is
possible only between equals, because inferiors are more
consistently rewarded for telling their superiors pleasant lies
than for telling the truth." --- a central tenet of
{Discordianism}, often invoked by hackers to explain why
authoritarian hierarchies screw up so reliably and systematically.
The effect of the SNAFU principle is a progressive disconnection of
decision-makers from reality. This lightly adapted version of a
fable dating back to the early 1960s illustrates the phenomenon
perfectly:

In the beginning was the plan,
and then the specification;
And the plan was without form,
and the specification was void.

And darkness
was on the faces of the implementors thereof;
And they spake unto their leader,
saying:
"It is a crock of shit,
and smells as of a sewer."

And the leader took pity on them,
and spoke to the project leader:
"It is a crock of excrement,
and none may abide the odor thereof."

And the project leader
spake unto his section head, saying:
"It is a container of excrement,
and it is very strong, such that none may abide it."

The section head then hurried to his department manager,
and informed him thus:
"It is a vessel of fertilizer,
and none may abide its strength."

The department manager carried these words
to his general manager,
and spoke unto him
saying:
"It containeth that which aideth the growth of plants,
and it is very strong."

And so it was that the general manager rejoiced
and delivered the good news unto the Vice President.
"It promoteth growth,
and it is very powerful."

The Vice President rushed to the President's side,
and joyously exclaimed:
"This powerful new software product
will promote the growth of the company!"

And the President looked upon the product,
and saw that it was very good.

After the subsequent disaster, the {suit}s protect themselves by
saying "I was misinformed!", and the implementors are demoted or
fired.

:snail: vt. To {snail-mail} something. "Snail me a copy of those
graphics, will you?"

:snail-mail: n. Paper mail, as opposed to electronic. Sometimes
written as the single word `SnailMail'. One's postal address is,
correspondingly, a `snail address'. Derives from earlier coinage
`USnail' (from `U.S. Mail'), for which there have been
parody posters and stamps made. Oppose {email}.

:snap: v. To replace a pointer to a pointer with a direct pointer;
to replace an old address with the forwarding address found there.
If you telephone the main number for an institution and ask for a
particular person by name, the operator may tell you that person's
extension before connecting you, in the hopes that you will `snap
your pointer' and dial direct next time. The underlying metaphor
may be that of a rubber band stretched through a number of
intermediate points; if you remove all the thumbtacks in the
middle, it snaps into a straight line from first to last. See
{chase pointers}.

Often, the behavior of a {trampoline} is to perform an error
check once and then snap the pointer that invoked it so as
henceforth to bypass the trampoline (and its one-shot error check).
In this context one also speaks of `snapping links'. For
example, in a Lisp implementation, a function interface trampoline
might check to make sure that the caller is passing the correct
number of arguments; if it is, and if the caller and the callee are
both compiled, then snapping the link allows that particular path
to use a direct procedure-call instruction with no further
overhead.

:snarf: /snarf/ vt. 1. To grab, esp. to grab a large document
or file for the purpose of using it with or without the author's
permission. See also {BLT}. 2. [in the UNIX community] To
fetch a file or set of files across a network. See also
{blast}. This term was mainstream in the late 1960s, meaning
`to eat piggishly'. It may still have this connotation in context.
"He's in the snarfing phase of hacking --- {FTP}ing megs of
stuff a day." 3. To acquire, with little concern for legal forms
or politesse (but not quite by stealing). "They were giving
away samples, so I snarfed a bunch of them." 4. Syn. for
{slurp}. "This program starts by snarfing the entire database
into core, then...."

:snarf & barf: /snarf'n-barf`/ n. Under a {WIMP environment},
the act of grabbing a region of text and then stuffing the contents
of that region into another region (or the same one) to avoid
retyping a command line. In the late 1960s, this was a mainstream
expression for an `eat now, regret it later' cheap-restaurant
expedition.

:snarf down: v. To {snarf}, with the connotation of absorbing,
processing, or understanding. "I'll snarf down the latest
version of the {nethack} user's guide --- It's been a while
since I played last and I don't know what's changed recently."

:snark: [Lewis Carroll, via the Michigan Terminal System] n. 1. A
system failure. When a user's process bombed, the operator would
get the message "Help, Help, Snark in MTS!" 2. More generally,
any kind of unexplained or threatening event on a computer
(especially if it might be a boojum). Often used to refer to an
event or a log file entry that might indicate an attempted security
violation. See {snivitz}. 3. UUCP name of
snark.thyrsus.com, home site of the Jargon File 2.*.* versions
(i.e., this lexicon).

:sneakernet: /snee'ker-net/ n. Term used (generally with ironic
intent) for transfer of electronic information by physically
carrying tape, disks, or some other media from one machine to
another. "Never underestimate the bandwidth of a station wagon
filled with magtape, or a 747 filled with CD-ROMs." Also called
`Tennis-Net', `Armpit-Net', `Floppy-Net' or `Shoenet'.

:sniff: v.,n. Synonym for {poll}.

:snivitz: /sniv'itz/ n. A hiccup in hardware or software; a small,
transient problem of unknown origin (less serious than a
{snark}). Compare {glitch}.

:SO: /S-O/ n. 1. (also `S.O.') Abbrev. for Significant
Other, almost invariably written abbreviated and pronounced
/S-O/ by hackers. Used to refer to one's primary
relationship, esp. a live-in to whom one is not married. See
{MOTAS}, {MOTOS}, {MOTSS}. 2. The Shift Out control
character in ASCII (Control-N, 0001110).

:social engineering: n. Term used among {cracker}s and
{samurai} for cracking techniques that rely on weaknesses in
{wetware} rather than software; the aim is to trick people into
revealing passwords or other information that compromises a target
system's security. Classic scams include phoning up a mark who has
the required information and posing as a field service tech or a
fellow employee with an urgent access problem. See also the
{tiger team} story in the {patch} entry.

:social science number: [IBM] n. A statistic that is
{content-free}, or nearly so. A measure derived via methods of
questionable validity from data of a dubious and vague nature.
Predictively, having a social science number in hand is seldom much
better than nothing, and can be considerably worse. {Management}
loves them. See also {numbers}, {math-out}, {pretty
pictures}.

:soft boot: n. See {boot}.

:softcopy: /soft'ko-pee/ n. [by analogy with `hardcopy'] A
machine-readable form of corresponding hardcopy. See {bits},
{machinable}.

:software bloat: n. The results of {second-system effect} or
{creeping featuritis}. Commonly cited examples include
`ls(1)', {X}, {BSD}, {Missed'em-five}, and {OS/2}.

:software rot: n. Term used to describe the tendency of software
that has not been used in a while to {lose}; such failure may be
semi-humorously ascribed to {bit rot}. More commonly,
`software rot' strikes when a program's assumptions become out
of date. If the design was insufficiently {robust}, this may
cause it to fail in mysterious ways.

For example, owing to endemic shortsightedness in the design of
COBOL programs, most will succumb to software rot when their
2-digit year counters {wrap around} at the beginning of the
year 2000. Actually, related lossages often afflict centenarians
who have to deal with computer software designed by unimaginative
clods. One such incident became the focus of a minor public flap
in 1990, when a gentleman born in 1889 applied for a driver's
license renewal in Raleigh, North Carolina. The new system
refused to issue the card, probably because with 2-digit years the
ages 101 and 1 cannot be distinguished.

Historical note: Software rot in an even funnier sense than the
mythical one was a real problem on early research computers (e.g.,
the R1; see {grind crank}). If a program that depended on a
peculiar instruction hadn't been run in quite a while, the user
might discover that the opcodes no longer did the same things they
once did. ("Hey, so-and-so needs an instruction to do
such-and-such. We can {snarf} this opcode, right? No one uses
it.")

Another classic example of this sprang from the time an MIT hacker
found a simple way to double the speed of the unconditional jump
instruction on a PDP-6, so he patched the hardware. Unfortunately,
this broke some fragile timing software in a music-playing program,
throwing its output out of tune. This was fixed by adding a
defensive initialization routine to compare the speed of a timing
loop with the real-time clock; in other words, it figured out how
fast the PDP-6 was that day, and corrected appropriately.

Compare {bit rot}.

:softwarily: /soft-weir'i-lee/ adv. In a way pertaining to software.
"The system is softwarily unreliable." The adjective
`softwary' is *not* used. See {hardwarily}.

:softy: [IBM] n. Hardware hackers' term for a software expert who
is largely ignorant of the mysteries of hardware.

:some random X: adj. Used to indicate a member of class X, with the
implication that Xs are interchangeable. "I think some random
cracker tripped over the guest timeout last night." See also
{J. Random}.

:sorcerer's apprentice mode: [from Friedrich Schiller's `Der
Zauberlehrling' via the film "Fantasia"] n. A bug in a
protocol where, under some circumstances, the receipt of a message
causes multiple messages to be sent, each of which, when received,
triggers the same bug. Used esp. of such behavior caused by
{bounce message} loops in {email} software. Compare
{broadcast storm}, {network meltdown}.

:SOS: n.,obs. /S-O-S/ 1. An infamously {losing} text editor.
Once, back in the 1960s, when a text editor was needed for the
PDP-6, a hacker crufted together a {quick-and-dirty} `stopgap
editor' to be used until a better one was written. Unfortunately,
the old one was never really discarded when new ones (in
particular, {TECO}) came along. SOS is a descendant (`Son of
Stopgap') of that editor, and many PDP-10 users gained the dubious
pleasure of its acquaintance. Since then other programs similar in
style to SOS have been written, notably the early font editor BILOS
/bye'lohs/, the Brother-In-Law Of Stopgap (the alternate expansion
`Bastard Issue, Loins of Stopgap' has been proposed). 2. /sos/
n. To decrease; inverse of {AOS}, from the PDP-10 instruction
set.

:source of all good bits: n. A person from whom (or a place from
which) useful information may be obtained. If you need to know
about a program, a {guru} might be the source of all good bits.
The title is often applied to a particularly competent secretary.

:space-cadet keyboard: n. A now-legendary device used on MIT LISP
machines, which inspired several still-current jargon terms and
influenced the design of {EMACS}. It was equipped with no
fewer than *seven* shift keys: four keys for {bucky bits}
(`control', `meta', `hyper', and `super') and three like
regular shift keys, called `shift', `top', and `front'. Many
keys had three symbols on them: a letter and a symbol on the top,
and a Greek letter on the front. For example, the `L' key had an
`L' and a two-way arrow on the top, and the Greek letter lambda on
the front. By pressing this key with the right hand while playing
an appropriate `chord' with the left hand on the shift keys, you
can get the following results:

L
lowercase l

shift-L
uppercase L

front-L
lowercase lambda

front-shift-L
uppercase lambda

top-L
two-way arrow
(front and shift are ignored)

And of course each of these might also be typed with any
combination of the control, meta, hyper, and super keys. On this
keyboard, you could type over 8000 different characters! This
allowed the user to type very complicated mathematical text, and
also to have thousands of single-character commands at his
disposal. Many hackers were actually willing to memorize the
command meanings of that many characters if it reduced typing time
(this attitude obviously shaped the interface of EMACS). Other
hackers, however, thought having that many bucky bits was overkill,
and objected that such a keyboard can require three or four hands
to operate. See {bucky bits}, {cokebottle}, {double bucky},
{meta bit}, {quadruple bucky}.

Note: early versions of this entry incorrectly identified the
space-cadet keyboard with the `Knight keyboard'. Though both
were designed by Tom Knight, the latter term was properly applied
only to a keyboard used for ITS on the PDP-10 and modeled
on the Stanford keyboard (as described under {bucky bits}). The
true space-cadet keyboard evolved from the Knight keyboard.

:SPACEWAR: n. A space-combat simulation game, inspired by
E. E. "Doc" Smith's "Lensman" books, in which two spaceships
duel around a central sun, shooting torpedoes at each other and
jumping through hyperspace. This game was first implemented on the
PDP-1 at MIT in 1960--61. SPACEWAR aficionados formed the core of
the early hacker culture at MIT. Nine years later, a descendant
of the game motivated Ken Thompson to build, in his spare time on a
scavenged PDP-7, the operating system that became {{UNIX}}. Less
than nine years after that, SPACEWAR was commercialized as one of
the first video games; descendants are still {feep}ing in video
arcades everywhere.

:spaghetti code: n. Code with a complex and tangled control
structure, esp. one using many GOTOs, exceptions, or other
`unstructured' branching constructs. Pejorative. The synonym
`kangaroo code' has been reported, doubtless because such code
has many jumps in it.

:spaghetti inheritance: n. [encountered among users of object-oriented
languages that use inheritance, such as Smalltalk] A convoluted
class-subclass graph, often resulting from carelessly deriving
subclasses from other classes just for the sake of reusing their
code. Coined in a (successful) attempt to discourage such
practice, through guilt-by-association with {spaghetti code}.

:spam: [from the {MUD} community] vt. To crash a program by overrunning
a fixed-size buffer with excessively large input data. See also
{buffer overflow}, {overrun screw}, {smash the stack}.

:special-case: vt. To write unique code to handle input to or
situations arising in program that are somehow distinguished from
normal processing. This would be used for processing of mode
switches or interrupt characters in an interactive interface (as
opposed, say, to text entry or normal commands), or for processing
of {hidden flag}s in the input of a batch program or {filter}.

:speedometer: n. A pattern of lights displayed on a linear set of
LEDs (today) or nixie tubes (yesterday, on ancient mainframes).
The pattern is shifted left every N times the software goes
through its main loop. A swiftly moving pattern indicates that the
system is mostly idle; the speedometer slows down as the system
becomes overloaded. The speedometer on Sun Microsystems hardware
bounces back and forth like the eyes on one of the Cylons from the
wretched "Battlestar Galactica" TV series.

Historical note: One computer, the Honeywell 6000 (later GE 600)
actually had an *analog* speedometer on the front panel,
calibrated in instructions executed per second.

:spell: n. Syn. {incantation}.

:spiffy: /spi'fee/ adj. 1. Said of programs having a pretty,
clever, or exceptionally well-designed interface. "Have you seen
the spiffy {X} version of {empire} yet?" 2. Said
sarcastically of a program that is perceived to have little more
than a flashy interface going for it. Which meaning should be
drawn depends delicately on tone of voice and context. This word
was common mainstream slang during the 1940s, in a sense close to #1.

:spike: v. To defeat a selection mechanism by introducing a
(sometimes temporary) device which forces a specific result. The
word is used in several industries; telephone engineers refer to
spiking a relay by inserting a pin to hold the relay in either the
closed or open state, and railroaders refer to spiking a
track switch so that it cannot be moved. In programming
environments it normally refers to a temporary change, usually for
testing purposes (as opposed to a permanent change which would be
called {hardwired}).

:spin: vi. Equivalent to {buzz}. More common among C and UNIX
programmers.

:spl: /S-P-L/ [abbrev, from Set Priority Level] The way
traditional UNIX kernels implement mutual exclusion by running code
at high interrupt levels. Used in jargon to describe the act of
tuning in or tuning out ordinary communication. Classically, spl
levels run from 1 to 7; "Fred's at spl 6 today." would mean
that he is very hard to interrupt. "Wait till I finish this; I'll
spl down then." See also {interrupts locked out}.

:splat: n. 1. Name used in many places (DEC, IBM, and others) for
the asterisk (`*') character (ASCII 0101010). This may derive
from the `squashed-bug' appearance of the asterisk on many early
line printers. 2. [MIT] Name used by some people for the
`#' character (ASCII 0100011). 3. [Rochester Institute of
Technology] The {feature key} on a Mac (same as {alt},
sense 2). 4. [Stanford] Name used by some people for the
Stanford/ITS extended ASCII
circle-x
character. This character is also called `blobby' and `frob',
among other names; it is sometimes used by mathematicians as a
notation for `tensor product'. 5. [Stanford] Name for the
semi-mythical extended ASCII
circle-plus
character. 6. Canonical name for an output routine that outputs
whatever the local interpretation of `splat' is.

With ITS and WAITS gone, senses 4--6 are now nearly obsolete. See
also {{ASCII}}.

:spod: [Great Britain] n. A lower form of life found on {talker
system}s and {MUD}s. The spod has few friends in {RL} and
uses talkers instead, finding communication easier and preferable
over the net. He has all the negative traits of the {computer
geek} without having any interest in computers per se. Lacking any
knowledge of or interest in how networks work, and considering his
access a God-given right, he is a major irritant to sysadmins,
clogging up lines in order to reach new MUDs, following passed-on
instructions on how to sneak his way onto Internet ("Wow! It's in
America!") and complaining when he is not allowed to use busy
routes. A true spod will start any conversation with "Are you
male or female?" (and follow it up with "Got any good
numbers/IDs/passwords?") and will not talk to someone physically
present in the same terminal room until they log onto the same
machine that he is using and enter talk mode. Compare {newbie},
{tourist}, {weenie}, {twink}, {terminal junkie}.


:sponge: [UNIX] n. A special case of a {filter} that reads its
entire input before writing any output; the canonical example is a
sort utility. Unlike most filters, a sponge can conveniently
overwrite the input file with the output data stream. If your file
system has versioning (as ITS did and VMS does now) the
sponge/filter distinction loses its usefulness, because directing
filter output would just write a new version. See also {slurp}.

:spooge: /spooj/ 1. n. Inexplicable or arcane code, or random
and probably incorrect output from a computer program. 2. vi. To
generate spooge (sense 1).

:spool: [from early IBM `Simultaneous Peripheral Operation
On-Line', but this acronym is widely thought to have been contrived
for effect] vt. To send files to some device or program (a
`spooler') that queues them up and does something useful with
them later. The spooler usually understood is the `print
spooler' controlling output of jobs to a printer, but the term has
been used in connection with other peripherals (especially plotters
and graphics devices) and occasionally even for input devices. See
also {demon}.

:spool file: n. Any file to which data is {spool}ed to await the
next stage of processing. Especially used in circumstances where
spooling the data copes with a mismatch between speeds in two
devices or pieces of software. For example, when you send mail
under UNIX, it's typically copied to a spool file to await a
transport {demon}'s attentions. This is borderline techspeak.

:square tape: n. Mainframe magnetic tape cartridges for use with IBM 3480
or compatible tape drives. The term comes from the square (actually
rectangular) shape of the cartridges; contrast {round tape}.

:stack: n. A person's stack is the set of things he or she has to do
in the future. One speaks of the next project to be attacked as
having risen to the top of the stack. "I'm afraid I've got real
work to do, so this'll have to be pushed way down on my stack."
"I haven't done it yet because every time I pop my stack something
new gets pushed." If you are interrupted several times in the
middle of a conversation, "My stack overflowed" means "I
forget what we were talking about." The implication is that more
items were pushed onto the stack than could be remembered, so the
least recent items were lost. The usual physical example of a
stack is to be found in a cafeteria: a pile of plates or trays
sitting on a spring in a well, so that when you put one on the top
they all sink down, and when you take one off the top the rest
spring up a bit. See also {push} and {pop}.

At MIT, {pdl} used to be a more common synonym for {stack} in
all these contexts, and this may still be true. Everywhere else
{stack} seems to be the preferred term. {Knuth}
(`The Art of Computer Programming', second edition, vol. 1,
p. 236) says:

Many people who realized the importance of stacks and queues
independently have given other names to these structures:
stacks have been called push-down lists, reversion storages,
cellars, nesting stores, piles, last-in-first-out ("LIFO")
lists, and even yo-yo lists!

:stack puke: n. Some processor architectures are said to `puke their
guts onto the stack' to save their internal state during exception
processing. The Motorola 68020, for example, regurgitates up to
92 bytes on a bus fault. On a pipelined machine, this can take a
while.

:stale pointer bug: n. Synonym for {aliasing bug} used esp. among
microcomputer hackers.

:state: n. 1. Condition, situation. "What's the state of your
latest hack?" "It's winning away." "The system tried to read
and write the disk simultaneously and got into a totally wedged
state." The standard question "What's your state?" means
"What are you doing?" or "What are you about to do?" Typical
answers are "about to gronk out", or "hungry". Another
standard question is "What's the state of the world?", meaning
"What's new?" or "What's going on?". The more terse and
humorous way of asking these questions would be "State-p?".
Another way of phrasing the first question under sense 1 would be
"state-p latest hack?". 2. Information being maintained in
non-permanent memory (electronic or human).

:steam-powered: adj. Old-fashioned or underpowered; archaic. This
term does not have a strong negative loading and may even be used
semi-affectionately for something that clanks and wheezes a lot
but hangs in there doing the job.

:stiffy: [University of Lowell, Massachusetts.] n. 3.5-inch
{microfloppies}, so called because their jackets are more firm
than those of the 5.25-inch and the 8-inch floppy. Elsewhere this
might be called a `firmy'.

:stir-fried random: alt. `stir-fried mumble' n. Term used for the
best dish of many of those hackers who can cook. Consists of
random fresh veggies and meat wokked with random spices. Tasty and
economical. See {random}, {great-wall}, {ravs}, {{laser
chicken}}, {{oriental food}}; see also {mumble}.

:stomp on: vt. To inadvertently overwrite something important, usually
automatically. "All the work I did this weekend got
stomped on last night by the nightly server script." Compare
{scribble}, {mangle}, {trash}, {scrog}, {roach}.

:Stone Age: n., adj. 1. In computer folklore, an ill-defined period
from ENIAC (ca. 1943) to the mid-1950s; the great age of
electromechanical {dinosaur}s. Sometimes used for the entire
period up to 1960--61 (see {Iron Age}); however, it is funnier
and more descriptive to characterize the latter period in terms of
a `Bronze Age' era of transistor-logic, pre-ferrite-{core}
machines with drum or CRT mass storage (as opposed to just mercury
delay lines and/or relays). See also {Iron Age}. 2. More
generally, a pejorative for any crufty, ancient piece of hardware
or software technology. Note that this is used even by people who
were there for the {Stone Age} (sense 1).

:stone knives and bearskins: [ITS, prob. from the Star Trek Classic
episode "The City on the Edge of Forever"] n. A term traditionally
used by {ITS} fans to describe (and deprecate) computing
environments they regard as less advanced, with the (often
correct) implication that said environments were grotesquely
primitive in light of what is known about good ways to design
things. As in "Don't get too used to the facilities here. Once
you leave MIT it's stone knives and bearskins as far as the eye can
see". Compare {steam-powered}.

:stoppage: /sto'p*j/ n. Extreme {lossage} that renders
something (usually something vital) completely unusable. "The
recent system stoppage was caused by a {fried} transformer."

:store: [prob. from techspeak `main store'] n. Preferred Commonwealth
synonym for {core}. Thus, `bringing a program into store' means
not that one is returning shrink-wrapped software but that a
program is being {swap}ped in.

:stroke: n. Common name for the slant (`/', ASCII 0101111)
character. See {ASCII} for other synonyms.

:strudel: n. Common (spoken) name for the at-sign (`@', ASCII
1000000) character. See {ASCII} for other synonyms.

:stubroutine: /stuhb'roo-teen/ [contraction of `stub
subroutine'] n. Tiny, often vacuous placeholder for a subroutine
that is to be written or fleshed out later.

:studlycaps: /stuhd'lee-kaps/ n. A hackish form of silliness
similar to {BiCapitalization} for trademarks, but applied
randomly and to arbitrary text rather than to trademarks. ThE
oRigiN and SigNificaNce of thIs pRacTicE iS oBscuRe.

:stunning: adj. Mind-bogglingly stupid. Usually used in sarcasm.
"You want to code *what* in ADA? That's ... a stunning
idea!"

:stupid-sort: n. Syn. {bogo-sort}.

:Stupids: n. Term used by {samurai} for the {suit}s who
employ them; succinctly expresses an attitude at least as common,
though usually better disguised, among other subcultures of
hackers. There may be intended reference here to an SF story
originally published in 1952 but much anthologized since, Mark
Clifton's `Star, Bright'. In it, a super-genius child
classifies humans into a very few `Brights' like herself, a huge
majority of `Stupids', and a minority of `Tweens', the merely
ordinary geniuses.

:subshell: /suhb'shel/ [UNIX, MS-DOS] n. An OS command interpreter
(see {shell}) spawned from within a program, such that exit from
the command interpreter returns one to the parent program in a
state that allows it to continue execution. Compare {shell out};
oppose {chain}.

:sucking mud: [Applied Data Research] adj. (also `pumping
mud') Crashed or wedged. Usually said of a machine that provides
some service to a network, such as a file server. This Dallas
regionalism derives from the East Texas oilfield lament, "Shut
'er down, Ma, she's a-suckin' mud". Often used as a query. "We
are going to reconfigure the network, are you ready to suck mud?"

:sufficiently small: adj. Syn. {suitably small}.

:suit: n. 1. Ugly and uncomfortable `business clothing' often
worn by non-hackers. Invariably worn with a `tie', a
strangulation device that partially cuts off the blood supply to
the brain. It is thought that this explains much about the
behavior of suit-wearers. Compare {droid}. 2. A person who
habitually wears suits, as distinct from a techie or hacker. See
{loser}, {burble}, {management}, {Stupids}, {SNAFU
Principle}, and {brain-damaged}. English, by the way, is
relatively kind; our Moscow correspondent informs us that the
corresponding idiom in Russian hacker jargon is `sovok', lit. a
tool for grabbing garbage.

:suitable win: n. See {win}.

:suitably small: [perverted from mathematical jargon] adj. An
expression used ironically to characterize unquantifiable
behavior that differs from expected or required behavior. For
example, suppose a newly created program came up with a correct
full-screen display, and one publicly exclaimed: "It works!"
Then, if the program dumps core on the first mouse click, one might
add: "Well, for suitably small values of `works'." Compare
the characterization of pi under {{random numbers}}.

:sun lounge: [Great Britain] n. The room where all the Sun
workstations live. The humor in this term comes from the fact
that it's also in mainstream use to describe a solarium, and all
those Sun workstations clustered together give off an amazing
amount of heat.

:sun-stools: n. Unflattering hackerism for SunTools, a pre-X
windowing environment notorious in its day for size, slowness, and
misfeatures. {X}, however, is larger and slower; see
{second-system effect}.

: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 {cosmic rays}, {phase of the moon}.

: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 na"ive 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: [UNIX] n. 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 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.

: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 the piece of paper is your extra-somatic
memory and if you don't swap the info 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/ (var. `synch') n., vi. 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 sugar: [coined by Peter Landin] n. Features added to a
language or other formalism to make it `sweeter' for humans,
that 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 saccharine' and `syntactic syrup' are
also recorded. These denotes something even more gratuitous, in
that syntactic sugar serves a purpose (making something more
acceptable to humans) but syntactic saccharine or syrup serves no
purpose at all. Compare {candygrammar}.

:sys-frog: /sis'frog/ [the PLATO system] n. 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: /sysape/ 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 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 well respond `T', meaning that he wants coffee; but of course
he will be brought a cup of tea instead. As it happens, 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.

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

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))
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)
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
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:

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

Some {BIFF}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}, {bonk/oif}.

: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 an ugly design requirement or the prospect of using an
unpleasantly {heavyweight} technique. "What? Don't tell me I
have to implement a database back end to get my address book
program to work!" "Well, TANSTAAFL you know." This phrase owes
some of its popularity to the high concentration of science-fiction
fans and political libertarians in hackerdom (see Appendix
B).

:tar and feather: [from UNIX `tar(1)'] vt. 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' 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 `tasteful' 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'. {Flavor} is a more popular word than `taste',
though both are used. See also {elegant}. 2. Alt. sp. of
{tayste}.

:tayste: /tayst/ n. Two bits; also as {taste}. Syn. {crumb},
{quarter}. Compare {{byte}}, {dynner}, {playte},
{nybble}, {quad}.

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

:tea, ISO standard cup of: [South Africa] n. 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/ [MS-DOS] n. The original `IBM PC
Technical Reference Manual', including the BIOS listing and
complete schematics for the PC. The only PC documentation in the
issue package that's considered serious by real hackers.

:TECO: /tee'koh/ obs. 1. vt. Originally, to edit using the TECO
editor in one of its infinite variations (see below). 2. vt.,obs.
To edit even when TECO is *not* the editor being used! This
usage is rare and now primarily historical. 2. [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 might 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 hacker game used to be mentally working out what
the TECO commands corresponding to human names did. 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<.-Z; ... L>' 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'.

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

:TELNET: /tel'net/ vt. To communicate with another Internet host
using the {TELNET} 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.

: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*/ [SI] pref. See {{quantifiers}}.

:teraflop club: /te'r*-flop kluhb/ [FLOP = Floating Point
Operation] n. 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.

:terminak: /ter'mi-nak`/ [Caltech, ca. 1979] n. 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." See {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: [UK] n. 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/ [from LISP 1.5 (and later, MacLISP)] vi. 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(1)', 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.

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' has yet to appear as of mid-1991. 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 tool-building 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 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 is a
generalization and 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/ [by analogy with `typo'] n. 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 {{Humor, Hacker}}.

: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 present
news in thread order.

: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} to compute the expression and leave 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
holds 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: [Acorn Computers] n. 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
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: [U.S. military jargon] n. 1. Originally, a team 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 sink: [poss. by analogy with `heat sink' or `current sink'] n.
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: [by analogy with `plus-or-minus'] quant.
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.

:tinycrud: /ti:'nee-kruhd/ n. 1. A pejorative used by habitues of older
game-oriented {MUD} versions for TinyMUDs and other
user-extensible {MUD} variants; esp. common among users of the
rather violent and competitive AberMUD and MIST systems. These
people justify the slur on the basis of how (allegedly)
inconsistent and lacking in genuine atmosphere the scenarios
generated in user extensible MUDs can be. Other common knocks on
them are that they feature little overall plot, bad game topology,
little competitive interaction, etc. --- not to mention the alleged
horrors of the TinyMUD code itself. This dispute is one of the MUD
world's hardiest perennial {holy wars}. 2. TinyMud-oriented
chat on the USENET group rec.games.mud and elsewhere,
especially {newbie} questions and flamage.

:tip of the ice-cube: [IBM] n. 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: [IBM] n. 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/ [Three-Letter Acronym] n. 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
which became basics of the hackish vocabulary (see esp. {foo}
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 (no model railroad can begin to approximate the scale
distances between towns and stations, so model railroad timetables
assume a fast clock so that it seems to take about the right amount
of time for a train to complete its journey). 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 bacame 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/, /tuh-merk'ee/ [MIT] n. A denizen of {TMRC}.

:to a first approximation: 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}.

: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."

: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


 


Back to Full Books