= O = ===== Ob-: /ob/ pref. Obligatory. A piece of {netiquette} acknowledging that the author has been straying from the newsgroup's charter topic. For example, if a posting in alt.sex is a response to a part of someone else's posting that has nothing particularly to do with sex, the author may append `ObSex' (or `Obsex') and toss off a question or vignette about some unusual erotic act. It is considered a sign of great {winnitude} when your Obs are more interesting than other people's whole postings. Obfuscated C Contest: n. An annual contest run since 1984 over USENET by Landon Curt Noll and friends. The overall winner is whoever produces the most unreadable, creative, and bizarre (but working) C program; various other prizes are awarded at the judges' whim. C's terse syntax and macro-preprocessor facilities give contestants a lot of maneuvering room. The winning programs often manage to be simultaneously (a) funny, (b) breathtaking works of art, and (c) horrible examples of how *not* to code in C. This relatively short and sweet entry might help convey the flavor of obfuscated C: /* * HELLO WORLD program * by Jack Applin and Robert Heckendorn, 1985 */ main(v,c)char**c;{for(v[c++]="Hello, world!\n)"; (!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c)); **c=!c)write(!!*c,*c,!!**c);} Here's another good one: /* * Program to compute an approximation of pi * by Brian Westley, 1988 */ #define _ -F<00||--F-OO--; int F=00,OO=00; main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_ _-_-_-_ } See also {hello, world}. obi-wan error: /oh'bee-won` er'*r/ [RPI, from `off-by-one' and the Obi-Wan Kenobi character in "Star Wars"] n. A loop of some sort in which the index is off by 1. Common when the index should have started from 0 but instead started from 1. A kind of {off-by-one error}. See also {zeroth}. Objectionable-C: n. Hackish take on "Objective-C", the name of an object-oriented dialect of C in competition with the better-known C++ (it is used to write native applications on the NeXT machine). Objectionable-C uses a Smalltalk-like syntax, but lacks the flexibility of Smalltalk method calls, and (like many such efforts) comes frustratingly close to attaining the {Right Thing} without actually doing so. obscure: adj. Used in an exaggeration of its normal meaning, to imply total incomprehensibility. "The reason for that last crash is obscure." "The `find(1)' command's syntax is obscure!" The phrase `moderately obscure' implies that it could be figured out but probably isn't worth the trouble. The construction `obscure in the extreme' is the preferred emphatic form. octal forty: /ok'tl for'tee/ n. Hackish way of saying "I'm drawing a blank." Octal 40 is the {{ASCII}} space character, 0100000; by an odd coincidence, {hex} 40 (01000000) is the {{EBCDIC}} space character. See {wall}. off the trolley: adj. Describes the behavior of a program that malfunctions and goes catatonic, but doesn't actually {crash} or abort. See {glitch}, {bug}, {deep space}. off-by-one error: n. Exceedingly common error induced in many ways, such as by starting at 0 when you should have started at 1 or vice versa, or by writing `< N' instead of `<= N' or vice-versa. Also applied to giving something to the person next to the one who should have gotten it. Often confounded with {fencepost error}, which is properly a particular subtype of it. offline: adv. Not now or not here. "Let's take this discussion offline." Specifically used on {USENET} to suggest that a discussion be taken off a public newsgroup to email. old fart: n. Tribal elder. A title self-assumed with remarkable frequency by (esp.) USENETters who have been programming for more than about 25 years; often appears in {sig block}s attached to Jargon File contributions of great archeological significance. This is a term of insult in the second or third person but one of pride in first person. Old Testament: n. [C programmers] The first edition of {K&R}, the sacred text describing {Classic C}. one-line fix: n. Used (often sarcastically) of a change to a program that is thought to be trivial or insignificant right up to the moment it crashes the system. Usually `cured' by another one-line fix. See also {I didn't change anything!} one-liner wars: n. A game popular among hackers who code in the language APL (see {write-only language}). The objective is to see who can code the most interesting and/or useful routine in one line of operators chosen from APL's exceedingly {hairy} primitive set. A similar amusement was practiced among {TECO} hackers. Ken Iverson, the inventor of APL, has been credited with a one-liner that, given a number N, produces a list of the prime numbers from 1 to N inclusive. It looks like this: (2 = 0 +.= T o.| T) / T <- iN where `o' is the APL null character, the assignment arrow is a single character, and `i' represents the APL iota. ooblick: /oo'blik/ [from Dr. Seuss's `Bartholomew and the Oobleck'] n. A bizarre semi-liquid sludge made from cornstarch and water. Enjoyed among hackers who make batches during playtime at parties for its amusing and extremely non-Newtonian behavior; it pours and splatters, but resists rapid motion like a solid and will even crack when hit by a hammer. Often found near lasers. Here is a field-tested ooblick recipe contributed by GLS: 1 cup cornstarch 1 cup baking soda 3/4 cup water N drops of food coloring This recipe isn't quite as non-Newtonian as a pure cornstarch ooblick, but has an appropriately slimy feel. Some, however, insist that the notion of an ooblick *recipe* is far too mechanical, and that it is best to add the water in small increments so that the various mixed states the cornstarch goes through as it *becomes* ooblick can be grokked in fullness by many hands. For optional ingredients of this experience, see the "Ceremonial Chemicals" section of appendix B. open: n. Abbreviation for `open (or left) parenthesis' --- used when necessary to eliminate oral ambiguity. To read aloud the LISP form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun foo, open eks close, open, plus eks one, close close." open switch: [IBM: prob. from railroading] n. An unresolved question, issue, or problem. operating system:: [techspeak] n. (Often abbreviated `OS') The foundation software of a machine, of course; that which schedules tasks, allocates storage, and presents a default interface to the user between applications. The facilities an operating system provides and its general design philosophy exert an extremely strong influence on programming style and on the technical cultures that grow up around its host machines. Hacker folklore has been shaped primarily by the {{UNIX}}, {{ITS}}, {{TOPS-10}}, {{TOPS-20}}/{{TWENEX}}, {{WAITS}}, {{CP/M}}, {{MS-DOS}}, and {{Multics}} operating systems (most importantly by ITS and UNIX). Orange Book: n. The U.S. Government's standards document `Trusted Computer System Evaluation Criteria, DOD standard 5200.28-STD, December, 1985' which characterize secure computing architectures and defines levels A1 (most secure) through D (least). Stock UNIXes are roughly C2, and can be upgraded to about C1 without excessive pain. See also {{book titles}}. oriental food:: n. Hackers display an intense tropism towards oriental cuisine, especially Chinese, and especially of the spicier varieties such as Szechuan and Hunan. This phenomenon (which has also been observed in subcultures that overlap heavily with hackerdom, most notably science-fiction fandom) has never been satisfactorily explained, but is sufficiently intense that one can assume the target of a hackish dinner expedition to be the best local Chinese place and be right at least three times out of four. See also {ravs}, {great-wall}, {stir-fried random}, {laser chicken}, {Yu-Shiang Whole Fish}. Thai, Indian, Korean, and Vietnamese cuisines are also quite popular. orphan: [UNIX] n. A process whose parent has died; one inherited by `init(1)'. Compare {zombie}. orphaned i-node: /or'f*nd i:'nohd/ [UNIX] n. 1. [techspeak] A file that retains storage but no longer appears in the directories of a filesystem. 2. By extension, a pejorative for any person serving no useful function within some organization, esp. {lion food} without subordinates. orthogonal: [from mathematics] adj. Mutually independent; well separated; sometimes, irrelevant to. Used in a generalization of its mathematical meaning to describe sets of primitives or capabilities that, like a vector basis in geometry, span the entire `capability space' of the system and are in some sense non-overlapping or mutually independent. For example, in architectures such as the PDP-11 or VAX where all or nearly all registers can be used interchangeably in any role with respect to any instruction, the register set is said to be orthogonal. Or, in logic, the set of operators `not' and `or' is orthogonal, but the set `nand', `or', and `not' is not (because any one of these can be expressed in terms of the others). Also used in comments on human discourse: "This may be orthogonal to the discussion, but...." OS: /O-S/ 1. [Operating System] n. An acronym heavily used in email, occasionally in speech. 2. n.,obs. On ITS, an output spy. See appendix A. OS/2: /O S too/ n. The anointed successor to MS-DOS for Intel 286- and 386-based micros; proof that IBM/Microsoft couldn't get it right the second time, either. Mentioning it is usually good for a cheap laugh among hackers --- the design was so {baroque}, and the implementation of 1.x so bad, that 3 years after introduction you could still count the major {app}s shipping for it on the fingers of two hands --- in unary. Often called `Half-an-OS'. On January 28, 1991, Microsoft announced that it was dropping its OS/2 development to concentrate on Windows, leaving the OS entirely in the hands of IBM; on January 29 they claimed the media had got the story wrong, but were vague about how. It looks as though OS/2 is moribund. See {vaporware}, {monstrosity}, {cretinous}, {second-system effect}. out-of-band: [from telecommunications and network theory] adj. 1. In software, describes values of a function which are not in its `natural' range of return values, but are rather signals that some kind of exception has occurred. Many C functions, for example, return either a nonnegative integral value, or indicate failure with an out-of-band return value of -1. Compare {hidden flag}, {green bytes}. 2. Also sometimes used to describe what communications people call `shift characters', like the ESC that leads control sequences for many terminals, or the level shift indicators in the old 5-bit Baudot codes. 3. In personal communication, using methods other than email, such as telephones or {snail-mail}. overflow bit: n. 1. [techspeak] On some processors, an attempt to calculate a result too large for a register to hold causes a particular {flag} called an {overflow bit} to be set. 2. Hackers use the term of human thought too. "Well, the {{Ada}} description was {baroque} all right, but I could hack it OK until they got to the exception handling ... that set my overflow bit." 3. The hypothetical bit that will be set if a hacker doesn't get to make a trip to the Room of Porcelain Fixtures: "I'd better process an internal interrupt before the overflow bit gets set". overrun: n. 1. [techspeak] Term for a frequent consequence of data arriving faster than it can be consumed, esp. in serial line communications. For example, at 9600 baud there is almost exactly one character per millisecond, so if your {silo} can hold only two characters and the machine takes longer than 2 msec to get to service the interrupt, at least one character will be lost. 2. Also applied to non-serial-I/O communications. "I forgot to pay my electric bill due to mail overrun." "Sorry, I got four phone calls in 3 minutes last night and lost your message to overrun." When {thrash}ing at tasks, the next person to make a request might be told "Overrun!" 3. More loosely, may refer to a {buffer overflow} not necessarily related to processing time (as in {overrun screw}). overrun screw: [C programming] n. A variety of {fandango on core} produced by scribbling past the end of an array (C has no checks for this). This is relatively benign and easy to spot if the array is static; if it is auto, the result may be to {smash the stack} --- often resulting in {heisenbug}s of the most diabolical subtlety. The term `overrun screw' is used esp. of scribbles beyond the end of arrays allocated with `malloc(3)'; this typically trashes the allocation header for the next block in the {arena}, producing massive lossage within malloc and often a core dump on the next operation to use `stdio(3)' or `malloc(3)' itself. See {spam}, {overrun}; see also {memory leak}, {aliasing bug}, {precedence lossage}, {fandango on core}, {secondary damage}.