The Jargon File, Version 4.0.0, 24 Jul 1996

Chapter 39

Chapter 393,680 wordsPublic domain

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