RPG, KBT, and I retreated to a table, trying to stifle our

chuckles. JONL remained at the counter, talking about ice cream

with the guy b.t.c., comparing Uncle Gaylord's to other ice cream

shops and generally having a good old time.

At length the g.b.t.c. said, "How's the ginger honey?" JONL

said, "Fine! I wonder what exactly is in it?" Now Uncle Gaylord

publishes all his recipes and even teaches classes on how to make

his ice cream at home. So the g.b.t.c. got out the recipe, and

he and JONL pored over it for a while. But the g.b.t.c. could

contain his curiosity no longer, and asked again, "You really

like that stuff, huh?" JONL said, "Yeah, I've been eating it

constantly back in Palo Alto for the past two days. In fact, I

think this batch is about as good as the cones I got back in Palo

Alto!"

G.b.t.c. looked him straight in the eye and said, "You're

*in* Palo Alto!"

JONL turned slowly around, and saw the three of us collapse in a

fit of giggles. He clapped a hand to his forehead and exclaimed,

"I've been hacked!"

[My spies on the West Coast inform me that there is a close

relative of the raspberry found out there called an `ollalieberry'

--ESR]

[Ironic footnote: it appears that the {meme} about ginger vs.

rotting meat may be an urban legend. It's not borne out by an

examination of medieval recipes or period purchase records for

spices, and appears full-blown in the works of Samuel Pegge, a

gourmand and notorious flake case who originated numerous food

myths. --ESR]

:sagan: /say'gn/ /n./ [from Carl Sagan's TV series

"Cosmos"; think "billions and billions"] A large quantity

of anything. "There's a sagan different ways to tweak EMACS."

"The U.S. Government spends sagans on bombs and welfare -- hard

to say which is more destructive."

:SAIL:: /sayl/, not /S-A-I-L/ /n./ 1. The Stanford

Artificial Intelligence Lab. An important site in the early

development of LISP; with the MIT AI Lab, BBN, CMU, XEROX PARC, and

the Unix community, one of the major wellsprings of technical

innovation and hacker-culture traditions (see the {{WAITS}} entry

for details). The SAIL machines were shut down in late May 1990,

scant weeks after the MIT AI Lab's ITS cluster was officially

decommissioned. 2. The Stanford Artificial Intelligence Language

used at SAIL (sense 1). It was an Algol-60 derivative with a

coroutining facility and some new data types intended for building

search trees and association lists.

:salescritter: /sayls'kri`tr/ /n./ Pejorative hackerism for a

computer salesperson. Hackers tell the following joke:

Q. What's the difference between a used-car dealer and a

computer salesman?

A. The used-car dealer knows he's lying. [Some versions add:

...and probably knows how to drive.]

This reflects the widespread hacker belief that salescritters are

