The Jargon File, Version 4.0.0, 24 Jul 1996
Chapter 38
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'.