Full Text Archive logoFull Text Archive — Free Classic E-books

The New Hacker's Dictionary version 4.2.2 by Various editors

Part 17 out of 29

Adobe PDF icon
Download this document as a .pdf
File size: 1.8 MB
What's this? light bulb idea Many people prefer to read off-line or to print out text and read from the real printed page. Others want to carry documents around with them on their mobile phones and read while they are on the move. We have created .pdf files of all out documents to accommodate all these groups of people. We recommend that you download .pdfs onto your mobile phone when it is connected to a WiFi connection for reading off-line.

segment; this is because it is actually a noun shorthand that has been

Node:segmentation fault, Next:[11986]segv, Previous:[11987]segment,
Up:[11988]= S =

segmentation fault n.

[Unix] 1. [techspeak] An error in which a running program attempts to
access memory not allocated to it and [11989]core dumps with a
segmentation violation error. This is often caused by improper usage
of pointers in the source code, dereferencing a null pointer, or (in
C) inadvertently using a non-pointer variable as a pointer. The
classic example is:
int i;
scanf ("%d", i); /* should have used &i */

2. To lose a train of thought or a line of reasoning. Also uttered as
an exclamation at the point of befuddlement.

Node:segv, Next:[11990]self-reference, Previous:[11991]segmentation
fault, Up:[11992]= S =

segv /seg'vee/ n.,vi.

