The Jargon File, Version 4.2.2, 20 Aug 2000

Chapter 50

Chapter 503,780 wordsPublic domain

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.

Node:script kiddies, Next:scrog, Previous:scribble, Up:= S =

script kiddies pl.n.

1. The lowest form of cracker; script kiddies do mischief with scripts and programs written by others, often without understanding the exploit. 2. People who cannot program, but who create tacky HTML pages by copying JavaScript routines from other tacky HTML pages. More generally, a script kiddie writes (or more likely cuts and pastes) code without either having or desiring to have a mental model of what the code does; someone who thinks of code as magical incantations and asks only "what do I need to type to make this happen?"

Node:scrog, Next:scrool, Previous:script kiddies, Up:= S =

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.

Node:scrool, Next:scrozzle, Previous:scrog, Up:= S =

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.

Node:scrozzle, Next:scruffies, Previous:scrool, Up:= S =

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!"

Node:scruffies, Next:SCSI, Previous:scrozzle, Up:= S =

scruffies n.

See neats vs. scruffies.

Node:SCSI, Next:ScumOS, Previous:scruffies, Up:= S =

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.

Node:ScumOS, Next:search-and-destroy mode, Previous:SCSI, Up:= S =

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

Node:search-and-destroy mode, Next:second-system effect, Previous:ScumOS, Up:= S =

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.

Node:second-system effect, Next:secondary damage, Previous:search-and-destroy mode, Up:= S =

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

Node:secondary damage, Next:security through obscurity, Previous:second-system effect, Up:= S =

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

Node:security through obscurity, Next:SED, Previous:secondary damage, Up:= S =

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), 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 (escape escape 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.

Node:SED, Next:segfault, Previous:security through obscurity, Up:= S =

SED /S-E-D/ n.

[TMRC, from `Light-Emitting Diode'] Smoke-emitting diode. A friode that lost the war. See also LER.

Node:segfault, Next:seggie, Previous:SED, Up:= S =

segfault n.,vi.

Syn. segment, segmentation fault.

Node:seggie, Next:segment, Previous:segfault, Up:= S =

seggie /seg'ee/ n.

[Unix] Shorthand for segmentation fault reported from Britain.

Node:segment, Next:segmentation fault, Previous:seggie, Up:= S =

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.

Node:segmentation fault, Next:segv, Previous:segment, Up:= S =

segmentation fault n.

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

int i; scanf ("%d", i); /* should have used &i */

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

Node:segv, Next:self-reference, Previous:segmentation fault, Up:= S =

segv /seg'vee/ n.,vi.

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

Node:self-reference, Next:selvage, Previous:segv, Up:= S =

self-reference n.

See self-reference.

Node:selvage, Next:semi, Previous:self-reference, Up:= S =

selvage /sel'v*j/ n.

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

Node:semi, Next:semi-automated, Previous:selvage, Up:= S =

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.

Node:semi-automated, Next:semi-infinite, Previous:semi, Up:= S =

semi-automated adj.

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

Node:semi-infinite, Next:senior bit, Previous:semi-automated, Up:= S =

semi-infinite n.

See infinite.

Node:senior bit, Next:September that never ended, Previous:semi-infinite, Up:= S =

senior bit n.

[IBM; rare] Syn. meta bit.

Node:September that never ended, Next:server, Previous:senior bit, Up:= S =

September that never ended

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

Node:server, Next:SEX, Previous:September that never ended, Up:= S =

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.

Node:SEX, Next:sex changer, Previous:server, Up:= S =

SEX /seks/

[Sun Users' Group & elsewhere] n. 1. Software EXchange. A technique invented by the blue-green algae hundreds of millions of years ago to speed up their evolution, which had been terribly slow up until then. Today, SEX parties are popular among hackers and others (of course, these are no longer limited to exchanges of genetic software). In general, SEX parties are a 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. The Data General instruction set also had SEX.

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

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

Node:sex changer, Next:shambolic link, Previous:SEX, Up:= S =

sex changer n.

Syn. gender mender.

Node:shambolic link, Next:shar file, Previous:sex changer, Up:= S =

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

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

Node:shar file, Next:sharchive, Previous:shambolic link, Up:= S =

shar file /shar' fi:l/ n.

Syn. sharchive.

Node:sharchive, Next:Share and enjoy!, Previous:shar file, Up:= S =

sharchive /shar'ki:v/ n.

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

Node:Share and enjoy!, Next:shareware, Previous:sharchive, Up:= S =

Share and enjoy! imp.

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

Node:shareware, Next:sharing violation, Previous:Share and enjoy!, Up:= S =

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.

Node:sharing violation, Next:shebang, Previous:shareware, Up:= S =

sharing violation

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

Node:shebang, Next:shelfware, Previous:sharing violation, Up:= S =

shebang /sh*-bang/ n.

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

Node:shelfware, Next:shell, Previous:shebang, Up:= S =

shelfware /shelf'weir/ n.

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

Node:shell, Next:shell out, Previous:shelfware, Up:= S =

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

Node:shell out, Next:shift left (or right) logical, Previous:shell, Up:= S =

shell out vi.

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

Node:shift left (or right) logical, Next:shim, Previous:shell out, Up:= S =

shift left (or right) logical

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

Node:shim, Next:shitogram, Previous:shift left (or right) logical, Up:= S =

shim n.

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

Node:shitogram, Next:short card, Previous:shim, Up:= S =

shitogram /shit'oh-gram/ n.

A really nasty piece of email. Compare nastygram, flame.

Node:short card, Next:shotgun debugging, Previous:shitogram, Up:= S =

short card n.

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

Node:shotgun debugging, Next:shovelware, Previous:short card, Up:= S =

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.

Node:shovelware, Next:showstopper, Previous:shotgun debugging, Up:= S =

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

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

Node:showstopper, Next:shriek, Previous:shovelware, Up:= S =

showstopper n.

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

Node:shriek, Next:Shub-Internet, Previous:showstopper, Up:= S =

shriek n.

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

Node:Shub-Internet, Next:sidecar, Previous:shriek, Up:= S =

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

[MUD: from H. P. Lovecraft's evil fictional deity Shub-Niggurath, the Black Goat with a Thousand Young] The harsh personification of the Internet: Beast of a Thousand Processes, Eater of Characters, Avatar of Line Noise, and Imp of Call Waiting; the hideous multi-tendriled entity formed of all the manifold connections of the net. A sect of MUDders worships Shub-Internet, sacrificing objects and praying for good connections. To no avail -- its purpose is malign and evil, and is the cause of all network slowdown. Often heard as in "Freela casts a tac nuke at Shub-Internet for slowing her down." (A forged response often follows along the lines of: "Shub-Internet gulps down the tac nuke and burps happily.") Also cursed by users of the Web, 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. Compare Random Number God.

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

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

Node:sidecar, Next:SIG, Previous:Shub-Internet, Up:= S =

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.

Node:SIG, Next:sig block, Previous:sidecar, Up:= S =

SIG /sig/ n.

(also common as a prefix in combining forms) A Special Interest Group, in one of several technical areas, sponsored by the Association for Computing Machinery; well-known ones include SIGPLAN (the Special Interest Group on Programming Languages), SIGARCH (the Special Interest Group for Computer Architecture) and SIGGRAPH (the Special Interest Group for Computer Graphics). Hackers, not surprisingly, like to overextend this naming convention to less formal associations like SIGBEER (at ACM conferences) and SIGFOOD (at University of Illinois).

Node:sig block, Next:sig quote, Previous:SIG, Up:= S =

sig block /sig blok/ n.