The Hacker's Dictionary

Versió HTML de Lluís de Yzaguirre i Maura

Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza @ upf.es


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
==================== (in full, the `International Obfuscated C
Code Contest', or IOCCC) 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()
[
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Note that this program works by computing its own area. For more
digits, write a bigger program. 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 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.
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 moved off a public newsgroup to email.
ogg
=== /og/ [CMU] v. 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." 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 blocks 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
============= [C programmers] n. 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
sysapes 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.

ooblick
======= /oo'blik/ [from the Dr. Seuss title "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.

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 DeathTrap
============== n. Abusive hackerism for the Santa Cruz
Operation's `Open DeskTop' product, a Motif-based graphical
interface over their UNIX. The funniest part is that this was
coined by SCO's own developers.... Compare AIDX,
Macintrash Nominal Semidestructor, ScumOS,
sun-stools, HP-SUX.
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).
optical diff
============ n. See vdiff.
optical grep
============ n. See vgrep.
optimism
======== n. What a programmer is full of after fixing
the last bug and just before actually 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 god-mothers. 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). Stock UNIXes are roughly C1, and can be upgraded to
about C2 without excessive pain. 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
====== [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 no
longer serving a 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 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 apps 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.
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 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.
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
============ [MIT] n. 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 seems to be primarily an MITism; outside MIT this
term is replaced by `overflow stack'.

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 thrashing 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
============= [C programming] n. 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 heisenbugs 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.