Yet another synonym for [11993]segmentation fault (actually, in this
case, `segmentation violation').

Node:self-reference, Next:[11994]selvage, Previous:[11995]segv,
Up:[11996]= S =

self-reference n.

See [11997]self-reference.

Node:selvage, Next:[11998]semi, Previous:[11999]self-reference,
Up:[12000]= S =

selvage /sel'v*j/ n.

[from sewing and weaving] See [12001]chad (sense 1).

Node:semi, Next:[12002]semi-automated, Previous:[12003]selvage,
Up:[12004]= S =

semi /se'mee/ or /se'mi:/

1. n. Abbreviation for `semicolon', when speaking. "Commands to
[12005]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 [12006]infinite.

Node:semi-automated, Next:[12007]semi-infinite, Previous:[12008]semi,
Up:[12009]= S =

semi-automated adj.

[US Geological Survey] A procedure that has yet to be completely
automated; it still requires a smidge of clueful human interaction.
Semi-automated programs usually come with written-out operator
instructions that are worth their weight in gold - without them, very
nasty things can happen. At USGS semi-automated programs are often
referred to as "semi-automated weapons".

Node:semi-infinite, Next:[12010]senior bit,
Previous:[12011]semi-automated, Up:[12012]= S =

semi-infinite n.

See [12013]infinite.

Node:senior bit, Next:[12014]September that never ended,
Previous:[12015]semi-infinite, Up:[12016]= S =

senior bit n.

[IBM; rare] Syn. [12017]meta bit.

Node:September that never ended, Next:[12018]server,
Previous:[12019]senior bit, Up:[12020]= S =

September that never ended

All time since September 1993. One of the seasonal rhythms of the
Usenet used to be the annual September influx of clueless newbies who,
lacking any sense of [12021]netiquette, made a general nuisance of
themselves. This coincided with people starting college, getting their
first internet accounts, and plunging in without bothering to learn
what was acceptable. These relatively small drafts of newbies could be
assimilated within a few months. But in September 1993, AOL users
became able to post to Usenet, nearly overwhelming the old-timers'
capacity to acculturate them; to those who nostalgically recall the
period before hand, this triggered an inexorable decline in the
quality of discussions on newsgroups. See also [12022]AOL!.

Node:server, Next:[12023]SEX, Previous:[12024]September that never
ended, Up:[12025]= S =

server n.

A kind of [12026]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
`web servers', `name servers', `domain servers', `news servers',
`finger servers', and the like.

Node:SEX, Next:[12027]sex changer, Previous:[12028]server, Up:[12029]=
S =

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 [12030]Good Thing, but unprotected SEX can
propagate a [12031]virus. See also [12032]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. The Data General instruction set also had SEX.

[12033]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 Radio Shack Color Computer and in
U.K.'s `Dragon 32' personal computer, actually had an official SEX
instruction; the 6502 in the Apple II with which it competed 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.

Node:sex changer, Next:[12034]shambolic link, Previous:[12035]SEX,
Up:[12036]= S =

sex changer n.

Syn. [12037]gender mender.

Node:shambolic link, Next:[12038]shar file, Previous:[12039]sex
changer, Up:[12040]= S =

shambolic link /sham-bol'ik link/ n.

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

Node:shar file, Next:[12041]sharchive, Previous:[12042]shambolic link,
Up:[12043]= S =

shar file /shar' fi:l/ n.

Syn. [12044]sharchive.

Node:sharchive, Next:[12045]Share and enjoy!, Previous:[12046]shar
file, Up:[12047]= S =

sharchive /shar'ki:v/ n.

[Unix and Usenet; from /bin/sh archive] A [12048]flattened
representation of a set of one or more files, with the unique property
that it can be unflattened (the original files restored) by feeding it
through a standard Unix shell; thus, a sharchive can be distributed to
anyone running Unix, and no special unpacking software is required.
Sharchives are also intriguing in that they are typically created by
shell scripts; the script that produces sharchives is thus a script
which produces self-unpacking scripts, which may themselves contain
scripts. (The downsides of sharchives are that they are an ideal venue
for [12049]Trojan horse attacks and that, for recipients not running
Unix, no simple un-sharchiving program is possible; sharchives can and
do make use of arbitrarily-powerful shell features.) Sharchives are
also commonly referred to as `shar files' after the name of the most
common program for generating them.

Node:Share and enjoy!, Next:[12050]shareware,
Previous:[12051]sharchive, Up:[12052]= S =

Share and enjoy! imp.

1. Commonly found at the end of software release announcements and
[12053]README files, this phrase indicates allegiance to the hacker
ethic of free information sharing (see [12054]hacker ethic, sense 1).
2. The motto of the complaints division of Sirius Cybernetics
Corporation (the ultimate gaggle of incompetent [12055]suits) in
Douglas Adams's "Hitch Hiker's Guide to the Galaxy". The irony of
using this as a cultural recognition signal appeals to hackers.

Node:shareware, Next:[12056]sharing violation, Previous:[12057]Share
and enjoy!, Up:[12058]= S =

shareware /sheir'weir/ n.

A kind of [12059]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 [12060]careware,
[12061]charityware, [12062]crippleware, [12063]FRS, [12064]guiltware,
[12065]postcardware, and [12066]-ware; compare [12067]payware.

Node:sharing violation, Next:[12068]shebang,
Previous:[12069]shareware, Up:[12070]= S =

sharing violation

[From a file error common to several [12071]OSs] A response to
receiving information, typically of an excessively personal nature,
that you were probably happier not knowing. "You know those little
noises that Pat makes in bed..?" "Whoa! Sharing violation!" In
contrast to the original file error, which indicated that you were not
being given data that you did want.

Node:shebang, Next:[12072]shelfware, Previous:[12073]sharing
violation, Up:[12074]= S =

shebang /sh*-bang/ n.

The character sequence "#!" that frequently begins executable shell
scripts under Unix. Probably derived from "shell bang" under the
influence of American slang "the whole shebang" (everything, the

Node:shelfware, Next:[12075]shell, Previous:[12076]shebang,
Up:[12077]= S =

shelfware /shelf'weir/ 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

Node:shell, Next:[12078]shell out, Previous:[12079]shelfware,
Up:[12080]= S =

shell [orig. [12081]Multics n.

techspeak, widely propagated via Unix] 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 [12082]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'. 3. A skeleton program, created by hand or by
another program (like, say, a parser generator), which provides the
necessary [12083]incantations to set up some task and the control flow
to drive it (the term [12084]driver is sometimes used synonymously).
The user is meant to fill in whatever code is needed to get real work
done. This usage is common in the AI and Microsoft Windows worlds, and
confuses Unix hackers.

Historical note: Apparently, the original Multics shell (sense 1) was
so called because it was a shell (sense 3); it ran user programs not
by starting up separate processes, but by dynamically linking the
programs into its own code, calling them as subroutines, and then
dynamically de-linking them on return. The VMS command interpreter
still does something very like this.

Node:shell out, Next:[12085]shift left (or right) logical,
Previous:[12086]shell, Up:[12087]= S =

shell out vi.

[Unix] To [12088]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."

Node:shift left (or right) logical, Next:[12089]shim,
Previous:[12090]shell out, Up:[12091]= S =

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 [12092]PDP-10
instruction set. See [12093]Programmer's Cheer.

Node:shim, Next:[12094]shitogram, Previous:[12095]shift left (or
right) logical, Up:[12096]= S =

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
[12097]loose bytes.

Node:shitogram, Next:[12098]short card, Previous:[12099]shim,
Up:[12100]= S =

shitogram /shit'oh-gram/ n.

A really nasty piece of email. Compare [12101]nastygram, [12102]flame.

Node:short card, Next:[12103]shotgun debugging,
Previous:[12104]shitogram, Up:[12105]= S =

short card n.

A half-length IBM XT 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 [12106]tall

Node:shotgun debugging, Next:[12107]shovelware, Previous:[12108]short
card, Up:[12109]= S =

shotgun debugging n.

The software equivalent of [12110]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.

Node:shovelware, Next:[12111]showstopper, Previous:[12112]shotgun
debugging, Up:[12113]= S =

shovelware /shuh'v*l-weir`/ n.

1. Extra software dumped onto a CD-ROM or tape to fill up the
remaining space on the medium after the software distribution it's
intended to carry, but not integrated with the distribution. 2. A
slipshod compilation of software dumped onto a CD-ROM without much
care for organization or even usability.

Node:showstopper, Next:[12114]shriek, Previous:[12115]shovelware,
Up:[12116]= S =

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.

Node:shriek, Next:[12117]Shub-Internet, Previous:[12118]showstopper,
Up:[12119]= S =

shriek n.

See [12120]excl. Occasional CMU usage, also in common use among APL
fans and mathematicians, especially category theorists.

Node:Shub-Internet, Next:[12121]sidecar, Previous:[12122]shriek,
Up:[12123]= S =

Shub-Internet /shuhb' in't*r-net/ n.

[MUD: from H. P. Lovecraft's evil fictional deity Shub-Niggurath, the
Black Goat with a Thousand Young] 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 the Web, [12124]FTP
and [12125]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. Compare [12126]Random Number God.

[January 1996: It develops that one of the computer administrators in
the basement of the Pentagon read this entry and fell over laughing.
As a result, you too can now poke Shub-Internet by [12127]pinging
shub-internet.ims.disa.mil. See also [12128]kremvax. - ESR]

[April 1999: shub-internet.ims.disa.mil is no more, alas. But
Shub-Internet lives o^$#$*^ - ESR]

Node:sidecar, Next:[12129]SIG, Previous:[12130]Shub-Internet,
Up:[12131]= S =

sidecar n.

1. Syn. [12132]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 design rules. If it worked with any
other peripherals, it was by [12133]magic. 3. More generally, any of
various devices designed to be connected to the expansion slot on the
left side of the Amiga 500 (and later, 600 & 1200), which included a
hard drive controller, a hard drive, and additional memory.

Node:SIG, Next:[12134]sig block, Previous:[12135]sidecar, Up:[12136]=
S =

SIG /sig/ n.

(also common as a prefix in combining forms) A Special Interest Group,
in one of several technical areas, sponsored by the Association for
Computing Machinery; well-known ones include SIGPLAN (the Special
Interest Group on Programming Languages), 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).

Node:sig block, Next:[12137]sig quote, Previous:[12138]SIG,
Up:[12139]= S =

sig block /sig blok/ n.

[Unix; often written `.sig' there] Short for `signature', used
specifically to refer to the electronic signature block that most Unix
mail- and news-posting software will [12140]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 [12141]sig quote, [12142]fool file); but many consider large sigs
a waste of [12143]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. See also [12144]doubled sig.

Node:sig quote, Next:[12145]sig virus, Previous:[12146]sig block,
Up:[12147]= S =

sig quote /sig kwoht/ n.

[Usenet] A maxim, quote, proverb, joke, or slogan embedded in one's
[12148]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."

Node:sig virus, Next:[12149]signal-to-noise ratio, Previous:[12150]sig
quote, Up:[12151]= S =

sig virus n.

A parasitic [12152]meme embedded in a [12153]sig block. There was a
[12154]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

Node:signal-to-noise ratio, Next:[12155]silicon, Previous:[12156]sig
virus, Up:[12157]= S =

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 [12158]Usenet newsgroups during [12159]flame wars.
Compare [12160]bandwidth. See also [12161]coefficient of X,
[12162]lost in the noise.

Node:silicon, Next:[12163]silly walk, Previous:[12164]signal-to-noise
ratio, Up:[12165]= S =

silicon n.

Hardware, esp. ICs or microprocessor-based computer systems (compare
[12166]iron). Contrasted with software. See also [12167]sandbender.

Node:silly walk, Next:[12168]silo, Previous:[12169]silicon,
Up:[12170]= S =

silly walk vi.

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

Node:silo, Next:[12174]Silver Book, Previous:[12175]silly walk,
Up:[12176]= S =

silo n.

The FIFO input-character buffer in an RS-232 line card. So called from
[12177]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 went in at the top and came out at the bottom.

Node:Silver Book, Next:[12178]since time T equals minus infinity,
Previous:[12179]silo, Up:[12180]= S =

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 [12181]book titles,

Node:since time T equals minus infinity, Next:[12183]sitename,
Previous:[12184]Silver Book, Up:[12185]= S =

since time T equals minus infinity adv.

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 [12186]time T; contrast [12187]epoch.

Node:sitename, Next:[12188]skrog, Previous:[12189]since time T equals
minus infinity, Up:[12190]= S =

sitename /si:t'naym/ n.

[Unix/Internet] 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 [12191]network address.

Node:skrog, Next:[12192]skulker, Previous:[12193]sitename, Up:[12194]=
S =

skrog v.

Syn. [12195]scrog.

Node:skulker, Next:[12196]slab, Previous:[12197]skrog, Up:[12198]= S =

skulker n.

Syn. [12199]prowler.

Node:slab, Next:[12200]slack, Previous:[12201]skulker, Up:[12202]= S =

slab [Apple]

1. n. A continuous horizontal line of pixels, all with the same color.
2. vi. To paint a slab on an output device. Apple's QuickDraw, like
most other professional-level graphics systems, renders polygons and
lines not with Bresenham's algorithm, but by calculating `slab points'
for each scan line on the screen in succession, and then slabbing in
the actual image pixels.

Node:slack, Next:[12203]slap on the side, Previous:[12204]slab,
Up:[12205]= S =

slack n.

1. Space allocated to a disk file but not actually used to store
useful information. The techspeak equivalent is `internal
fragmentation'. Antonym: [12206]hole. 2. In the theology of the
[12207]Church of the SubGenius, a mystical substance or quality that
is the prerequisite of all human happiness.

Since Unix files are stored compactly, except for the unavoidable
wastage in the last block or fragment, it might be said that "Unix has
no slack". See [12208]ha ha only serious.

Node:slap on the side, Next:[12209]slash, Previous:[12210]slack,
Up:[12211]= S =

slap on the side n.

(also called a [12212]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.

Node:slash, Next:[12213]slashdot effect, Previous:[12214]slap on the
side, Up:[12215]= S =

slash n.

Common name for the slant (`/', ASCII 0101111) character. See
[12216]ASCII for other synonyms.

Node:slashdot effect, Next:[12217]sleep, Previous:[12218]slash,
Up:[12219]= S =

slashdot effect n.

1. Also spelled "/. effect"; what is said to have happened when a
website being virtually unreachable because too many people are
hitting it after the site was mentioned in an interesting article on
the popular [12220]Slashdot news service. The term is quite widely
used by /. readers, including variants like "That site has been
slashdotted again!" 2. In a perhaps inevitable generation, the term is
being used to describe any similar effect from being listed on a
popular site. This would better be described as a [12221]flash crowd.

Node:sleep, Next:[12222]slim, Previous:[12223]slashdot effect,
Up:[12224]= S =

sleep vi.

1. [techspeak] To relinquish a claim (of a process on a multitasking
system) for service; to indicate to the scheduler that a process may
be deactivated until some given event occurs or a specified time delay
elapses. 2. In jargon, used very similarly to v. [12225]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."

Node:slim, Next:[12226]slop, Previous:[12227]sleep, Up:[12228]= S =

slim n.

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

Node:slop, Next:[12229]slopsucker, Previous:[12230]slim, Up:[12231]= S

slop n.

1. A one-sided [12232]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 [12233]fencepost error. 2. The
percentage of `extra' code generated by a compiler over the size of
equivalent assembler code produced by [12234]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

Node:slopsucker, Next:[12235]Slowlaris, Previous:[12236]slop,
Up:[12237]= S =

slopsucker /slop'suhk-r/ n.

A lowest-priority task that waits 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 [12238]background.

Node:Slowlaris, Next:[12239]slurp, Previous:[12240]slopsucker,
Up:[12241]= S =

Slowlaris /slo'-lahr-is/ n.

[Usenet; poss. from the variety of prosimian called a "slow loris".
The variant `Slowlartus' is also common, related to [12242]LART]
Common hackish term for Solaris, Sun's System VR4 version of UNIX that
came out of the standardization wars of the early 1990s. So named
because especially on older hardware, responsiveness was much less
crisp than under the preceding SunOS. Early releases of Solaris (that
is, Solaris 2, as some [12243]marketroids at Sun retroactively
rechristened SunOS as Solaris 1) were quite buggy, and Sun was forced
by customer demand to support SunOS for quite some time. Newer
versions are acknowledged to be among the best commercial UNIX
variants in 1998, but still lose single-processor benchmarks to Sparc
[12244]Linux. Compare [12245]AIDX, [12246]HP-SUX, [12247]Nominal
Semidestructor, [12248]Telerat, [12249]sun-stools.

Node:slurp, Next:[12250]smart, Previous:[12251]Slowlaris, Up:[12252]=
S =

slurp vt.

To read a large data file entirely into [12253]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

Node:smart, Next:[12255]smart terminal, Previous:[12256]slurp,
Up:[12257]= S =

smart adj.

Said of a program that does the [12258]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 [12259]AI-complete).
Compare [12260]robust (smart programs can be [12261]brittle).

