= 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    one's Obs are more
interesting than other people's whole postings.

   :Obfuscated C Contest: n.  (in full, the `International
Obfuscated C Code Contest', or IOCCC) 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
      * (Note: depends on being able to modify elements of argv[],
      * which is not guaranteed by ANSI and often not possible.)
      */
     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
      * (requires pcc macro concatenation; try gcc -traditional-cpp)
      */

     #define _ -F<00||--F-OO--;
     int F=00,OO=00;
     main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
     {
                 _-_-_-_
            _-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_
       _-_-_-_-_-_-_-_-_-_-_-_-_-_
      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
     _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
      _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
       _-_-_-_-_-_-_-_-_-_-_-_-_-_
         _-_-_-_-_-_-_-_-_-_-_-_
             _-_-_-_-_-_-_-_
                 _-_-_-_
     }

Note that this program works by computing its own area.  For more
digits, write a bigger program.  See also {hello world}.

   The IOCCC has an official home page at
`http://reality.sgi.com/csp/ioccc'.

   :obi-wan error: /oh'bee-won` er'*r/ n.  [RPI, from    `off-by-one'
and the Obi-Wan Kenobi character in "Star    Wars"] 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    something 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},    {wedged}.

   This term is much older than computing, and is (uncommon) slang
elsewhere.  A trolley is the small wheel that trolls, or runs
against, the heavy wire that carries the current to run a    streetcar.
It's at the end of the long pole (the trolley pole)    that reaches
from the roof of the streetcar to the overhead line.     When the
trolley stops making contact with the wire (from passing    through a
switch, going over bumpy track, or whatever), the    streetcar comes to
a halt, (usually) without crashing.  The    streetcar is then said to
be off the trolley, or off the wire.     Later on, trolley came to mean
the streetcar itself.  Since    streetcars became common in the 1890s,
the term is more than 100    years old.  Nowadays, trolleys are only
seen on historic    streetcars, since modern streetcars use pantographs
to contact the    wire.

   :off-by-one error: n.  [common] 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 moved off a public newsgroup to email.

   :ogg: /og/ v.  [CMU] 1. In the multi-player space combat    game
Netrek, to execute kamikaze attacks against enemy ships which    are
carrying armies or occupying strategic positions.  Named during    a
game in which one of the players repeatedly used the tactic while
playing Orion ship G, showing up in the player list as "Og".     This
trick has been roundly denounced by those who would return to    the
good old days when the tactic of dogfighting was dominant, but    as
Sun Tzu wrote, "What is of supreme importance in war is to    attack
the enemy's strategy, not his tactics."  However, the    traditional
answer to the newbie question "What does ogg mean?"     is just "Pick
up some armies and I'll show you."  2. In other    games, to forcefully
attack an opponent with the expectation that    the resources expended
will be renewed faster than the opponent    will be able to regain his
previous advantage.  Taken more    seriously as a tactic since it has
gained a simple name.  3. To do    anything forcefully, possibly
without consideration of the drain on    future resources.  "I guess
I'd better go ogg the problem set    that's due tomorrow."  "Whoops!  I
looked down at the map for a    sec and almost ogged that oncoming car."

   :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-banana problem: n.  At mainframe shops, where the    computers
have operators for routine administrivia, the programmers    and
hardware people tend to look down on the operators and claim    that a
trained monkey could do their job.  It is frequently    observed that
the incentives that would be offered said monkeys can    be used as a
scale to describe the difficulty of a task.  A    one-banana problem is
simple; hence, "It's only a one-banana job    at the most; what's
taking them so long?"

   At IBM, folklore divides the world into one-, two-, and
three-banana problems.  Other cultures have different hierarchies
and may divide them more finely; at ICL, for example, five grapes    (a
bunch) equals a banana.  Their upper limit for the in-house
{sysape}s is said to be two bananas and three grapes (another    source
claims it's three bananas and one grape, but observes    "However, this
is subject to local variations, cosmic rays and    ISO").  At a
complication level any higher than that, one asks the    manufacturers
to send someone around to check things.

   See also {Infinite-Monkey Theorem}.

   :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} and {line    noise}).  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 and is now popular among    {Perl} aficionados.

   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.

   Here's equivalent {Perl}:

             perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++'

   :ooblick: /oo'blik/ n.  [from the Dr. Seuss title    "Bartholomew
and the Oobleck"; the spelling `oobleck' is still    current in the
mainstream] 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.

   :op: /op/ n.  1. In England and Ireland, common verbal
abbreviation for `operator', as in system operator.  Less common in
the U.S., where {sysop} seems to be preferred.  2. [IRC] Someone    who
is endowed with privileges on {IRC}, not limited to a    particular
channel.  These are generally people who are in charge    of the IRC
server at their particular site.  Sometimes used    interchangeably
with {CHOP}.  Compare {sysop}.

   :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 source: n.  [common; also adj. `open-source']    Term coined
in March 1998 following the Mozilla release to    describe software
distributed in source under licenses guaranteeing    anybody rights to
freely use, modify, and redistribute, the code.     The intent was to
be able to sell the hackers' ways of doing    software to industry and
the mainstream by avoid the negative    connotations (to {suit}s) of
the term "free software".  For    discussion of the followon tactics
and their consequences, see    the Open Source Initiative
(http://www.opensource.org)    site.

   :open switch: n.  [IBM: prob. from railroading] An    unresolved
question, issue, or problem.

   :operating system:: n.  [techspeak] (Often abbreviated `OS')    The
foundation software of a machine; 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).

   :optical diff: n.  See {vdiff}.

   :optical grep: n.  See {vgrep}.

   :optimism: n.  What a programmer is full of after fixing the    last
bug and before discovering the _next_ last bug.  Fred    Brooks's book
"The Mythical Man-Month" (See "Brooks's    Law") contains the following
paragraph that describes this    extremely well:

     All programmers are optimists.  Perhaps this modern sorcery
     especially attracts those who believe in happy endings and fairy
     godmothers.  Perhaps the hundreds of nitty frustrations drive away
     all but those who habitually focus on the end goal.  Perhaps it is
     merely that computers are young, programmers are younger, and the
     young are always optimists.  But however the selection process
     works, the result is indisputable: "This time it will surely run,"
     or "I just found the last bug.".

See also {Lubarsky's Law of Cybernetic Entomology}.

   :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).
Modern Unixes are roughly C2.  See also {{crayola    books}}, {{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: n.  [Unix] A process whose parent has died; one
inherited by `init(1)'.  Compare {zombie}.

   :orphaned i-node: /or'f*nd i:'nohd/ n.  [Unix]    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 no
longer serving a useful function within some    organization, esp.
{lion food} without subordinates.

   :orthogonal: adj.  [from mathematics] 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 abbreviation heavily    used
in email, occasionally in speech.  2. n. obs. On ITS, an    output spy.
See "{OS and JEDGAR}" in 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.  Often called `Half-an-OS'.
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.  The 2.x
versions are said to have improved somewhat, and    informed hackers
now rate them superior to Microsoft Windows (an    endorsement which,
however, could easily be construed as damning    with faint praise).
See {monstrosity}, {cretinous},    {second-system effect}.

   :OSU: /O-S-U/ n. obs.  [TMRC] Acronym for Officially    Sanctioned
User; a user who is recognized as such by the computer    authorities
and allowed to use the computer above the objections of    the security
monitor.

   :OTOH: //  [Usenet; very common] On The Other Hand.

   :out-of-band: adj.  [from telecommunications and network    theory]
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 a nonnegative integral value, but    indicate failure with an
out-of-band return value of -1.     Compare {hidden flag}, {green
bytes}, {fence}.  2. Also    sometimes used to describe what
communications people call    `shift characters', such as 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}.

   :overclock: /oh'vr-klok'/ vt.  To operate a CPU or other    digital
logic device at a rate higher than it was designed for,    under the
assumption that the manufacturer put some {slop} into    the
specification to account for manufacturing    tolerances. Overclocking
something can result in intermittent    {crash}es, and can even burn
things out, since power dissipation    is directly proportional to
{clock} frequency. People who make a    hobby of this are sometimes
called "overclockers"; they are    thrilled that they can run their
450MHz CPU at 500MHz, even though    they can only tell the difference
by running a {benchmark} program.

   :overflow bit: n.  1. [techspeak] A {flag} on some    processors
indicating an attempt to calculate a result too large    for a register
to hold.  2. More generally, an indication of any    kind of capacity
overload condition.  "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."

   :overflow pdl: n.  [MIT] The place where you put things when    your
{PDL} is full.  If you don't have one and too many things    get
pushed, you forget something.  The overflow pdl for a person's
memory might be a memo pad.  This usage inspired the following
doggerel:

     Hey, diddle, diddle
     The overflow pdl
     To get a little more stack;
     If that's not enough
     Then you lose it all,
     And have to pop all the way back.
     -The Great Quux

   The term `pdl' (see {PDL}) seems to be primarily an MITism;
outside MIT this term is replaced by `overflow {stack}' (but    that
wouldn't rhyme with `diddle').

   :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 a {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!"  Compare {firehose syndrome}.     3. More loosely, may
refer to a {buffer overflow} not    necessarily related to processing
time (as in {overrun screw}).

   :overrun screw: n.  [C programming] A variety of {fandango    on
core} produced by scribbling past the end of an array (C
implementations typically have no checks for this error).  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}, {memory    smash}, {aliasing bug}, {precedence lossage},
{fandango on    core}, {secondary damage}.