self-selected for stupidity (after all, if they had brains and the

inclination to use them, they'd be in programming). The terms

`salesthing' and `salesdroid' are also common. Compare

{marketroid}, {suit}, {droid}.

:salt: /n./ A tiny bit of near-random data inserted where too

much regularity would be undesirable; a data {frob} (sense 1).

For example, the Unix crypt(3) man page mentions that "the salt

string is used to perturb the DES algorithm in one of 4096

different ways."

:salt mines: /n./ Dense quarters housing large numbers of

programmers working long hours on grungy projects, with some hope

of seeing the end of the tunnel in N years. Noted for their

absence of sunshine. Compare {playpen}, {sandbox}.

:salt substrate: /n./ [MIT] Collective noun used to refer to

potato chips, pretzels, saltines, or any other form of snack food

designed primarily as a carrier for sodium chloride. Also

`sodium substrate'. From the technical term `chip substrate',

used to refer to the silicon on the top of which the active parts

of integrated circuits are deposited.

:same-day service: /n./ Ironic term used to describe long

response time, particularly with respect to {{MS-DOS}} system

calls (which ought to require only a tiny fraction of a second to

execute). Such response time is a major incentive for programmers

to write programs that are not {well-behaved}. See also

{PC-ism}.

:samizdat: /sahm-iz-daht/ /n./ [Russian, literally "self

publishing"] The process of disseminating documentation via

underground channels. Originally referred to underground

duplication and distribution of banned books in the Soviet Union;

now refers by obvious extension to any less-than-official

promulgation of textual material, esp. rare, obsolete, or

never-formally-published computer documentation. Samizdat is

obviously much easier when one has access to high-bandwidth

networks and high-quality laser printers. Note that samizdat is

properly used only with respect to documents which contain needed

information (see also {hacker ethic}) but which are for

some reason otherwise unavailable, but *not* in the context of

documents which are available through normal channels, for which

unauthorized duplication would be unethical copyright violation.

See {Lions Book} for a historical example.

:samurai: /n./ A hacker who hires out for legal cracking jobs,

snooping for factions in corporate political fights, lawyers

pursuing privacy-rights and First Amendment cases, and other

parties with legitimate reasons to need an electronic locksmith.

In 1991, mainstream media reported the existence of a loose-knit

culture of samurai that meets electronically on BBS systems, mostly

bright teenagers with personal micros; they have modeled themselves

explicitly on the historical samurai of Japan and on the "net

cowboys" of William Gibson's {cyberpunk} novels. Those

interviewed claim to adhere to a rigid ethic of loyalty to their

employers and to disdain the vandalism and theft practiced by

criminal crackers as beneath them and contrary to the hacker ethic;

some quote Miyamoto Musashi's "Book of Five Rings", a classic

of historical samurai doctrine, in support of these principles.

See also {sneaker}, {Stupids}, {social engineering},

{cracker}, {hacker ethic}, and {dark-side hacker}.

:sandbender: /n./ [IBM] A person involved with silicon lithography and

the physical design of chips. Compare {ironmonger}, {polygon

pusher}.

:sandbox: /n./ 1. (also `sandbox, the') Common term for the R&D

department at many software and computer companies (where hackers

in commercial environments are likely to be found). Half-derisive,

but reflects the truth that research is a form of creative play.

Compare {playpen}. 2. Syn. {link farm}.

:sanity check: /n./ 1. The act of checking a piece of code (or

anything else, e.g., a Usenet posting) for completely stupid

mistakes. Implies that the check is to make sure the author was

sane when it was written; e.g., if a piece of scientific software

relied on a particular formula and was giving unexpected results,

one might first look at the nesting of parentheses or the coding of

the formula, as a `sanity check', before looking at the more

complex I/O or data structure manipulation routines, much less the

algorithm itself. Compare {reality check}. 2. A run-time test,

either validating input or ensuring that the program hasn't screwed

up internally (producing an inconsistent value or state).

:Saturday-night special: /n./ [from police slang for a cheap

handgun] A {quick-and-dirty} program or feature kluged together

during off hours, under a deadline, and in response to pressure

from a {salescritter}. Such hacks are dangerously unreliable,

but all too often sneak into a production release after

insufficient review.

:say: /vt./ 1. To type to a terminal. "To list a directory

verbosely, you have to say `ls -l'." Tends to imply a

{newline}-terminated command (a `sentence'). 2. A computer

may also be said to `say' things to you, even if it doesn't have

a speech synthesizer, by displaying them on a terminal in response

to your commands. Hackers find it odd that this usage confuses

{mundane}s.

:scag: /vt./ To destroy the data on a disk, either by

corrupting the

filesystem or by causing media damage. "That last power hit scagged

the system disk." Compare {scrog}, {roach}.

:scanno: /skan'oh/ /n./ An error in a document caused by a

scanner glitch, analogous to a typo or {thinko}.

:schroedinbug: /shroh'din-buhg/ /n./ [MIT: from the

Schroedinger's Cat thought-experiment in quantum physics] A design

or implementation bug in a program that doesn't manifest until

someone reading source or using the program in an unusual way

notices that it never should have worked, at which point the

program promptly stops working for everybody until fixed. Though

(like {bit rot}) this sounds impossible, it happens; some

programs have harbored latent schroedinbugs for years. Compare

{heisenbug}, {Bohr bug}, {mandelbug}.

:science-fiction fandom:: /n./ Another voluntary subculture

having a very heavy overlap with hackerdom; most hackers read SF

and/or fantasy fiction avidly, and many go to `cons' (SF

conventions) or are involved in fandom-connected activities such as

the Society for Creative Anachronism. Some hacker jargon

originated in SF fandom; see {defenestration}, {great-wall},

{cyberpunk}, {h}, {ha ha only serious}, {IMHO},

{mundane}, {neep-neep}, {Real Soon Now}. Additionally,

the jargon terms {cowboy}, {cyberspace}, {de-rezz}, {go

flatline}, {ice}, {phage}, {virus}, {wetware},

{wirehead}, and {worm} originated in SF stories.

:scram switch: /n./ [from the nuclear power industry] An

emergency-power-off switch (see {Big Red Switch}), esp. one

positioned to be easily hit by evacuating personnel. In general,

this is *not* something you {frob} lightly; these often

initiate expensive events (such as Halon dumps) and are installed

in a {dinosaur pen} for use in case of electrical fire or in

case some luckless {field servoid} should put 120 volts across

himself while {Easter egging}. (See also {molly-guard},

{TMRC}.)

:scratch: 1. [from `scratchpad'] /adj./ Describes a data

structure or recording medium attached to a machine for testing or

temporary-use purposes; one that can be {scribble}d on without

loss. Usually in the combining forms `scratch memory',

`scratch register', `scratch disk', `scratch tape',

`scratch volume'. See also {scratch monkey}. 2. [primarily

IBM] /vt./ To delete (as in a file).

:scratch monkey: /n./ As in "Before testing or reconfiguring,

always mount a {scratch monkey}", a proverb used to advise

caution when dealing with irreplaceable data or devices. Used to

refer to any scratch volume hooked to a computer during any risky

operation as a replacement for some precious resource or data that

might otherwise get trashed.

This term preserves the memory of Mabel, the Swimming Wonder

Monkey, star of a biological research program at the University of

Toronto. Mabel was not (so the legend goes) your ordinary monkey;

the university had spent years teaching her how to swim, breathing

through a regulator, in order to study the effects of different gas

mixtures on her physiology. Mabel suffered an untimely demise one

day when a DEC engineer troubleshooting a crash on the program's

VAX inadvertently interfered with some custom hardware that was

wired to Mabel.

It is reported that, after calming down an understandably irate

customer sufficiently to ascertain the facts of the matter, a DEC

troubleshooter called up the {field circus} manager responsible

and asked him sweetly, "Can you swim?"

Not all the consequences to humans were so amusing; the sysop of

the machine in question was nearly thrown in jail at the behest of

certain clueless {droid}s at the local `humane' society. The moral

is clear: When in doubt, always mount a scratch monkey.

[The actual incident occured in 1979 or 1980. There is a version of

this story, complete with reported dialogue between one of the

project people and DEC field service, that has been circulating on

Internet since 1986. It is hilarious and mythic, but gets some

facts wrong. For example, it reports the machine as a PDP-11 and

alleges that Mabel's demise occurred when DEC {PM}ed the

machine. Earlier versions of this entry were based on that story;

this one has been corrected from an interview with the hapless

sysop. --ESR]

:scream and die: /v./ Syn. {cough and die}, but connotes

that an error message was printed or displayed before the program

crashed.

:screaming tty: /n./ [Unix] A terminal line which spews an infinite

number of random characters at the operating system. This can

happen if the terminal is either disconnected or connected to a

powered-off terminal but still enabled for login; misconfiguration,

misimplementation, or simple bad luck can start such a terminal

screaming. A screaming tty or two can seriously degrade the

performance of a vanilla Unix system; the arriving "characters"

are treated as userid/password pairs and tested as such. The Unix

password encryption algorithm is designed to be computationally

intensive in order to foil brute-force crack attacks, so although

none of the logins succeeds; the overhead of rejecting them all can

be substantial.

:screw: /n./ [MIT] A {lose}, usually in software.

Especially used for user-visible misbehavior caused by a bug or

misfeature. This use has become quite widespread outside MIT.

:screwage: /skroo'*j/ /n./ Like {lossage} but connotes

that the failure is due to a designed-in misfeature rather than a

simple inadequacy or a mere bug.

:scribble: /n./ To modify a data structure in a random and

unintentionally destructive way. "Bletch! Somebody's

disk-compactor program went berserk and scribbled on the i-node

table." "It was working fine until one of the allocation

routines scribbled on low core." Synonymous with {trash};

compare {mung}, which conveys a bit more intention, and

{mangle}, which is more violent and final.

:scrog: /skrog/ /vt./ [Bell Labs] To damage, trash, or

corrupt a data structure. "The list header got scrogged." Also

reported as `skrog', and ascribed to the comic strip "The

Wizard of Id". Compare {scag}; possibly the two are related.

Equivalent to {scribble} or {mangle}.

:scrool: /skrool/ /n./ [from the pioneering Roundtable chat

system in Houston ca. 1984; prob. originated as a typo for

`scroll'] The log of old messages, available for later perusal or

to help one get back in synch with the conversation. It was

originally called the `scrool monster', because an early version

of the roundtable software had a bug where it would dump all 8K of

scrool on a user's terminal.

:scrozzle: /skroz'l/ /vt./ Used when a self-modifying code

segment runs incorrectly and corrupts the running program or vital

data. "The damn compiler scrozzled itself again!"

:scruffies: /n./ See {neats vs. scruffies}.

:SCSI: /n./ [Small Computer System Interface] A bus-independent

standard for system-level interfacing between a computer and

intelligent devices. Typically annotated in literature with

`sexy' (/sek'see/), `sissy' (/sis'ee/), and `scuzzy'

(/skuh'zee/) as pronunciation guides -- the last being the

overwhelmingly predominant form, much to the dismay of the

designers and their marketing people. One can usually assume that

a person who pronounces it /S-C-S-I/ is clueless.

:ScumOS: /skuhm'os/ or /skuhm'O-S/ /n./ Unflattering

hackerism for SunOS, the BSD Unix variant supported on Sun

Microsystems's Unix workstations (see also {sun-stools}), and

compare {AIDX}, {Macintrash}, {Nominal Semidestructor},

{Open DeathTrap}, {HP-SUX}. Despite what this term might

suggest, Sun was founded by hackers and still enjoys excellent

relations with hackerdom; usage is more often in exasperation than

outright loathing.

:search-and-destroy mode: /n./ Hackerism for a noninteractive

search-and-replace facility in an editor, so called because an

incautiously chosen match pattern can cause {infinite} damage.

:second-system effect: /n./ (sometimes, more euphoniously,

`second-system syndrome') When one is designing the successor to

a relatively small, elegant, and successful system, there is a

tendency to become grandiose in one's success and design an

{elephantine} feature-laden monstrosity. The term was first

used by Fred Brooks in his classic "The Mythical Man-Month:

Essays on Software Engineering" (Addison-Wesley, 1975; ISBN

0-201-00650-2). It described the jump from a set of nice, simple

operating systems on the IBM 70xx series to OS/360 on the 360

series. A similar effect can also happen in an evolving system;

see {Brooks's Law}, {creeping elegance}, {creeping

featurism}. See also {{Multics}}, {OS/2}, {X}, {software

bloat}.

This version of the jargon lexicon has been described (with

altogether too much truth for comfort) as an example of

second-system effect run amok on jargon-1....

:secondary damage: /n./ When a fatal error occurs (esp. a

{segfault}) the immediate cause may be that a pointer has been

trashed due to a previous {fandango on core}. However, this

fandango may have been due to an *earlier* fandango, so no

amount of analysis will reveal (directly) how the damage occurred.

"The data structure was clobbered, but it was secondary

damage."

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: (alt. `security by obscurity')

A term applied by hackers to most OS vendors' favorite way of

coping with security holes -- namely, ignoring them, documenting

neither any known holes nor the underlying security algorithms,

trusting that nobody will find out about them and that people who

do find out about them won't exploit them. This "strategy" 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 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 that would prevent patching the

system even if you later got it right.

:SED: /S-E-D/ /n./ [TMRC, from `Light-Emitting Diode']

Smoke-emitting diode. A {friode} that lost the war. See also

{LER}.

:segfault: /n.,vi./ Syn. {segment}, {segmentation fault}.

:seggie: /seg'ee/ /n./ [Unix] 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/ /n./ [from sewing and weaving] 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: /n./ [IBM] 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 `web servers', `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 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.

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

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

:shar file: /shar' fi:l/ /n./ Syn. {sharchive}.

:sharchive: /shar'ki:v/ /n./ [Unix and Usenet; from /bin/sh

archive] A {flatten}ed 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

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

:Share and enjoy!: /imp./ 1. Commonly found at the end of

software release announcements and {README file}s, this phrase

indicates allegiance to the hacker ethic of free information

sharing (see {hacker ethic}, sense 1). 2. The motto of the

Sirius Cybernetics Corporation (the ultimate gaggle of incompetent

{suit}s) in Douglas Adams's "Hitch Hiker's Guide to the

Galaxy". The irony of using this as a cultural recognition signal

appeals to freeware hackers.

:shareware: /sheir'weir/ /n./ A kind of {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}, {FRS}, {guiltware},

{postcardware}, and {-ware}; compare {payware}.

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

:shell: [orig. {{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 {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 {incantation}s to set up some task and the control

flow to drive it (the term {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.

:shell out: /n./ [Unix] 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 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 {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.

:shovelware: /shuh'v*l-weir`/ /n./ 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.

: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/ /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, {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.

[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

{ping}ing shub-internet.ims.disa.mil. See also

{kremvax}. -- ESR]

: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 design rules. If it worked with any other peripherals, it was

by {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.

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

: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 {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. See also {doubled sig}.

:sig quote: /sig kwoht/ /n./ [Usenet] 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}.

:silly walk: /vi./ [from Monty Python's Flying Circus] 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 went in at the top and came out at 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: /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 {time T}; contrast {epoch}.

: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

{network address}.

:skrog: /v./ Syn. {scrog}.

:skulker: /n./ Syn. {prowler}.

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

:slack: /n./ 1. Space allocated to a disk file but not actually

used to store useful information. The techspeak equivalent is

`internal fragmentation'. Antonym: {hole}. 2. In the theology

of the {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 {ha ha only serious}.

: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] 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./ {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

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 {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 local devices as displays. 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: /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, {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: /vi./ 1. To {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 {magic smoke}.

: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 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 {stealth manager}.

: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: /n./ [ITS] 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/ /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.

:smurf: /smerf/ /n./ [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 {old fart}.

: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

{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 and inevitable 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 even been parody posters and stamps made. Also (less

commonly) called `P-mail', from `paper mail' or `physical mail'.

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...." 5. [GEnie] To spray

food or {programming fluid}s 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

{condom}." [This sense appears to be widespread among mundane

teenagers --ESR]

: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: /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 {snivitz}. 3. UUCP name of

snark.thyrsus.com, home site of the Jargon File versions from

2.*.* on (i.e., this lexicon).

:sneaker: /n./ An individual hired to break into places in

order to test their security; analogous to {tiger team}.

Compare {samurai}.

: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. [techspeak] 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: /n./ [IBM] 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. As a rule,

{management} loves them. See also {numbers}, {math-out},

{pretty pictures}.

:sodium substrate: /n./ Syn {salt substrate}.

:soft boot: /n./ See {boot}.

:softcopy: /soft'kop-ee/ /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 hoarding: /n./ Pejorative term employed by members and

adherents of the {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 {GNU}.

: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 {sorcerer's apprentice

mode} involving {bounce message}s can produce closely analogous

results, with a {cascade} of messages escaping to flood nearby

systems. By mid-1993 there had been at least two publicized

incidents of this kind.

: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: /n./ [IBM] 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: /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 {bounce message} loops in

{email} software. Compare {broadcast storm}, {network

meltdown}, {software laser}, {ARMM}.

:SOS: /S-O-S/ /n. obs./ 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/ /vt./ 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

could 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 first Knight keyboard.

: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. {Perl}

uses this to denote the signum-of-difference operation.

: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 so 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: /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 {buffer overflow},

{overrun screw}, {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 {cross-post}ing

(e.g. any message which is crossposted to alt.rush-limbaugh

and alt.politics.homosexuality will almost inevitably spam

both groups). 3. To send many identical or nearly-identical

messages separately to a large number of Usenet newsgroups. This

is one sure way to infuriate nearly everyone on the Net.

The second and third definitions have become much more prevalent as

the Internet has opened up to non-techies, and to many Usenetters

sense 3 is now (1995) primary. In this sense the term has

apparantly begun to go mainstream, though without its original

sense or folkloric freight -- there is apparently a widespread

belief among {luser}s that "spamming" is what happens when you

dump cans of Spam into a revolving fan.

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

operating system 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 GE 600 (later Honeywell 6000)

actually had an *analog* speedometer on the front panel,

calibrated in instructions executed per second.

:spell: /n./ Syn. {incantation}.

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

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

{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}.

:splash screen: /n./ [Mac users] Syn. {banner}, sense 3.

: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. 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 {{ASCII}}.

:spod: /n./ [UK] 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},

{warez d00dz}.

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

{rot13}, or some combination of these techniques.

:sponge: /n./ [Unix] 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 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 {slurp}.

:spool: /vi./ [from early IBM `Simultaneous Peripheral

Operation On-Line', but this acronym is widely thought to have been

contrived for effect] 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 {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; or QIC tapes used on

workstations and micros. The term comes from the square (actually

rectangular) shape of the cartridges; contrast {round tape}.

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

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

:star out: /v./ [University of York, England] To replace a

user's encrypted password in /etc/passwd with a single

asterisk. Under Unix this is not a legal encryption of any

password; hence the user is not permitted to log in. In general,

accounts like adm, news, and daemon are permanently "starred

out"; occasionally a real user might have the this inflicted upon

him/her as a punishment, e.g. "Graham was starred out for playing

Omega in working hours". Also occasionally known as The Order Of

The Gold Star in this context. "Don't do that, or you'll be

awarded the Order of the Gold Star..." Compare {disusered}.

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

:stealth manager: /n./ [Corporate DP] A manager that appears

out of nowhere, promises undeliverable software to unknown end

users, and vanishes before the programming staff realizes what has

happened. See {smoke and mirrors}.

: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: /n./ [University of Lowell, Massachusetts.] 3.5-inch

{microfloppies}, so called because their jackets are more rigid

than those of the 5.25-inch and the (now totally obsolete) 8-inch

floppy. Elsewhere this might be called a `firmy'.

:stir-fried random: /n./ (alt. `stir-fried mumble') 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: /n./ [from the Star Trek Classic

episode "The City on the Edge of Forever"] A term

traditionally used to describe (and deprecate) computing

environments that are 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 SAIL 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: /n./ [prob. from techspeak `main store'] In some

varieties of Commonwealth hackish, the preferred 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.

:strided: /stri:'d*d/ /adj./ [scientific computing] Said of

a sequence of memory reads and writes to addresses, each of which

is separated from the last by a constant interval called the

`stride length'. These can be a worst-case access pattern for

the standard memory-caching schemes when the stride length is a

multiple of the cache line size. Strided references are often

generated by loops through an array, and (if your data is large

enough that access-time is significant) it can be worthwhile to

tune for better locality by inverting double loops or by partially

unrolling the outer loop of a loop nest. This usage is borderline

techspeak; the related term `memory stride' is definitely

techspeak.

: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/ /n./ [contraction of `stub

subroutine'] Tiny, often vacuous placeholder for a subroutine that

is to be written or fleshed out later.

:studly: /adj./ Impressive; powerful. Said of code and designs

which exhibit both complexity and a virtuoso flair. Has

connotations similar to {hairy} but is more positive in tone.

Often in the emphatic `most studly' or as noun-form

`studliness'. "Smail 3.0's configuration parser is most

studly."

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

:Sturgeon's Law: /prov./ "Ninety percent of everything is

crap". Derived from a quote by science fiction author Theodore

Sturgeon, who once said, "Sure, 90% of science fiction is crud.

That's because 90% of everything is crud." Oddly, when Sturgeon's

Law is cited, the final word is almost invariably changed to

`crap'. Compare {Hanlon's Razor}, {Ninety-Ninety Rule}.

Though this maxim originated in SF fandom, most hackers recognize

it and are all too aware of its truth.

: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: /adj./ [perverted from mathematical jargon]

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 dumped 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: /n./ [UK] 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 also {phase of the moon}.

:super source quench: /n./ A special packet designed to shut up

an Internet host. The Internet Protocol (IP) has a control message

called Source Quench that asks a host to transmit more slowly on a

particular connection to avoid congestion. It also has a Redirect

control message intended to instruct a host to send certain packets

to a different local router. A "super source quench" is actually

a redirect control packet, forged to look like it came from a local

router, that instructs a host to send all packets to its own local

loopback address. This will effectively tie many Internet hosts up

in knots. Compare {Godzillagram}, {breath-of-life

packet}.

:superloser: /n./ [Unix] A superuser with no clue -- someone

with root privileges on a Unix system and no idea what he/she is

doing, the moral equivalent of a three-year-old with an unsafetied

Uzi. Anyone who thinks this is an uncommon situation reckons

without the territorial urges of {management}.

:superprogrammer: /n./ A prolific programmer; one who can code

exceedingly well and quickly. Not all hackers are

superprogrammers, but many are. (Productivity can vary from one

programmer to another by three orders of magnitude. For example,

one programmer might be able to write an average of 3 lines of

working code in one day, while another, with the proper tools,

might be able to write 3,000. This range is astonishing; it is

matched in very few other areas of human endeavor.) The term

`superprogrammer' is more commonly used within such places as IBM

than in the hacker community. It tends to stress naive measures of

productivity and to underweight creativity, ingenuity, and getting

the job *done* -- and to sidestep the question of whether the

3,000 lines of code do more or less useful work than three lines

that do the {Right Thing}. Hackers tend to prefer the terms

{hacker} and {wizard}.

:superuser: /n./ [Unix] Syn. {root}, {avatar}. This usage has

spread to non-Unix environments; the superuser is any account with

all {wheel} bits on. A more specific term than {wheel}.

:support: /n./ After-sale handholding; something many software

vendors promise but few deliver. To hackers, most support people

are useless -- because by the time a hacker calls support he or

she will usually know the software and the relevant manuals better

than the support people (sadly, this is *not* a joke or

exaggeration). A hacker's idea of `support' is a

t^ete-`a-t^ete with the software's designer.

:surf: /v./ [from the `surf' idiom for rapidly flipping TV

channels] To traverse the Internet in search of interesting stuff,

used esp. if one is doing so with a World Wide Web browser. It is

also common to speak of `surfing in' to a particular resource.

:Suzie COBOL: /soo'zee koh'bol/ 1. [IBM: prob. from Frank

Zappa's `Suzy Creamcheese'] /n./ A coder straight out of training

school who knows everything except the value of comments in plain

English. Also (fashionable among personkind wishing to avoid

accusations of sexism) `Sammy Cobol' or (in some non-IBM circles)

`Cobol Charlie'. 2. [proposed] Meta-name for any {code

grinder}, analogous to {J. Random Hacker}.

:swab: /swob/ [From the mnemonic for the PDP-11 `SWAp Byte'

instruction, as immortalized in the `dd(1)' option

`conv=swab' (see {dd})] 1. /vt./ To solve the {NUXI

problem} by swapping bytes in a file. 2. /n./ The program in V7

Unix

used to perform this action, or anything functionally equivalent to

it. See also {big-endian}, {little-endian},

{middle-endian}, {bytesexual}.

:swap: /vt./ 1. [techspeak] To move information from a

fast-access memory to a slow-access memory (`swap out'), or vice

versa (`swap in'). Often refers specifically to the use of disks

as `virtual memory'. As pieces of data or program are needed,

they are swapped into {core} for processing; when they are no

longer needed they may be swapped out again. 2. The jargon use of

these terms analogizes people's short-term memories with core.

Cramming for an exam might be spoken of as swapping in. If you

temporarily forget someone's name, but then remember it, your

excuse is that it was swapped out. To `keep something swapped

in' means to keep it fresh in your memory: "I reread the TECO

manual every few months to keep it swapped in." If someone

interrupts you just as you got a good idea, you might say "Wait a

moment while I swap this out", implying that a piece of paper is

your extra-somatic memory and that if you don't swap the idea out

by writing it down it will get overwritten and lost as you talk.

Compare {page in}, {page out}.

:swap space: /n./ Storage space, especially temporary storage

space used during a move or reconfiguration. "I'm just using that

corner of the machine room for swap space."

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

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

:swizzle: /v./ To convert external names, array indices, or

references within a data structure into address pointers when the

data structure is brought into main memory from external storage

(also called `pointer swizzling'); this may be done for speed in

chasing references or to simplify code (e.g., by turning lots of

name lookups into pointer dereferences). The converse operation is

sometimes termed `unswizzling'. See also {snap}.

:sync: /sink/ n., /vi./ (var. `synch') 1. To synchronize,

to bring into synchronization. 2. [techspeak] To force all pending

I/O to the disk; see {flush}, sense 2. 3. More generally, to

force a number of competing processes or agents to a state that

would be `safe' if the system were to crash; thus, to checkpoint

(in the database-theory sense).

:syntactic salt: /n./ The opposite of {syntactic sugar}, a

feature designed to make it harder to write bad code.

Specifically, syntactic salt is a hoop the programmer must jump

through just to prove that he knows what's going on, rather than to

express a program action. Some programmers consider required type

declarations to be syntactic salt. A requirement to write

`end if', `end while', `end do', etc. to terminate

the last block controlled by a control construct (as opposed to

just `end') would definitely be syntactic salt. Syntactic

salt is like the real thing in that it tends to raise hackers'

blood pressures in an unhealthy way. Compare {candygrammar}.

:syntactic sugar: /n./ [coined by Peter Landin] Features added

to a language or other formalism to make it `sweeter' for

humans, features which do not affect the expressiveness of the

formalism (compare {chrome}). Used esp. when there is an

obvious and trivial translation of the `sugar' feature into

other constructs already present in the notation. C's `a[i]'

notation is syntactic sugar for `*(a + i)'. "Syntactic sugar

causes cancer of the semicolon." -- Alan Perlis.

The variants `syntactic saccharin' and `syntactic syrup' are

also recorded. These denote something even more gratuitous, in

that syntactic sugar serves a purpose (making something more

acceptable to humans), but syntactic saccharin or syrup serve no

purpose at all. Compare {candygrammar}, {syntactic salt}.

:sys-frog: /sis'frog/ /n./ [the PLATO system] Playful variant

of `sysprog', which is in turn short for `systems programmer'.

:sysadmin: /sis'ad-min/ /n./ Common contraction of `system

admin'; see {admin}.

:sysape: /sys'ayp/ /n./ A rather derogatory term for a

computer operator; a play on {sysop} common at sites that use

the banana hierarchy of problem complexity (see {one-banana

problem}).

:sysop: /sis'op/ /n./ [esp. in the BBS world] The operator

(and usually the owner) of a bulletin-board system. A common

neophyte mistake on {FidoNet} is to address a message to

`sysop' in an international {echo}, thus sending it to

hundreds of sysops around the world.

:system: /n./ 1. The supervisor program or OS on a computer.

2. The entire computer system, including input/output devices, the

supervisor program or OS, and possibly other software. 3. Any

large-scale program. 4. Any method or algorithm. 5. `System

hacker': one who hacks the system (in senses 1 and 2 only; for

sense 3 one mentions the particular program: e.g., `LISP hacker')

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

:system mangler: /n./ Humorous synonym for `system manager',

poss. from the fact that one major IBM OS had a {root} account

called SYSMANGR. Refers specifically to a systems programmer in

charge of administration, software maintenance, and updates at some

site. Unlike {admin}, this term emphasizes the technical end of

the skills involved.

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

= T =

=====

:T: /T/ 1. [from LISP terminology for `true'] Yes. Used

in reply to a question (particularly one asked using {The `-P'

convention}). In LISP, the constant T means `true', among other

things. Some Lisp hackers use `T' and `NIL' instead of `Yes' and

`No' almost reflexively. This sometimes causes misunderstandings.

When a waiter or flight attendant asks whether a hacker wants

coffee, he may absently respond `T', meaning that he wants coffee;

but of course he will be brought a cup of tea instead.

Fortunately, most hackers (particularly those who frequent Chinese

restaurants) like tea at least as well as coffee -- so it is not

that big a problem. 2. See {time T} (also {since time T

equals minus infinity}). 3. [techspeak] In transaction-processing

circles, an abbreviation for the noun `transaction'. 4. [Purdue]

Alternate spelling of {tee}. 5. A dialect of {LISP}

developed at Yale. (There is an intended allusion to NIL, "New

Implementation of Lisp", another dialect of Lisp developed for the

{VAX})

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

{tail recursion}.

:talk mode: /n./ A feature supported by Unix, ITS, and some

other OSes that allows two or more logged-in users to set up a

real-time on-line conversation. It combines the immediacy of

talking with all the precision (and verbosity) that written

language entails. It is difficult to communicate inflection,

though conventions have arisen for some of these (see the section

on writing style in the Prependices for details).

Talk mode has a special set of jargon words, used to save typing,

which are not used orally. Some of these are identical to (and

probably derived from) Morse-code jargon used by ham-radio amateurs

since the 1920s.

AFAIK

as far as I know

BCNU

be seeing you

BTW

by the way

BYE?

are you ready to unlink? (this is the standard way to end a

talk-mode conversation; the other person types `BYE' to confirm,

or else continues the conversation)

CUL

see you later

ENQ?

are you busy? (expects `ACK' or `NAK' in return)

FOO?

are you there? (often used on unexpected links, meaning also

"Sorry if I butted in ..." (linker) or "What's up?" (linkee))

FWIW

for what it's worth

FYI

for your information

FYA

for your amusement

GA

go ahead (used when two people have tried to type simultaneously;

this cedes the right to type to the other)

GRMBL

grumble (expresses disquiet or disagreement)

HELLOP

hello? (an instance of the `-P' convention)

IIRC

if I recall correctly

JAM

just a minute (equivalent to `SEC....')

MIN

same as `JAM'

NIL

no (see {NIL})

O

over to you

OO

over and out

/

another form of "over to you" (from x/y as "x over y")

\

lambda (used in discussing LISPy things)

OBTW

oh, by the way

OTOH

on the other hand

R U THERE?

are you there?

SEC

wait a second (sometimes written `SEC...')

T

yes (see the main entry for {T})

TNX

thanks

TNX 1.0E6

thanks a million (humorous)

TNXE6

another form of "thanks a million"

WRT

with regard to, or with respect to.

WTF

the universal interrogative particle; WTF knows what it means?

WTH

what the hell?

<double newline>

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.

<name>:

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:

<g>

grin

<gr&d>

grinning, running, and ducking

BBL

be back later

BRB

be right back

HHOJ

ha ha only joking

HHOK

ha ha only kidding

HHOS

{ha ha only serious}

IMHO

in my humble opinion (see {IMHO})

LOL

laughing out loud

NHOH

Never Heard of Him/Her (often used in {initgame})

ROTF

rolling on the floor

ROTFL

rolling on the floor laughing

AFK

away from keyboard

b4

before

CU l8tr

see you later

MORF

male or female?

TTFN

ta-ta for now

TTYL

talk to you later

OIC

oh, I see

rehi

hello again

Most of these are not used at universities or in the Unix world,

though ROTF and TTFN have gained some currency there and IMHO is

common; conversely, most of the people who know these are

unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.

The {MUD} community uses a mixture of Usenet/Internet emoticons,

a few of the more natural of the old-style talk-mode abbrevs, and

some of the `social' list above; specifically, MUD respondents

report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH. The use

of `rehi' is also common; in fact, mudders are fond of re-

compounds and will frequently `rehug' or `rebonk' (see

{bonk/oif}) people. The word `re' by itself is taken as

`regreet'. In general, though, MUDders express a preference for

typing things out in full rather than using abbreviations; this may

be due to the relative youth of the MUD cultures, which tend to

include many touch typists and to assume high-speed links. The

following uses specific to MUDs are reported:

CU l8er

see you later (mutant of `CU l8tr')

FOAD

fuck off and die (use of this is generally OTT)

OTT

over the top (excessive, uncalled for)

ppl

abbrev for "people"

THX

thanks (mutant of `TNX'; clearly this comes in batches of 1138

(the Lucasian K)).

UOK?

are you OK?

Some {B1FF}isms (notably the variant spelling `d00d')

appear to be passing into wider use among some subgroups of

MUDders.

One final note on talk mode style: neophytes, when in talk mode,

often seem to think they must produce letter-perfect prose because

they are typing rather than speaking. This is not the best

approach. It can be very frustrating to wait while your partner

pauses to think of a word, or repeatedly makes the same spelling

error and backs up to fix it. It is usually best just to leave

typographical errors behind and plunge forward, unless severe

confusion may result; in that case it is often fastest just to type

"xxx" and start over from before the mistake.

See also {hakspek}, {emoticon}.

:talker system: /n./ British hackerism for software that

enables real-time chat or {talk mode}.

:tall card: /n./ A PC/AT-size expansion card (these can be

larger than IBM PC or XT cards because the AT case is bigger). See

also {short card}. When IBM introduced the PS/2 model 30 (its

last gasp at supporting the ISA) they made the case lower and many

industry-standard tall cards wouldn't fit; this was felt to be a

reincarnation of the {connector conspiracy}, done with less

style.

:tanked: /adj./ Same as {down}, used primarily by Unix

hackers. See also {hosed}. Popularized as a synonym for

`drunk' by Steve Dallas in the late lamented "Bloom County"

comic strip.

:TANSTAAFL: /tan'stah-fl/ [acronym, from Robert Heinlein's

classic "The Moon is a Harsh Mistress".] "There Ain't No

Such Thing As A Free Lunch", often invoked when someone is balking

at the prospect of using an unpleasantly {heavyweight}

technique, or at the poor quality of some piece of free software,

or at the {signal-to-noise ratio} of unmoderated Usenet

newsgroups. "What? Don't tell me I have to implement a database

back end to get my address book program to work!" "Well,

TANSTAAFL you know." This phrase owes some of its popularity to

the high concentration of science-fiction fans and political

libertarians in hackerdom (see {A Portrait of J. Random

Hacker} in Appendix B).

:tar and feather: /vi./ [from Unix `tar(1)'] To create a

transportable archive from a group of files by first sticking them

together with `tar(1)' (the Tape ARchiver) and then

compressing the result (see {compress}). The latter action is

dubbed `feathering' partly for euphony and (if only for contrived

effect) by analogy to what you do with an airplane propeller to

decrease wind resistance, or with an oar to reduce water

resistance; smaller files, after all, slip through comm links more

easily.

:taste: [primarily MIT] /n./ 1. The quality in a program that

tends to be inversely proportional to the number of features,

hacks, and kluges programmed into it. Also `tasty',

`tasteful', `tastefulness'. "This feature comes in N

tasty flavors." Although `tasty' and `flavorful' are

essentially synonyms, `taste' and {flavor} are not. Taste

refers to sound judgment on the part of the creator; a program or

feature can *exhibit* taste but cannot *have* taste. On

the other hand, a feature can have {flavor}. Also, {flavor}

has the additional meaning of `kind' or `variety' not shared by

`taste'. The marked sense of {flavor} is more popular than

`taste', though both are widely used. See also {elegant}.

2. Alt. sp. of {tayste}.

:tayste: /tayst/ /n./ Two bits; also as {taste}.

Syn. {crumb}, {quarter}. See {nybble}.

:TCB: /T-C-B/ /n./ [IBM] 1. Trouble Came Back. An

intermittent or difficult-to-reproduce problem that has failed to

respond to neglect or {shotgun debugging}. Compare

{heisenbug}. Not to be confused with: 2. Trusted Computing

Base, an `official' jargon term from the {Orange Book}.

:TCP/IP: /T'C-P I'P/ /n./ 1. [Transmission Control

Protocol/Internet Protocol] The wide-area-networking protocol that

makes the Internet work, and the only one most hackers can speak

the name of without laughing or retching. Unlike such allegedly

`standard' competitors such as X.25, DECnet, and the ISO 7-layer

stack, TCP/IP evolved primarily by actually being *used*,

rather than being handed down from on high by a vendor or a

heavily-politicized standards committee. Consequently, it (a)

works, (b) actually promotes cheap cross-platform connectivity, and

(c) annoys the hell out of corporate and governmental

empire-builders everywhere. Hackers value all three of these

properties. See {creationism}. 2. [Amateur Packet Radio]

Sometimes expanded as "The Crap Phil Is Pushing". The reference

is to Phil Karn, KA9Q, and the context is an ongoing

technical/political war between the majority of sites still running

AX.25 and a growing minority of TCP/IP relays.

:tea, ISO standard cup of: /n./ [South Africa] A cup of tea

with milk and one teaspoon of sugar, where the milk is poured into

the cup before the tea. Variations are ISO 0, with no sugar; ISO

2, with two spoons of sugar; and so on.

Like many ISO standards, this one has a faintly alien ring in North

America, where hackers generally shun the decadent British practice

of adulterating perfectly good tea with dairy products and

prefer instead to add a wedge of lemon, if anything. If one were

feeling extremely silly, one might hypothesize an analogous `ANSI

standard cup of tea' and wind up with a political situation

distressingly similar to several that arise in much more serious

technical contexts. Milk and lemon don't mix very well.

:TechRef: /tek'ref/ /n./ [MS-DOS] The original "IBM PC

Technical Reference Manual", including the BIOS listing and

complete schematics for the PC. The only PC documentation in the

original-issue package that was considered serious by real

hackers.

:TECO: /tee'koh/ /n.,v. obs./ 1. [originally an acronym for

`[paper] Tape Editor and COrrector'; later, `Text Editor and

COrrector'] /n./ A text editor developed at MIT and modified by

just

about everybody. With all the dialects included, TECO may have

been the most prolific editor in use before {EMACS}, to which it

was directly ancestral. Noted for its powerful

programming-language-like features and its unspeakably hairy

syntax. It is literally the case that every string of characters

is a valid TECO program (though probably not a useful one); one

common game used to be mentally working out what the TECO commands

corresponding to human names did. 2. /vt./ Originally, to edit

using

the TECO editor in one of its infinite variations (see below).

3. vt.,obs. To edit even when TECO is *not* the editor being

used! This usage is rare and now primarily historical.

As an example of TECO's obscurity, here is a TECO program that

takes a list of names such as:

Loser, J. Random

Quux, The Great

Dick, Moby

sorts them alphabetically according to surname, and then puts the

surname last, removing the comma, to produce the following:

Moby Dick

J. Random Loser

The Great Quux

The Jargon File, Version 4.0.0, 24 Jul 1996 · 第 10 / 18 题