Node:smart terminal, Next:[12262]smash case, Previous:[12263]smart,
Up:[12264]= S =

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 [12265]server's
storage, using local devices as displays. 2. obs. Any terminal with an
addressable cursor; the opposite of a [12266]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 [12267]dumb

There is a classic quote from Rob Pike (inventor of the [12268]blit
terminal): "A smart terminal is not a smartass 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 [12269]hook.

Node:smash case, Next:[12270]smash the stack, Previous:[12271]smart
terminal, Up:[12272]= S =

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 [12273]fold case.

Node:smash the stack, Next:[12274]smiley, Previous:[12275]smash case,
Up:[12276]= S =

smash the stack n.

[C programming] To corrupt the execution stack by writing past the end
of a local array or other data structure. Code that smashes the stack
can cause a return from the routine to jump to a random address,
resulting in some of the most insidious data-dependent bugs known to
mankind. Variants include `trash' the stack, [12277]scribble the
stack, [12278]mangle the stack; the term **[12279]mung the stack is
not used, as this is never done intentionally. See [12280]spam; see
also [12281]aliasing bug, [12282]fandango on core, [12283]memory leak,
[12284]memory smash, [12285]precedence lossage, [12286]overrun screw.

Node:smiley, Next:[12287]smoke, Previous:[12288]smash the stack,
Up:[12289]= S =

smiley n.

See [12290]emoticon.

Node:smoke, Next:[12291]smoke and mirrors, Previous:[12292]smiley,
Up:[12293]= S =

smoke vi.

1. To [12294]crash or blow up, usually spectacularly. "The new version
smoked, just like the last one." Used for both hardware (where it
often describes an actual physical event), and software (where it's
merely colorful). 2. [from automotive slang] To be conspicuously fast.
"That processor really smokes." Compare [12295]magic smoke.

Node:smoke and mirrors, Next:[12296]smoke test, Previous:[12297]smoke,
Up:[12298]= S =

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
[12299]benchmarks (see also [12300]MIPS, [12301]machoflops). "They
claim their new box cranks 50 MIPS for under $5000, but didn't specify
the instruction mix -- sounds like smoke and mirrors to me." The
phrase, popularized by newspaper columnist Jimmy Breslin c.1975, 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") for
whom the hearts of huge numbers of human sacrificial victims were
regularly cut out. Upon hearing about a rigged demo or yet another
round of fantasy-based marketing promises, hackers often feel
analogously disheartened. See also [12302]stealth manager.

Node:smoke test, Next:[12303]smoking clover, Previous:[12304]smoke and
mirrors, Up:[12305]= S =

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 [12306]magic smoke. 2. By extension, the
first run of a piece of software after construction or a critical
change. See and compare [12307]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.

Node:smoking clover, Next:[12308]smoot, Previous:[12309]smoke test,
Up:[12310]= S =

smoking clover n.

[ITS] A [12311]display hack originally due to Bill Gosper. Many
convergent lines are drawn on a color monitor in such a way 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.

Node:smoot, Next:[12312]SMOP, Previous:[12313]smoking clover,
Up:[12314]= S =

smoot /smoot/ n.

[MIT] A unit of length equal five feet seven inches. The length of the
Harvard Bridge in Boston is famously 364.4 smoots plus or minus an ear
(the ear stands for [12315]epsilon). This legend began with a
fraternity prank in 1958 during which the body length of Oliver Smoot
(class of '62) was actually used to measure out that distance. It is
commemorated by smoot marks that MIT students repaint every few years;
the tradition even survived the demolition and rebuilding of the
bridge in the late 1980s. The Boston police have been known to use
smoot markers to indicate accident locations on the bridge.

Node:SMOP, Next:[12316]smurf, Previous:[12317]smoot, Up:[12318]= S =

SMOP /S-M-O-P/ n.

[Simple (or Small) Matter of Programming] 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 an 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.

Node:smurf, Next:[12319]SNAFU principle, Previous:[12320]SMOP,
Up:[12321]= S =

smurf /smerf/ n.

1. [from the soc.motss newsgroup on Usenet, after some obnoxiously
gooey cartoon characters] 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 [12322]old fart. 2. [techspeak] A ping packet
with a forged source address sent to some other network's broadcast
address. All the machines on the destination network will send a ping
response to the forged source address (the victim). This both
overloads the victim's network and hides the location of the attacker.

Node:SNAFU principle, Next:[12323]snail, Previous:[12324]smurf,
Up:[12325]= S =

SNAFU principle /sna'foo prin'si-pl/ n.

[from a WWII Army acronym for `Situation Normal, All Fucked Up'] "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
[12326]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,
"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
"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 and inevitable disaster, the [12327]suits protect
themselves by saying "I was misinformed!", and the implementors are
demoted or fired. Compare [12328]Conway's Law.

Node:snail, Next:[12329]snail-mail, Previous:[12330]SNAFU principle,
Up:[12331]= S =

snail vt.

To [12332]snail-mail something. "Snail me a copy of those graphics,
will you?"

Node:snail-mail, Next:[12333]snap, Previous:[12334]snail, Up:[12335]=
S =

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 even been parody posters and stamps made. Also
(less commonly) called `P-mail', from `paper mail' or `physical mail'.
Oppose [12336]email.

Node:snap, Next:[12337]snarf, Previous:[12338]snail-mail, Up:[12339]=
S =

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 [12340]chase pointers.

Often, the behavior of a [12341]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.

Node:snarf, Next:[12342]snarf & barf, Previous:[12343]snap,
Up:[12344]= S =

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 [12345]BLT.
2. [in the Unix community] To fetch a file or set of files across a
network. See also [12346]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 -- [12347]FTPing
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 [12348]slurp.
"This program starts by snarfing the entire database into core,
then...." 5. [GEnie] To spray food or [12349]programming fluids due to
laughing at the wrong moment. "I was drinking coffee, and when I read
your post I snarfed all over my desk." "If I keep reading this topic,
I think I'll have to snarf-proof my computer with a keyboard
[12350]condom." [This sense appears to be widespread among mundane
teenagers --ESR]

Node:snarf & barf, Next:[12351]snarf down, Previous:[12352]snarf,
Up:[12353]= S =

snarf & barf /snarf'n-barf`/ n.

Under a [12354]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.

Node:snarf down, Next:[12355]snark, Previous:[12356]snarf & barf,
Up:[12357]= S =

snarf down v.

To [12358]snarf, with the connotation of absorbing, processing, or
understanding. "I'll snarf down the latest version of the
[12359]nethack user's guide -- it's been a while since I played last
and I don't know what's changed recently."

Node:snark, Next:[12360]sneaker, Previous:[12361]snarf down,
Up:[12362]= S =

snark n.

[Lewis Carroll, via the Michigan Terminal System] 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 [12363]snivitz. 3.
UUCP name of snark.thyrsus.com, home site of the Jargon File versions
from 2.*.* on (i.e., this lexicon).

Node:sneaker, Next:[12364]sneakernet, Previous:[12365]snark,
Up:[12366]= S =

sneaker n.

An individual hired to break into places in order to test their
security; analogous to [12367]tiger team. Compare [12368]samurai.

Node:sneakernet, Next:[12369]sniff, Previous:[12370]sneaker,
Up:[12371]= S =

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'; in the
1990s, `Nike network' after a well-known sneaker brand.

Node:sniff, Next:[12372]snivitz, Previous:[12373]sneakernet,
Up:[12374]= S =

sniff v.,n.

1. To watch IP packets traversing a local network. Most often in the
phrase `packet sniffer', a program for doing same. 2.Synonym for

Node:snivitz, Next:[12376]'Snooze, Previous:[12377]sniff, Up:[12378]=
S =

snivitz /sniv'itz/ n.

A hiccup in hardware or software; a small, transient problem of
unknown origin (less serious than a [12379]snark). Compare

Node:'Snooze, Next:[12381]SO, Previous:[12382]snivitz, Up:[12383]= S =

'Snooze /snooz/ [FidoNet] n.

Fidonews, the weekly official on-line newsletter of FidoNet. As the
editorial policy of Fidonews is "anything that arrives, we print",
there are often large articles completely unrelated to FidoNet, which
in turn tend to elicit [12384]flamage in subsequent issues.

Node:SO, Next:[12385]social engineering, Previous:[12386]'Snooze,
Up:[12387]= S =

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 [12388]MOTAS, [12389]MOTOS, [12390]MOTSS. 2. [techspeak] The Shift
Out control character in ASCII (Control-N, 0001110).

Node:social engineering, Next:[12391]social science number,
Previous:[12392]SO, Up:[12393]= S =

social engineering n.

Term used among [12394]crackers and [12395]samurai for cracking
techniques that rely on weaknesses in [12396]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 [12397]tiger team story in the [12398]patch

Node:social science number, Next:[12399]sock puppet,
Previous:[12400]social engineering, Up:[12401]= S =

social science number n. //

[IBM] A statistic that is [12402]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. As
a rule, [12403]management loves them. See also [12404]numbers,
[12405]math-out, [12406]pretty pictures.

Node:sock puppet, Next:[12407]sodium substrate, Previous:[12408]social
science number, Up:[12409]= S =

sock puppet n.

[Usenet: from the act of placing a sock over your hand and talking to
it and pretending it's talking back] In Usenet parlance, a
[12410]pseudo through which the puppeteer posts follow-ups to their
own original message to give the appearance that a number of people
support the views held in the original message.

Node:sodium substrate, Next:[12411]soft boot, Previous:[12412]sock
puppet, Up:[12413]= S =

sodium substrate n.

Syn [12414]salt substrate.

Node:soft boot, Next:[12415]softcopy, Previous:[12416]sodium
substrate, Up:[12417]= S =

soft boot n.

See [12418]boot.

Node:softcopy, Next:[12419]software bloat, Previous:[12420]soft boot,
Up:[12421]= S =

softcopy /soft'kop-ee/ n.

[by analogy with `hardcopy'] A machine-readable form of corresponding
hardcopy. See [12422]bits, [12423]machinable.

Node:software bloat, Next:[12424]software hoarding,
Previous:[12425]softcopy, Up:[12426]= S =

software bloat n.

The results of [12427]second-system effect or [12428]creeping
featuritis. Commonly cited examples include ls(1), [12429]X,
[12430]BSD, [12431]Missed'em-five, and [12432]OS/2.

Node:software hoarding, Next:[12433]software laser,
Previous:[12434]software bloat, Up:[12435]= S =

software hoarding n.

Pejorative term employed by members and adherents of the [12436]GNU
project to describe the act of holding software proprietary, keeping
it under trade secret or license terms which prohibit free
redistribution and modification. Used primarily in Free Software
Foundation propaganda. For a summary of related issues, see

Node:software laser, Next:[12438]software rot,
Previous:[12439]software hoarding, Up:[12440]= S =

software laser n.

An optical laser works by bouncing photons back and forth between two
mirrors, one totally reflective and one partially reflective. If the
lasing material (usually a crystal) has the right properties, photons
scattering off the atoms in the crystal will excite cascades of more
photons, all in lockstep. Eventually the beam will escape through the
partially-reflective mirror. One kind of [12441]sorcerer's apprentice
mode involving [12442]bounce messages can produce closely analogous
results, with a [12443]cascade of messages escaping to flood nearby
systems. By mid-1993 there had been at least two publicized incidents
of this kind.

Node:software rot, Next:[12444]softwarily, Previous:[12445]software
laser, Up:[12446]= S =

software rot n.

Term used to describe the tendency of software that has not been used
in a while to [12447]lose; such failure may be semi-humorously
ascribed to [12448]bit rot. More commonly, `software rot' strikes when
a program's assumptions become out of date. If the design was
insufficiently [12449]robust, this may cause it to fail in mysterious
ways. Syn. `code rot'. See also [12450]link rot.

For example, owing to endemic shortsightedness in the design of COBOL
programs, a good number of them succumbed to software rot when their
2-digit year counters underwent [12451]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 [12452]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
[12453]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 [12454]bit rot.

Node:softwarily, Next:[12455]softy, Previous:[12456]software rot,
Up:[12457]= S =

softwarily /soft-weir'i-lee/ adv.

In a way pertaining to software. "The system is softwarily
unreliable." The adjective **`softwary' is not used. See

Node:softy, Next:[12459]some random X, Previous:[12460]softwarily,
Up:[12461]= S =

softy n.

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

Node:some random X, Next:[12462]sorcerer's apprentice mode,
Previous:[12463]softy, Up:[12464]= S =

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 [12465]J. Random.

Node:sorcerer's apprentice mode, Next:[12466]SOS, Previous:[12467]some
random X, Up:[12468]= S =

sorcerer's apprentice mode n.

[from Goethe's "Der Zauberlehrling" via Paul Dukas's "L'apprenti
sorcier" the film "Fantasia"] 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 [12469]bounce message loops in [12470]email
software. Compare [12471]broadcast storm, [12472]network meltdown,
[12473]software laser, [12474]ARMM.

Node:SOS, Next:[12475]source, Previous:[12476]sorcerer's apprentice
mode, Up:[12477]= S =


n.,obs. An infamously [12478]losing text editor. Once, back in the
1960s, when a text editor was needed for the PDP-6, a hacker crufted
together a [12479]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 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).

Node:source, Next:[12480]source of all good bits, Previous:[12481]SOS,
Up:[12482]= S =

source n.

[very common] In reference to software, `source' is invariably
shorthand for `source code', the preferred human-readable and
human-modifiable form of the program. This is as opposed to object
code, the derived binary executable form of a program. This shorthand
readily takes derivative forms; one may speak of "the sources of a
system" or of "having source".

Node:source of all good bits, Next:[12483]space-cadet keyboard,
Previous:[12484]source, Up:[12485]= S =

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 [12486]guru might be
the source of all good bits. The title is often applied to a
particularly competent secretary.

Node:space-cadet keyboard, Next:[12487]spaceship operator,
Previous:[12488]source of all good bits, Up:[12489]= S =

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
[12490]EMACS. It was equipped with no fewer than seven shift keys:
four keys for [12491]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 could
get the following results:

lowercase l

uppercase L

lowercase lambda

uppercase lambda

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 [12492]bucky bits, [12493]cokebottle,
[12494]double bucky, [12495]meta bit, [12496]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 [12497]bucky bits). The true space-cadet
keyboard evolved from the first Knight keyboard.

Node:spaceship operator, Next:[12498]SPACEWAR,
Previous:[12499]space-cadet keyboard, Up:[12500]= S =

spaceship operator n.

The glyph <=>, so-called apparently because in the low-resolution
constant-width font used on many terminals it vaguely resembles a
flying saucer. [12501]Perl uses this to denote the
signum-of-difference operation.

Node:SPACEWAR, Next:[12502]spaghetti code, Previous:[12503]spaceship
operator, Up:[12504]= S =


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 1962. In 1968-69, a
descendant of the game motivated Ken Thompson to build, in his spare
time on a scavenged PDP-7, the operating system that became
[12505]Unix. Less than nine years after that, SPACEWAR was
commercialized as one of the first video games; descendants are still
[12506]feeping in video arcades everywhere.

Node:spaghetti code, Next:[12507]spaghetti inheritance,
Previous:[12508]SPACEWAR, Up:[12509]= S =

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 so many jumps in it.

Node:spaghetti inheritance, Next:[12510]spam,
Previous:[12511]spaghetti code, Up:[12512]= S =

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
[12513]spaghetti code.

Node:spam, Next:[12514]spam bait, Previous:[12515]spaghetti
inheritance, Up:[12516]= S =

spam vt.,vi.,n.

[from "Monty Python's Flying Circus"] 1. To crash a program by
overrunning a fixed-size buffer with excessively large input data. See
also [12517]buffer overflow, [12518]overrun screw, [12519]smash the
stack. 2. To cause a newsgroup to be flooded with irrelevant or
inappropriate messages. You can spam a newsgroup with as little as one
well- (or ill-) planned message (e.g. asking "What do you think of
abortion?" on soc.women). This is often done with [12520]cross-posting
(e.g. any message which is crossposted to alt.rush-limbaugh and
alt.politics.homosexuality will almost inevitably spam both groups).
This overlaps with [12521]troll behavior; the latter more specific
term has become more common. 3. To send many identical or
nearly-identical messages separately to a large number of Usenet
newsgroups. This is more specifically called `ECP', Excessive
Cross-Posting. This is one sure way to infuriate nearly everyone on
the Net. See also [12522]velveeta and [12523]jello. 4. To bombard a
newsgroup with multiple copies of a message. This is more specifically
called `EMP', Excessive Multi-Posting. 5. To mass-mail unrequested
identical or nearly-identical email messages, particularly those
containing advertising. Especially used when the mail addresses have
been culled from network traffic or databases without the consent of
the recipients. Synonyms include [12524]UCE, [12525]UBE. 6. Any large,
annoying, quantity of output. For instance, someone on IRC who walks
away from their screen and comes back to find 200 lines of text might
say "Oh no, spam".

The later definitions have become much more prevalent as the Internet
has opened up to non-techies, and to most people senses 3 4 and 5 are
now primary. All three behaviors are considered abuse of the net, and
are almost universally grounds for termination of the originator's
email account or network connection. In these senses the term `spam'
has gone mainstream, though without its original sense or folkloric
freight - there is apparently a widespread myth among [12526]lusers
that "spamming" is what happens when you dump cans of Spam into a
revolving fan.

Node:spam bait, Next:[12527]spamblock, Previous:[12528]spam,
Up:[12529]= S =

spam bait n.

Email addresses included in, or comprising the entirety of, a usenet
message so that spammers mining a newsgroup with an [12530]address
harvester will collect them. These addresses can be people who have
offended or annoyed the poster, or who are included so that a spammer
will spam an official, thereby causing himself trouble. One
particularly effective form of spam bait is the address of a

Node:spamblock, Next:[12532]spamhaus, Previous:[12533]spam bait,
Up:[12534]= S =

spamblock /spam'blok/ n.

[poss. by analogy to sunblock] Text inserted in an email address to
render it invalid and thus useless to spammers. For example, the
address `jrandom@hacker.org' might be transformed to
`jrandom@NOSPAM.hacker.org'. Adding spamblock to an address is often
referred to as `munging' it (see [12535]munge)-. This evasion tactic
depends on the fact that most spammers collect names with some sort of
[12536]address harvester on volumes too high to de-mung by hand, but
individual humans reading an email message can readily spot and remove
a spamblock in the from address.

Note: This is not actually a very effective tactic, and may already be
passing out of use in early 1999 after about two years of life. In
both mail and news, it's essentially impossible to keep a smart
address harvester from mining out the addresses in the message header
and trace lines. Therefore the only people who can be protected are
third parties mentioned by email address in the message - not a common
enough case to interest spammers.

Node:spamhaus, Next:[12537]spamvertize, Previous:[12538]spamblock,
Up:[12539]= S =

spamhaus spam'hows n.

Pejorative term for an internet service provider that permits or even
encourages [12540]spam mailings from its systems. The plural is
`spamhausen'. There is a web page devoted to [12541]tracking

The most notorious of the spamhausen was Sanford Wallace's Cyber
Promotions Inc., shut down by a lawsuit on 16 October 1997. The
anniversary of the shutdown is celebrated on Usenet as Spam Freedom
Day, but lesser imitators of the Spamford still infest various murky
corners of the net. Since prosecution of spammers became routine under
the junk-fax laws and statues specifically targeting spam, spamhausen
have declined in relative importance; today, hit-and-run attacks by
spammers using [12542]relay rape and [12543]throwaway accounts on
reputable ISPs seem to account for most of the flow.

Node:spamvertize, Next:[12544]spangle, Previous:[12545]spamhaus,
Up:[12546]= S =

spamvertize v.

To advertise using [12547]spam. Pejorative.

Node:spangle, Next:[12548]spawn, Previous:[12549]spamvertize,
Up:[12550]= S =

spangle n.

[UK] The singular of [12551]bells and whistles. See also

Node:spawn, Next:[12553]special-case, Previous:[12554]spangle,
Up:[12555]= S =

spawn n.,vi.

1. [techspeak] In UNIX parlance, to create a child process from within
a process. Technically this is a `fork'; the term `spawn' is a bit
more general and is used for threads (lightweight processes) as well
as traditional heavyweight processes. 2. In gaming, meant to indicate
where (`spawn-point') and when a player comes to life (or `re-spawns')
after being killed. Opposite of [12556]frag.

Node:special-case, Next:[12557]speedometer, Previous:[12558]spawn,
Up:[12559]= S =

special-case vt.

To write unique code to handle input to or situations arising in a
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 [12560]hidden flags in the input of a
batch program or [12561]filter.

Node:speedometer, Next:[12562]spell, Previous:[12563]special-case,
Up:[12564]= S =

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 operating system goes through its [12565]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 GE 600 (later Honeywell 6000)
actually had an analog speedometer on the front panel, calibrated in
instructions executed per second.

Node:spell, Next:[12566]spelling flame, Previous:[12567]speedometer,
Up:[12568]= S =

spell n.

Syn. [12569]incantation.

Node:spelling flame, Next:[12570]spider, Previous:[12571]spell,
Up:[12572]= S =

spelling flame n. //

[Usenet] A posting ostentatiously correcting a previous article's
spelling as a way of casting scorn on the point the article was trying
to make, instead of actually responding to that point (compare
[12573]dictionary flame). Of course, people who are more than usually
slovenly spellers are prone to think any correction is a spelling
flame. It's an amusing comment on human nature that spelling flames
themselves often contain spelling errors.

Node:spider, Next:[12574]spider food, Previous:[12575]spelling flame,
Up:[12576]= S =


The Web-walking part of a search engine that collects pages for
indexing in the search engine's database. Also called a [12577]bot.
The best-known spider is Scooter, the web-walker for the Alta Vista
search engine.

Node:spider food, Next:[12578]spiffy, Previous:[12579]spider,
Up:[12580]= S =

spider food n.

Keywords embedded (usually invisibly) into a web page to attract
search engines (spiders). The intended result of including spider food
in one's web page is to insure that the page appears high on the list
of matching entries to a search engine query. There are right and
wrong ways to do this; the right way is a discreet `meta keywords'
tag, the wrong way is to embed many repeats of a keyword in comments
(and many search engines now detect and ignore the latter).

Node:spiffy, Next:[12581]spike, Previous:[12582]spider food,
Up:[12583]= S =

spiffy /spi'fee/ adj.

1. Said of programs having a pretty, clever, or exceptionally
well-designed interface. "Have you seen the spiffy [12584]X version of
[12585]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.

Node:spike, Next:[12586]spin, Previous:[12587]spiffy, Up:[12588]= S =

spike v.

To defeat a selection mechanism by introducing a (sometimes temporary)
device that 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 [12589]hardwired).

Node:spin, Next:[12590]spl, Previous:[12591]spike, Up:[12592]= S =

spin vi.

Equivalent to [12593]buzz. More common among C and Unix programmers.
See the discussion of `spinlock' under [12594]busy-wait.

Node:spl, Next:[12595]splash screen, Previous:[12596]spin, Up:[12597]=
S =

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 [12598]interrupts locked

Node:splash screen, Next:[12599]splat, Previous:[12600]spl,
Up:[12601]= S =

splash screen n.

[Mac users] Syn. [12602]banner, sense 3.

Node:splat, Next:[12603]splat out, Previous:[12604]splash screen,
Up:[12605]= S =

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. The
[12606]feature key on a Mac (same as [12607]alt, sense 2). 4. obs.
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. obs. Name for the semi-mythical Stanford extended
ASCII circle-plus character. See also [12608]ASCII.

Node:splat out, Next:[12609]spod, Previous:[12610]splat, Up:[12611]= S

splat out v.

[Usenet] To partially obscure a potentially provocative word by
substituting [12612]splat characters for some of its letters (usually,
but not always, the vowels). The purpose is not to make the word
unrecognizable but to make it a mention rather than a use, so that no
flamewar ensues. Words often splatted out include N*z* (see
[12613]Godwin's Law), *v*l*t**n (anywhere fundamentalists might be
lurking), *b*rt**n, and g*n c*ntr*l. Compare [12614]UN*X.

Node:spod, Next:[12615]spoiler, Previous:[12616]splat out, Up:[12617]=
S =

spod n.

[UK] 1. A lower form of life found on [12618]talker systems and
[12619]MUDs. The spod has few friends in [12620]RL and uses talkers
instead, finding communication easier and preferable over the net. He
has all the negative traits of the [12621]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 [12622]newbie,
[12623]tourist, [12624]weenie, [12625]twink, [12626]terminal junkie,
[12627]warez d00dz. 2. A [12628]backronym for "Sole Purpose, Obtain a
Degree"; according to some self-described spods, this term is used by
indifferent students to condemn their harder-working fellows. Compare
the defiant adoption of the term `geek' in the mid-1990s by people who
would previously have been stigmatized by it (see [12629]computer
geek). 3. [obs.] An ordinary person; a [12630]random. This is the
meaning with which the term was coined, but the inventor informs us he
has himself accepted sense 1.

Node:spoiler, Next:[12631]spoiler space, Previous:[12632]spod,
Up:[12633]= S =

spoiler n.

[Usenet] 1. A remark which reveals important plot elements from books
or movies, thus denying the reader (of the article) the proper
suspense when reading the book or watching the movie. 2. Any remark
which telegraphs the solution of a problem or puzzle, thus denying the
reader the pleasure of working out the correct answer (see also
[12634]interesting). Either sense readily forms compounds like `total
spoiler', `quasi-spoiler' and even `pseudo-spoiler'.

By convention, articles which are spoilers in either sense should
contain the word `spoiler' in the Subject: line, or guarantee via
various tricks that the answer appears only after several screens-full
of warning, or conceal the sensitive information via [12635]rot13,
[12636]spoiler space or some combination of these techniques.

Node:spoiler space, Next:[12637]sponge, Previous:[12638]spoiler,
Up:[12639]= S =

spoiler space

[also `spoiler spoo'] A screenful of blank lines (and, often,
form-feeds) deliberately inserted in a message following a
[12640]spoiler warning, so the actual spoiler can't be seen without
hitting a key.

Node:sponge, Next:[12641]spoof, Previous:[12642]spoiler space,
Up:[12643]= S =

sponge n.

[Unix] A special case of a [12644]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 a 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 [12645]slurp.

Node:spoof, Next:[12646]spool, Previous:[12647]sponge, Up:[12648]= S =

spoof vi.

To capture, alter, and retransmit a communication stream in a way that
misleads the recipient. As used by hackers, refers especially to
altering TCP/IP packet source addresses or other packet-header data in
order to masquerade as a trusted machine. This term has become very
widespread and is borderline techspeak.

Node:spool, Next:[12649]spool file, Previous:[12650]spoof, Up:[12651]=
S =

spool vi.

[from early IBM `Simultaneous Peripheral Operation On-Line', but is
widely thought to be a [12652]backronym] To send files to some device
or program (a `spooler') that queues them up and does something useful
with them later. Without qualification, the spooler 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 [12653]demon.

Node:spool file, Next:[12654]spungle, Previous:[12655]spool,
Up:[12656]= S =

spool file n.

Any file to which data is [12657]spooled 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 [12658]demon's attentions.
This is borderline techspeak.

Node:spungle, Next:[12659]square tape, Previous:[12660]spool file,
Up:[12661]= S =

spungle n.

[Durham, UK; portmanteau, [12662]spangle + bungle] A [12663]spangle of
no actual usefulness. Example: Roger the Bent Paperclip in Microsoft
Word '98. A spungle's only virtue is that it looks pretty, unless you
find creeping featurism ugly.

Node:square tape, Next:[12664]squirrelcide, Previous:[12665]spungle,
Up:[12666]= S =

square tape n.

Mainframe magnetic tape cartridges for use with IBM 3480 or compatible
tape drives; or QIC tapes used on workstations and micros. The term
comes from the square (actually rectangular) shape of the cartridges;
contrast [12667]round tape.

Node:squirrelcide, Next:[12668]stack, Previous:[12669]square tape,
Up:[12670]= S =

squirrelcide n.

[common on Usenet's comp.risks newsgroup.] (alt. `squirrelicide') What
all too frequently happens when a squirrel decides to exercise its
species's unfortunate penchant for shorting out power lines with their
little furry bodies. Result: one dead squirrel, one down computer
installation. In this situation, the computer system is said to have
been squirrelcided.

Node:stack, Next:[12671]stack puke, Previous:[12672]squirrelcide,
Up:[12673]= S =

stack n.

The set of things a person 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
[12674]push and [12675]pop.

At MIT, [12676]PDL used to be a more common synonym for [12677]stack
in all these contexts, and this may still be true. Everywhere else
[12678]stack seems to be the preferred term. [12679]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!

Node:stack puke, Next:[12680]stale pointer bug, Previous:[12681]stack,
Up:[12682]= S =

Book of the day: