:memory leak: n. An error in a program's dynamic-store allocation

logic that causes it to fail to reclaim discarded memory, leading

to eventual collapse due to memory exhaustion. Also (esp. at

CMU) called {core leak}. These problems were severe on older

machines with small, fixed-size address spaces, and special "leak

detection" tools were commonly written to root them out. With the

advent of virtual memory, it is unfortunately easier to be sloppy

about wasting a bit of memory (although when you run out of memory

on a VM machine, it means you've got a *real* leak!). See

{aliasing bug}, {fandango on core}, {smash the stack},

{precedence lossage}, {overrun screw}, {leaky heap},

{leak}.

:memory smash: [XEROX PARC] n. Writing through a pointer that

doesn't point to what you think it does. This occasionally reduces

your machine to a rubble of bits. Note that this is subtly

different from (and more general than) related terms such as a

{memory leak} or {fandango on core} because it doesn't imply

an allocation error or overrun condition.

:menuitis: /men`yoo-i:'tis/ n. Notional disease suffered by software

with an obsessively simple-minded menu interface and no escape.

Hackers find this intensely irritating and much prefer the

flexibility of command-line or language-style interfaces,

especially those customizable via macros or a special-purpose

language in which one can encode useful hacks. See

{user-obsequious}, {drool-proof paper}, {WIMP environment},

{for the rest of us}.

:mess-dos: /mes-dos/ n. Derisory term for MS-DOS. Often followed

by the ritual banishing "Just say No!" See {{MS-DOS}}. Most

hackers (even many MS-DOS hackers) loathe MS-DOS for its

single-tasking nature, its limits on application size, its nasty

primitive interface, and its ties to IBMness (see {fear and

loathing}). Also `mess-loss', `messy-dos', `mess-dog',

`mess-dross', `mush-dos', and various combinations thereof. In

Ireland and the U.K. it is even sometimes called `Domestos' after a

brand of toilet cleanser.

:meta: /me't*/ or /may't*/ or (Commonwealth) /mee't*/ [from

analytic philosophy] adj.,pref. One level of description up. A

metasyntactic variable is a variable in notation used to describe

syntax, and meta-language is language used to describe language.

This is difficult to explain briefly, but much hacker humor turns

on deliberate confusion between meta-levels. See {{Humor,

Hacker}}.

:meta bit: n. The top bit of an 8-bit character, which is on in

character values 128--255. Also called {high bit}, {alt bit},

or {hobbit}. Some terminals and consoles (see {space-cadet

keyboard}) have a META shift key. Others (including,

*mirabile dictu*, keyboards on IBM PC-class machines) have an

ALT key. See also {bucky bits}.

Historical note: although in modern usage shaped by a universe of

8-bit bytes the meta bit is invariably hex 80 (octal 0200), things

were different on earlier machines with 36-bit words and 9-bit

bytes. The MIT and Stanford keyboards (see {space-cadet

keyboard}) generated hex 100 (octal 400) from their meta keys.

:metasyntactic variable: n. A name used in examples and understood

to stand for whatever thing is under discussion, or any random

member of a class of things under discussion. The word {foo} is

the {canonical} example. To avoid confusion, hackers never

(well, hardly ever) use `foo' or other words like it as permanent

names for anything. In filenames, a common convention is that any

filename beginning with a metasyntactic-variable name is a

{scratch} file that may be deleted at any time.

To some extent, the list of one's preferred metasyntactic variables

is a cultural signature. They occur both in series (used for

related groups of variables or objects) and as singletons. Here

are a few common signatures:

{foo}, {bar}, {baz}, {quux}, quuux, quuuux...:

MIT/Stanford usage, now found everywhere (thanks largely to early

versions of this lexicon!). At MIT, {baz} dropped out of use for

a while in the 1970s and '80s. A common recent mutation of this

sequence inserts {qux} before {quux}.

{foo}, {bar}, thud, grunt:

This series was popular at CMU. Other CMU-associated variables

include {gorp}.

{foo}, {bar}, fum:

This series is reported common at XEROX PARC.

{fred}, {barney}:

See the entry for {fred}. These tend to be Britishisms.

{toto}, titi, tata, tutu:

Standard series of metasyntactic variables among francophones.

{corge}, {grault}, {flarp}:

Popular at Rutgers University and among {GOSMACS} hackers.

zxc, spqr, {wombat}:

Cambridge University (England).

Of all these, only `foo' and `bar' are universal (and {baz}

nearly so). The compounds {foobar} and `foobaz' also enjoy

very wide currency.

Some jargon terms are also used as metasyntactic names; {barf}

and {mumble}, for example. See also {{Commonwealth Hackish}}

for discussion of numerous metasyntactic variables found in Great

Britain and the Commonwealth.

:MFTL: /M-F-T-L/ [abbreviation: `My Favorite Toy Language'] 1. adj.

Describes a talk on a programming language design that is heavy on

the syntax (with lots of BNF), sometimes even talks about semantics

(e.g., type systems), but rarely, if ever, has any content (see

{content-free}). More broadly applied to talks --- even when

the topic is not a programming language --- in which the subject

matter is gone into in unnecessary and meticulous detail at the

sacrifice of any conceptual content. "Well, it was a typical MFTL

talk". 2. n. Describes a language about which the developers are

passionate (often to the point of prosyletic zeal) but no one else

cares about. Applied to the language by those outside the

originating group. "He cornered me about type resolution in his

MFTL."

The first great goal in the mind of the designer of an MFTL is

usually to write a compiler for it, then bootstrap the design away

from contamination by lesser languages by writing a compiler for it

in itself. Thus, the standard put-down question at an MFTL talk is

"Has it been used for anything besides its own compiler?". On

the other hand, a language that *cannot* be used to write

its own compiler is beneath contempt. See {break-even point}.

(On a related note, Dennis Ritchie has proposed a test of the

generality and utility of a language and the operating system under

which it is compiled: "Is the output of a program compiled under

the language acceptable as input to the compiler?" In other

words, can you write programs which write programs? (see

{toolsmith}) Alarming numbers of (language, OS) pairs fail this

test, particularly when the language is Fortran; Ritchie is quick

to point out that {UNIX} (even using Fortran) passes it handily.

That the test could ever be failed is only surprising to those who

have had the good fortune only to have worked under modern systems

which lack OS-supported and -imposed "file types".)

:mickey: n. The resolution unit of mouse movement. It has been

suggested that the `disney' will become a benchmark unit for

animation graphics performance.

:mickey mouse program: n. North American equivalent of a {noddy}

(that is, trivial) program. Doesn't necessarily have the

belittling connotations of mainstream slang "Oh, that's just

mickey mouse stuff!"; sometimes trivial programs can be very

useful.

:micro-: pref. 1. Very small; this is the root of its use as a

quantifier prefix. 2. A quantifier prefix, calling for

multiplication by 10^(-6) (see {{quantifiers}}). Neither

of these uses is peculiar to hackers, but hackers tend to fling

them both around rather more freely than is countenanced in

standard English. It is recorded, for example, that one

CS professor used to characterize the standard length of his

lectures as a microcentury --- that is, about 52.6 minutes (see

also {attoparsec}, {nanoacre}, and especially

{microfortnight}). 3. Personal or human-scale --- that is,

capable of being maintained or comprehended or manipulated by one

human being. This sense is generalized from `microcomputer',

and is esp. used in contrast with `macro-' (the corresponding

Greek prefix meaning `large'). 4. Local as opposed to global (or

{macro-}). Thus a hacker might say that buying a smaller car to

reduce pollution only solves a microproblem; the macroproblem of

getting to work might be better solved by using mass transit,

moving to within walking distance, or (best of all) telecommuting.

:microfloppies: n. 3.5-inch floppies, as opposed to 5.25-inch

{vanilla} or mini-floppies and the now-obsolete 8-inch variety.

This term may be headed for obsolescence as 5.25-inchers pass out

of use, only to be revived if anybody floats a sub-3-inch floppy

standard. See {stiffy}, {minifloppies}.

:microfortnight: n. 1/1000000 of the fundamental unit of time in

the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec.

The VMS operating system has a lot of tuning parameters that you

can set with the SYSGEN utility, and one of these is

TIMEPROMPTWAIT, the time the system will wait for an operator to

set the correct date and time at boot if it realizes that the

current value is bogus. This time is specified in microfortnights!

Multiple uses of the millifortnight (about 20 minutes) and

{nanofortnight} have also been reported.

:microLenat: /mi:-kroh-len'-*t/ n. See {bogosity}.

:microReid: /mi:'kroh-reed/ n. See {bogosity}.

:Microsloth Windows: /mi:'kroh-sloth` win'dohz/ n. Hackerism for

`Microsoft Windows', a windowing system for the IBM-PC which is so

limited by bug-for-bug compatibility with {mess-dos} that it is

agonizingly slow on anything less than a fast 386. Compare {X},

{sun-stools}.

:microtape: /mi:'kroh-tayp/ n. Occasionally used to mean a

DECtape, as opposed to a {macrotape}. A DECtape is a small

reel, about 4 inches in diameter, of magnetic tape about an inch

wide. Unlike drivers for today's {macrotape}s, microtape

drivers allow random access to the data, and therefore could be

used to support file systems and even for swapping (this was

generally done purely for {hack value}, as they were far too

slow for practical use). In their heyday they were used in pretty

much the same ways one would now use a floppy disk: as a small,

portable way to save and transport files and programs. Apparently

the term `microtape' was actually the official term used within

DEC for these tapes until someone coined the word `DECtape',

which, of course, sounded sexier to the {marketroid}s; another

version of the story holds that someone discovered a conflict with

another company's `microtape' trademark.

:middle-endian: adj. Not {big-endian} or {little-endian}.

Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3,

occasionally found in the packed-decimal formats of minicomputer

manufacturers who shall remain nameless. See {NUXI problem}.

:milliLampson: /mil'*-lamp`sn/ n. A unit of talking speed,

abbreviated mL. Most people run about 200 milliLampsons. Butler

Lampson (a CS theorist and systems implementor highly regarded

among hackers) goes at 1000. A few people speak faster. This unit

is sometimes used to compare the (sometimes widely disparate) rates

at which people can generate ideas and actually emit them in

speech. For example, noted computer architect C. Gordon Bell

(designer of the PDP-11) is said, with some awe, to think at about

1200 mL but only talk at about 300; he is frequently reduced to

fragments of sentences as his mouth tries to keep up with his

speeding brain.

:minifloppies: n. 5.25-inch {vanilla} floppy disks, as opposed to

3.5-inch or {microfloppies} and the now-obsolescent 8-inch

variety. At one time, this term was a trademark of Shugart

Associates for their SA-400 minifloppy drive. Nobody paid any

attention. See {stiffy}.

:MIPS: /mips/ [abbreviation] n. 1. A measure of computing speed;

formally, `Million Instructions Per Second' (that's 10^6

per second, not 2^(20)!); often rendered by hackers as

`Meaningless Indication of Processor Speed' or in other

unflattering ways. This joke expresses a nearly universal attitude

about the value of most {benchmark} claims, said attitude being

one of the great cultural divides between hackers and

{marketroid}s. The singular is sometimes `1 MIP' even though

this is clearly etymologically wrong. See also {KIPS} and

{GIPS}. 2. Computers, especially large computers, considered

abstractly as sources of {computron}s. "This is just a

workstation; the heavy MIPS are hidden in the basement." 3. The

corporate name of a particular RISC-chip company; among other

things, they designed the processor chips used in DEC's 3100

workstation series. 4. Acronym for `Meaningless Information per

Second' (a joke, prob. from sense 1).

:misbug: /mis-buhg/ [MIT] n. An unintended property of a program

that turns out to be useful; something that should have been a

{bug} but turns out to be a {feature}. Usage: rare. Compare

{green lightning}. See {miswart}.

:misfeature: /mis-fee'chr/ or /mis'fee`chr/ n. A feature that

eventually causes lossage, possibly because it is not adequate for

a new situation which has evolved. Since it results from a

deliberate and properly-implemented feature, a misfeature is not a

bug. Nor is it a simple unforeseen side effect; the term implies

that the feature in question was carefully planned, but its

long-term consequences were not accurately or adequately predicted

(which is quite different from not having thought ahead at all). A

misfeature can be a particularly stubborn problem to resolve,

because fixing it usually involves a substantial philosophical

change to the structure of the system involved.

Many misfeatures (especially in user-interface design) arise

because the designers/implementors mistake their personal tastes

for laws of nature. Often a former feature becomes a misfeature

because a tradeoff was made whose parameters subsequently change

(possibly only in the judgment of the implementors). "Well, yeah,

it is kind of a misfeature that file names are limited to 6

characters, but the original implementors wanted to save directory

space and we're stuck with it for now."

:Missed'em-five: n. Pejorative hackerism for AT&T System V UNIX,

generally used by {BSD} partisans in a bigoted mood. (The

synonym `SysVile' is also encountered.) See {software bloat},

{Berzerkeley}.

:missile address: n. See {ICBM address}.

:miswart: /mis-wort/ [from {wart} by analogy with {misbug}] n.

A {feature} that superficially appears to be a {wart} but has been

determined to be the {Right Thing}. For example, in some versions

of the {EMACS} text editor, the `transpose characters' command

exchanges the character under the cursor with the one before it on the

screen, *except* when the cursor is at the end of a line, in

which case the two characters before the cursor are exchanged.

While this behavior is perhaps surprising, and certainly

inconsistent, it has been found through extensive experimentation

to be what most users want. This feature is a miswart.

:moby: /moh'bee/ [MIT: seems to have been in use among model

railroad fans years ago. Derived from Melville's `Moby Dick'

(some say from `Moby Pickle').] 1. adj. Large, immense, complex,

impressive. "A Saturn V rocket is a truly moby frob." "Some

MIT undergrads pulled off a moby hack at the Harvard-Yale game."

(See "{The Meaning of `Hack'}"). 2. n. obs. The

maximum address space of a machine (see below). For a 680[234]0 or

VAX or most modern 32-bit architectures, it is 4,294,967,296 8-bit

bytes (4 gigabytes). 3. A title of address (never of third-person

reference), usually used to show admiration, respect, and/or

friendliness to a competent hacker. "Greetings, moby Dave. How's

that address-book thing for the Mac going?" 4. adj. In

backgammon, doubles on the dice, as in `moby sixes', `moby

ones', etc. Compare this with {bignum} (sense 2): double sixes

are both bignums and moby sixes, but moby ones are not bignums (the

use of `moby' to describe double ones is sarcastic). Standard

emphatic forms: `Moby foo', `moby win', `moby loss'. `Foby

moo': a spoonerism due to Richard Greenblatt.

This term entered hackerdom with the Fabritek 256K memory added to

the MIT AI PDP-6 machine, which was considered unimaginably huge

when it was installed in the 1960s (at a time when a more typical

memory size for a timesharing system was 72 kilobytes). Thus, a

moby is classically 256K 36-bit words, the size of a PDP-6 or

PDP-10 moby. Back when address registers were narrow the term was

more generally useful, because when a computer had virtual memory

mapping, it might actually have more physical memory attached to it

than any one program could access directly. One could then say

"This computer has 6 mobies" meaning that the ratio of physical

memory to address space is 6, without having to say specifically

how much memory there actually is. That in turn implied that the

computer could timeshare six `full-sized' programs without having

to swap programs between memory and disk.

Nowadays the low cost of processor logic means that address spaces

are usually larger than the most physical memory you can cram onto

a machine, so most systems have much *less* than one theoretical

`native' moby of {core}. Also, more modern memory-management

techniques (esp. paging) make the `moby count' less significant.

However, there is one series of popular chips for which the term

could stand to be revived --- the Intel 8088 and 80286 with their

incredibly {brain-damaged} segmented-memory designs. On these, a

`moby' would be the 1-megabyte address span of a segment/offset

pair (by coincidence, a PDP-10 moby was exactly 1 megabyte of 9-bit

bytes).

:mod: vt.,n. 1. Short for `modify' or `modification'. Very

commonly used --- in fact the full terms are considered markers

that one is being formal. The plural `mods' is used esp. with

reference to bug fixes or minor design changes in hardware or

software, most esp. with respect to {patch} sets or a {diff}.

2. Short for {modulo} but used *only* for its techspeak sense.

:mode: n. A general state, usually used with an adjective

describing the state. Use of the word `mode' rather than

`state' implies that the state is extended over time, and

probably also that some activity characteristic of that state is

being carried out. "No time to hack; I'm in thesis mode." In its

jargon sense, `mode' is most often attributed to people, though

it is sometimes applied to programs and inanimate objects. In

particular, see {hack mode}, {day mode}, {night mode},

{demo mode}, {fireworks mode}, and {yoyo mode}; also

{talk mode}.

One also often hears the verbs `enable' and `disable' used in

connection with jargon modes. Thus, for example, a sillier way of

saying "I'm going to crash" is "I'm going to enable crash mode

now". One might also hear a request to "disable flame mode,

please".

In a usage much closer to techspeak, a mode is a special state

which certain user interfaces must pass into in order to perform

certain functions. For example, in order to insert characters into a

document in the UNIX editor `vi', one must type the "i" key,

which invokes the "Insert" command. The effect of this command

is to put vi into "insert mode", in which typing the "i" key

has a quite different effect (to wit, it inserts an "i" into the

document). One must then hit another special key, "ESC", in

order to leave "insert mode". Nowadays, moded interfaces are

generally considered {losing}, but survive in quite a few

widely-used tools built in less enlightened times.

:mode bit: n. A {flag}, usually in hardware, that selects between

two (usually quite different) modes of operation. The connotations

are different from {flag} bit in that mode bits are mainly

written during a boot or set-up phase, are seldom explicitly read,

and seldom change over the lifetime of an ordinary program. The

classic example was the EBCDIC-vs.-ASCII bit (#12) of the Program

Status Word of the IBM 360. Another was the bit on a PDP-12 that

controlled whether it ran the PDP-8 or the LINC instruction set.

:modulo: /mo'dyu-loh/ prep. Except for. An overgeneralization of

mathematical terminology; one can consider saying that

4 = 22 except for the 9s (4 = 22 mod 9). "Well,

LISP seems to work okay now, modulo that {GC} bug." "I feel

fine today modulo a slight headache."

:molly-guard: /mol'ee-gard/ [University of Illinois] n. A shield

to prevent tripping of some {Big Red Switch} by clumsy or

ignorant hands. Originally used of some plexiglass covers

improvised for the BRS on an IBM 4341 after a programmer's toddler

daughter (named Molly) frobbed it twice in one day. Later

generalized to covers over stop/reset switches on disk drives and

networking equipment.

:Mongolian Hordes technique: n. Development by {gang bang}

(poss. from the Sixties counterculture expression `Mongolian

clusterfuck' for a public orgy). Implies that large numbers of

inexperienced programmers are being put on a job better performed

by a few skilled ones. Also called `Chinese Army technique';

see also {Brooks's Law}.

:monkey up: vt. To hack together hardware for a particular task,

especially a one-shot job. Connotes an extremely {crufty} and

consciously temporary solution. Compare {hack up}, {kluge up},

{cruft together}, {cruft together}.

:monkey, scratch: n. See {scratch monkey}.

:monstrosity: 1. n. A ridiculously {elephantine} program or

system, esp. one that is buggy or only marginally functional.

2. The quality of being monstrous (see `Overgeneralization' in the

discussion of jargonification). See also {baroque}.

:Moof: /moof/ [MAC users] n. The Moof or `dogcow' is a

semi-legendary creature that lurks in the depths of the Macintosh

Technical Notes Hypercard stack V3.1; specifically, the full story

of the dogcow is told in technical note #31 (the particular Moof

illustrated is properly named `Clarus'). Option-shift-click will

cause it to emit a characteristic `Moof!' or `!fooM' sound.

*Getting* to tech note 31 is the hard part; to discover how

to do that, one must needs examine the stack script with a hackerly

eye. Clue: {rot13} is involved. A dogcow also appears if you

choose `Page Setup...' with a LaserWriter selected and click on

the `Options' button.

:Moore's Law: /morz law/ prov. The observation that the logic

density of silicon integrated circuits has closely followed the

curve (bits per square inch) = 2^((n - 1962)); that is, the

amount of information storable in one square inch of silicon has

roughly doubled yearly every year since the technology was

invented. See also {Parkinson's Law of Data}.

:moose call, the: n. See {whalesong}.

:moria: /mor'ee-*/ n. Like {nethack} and {rogue}, one of the

large PD Dungeons-and-Dragons-like simulation games, available for

a wide range of machines and operating systems. Extremely

addictive and a major consumer of time better used for hacking.

:MOTAS: /moh-toz/ [USENET: Member Of The Appropriate Sex, after

{MOTOS} and {MOTSS}] n. A potential or (less often) actual sex

partner. See also {SO}.

:MOTOS: /moh-tohs/ [acronym from the 1970 U.S. census forms via

USENET: Member Of The Opposite Sex] n. A potential or (less often)

actual sex partner. See {MOTAS}, {MOTSS}, {SO}. Less

common than MOTSS or {MOTAS}, which have largely displaced it.

:MOTSS: /mots/ or /M-O-T-S-S/ [from the 1970 U.S. census forms

via USENET, Member Of The Same Sex] n. Esp. one considered as a

possible sexual partner. The gay-issues newsgroup on USENET is

called soc.motss. See {MOTOS} and {MOTAS}, which derive

from it. Also see {SO}.

:mouse ahead: vi. Point-and-click analog of `type ahead'. To

manipulate a computer's pointing device (almost always a mouse in

this usage, but not necessarily) and its selection or command

buttons before a computer program is ready to accept such input, in

anticipation of the program accepting the input. Handling this

properly is rare, but it can help make a {WIMP environment} much

more usable, assuming the users are familiar with the behavior of

the user interface.

:mouse around: vi. To explore public portions of a large system, esp.

a network such as Internet via {FTP} or {TELNET}, looking for

interesting stuff to {snarf}.

:mouse belt: n. See {rat belt}.

:mouse droppings: [MS-DOS] n. Pixels (usually single) that are not

properly restored when the mouse pointer moves away from a

particular location on the screen, producing the appearance that

the mouse pointer has left droppings behind. The major causes for

this problem are programs that write to the screen memory

corresponding to the mouse pointer's current location without

hiding the mouse pointer first, and mouse drivers that do not quite

support the graphics mode in use.

:mouse elbow: n. A tennis-elbow-like fatigue syndrome resulting from

excessive use of a {WIMP environment}. Similarly, `mouse

shoulder'; GLS reports that he used to get this a lot before he

taught himself to be ambimoustrous.

:mouso: /mow'soh/ n. [by analogy with `typo'] An error in mouse usage

resulting in an inappropriate selection or graphic garbage on the

screen. Compare {thinko}, {braino}.

:MS-DOS:: /M-S-dos/ [MicroSoft Disk Operating System] n. A

{clone} of {{CP/M}} for the 8088 crufted together in 6 weeks by

hacker Tim Paterson, who is said to have regretted it ever since.

Numerous features, including vaguely UNIX-like but rather broken

support for subdirectories, I/O redirection, and pipelines, were

hacked into 2.0 and subsequent versions; as a result, there are two

or more incompatible versions of many system calls, and MS-DOS

programmers can never agree on basic things like what character to

use as an option switch or whether to be case-sensitive. The

resulting mess is now the highest-unit-volume OS in history. Often

known simply as DOS, which annoys people familiar with other

similarly abbreviated operating systems (the name goes back to the

mid-1960s, when it was attached to IBM's first disk operating

system for the 360). The name further annoys those who know what

the term {operating system} does (or ought to) connote; DOS is

more properly a set of relatively simple interrupt services. Some

people like to pronounce DOS like "dose", as in "I don't work on

dose, man!", or to compare it to a dose of brain-damaging drugs

(a slogan button in wide circulation among hackers exhorts:

"MS-DOS: Just say No!"). See {mess-dos}, {ill-behaved}.

:mu: /moo/ The correct answer to the classic trick question

"Have you stopped beating your wife yet?". Assuming that you

have no wife or you have never beaten your wife, the answer "yes"

is wrong because it implies that you used to beat your wife and

then stopped, but "no" is worse because it suggests that you have

one and are still beating her. According to various Discordians

and Douglas Hofstadter (see the Bibliography in {appendix C}),

the correct answer is usually "mu", a Japanese word alleged to

mean "Your question cannot be answered because it depends on

incorrect assumptions". Hackers tend to be sensitive to logical

inadequacies in language, and many have adopted this suggestion

with enthusiasm. The word `mu' is actually from Chinese, meaning

`nothing'; it is used in mainstream Japanese in that sense, but

native speakers do not recognize the Discordian question-denying

use. It almost certainly derives from overgeneralization of the

answer in the following well-known Rinzei Zen teaching riddle:

A monk asked Joshu, "Does a dog have the Buddha nature?"

Joshu retorted, "Mu!"

See also {has the X nature}, {AI Koans}, and Douglas

Hofstadter's `G"odel, Escher, Bach: An Eternal Golden Braid'

(pointer in the Bibliography in appendix C).

:MUD: /muhd/ [acronym, Multi-User Dungeon; alt. Multi-User

Dimension] 1. n. A class of {virtual reality} experiments

accessible via the Internet. These are real-time chat forums with

structure; they have multiple `locations' like an adventure game,

and may include combat, traps, puzzles, magic, a simple economic

system, and the capability for characters to build more structure

onto the database that represents the existing world. 2. vi. To

play a MUD (see {hack-and-slay}). The acronym MUD is often

lowercased and/or verbed; thus, one may speak of `going

mudding', etc.

Historically, MUDs (and their more recent progeny with names of MU-

form) derive from a hack by Richard Bartle and Roy Trubshaw on the

University of Essex's DEC-10 in the early 1980s; descendants of

that game still exist today (see {BartleMUD}). There is a

widespread myth (repeated, unfortunately, by earlier versions of

this lexicon) that the name MUD was trademarked to the commercial

MUD run by Bartle on British Telecom (the motto: "You haven't

*lived* 'til you've *died* on MUD!"); however, this is

false --- Richard Bartle explicitly placed `MUD' in PD in 1985. BT

was upset at this, as they had already printed trademark claims on

some maps and posters, which were released and created the

myth.

Students on the European academic networks quickly improved on the

MUD concept, spawning several new MUDs (VAXMUD, AberMUD, LPMUD).

Many of these had associated bulletin-board systems for social

interaction. Because these had an image as `research' they

often survived administrative hostility to BBSs in general. This,

together with the fact that USENET feeds have been spotty and

difficult to get in the U.K., made the MUDs major foci of hackish

social interaction there.

AberMUD and other variants crossed the Atlantic around 1988 and

quickly gained popularity in the U.S.; they became nuclei for large

hacker communities with only loose ties to traditional hackerdom

(some observers see parallels with the growth of USENET in the

early 1980s). The second wave of MUDs (TinyMUD and variants)

tended to emphasize social interaction, puzzles, and cooperative

world-building as opposed to combat and competition. In 1991, over

50% of MUD sites are of a third major variety, LPMUD, which

synthesizes the combat/puzzle aspects of AberMUD and older systems

with the extensibility of TinyMud. The trend toward greater

programmability and flexibility will doubtless continue.

The state of the art in MUD design is still moving very rapidly,

with new simulation designs appearing (seemingly) every month.

There is now (early 1991) a move afoot to deprecate the term

{MUD} itself, as newer designs exhibit an exploding variety of

names corresponding to the different simulation styles being

explored. See also {BartleMUD}, {berserking}, {bonk/oif},

{brand brand brand}, {FOD}, {hack-and-slay}, {link-dead},

{mudhead}, {posing}, {talk mode}, {tinycrud}.

:muddie: n. Syn. {mudhead}. More common in Great Britain, possibly

because system administrators there like to mutter "bloody

muddies" when annoyed at the species.

:mudhead: n. Commonly used to refer to a {MUD} player who eats,

sleeps, and breathes MUD. Mudheads have been known to fail their

degrees, drop out, etc., with the consolation, however, that they

made wizard level. When encountered in person, on a MUD, or in a

chat system, all a mudhead will talk about is three topics: the

tactic, character, or wizard that is supposedly always unfairly

stopping him/her from becoming a wizard or beating a favorite MUD;

why the specific game he/she has experience with is so much better

than any other, and the MUD he or she is writing or going to write

because his/her design ideas are so much better than in any

existing MUD. See also {wannabee}.

:multician: /muhl-ti'shn/ [coined at Honeywell, ca. 1970] n.

Competent user of {{Multics}}. Perhaps oddly, no one has ever

promoted the analogous `Unician'.

:Multics:: /muhl'tiks/ n. [from "MULTiplexed Information and

Computing Service"] An early (late 1960s) timesharing operating

system co-designed by a consortium including MIT, GE, and Bell

Laboratories. Very innovative for its time --- among other things,

it introduced the idea of treating all devices uniformly as special

files. All the members but GE eventually pulled out after

determining that {second-system effect} had bloated Multics to

the point of practical unusability (the `lean' predecessor in

question was {CTSS}). Honeywell commercialized Multics after

buying out GE's computer group, but it was never very successful

(among other things, on some versions one was commonly required to

enter a password to log out). One of the developers left in the

lurch by the project's breakup was Ken Thompson, a circumstance

which led directly to the birth of {{UNIX}}. For this and other

reasons, aspects of the Multics design remain a topic of occasional

debate among hackers. See also {brain-damaged} and {GCOS}.

:multitask: n. Often used of humans in the same meaning it has for

computers, to describe a person doing several things at once (but

see {thrash}). The term `multiplex', from communications

technology (meaning to handle more than one channel at the same

time), is used similarly.

:mumblage: /muhm'bl*j/ n. The topic of one's mumbling (see

{mumble}). "All that mumblage" is used like "all that

stuff" when it is not quite clear how the subject of discussion

works, or like "all that crap" when `mumble' is being used as

an implicit replacement for pejoratives.

:mumble: interj. 1. Said when the correct response is too

complicated to enunciate, or the speaker has not thought it out.

Often prefaces a longer answer, or indicates a general reluctance

to get into a long discussion. "Don't you think that we could

improve LISP performance by using a hybrid reference-count

transaction garbage collector, if the cache is big enough and there

are some extra cache bits for the microcode to use?" "Well,

mumble ... I'll have to think about it." 2. Sometimes used as

an expression of disagreement. "I think we should buy a

{VAX}." "Mumble!" Common variant: `mumble frotz' (see

{frotz}; interestingly, one does not say `mumble frobnitz'

even though `frotz' is short for `frobnitz'). 3. Yet another

{metasyntactic variable}, like {foo}. 4. When used as a question

("Mumble?") means "I didn't understand you". 5. Sometimes used

in `public' contexts on-line as a placefiller for things one is

barred from giving details about. For example, a poster with

pre-released hardware in his machine might say "Yup, my machine

now has an extra 16M of memory, thanks to the card I'm testing for

Mumbleco." 6. A conversational wild card used to designate

something one doesn't want to bother spelling out, but which can be

{glark}ed from context. Compare {blurgle}. 7. [XEROX PARC]

A colloquialism used to suggest that further discussion would be

fruitless.

:munch: [often confused with {mung}, q.v.] vt. To transform

information in a serial fashion, often requiring large amounts of

computation. To trace down a data structure. Related to {crunch}

and nearly synonymous with {grovel}, but connotes less pain.

:munching: n. Exploration of security holes of someone else's

computer for thrills, notoriety, or to annoy the system manager.

Compare {cracker}. See also {hacked off}.

:munching squares: n. A {display hack} dating back to the PDP-1

(ca. 1962, reportedly discovered by Jackson Wright), which employs

a trivial computation (repeatedly plotting the graph Y = X XOR T

for successive values of T --- see {HAKMEM} items 146--148) to

produce an impressive display of moving and growing squares that

devour the screen. The initial value of T is treated as a

parameter, which, when well-chosen, can produce amazing effects.

Some of these, later (re)discovered on the LISP machine, have been

christened `munching triangles' (try AND for XOR and toggling

points instead of plotting them), `munching w's', and `munching

mazes'. More generally, suppose a graphics program produces an

impressive and ever-changing display of some basic form, foo, on a

display terminal, and does it using a relatively simple program;

then the program (or the resulting display) is likely to be

referred to as `munching foos'. [This is a good example of the

use of the word {foo} as a {metasyntactic variable}.]

:munchkin: /muhnch'kin/ [from the squeaky-voiced little people in

L. Frank Baum's `The Wizard of Oz'] n. A teenage-or-younger micro

enthusiast hacking BASIC or something else equally constricted. A

term of mild derision --- munchkins are annoying but some grow up

to be hackers after passing through a {larval stage}. The term

{urchin} is also used. See also {wannabee}, {bitty box}.

:mundane: [from SF fandom] n. 1. A person who is not in science

fiction fandom. 2. A person who is not in the computer industry.

In this sense, most often an adjectival modifier as in "in my

mundane life...." See also {Real World}.

:mung: /muhng/ alt. `munge' /muhnj/ [in 1960 at MIT, `Mash

Until No Good'; sometime after that the derivation from the

{{recursive acronym}} `Mung Until No Good' became standard] vt.

1. To make changes to a file, esp. large-scale and irrevocable

changes. See {BLT}. 2. To destroy, usually accidentally,

occasionally maliciously. The system only mungs things

maliciously; this is a consequence of {Finagle's Law}. See

{scribble}, {mangle}, {trash}, {nuke}. Reports from

{USENET} suggest that the pronunciation /muhnj/ is now usual

in speech, but the spelling `mung' is still common in program

comments (compare the widespread confusion over the proper spelling

of {kluge}). 3. The kind of beans of which the sprouts are used

in Chinese food. (That's their real name! Mung beans! Really!)

Like many early hacker terms, this one seems to have originated at

{TMRC}; it was already in use there in 1958. Peter Samson

(compiler of the TMRC lexicon) thinks it may originally have been

onomatopoeic for the sound of a relay spring (contact) being

twanged.

:Murphy's Law: prov. The correct, *original* Murphy's Law

reads: "If there are two or more ways to do something, and one of

those ways can result in a catastrophe, then someone will do it."

This is a principle of defensive design, cited here because it is

usually given in mutant forms less descriptive of the challenges of

design for lusers. For example, you don't make a two-pin plug

symmetrical and then label it `THIS WAY UP'; if it matters which

way it is plugged in, then you make the design asymmetrical (see

also the anecdote under {magic smoke}).

Edward A. Murphy, Jr. was one of the engineers on the rocket-sled

experiments that were done by the U.S. Air Force in 1949 to test

human acceleration tolerances (USAF project MX981). One experiment

involved a set of 16 accelerometers mounted to different parts of

the subject's body. There were two ways each sensor could be glued

to its mount, and somebody methodically installed all 16 the wrong

way around. Murphy then made the original form of his

pronouncement, which the test subject (Major John Paul Stapp)

quoted at a news conference a few days later.

Within months `Murphy's Law' had spread to various technical

cultures connected to aerospace engineering. Before too many years

had gone by variants had passed into the popular imagination,

changing as they went. Most of these are variants on "Anything

that can go wrong, will"; this is sometimes referred to as

{Finagle's Law}. The memetic drift apparent in these mutants

clearly demonstrates Murphy's Law acting on itself!

:music:: n. A common extracurricular interest of hackers (compare

{{science-fiction fandom}}, {{oriental food}}; see also

{filk}). Hackish folklore has long claimed that musical and

programming abilities are closely related, and there has been at

least one large-scale statistical study that supports this.

Hackers, as a rule, like music and often develop musical

appreciation in unusual and interesting directions. Folk music is

very big in hacker circles; so is electronic music, and the sort of

elaborate instrumental jazz/rock that used to be called

`progressive' and isn't recorded much any more. The hacker's

musical range tends to be wide; many can listen with equal

appreciation to (say) Talking Heads, Yes, Gentle Giant, Spirogyra,

Scott Joplin, Tangerine Dream, King Sunny Ade, The Pretenders, or

Bach's Brandenburg Concerti. It is also apparently true that

hackerdom includes a much higher concentration of talented amateur

musicians than one would expect from a similar-sized control group

of {mundane} types.

:mutter: vt. To quietly enter a command not meant for the ears, eyes,

or fingers of ordinary mortals. Often used in `mutter an

{incantation}'. See also {wizard}.

= N =

=====

:N: /N/ quant. 1. A large and indeterminate number of objects:

"There were N bugs in that crock!" Also used in its

original sense of a variable name: "This crock has N bugs,

as N goes to infinity." (The true number of bugs is always

at least N + 1.) 2. A variable whose value is inherited

from the current context. For example, when a meal is being

ordered at a restaurant, N may be understood to mean however

many people there are at the table. From the remark "We'd like to

order N wonton soups and a family dinner

for N - 1" you can deduce that one person at the table

wants to eat only soup, even though you don't know how many people

there are (see {great-wall}). 3. `Nth': adj. The

ordinal counterpart of N, senses 1 and 2. "Now for the

Nth and last time..." In the specific context

"Nth-year grad student", N is generally assumed to

be at least 4, and is usually 5 or more (see {tenured graduate

student}). See also {{random numbers}}, {two-to-the-N}.

:nadger: /nad'jr/ [Great Britain] v. Of software or hardware (not

people), to twiddle some object in a hidden manner, generally so

that it conforms better to some format. For instance, string

printing routines on 8-bit processors often take the string text

from the instruction stream, thus a print call looks like `jsr

print:"Hello world"'. The print routine has to `nadger' the

return instruction pointer so that the processor doesn't try to

execute the text as instructions.

:nailed to the wall: [like a trophy] adj. Said of a bug finally

eliminated after protracted, and even heroic, effort.

:nailing jelly: vi. See {like nailing jelly to a tree}.

:na"ive: adj. Untutored in the perversities of some particular

program or system; one who still tries to do things in an intuitive

way, rather than the right way (in really good designs these

coincide, but most designs aren't `really good' in the

appropriate sense). This is completely unrelated to general

maturity or competence, or even competence at any other specific

program. It is a sad commentary on the primitive state of

computing that the natural opposite of this term is often claimed

to be `experienced user' but is really more like `cynical

user'.

:na"ive user: n. A {luser}. Tends to imply someone who is

ignorant mainly owing to inexperience. When this is applied to

someone who *has* experience, there is a definite implication

of stupidity.

:NAK: /nak/ [from the ASCII mnemonic for 0010101] interj.

1. On-line joke answer to {ACK}?: "I'm not here."

2. On-line answer to a request for chat: "I'm not available."

3. Used to politely interrupt someone to tell them you don't

understand their point or that they have suddenly stopped making

sense. See {ACK}, sense 3. "And then, after we recode the

project in COBOL...." "Nak, Nak, Nak! I thought I heard you

say COBOL!"

:nano: /nan'oh/ [CMU: from `nanosecond'] n. A brief period of

time. "Be with you in a nano" means you really will be free

shortly, i.e., implies what mainstream people mean by "in a

jiffy" (whereas the hackish use of `jiffy' is quite different ---

see {jiffy}).

:nano-: [SI: the next quantifier below {micro-}; meaning *

10^(-9)] pref. Smaller than {micro-}, and used in the same rather

loose and connotative way. Thus, one has {{nanotechnology}}

(coined by hacker K. Eric Drexler) by analogy with

`microtechnology'; and a few machine architectures have a

`nanocode' level below `microcode'. Tom Duff at Bell Labs has

also pointed out that "Pi seconds is a nanocentury".

See also {{quantifiers}}, {pico-}, {nanoacre}, {nanobot},

{nanocomputer}, {nanofortnight}.

:nanoacre: /nan'oh-ay`kr/ n. A unit (about 2 mm square) of real

estate on a VLSI chip. The term gets its giggle value from the

fact that VLSI nanoacres have costs in the same range as real acres

once one figures in design and fabrication-setup costs.

:nanobot: /nan'oh-bot/ n. A robot of microscopic proportions,

presumably built by means of {{nanotechnology}}. As yet, only

used informally (and speculatively!). Also called a `nanoagent'.

:nanocomputer: /nan'oh-k*m-pyoo'tr/ n. A computer whose switching

elements are molecular in size. Designs for mechanical

nanocomputers which use single-molecule sliding rods for their

logic have been proposed. The controller for a {nanobot} would be

a nanocomputer.

:nanofortnight: [Adelaide University] n. 1 fortnight * 10^-9,

or about 1.2 msec. This unit was used largely by students doing

undergraduate practicals. See {microfortnight}, {attoparsec},

and {micro-}.

:nanotechnology:: /nan'-oh-tek-no`l*-jee/ n. A hypothetical

fabrication technology in which objects are designed and built with

the individual specification and placement of each separate atom.

The first unequivocal nanofabrication experiments are taking place

now (1990), for example with the deposition of individual xenon

atoms on a nickel substrate to spell the logo of a certain very

large computer company. Nanotechnology has been a hot topic in the

hacker subculture ever since the term was coined by K. Eric Drexler

in his book `Engines of Creation', where he predicted that

nanotechnology could give rise to replicating assemblers,

permitting an exponential growth of productivity and personal

wealth. See also {blue goo}, {gray goo}, {nanobot}.

:nasal demons: n. During a discussion on the USENET group

comp.std.c in early 1992, a regular remarked "When the

compiler encounters [a given undefined construct] it is legal for

it to make demons fly out of your nose" (the implication is that

it may choose any arbitrarily bizarre way to interpret the code

without violating the ANSI C standard). Someone else followed up with a

reference to "nasal demons", which became recognized shorthand on

that group for any unexpected behaviour of a C compiler on

encountering an undefined construct.

:nastygram: /nas'tee-gram/ n. 1. A protocol packet or item of

email (the latter is also called a {letterbomb}) that takes

advantage of misfeatures or security holes on the target system to

do untoward things. 2. Disapproving mail, esp. from a

{net.god}, pursuant to a violation of {netiquette} or a

complaint about failure to correct some mail- or news-transmission

problem. Compare {shitogram}. 3. A status report from an

unhappy, and probably picky, customer. "What'd Corporate say in

today's nastygram?" 4. [deprecated] An error reply by mail from a

{daemon}; in particular, a {bounce message}.

:Nathan Hale: n. An asterisk (see also {splat}, {{ASCII}}). Oh,

you want an etymology? Notionally, from "I regret that I have only

one asterisk for my country!", a misquote of the famous remark

uttered by Nathan Hale just before he was hanged. Hale was a

(failed) spy for the rebels in the American War of Independence.

:nature: n. See {has the X nature}.

:neat hack: n. 1. A clever technique. 2. A brilliant practical

joke, where neatness is correlated with cleverness, harmlessness,

and surprise value. Example: the Caltech Rose Bowl card display

switch (see "{The Meaning of `Hack'}", appendix A). See

also {hack}.

:neats vs. scruffies: n. The label used to refer to one of the

continuing {holy wars} in AI research. This conflict tangles

together two separate issues. One is the relationship between

human reasoning and AI; `neats' tend to try to build systems

that `reason' in some way identifiably similar to the way humans

report themselves as doing, while `scruffies' profess not to

care whether an algorithm resembles human reasoning in the least as

long as it works. More importantly, `neats' tend to believe

that logic is king, while `scruffies' favor looser, more ad-hoc

methods driven by empirical knowledge. To a `neat',

`scruffy' methods appear promiscuous and successful only by

accident; to a `scruffy', `neat' methods appear to be hung up

on formalism and irrelevant to the hard-to-capture `common

sense' of living intelligences.

:neep-neep: /neep neep/ [onomatopoeic, from New York SF fandom] n.

One who is fascinated by computers. More general than {hacker},

as it need not imply more skill than is required to boot games on a

PC. The derived noun `neep-neeping' applies specifically to

the long conversations about computers that tend to develop in the

corners at most SF-convention parties. Fandom has a related

proverb to the effect that "Hacking is a conversational black

hole!".

:neophilia: /nee`oh-fil'-ee-*/ n. The trait of being excited and

pleased by novelty. Common trait of most hackers, SF fans, and

members of several other connected leading-edge subcultures,

including the pro-technology `Whole Earth' wing of the ecology

movement, space activists, many members of Mensa, and the

Discordian/neo-pagan underground. All these groups overlap heavily

and (where evidence is available) seem to share characteristic

hacker tropisms for science fiction, {{music}}, and {{oriental

food}}.

:net.-: /net dot/ pref. [USENET] Prefix used to describe people and

events related to USENET. From the time before the {Great

Renaming}, when most non-local newsgroups had names beginning

`net.'. Includes {net.god}s, `net.goddesses' (various

charismatic net.women with circles of on-line admirers),

`net.lurkers' (see {lurker}), `net.person',

`net.parties' (a synonym for {boink}, sense 2), and

many similar constructs. See also {net.police}.

:net.god: /net god/ n. Used to refer to anyone who satisfies some

combination of the following conditions: has been visible on USENET

for more than 5 years, ran one of the original backbone sites,

moderated an important newsgroup, wrote news software, or knows

Gene, Mark, Rick, Mel, Henry, Chuq, and Greg personally. See

{demigod}. Net.goddesses such as Rissa or the Slime Sisters have

(so far) been distinguished more by personality than by authority.

:net.personality: /net per`sn-al'-*-tee/ n. Someone who has made a name

for him or herself on {USENET}, through either longevity or

attention-getting posts, but doesn't meet the other requirements of

{net.god}hood.

:net.police: /net-p*-lees'/ n. (var. `net.cops') Those USENET

readers who feel it is their responsibility to pounce on and

{flame} any posting which they regard as offensive or in

violation of their understanding of {netiquette}. Generally

used sarcastically or pejoratively. Also spelled `net police'.

See also {net.-}, {code police}.

:NetBOLLIX: [from bollix: to bungle] n. {IBM}'s NetBIOS, an

extremely {brain-damaged} network protocol which, like {Blue

Glue}, is used at commercial shops that don't know any better.

:netburp: [IRC] n. When {netlag} gets really bad, and delays

between servers exceed a certain threshhold, the {IRC} network

effectively becomes partitioned for a period of time, and large

numbers of people seem to be signing off at the same time and then

signing back on again when things get better. An instance of this

is called a `netburp' (or, sometimes, {netsplit}).

:netdead: [IRC] n. The state of someone who signs off {IRC},

perhaps during a {netburp}, and doesn't sign back on until

later. In the interim, he is "dead to the net".

:nethack: /net'hak/ [UNIX] n. A dungeon game similar to

{rogue} but more elaborate, distributed in C source over

{USENET} and very popular at UNIX sites and on PC-class machines

(nethack is probably the most widely distributed of the freeware

dungeon games). The earliest versions, written by Jay Fenlason and

later considerably enhanced by Andries Brouwer, were simply called

`hack'. The name changed when maintenance was taken over by a

group of hackers originally organized by Mike Stephenson; the

current contact address (as of mid-1991) is

nethack-bugs@linc.cis.upenn.edu.

:netiquette: /net'ee-ket/ or /net'i-ket/ [portmanteau from "network

etiquette"] n. Conventions of politeness recognized on {USENET},

such as avoidance of cross-posting to inappropriate groups or

refraining from commercial pluggery on the net.

:netlag: [IRC, MUD] n. A condition that occurs when the delays in

the {IRC} network or on a {MUD} become severe enough that

servers briefly lose and then reestablish contact, causing messages

to be delivered in bursts, often with delays of up to a minute.

(Note that this term has nothing to do with mainstream "jetlag",

a condition which hackers tend not to be much bothered by.)

:netnews: /net'n[y]ooz/ n. 1. The software that makes {USENET}

run. 2. The content of USENET. "I read netnews right after my

mail most mornings."

:netrock: /net'rok/ [IBM] n. A {flame}; used esp. on VNET,

IBM's internal corporate network.

:netsplit: n. Syn. {netburp}.

:netter: n. 1. Loosely, anyone with a {network address}. 2. More

specifically, a {USENET} regular. Most often found in the

plural. "If you post *that* in a technical group, you're

going to be flamed by angry netters for the rest of time!"

:network address: n. (also `net address') As used by hackers,

means an address on `the' network (see {network, the}; this is

almost always a {bang path} or {{Internet address}}). Such an

address is essential if one wants to be to be taken seriously by

hackers; in particular, persons or organizations that claim to

understand, work with, sell to, or recruit from among hackers but

*don't* display net addresses are quietly presumed to be

clueless poseurs and mentally flushed (see {flush}, sense 4).

Hackers often put their net addresses on their business cards and

wear them prominently in contexts where they expect to meet other

hackers face-to-face (see also {{science-fiction fandom}}). This

is mostly functional, but is also a signal that one identifies with

hackerdom (like lodge pins among Masons or tie-dyed T-shirts among

Grateful Dead fans). Net addresses are often used in email text as

a more concise substitute for personal names; indeed, hackers may

come to know each other quite well by network names without ever

learning each others' `legal' monikers. See also {sitename},

{domainist}.

:network meltdown: n. A state of complete network overload; the

network equivalent of {thrash}ing. This may be induced by a

{Chernobyl packet}. See also {broadcast storm}, {kamikaze

packet}.

:network, the: n. 1. The union of all the major noncommercial,

academic, and hacker-oriented networks, such as Internet, the old

ARPANET, NSFnet, {BITNET}, and the virtual UUCP and {USENET}

`networks', plus the corporate in-house networks and commercial

time-sharing services (such as CompuServe) that gateway to them. A

site is generally considered `on the network' if it can be reached

through some combination of Internet-style (@-sign) and UUCP

(bang-path) addresses. See {bang path}, {{Internet address}},

{network address}. 2. A fictional conspiracy of libertarian

hacker-subversives and anti-authoritarian monkeywrenchers described

in Robert Anton Wilson's novel `Schr"odinger's Cat', to which

many hackers have subsequently decided they belong (this is an

example of {ha ha only serious}).

In sense 1, `network' is often abbreviated to `net'. "Are

you on the net?" is a frequent question when hackers first meet

face to face, and "See you on the net!" is a frequent goodbye.

:New Jersey: [primarily Stanford/Silicon Valley] adj. Brain-damaged

or of poor design. This refers to the allegedly wretched quality

of such software as C, C++, and UNIX (which originated at Bell Labs

in Murray Hill, New Jersey). "This compiler bites the bag, but

what can you expect from a compiler designed in New Jersey?"

Compare {Berkeley Quality Software}. See also {UNIX

conspiracy}.

:New Testament: n. [C programmers] The second edition of K&R's

`The C Programming Language' (Prentice-Hall, 1988; ISBN

0-13-110362-8), describing ANSI Standard C. See {K&R}.

:newbie: /n[y]oo'bee/ n. [orig. from British public-school and

military slang variant of `new boy'] A USENET neophyte.

This term surfaced in the {newsgroup} talk.bizarre but is

now in wide use. Criteria for being considered a newbie vary

wildly; a person can be called a newbie in one newsgroup while

remaining a respected regular in another. The label `newbie'

is sometimes applied as a serious insult to a person who has been

around USENET for a long time but who carefully hides all evidence

of having a clue. See {BIFF}.

:newgroup wars: /n[y]oo'groop wohrz/ [USENET] n. The salvos of dueling

`newgroup' and `rmgroup' messages sometimes exchanged by

persons on opposite sides of a dispute over whether a {newsgroup}

should be created net-wide. These usually settle out within a week

or two as it becomes clear whether the group has a natural

constituency (usually, it doesn't). At times, especially in the

completely anarchic alt hierarchy, the names of newsgroups

themselves become a form of comment or humor; e.g., the spinoff of

alt.swedish.chef.bork.bork.bork from alt.tv.muppets in

early 1990, or any number of specialized abuse groups named after

particularly notorious {flamer}s, e.g., alt.weemba.

:newline: /n[y]oo'li:n/ n. 1. [techspeak, primarily UNIX] The

ASCII LF character (0001010), used under {{UNIX}} as a text line

terminator. A Bell-Labs-ism rather than a Berkeleyism;

interestingly (and unusually for UNIX jargon), it is said to have

originally been an IBM usage. (Though the term `newline' appears

in ASCII standards, it never caught on in the general computing

world before UNIX). 2. More generally, any magic character,

character sequence, or operation (like Pascal's writeln procedure)

required to terminate a text record or separate lines. See

{crlf}, {terpri}.

:NeWS: /nee'wis/, /n[y]oo'is/ or /n[y]ooz/ [acronym; the

`Network Window System'] n. The road not taken in window systems,

an elegant {PostScript}-based environment that would almost certainly

have won the standards war with {X} if it hadn't been

{proprietary} to Sun Microsystems. There is a lesson here that

too many software vendors haven't yet heeded. Many hackers insist

on the two-syllable pronunciations above as a way of distinguishing

NeWS from {news} (the {netnews} software).

:news: n. See {netnews}.

:newsfroup: // [USENET] n. Silly synonym for {newsgroup},

originally a typo but now in regular use on USENET's talk.bizarre

and other lunatic-fringe groups. Compare {hing} and {filk}.

:newsgroup: [USENET] n. One of {USENET}'s huge collection of

topic groups or {fora}. Usenet groups can be `unmoderated'

(anyone can post) or `moderated' (submissions are automatically

directed to a moderator, who edits or filters and then posts the

results). Some newsgroups have parallel {mailing list}s for

Internet people with no netnews access, with postings to the group

automatically propagated to the list and vice versa. Some

moderated groups (especially those which are actually gatewayed

Internet mailing lists) are distributed as `digests', with groups

of postings periodically collected into a single large posting with

an index.

Among the best-known are comp.lang.c (the C-language forum),

comp.arch (on computer architectures), comp.unix.wizards

(for UNIX wizards), rec.arts.sf-lovers (for science-fiction

fans), and talk.politics.misc (miscellaneous political

discussions and {flamage}).

:nick: [IRC] n. Short for nickname. On {IRC}, every user must

pick a nick, which is sometimes the same as the user's real name or

login name, but is often more fanciful.

:nickle: /ni'kl/ [from `nickel', common name for the U.S.

5-cent coin] n. A {nybble} + 1; 5 bits. Reported among

developers for Mattel's GI 1600 (the Intellivision games

processor), a chip with 16-bit-wide RAM but 10-bit-wide ROM. See

also {deckle}.

:night mode: n. See {phase} (of people).

:Nightmare File System: n. Pejorative hackerism for Sun's Network

File System (NFS). In any nontrivial network of Suns where there

is a lot of NFS cross-mounting, when one Sun goes down, the others

often freeze up. Some machine tries to access the down one, and

(getting no response) repeats indefinitely. This causes it to

appear dead to some messages (what is actually happening is that it

is locked up in what should have been a brief excursion to a higher

{spl} level). Then another machine tries to reach either the

down machine or the pseudo-down machine, and itself becomes

pseudo-down. The first machine to discover the down one is now

trying both to access the down one and to respond to the

pseudo-down one, so it is even harder to reach. This situation

snowballs very fast, and soon the entire network of machines is

frozen --- worst of all, the user can't even abort the file access

that started the problem! Many of NFS'es problems are excused by

partisans as being an inevitable result of its statelessness, which

is held to be a great feature (critics, of course, call it a great

{misfeature}). (ITS partisans are apt to cite this as proof of

UNIX's alleged bogosity; ITS had a working NFS-like shared file

system with none of these problems in the early 1970s.) See also

{broadcast storm}.

:NIL: /nil/ No. Used in reply to a question, particularly one

asked using the `-P' convention. Most hackers assume this derives

simply from LISP terminology for `false' (see also {T}), but

NIL as a negative reply was well-established among radio hams

decades before the advent of LISP. The historical connection

between early hackerdom and the ham radio word was strong enough

that this may have been an influence.

:NMI: /N-M-I/ n. Non-Maskable Interrupt. An IRQ 7 on the PDP-11

or 680[01234]0; the NMI line on an 80[1234]86. In contrast with a

{priority interrupt} (which might be ignored, although that is

unlikely), an NMI is *never* ignored.

:no-op: /noh'op/ alt. NOP /nop/ [no operation] n. 1. (also v.)

A machine instruction that does nothing (sometimes used in

assembler-level programming as filler for data or patch areas, or

to overwrite code to be removed in binaries). See also {JFCL}.

2. A person who contributes nothing to a project, or has nothing

going on upstairs, or both. As in "He's a no-op." 3. Any

operation or sequence of operations with no effect, such as

circling the block without finding a parking space, or putting

money into a vending machine and having it fall immediately into

the coin-return box, or asking someone for help and being told to

go away. "Oh, well, that was a no-op." Hot-and-sour soup (see

{great-wall}) that is insufficiently either is `no-op soup';

so is wonton soup if everybody else is having hot-and-sour.

:noddy: /nod'ee/ [UK: from the children's books] adj.

1. Small and un-useful, but demonstrating a point. Noddy programs

are often written by people learning a new language or system. The

archetypal noddy program is {hello, world}. Noddy code may be

used to demonstrate a feature or bug of a compiler. May be used of

real hardware or software to imply that it isn't worth using.

"This editor's a bit noddy." 2. A program that is more or less

instant to produce. In this use, the term does not necessarily

connote uselessness, but describes a {hack} sufficiently trivial

that it can be written and debugged while carrying on (and during

the space of) a normal conversation. "I'll just throw together a

noddy {awk} script to dump all the first fields." In North

America this might be called a {mickey mouse program}. See

{toy program}.

:NOMEX underwear: /noh'meks uhn'-der-weir/ [USENET] n. Syn.

{asbestos longjohns}, used mostly in auto-related mailing lists

and newsgroups. NOMEX underwear is an actual product available on

the racing equipment market, used as a fire resistance measure and

required in some racing series.

:Nominal Semidestructor: n. Sound-alike slang for `National

Semiconductor', found among other places in the 4.3BSD networking

sources. During the late 1970s to mid-1980s this company marketed

a series of microprocessors including the NS16000 and NS32000 and

several variants. At one point early in the great microprocessor

race, the specs on these chips made them look like serious

competition for the rising Intel 80x86 and Motorola 680x0 series.

Unfortunately, the actual parts were notoriously flaky and never

implemented the full instruction set promised in their literature,

apparently because the company couldn't get any of the mask

steppings to work as designed. They eventually sank without trace,

joining the Zilog Z80,000 and a few even more obscure also-rans in

the graveyard of forgotten microprocessors. Compare {HP-SUX},

{AIDX}, {buglix}, {Macintrash}, {Telerat}, {Open

DeathTrap}, {ScumOS}, {sun-stools}.

:non-optimal solution: n. (also `sub-optimal solution') An

astoundingly stupid way to do something. This term is generally

used in deadpan sarcasm, as its impact is greatest when the person

speaking looks completely serious. Compare {stunning}. See also

{Bad Thing}.

:nonlinear: adj. [scientific computation] 1. Behaving in an erratic

and unpredictable fashion; unstable. When used to describe the

behavior of a machine or program, it suggests that said machine or

program is being forced to run far outside of design

specifications. This behavior may be induced by unreasonable

inputs, or may be triggered when a more mundane bug sends the

computation far off from its expected course. 2. When describing

the behavior of a person, suggests a tantrum or a {flame}.

"When you talk to Bob, don't mention the drug problem or he'll go

nonlinear for hours." In this context, `go nonlinear' connotes

`blow up out of proportion' (proportion connotes linearity).

:nontrivial: adj. Requiring real thought or significant computing

power. Often used as an understated way of saying that a problem

is quite difficult or impractical, or even entirely unsolvable

("Proving P=NP is nontrivial"). The preferred emphatic form is

`decidedly nontrivial'. See {trivial}, {uninteresting},

{interesting}.

:notwork: /not'werk/ n. A network, when it is acting {flaky} or is

{down}. Compare {nyetwork}. Said at IBM to have orig.

referred to a particular period of flakiness on IBM's VNET

corporate network, ca. 1988; but there are independent reports of

the term from elsewhere.

:NP-: /N-P/ pref. Extremely. Used to modify adjectives

describing a level or quality of difficulty; the connotation is

often `more so than it should be' (NP-complete problems all seem

to be very hard, but so far no one has found a good a priori

reason that they should be.) "Coding a BitBlt implementation to

perform correctly in every case is NP-annoying." This is

generalized from the computer-science terms `NP-hard' and

`NP-complete'. NP is the set of Nondeterministic-Polynomial

algorithms, those that can be completed by a nondeterministic

Turing machine in an amount of time that is a polynomial function

of the size of the input; a solution for one NP-complete problem

would solve all the others. Note, however, that the NP- prefix is,

from a complexity theorist's point of view, the wrong part of

`NP-complete' to connote extreme difficulty; it is the completeness,

not the NP-ness, that puts any problem it describes in the

`hard' category.

:nroff: /en'rof/ [UNIX, from "new runoff"] n. A companion

program to the UNIX typesetter `troff', accepting identical

input but preparing output for terminals and line printers.

:NSA line eater: n. The National Security Agency trawling

program sometimes assumed to be reading {USENET} for the

U.S. Government's spooks. Most hackers describe it as a mythical

beast, but some believe it actually exists, more aren't sure, and

many believe in acting as though it exists just in case. Some

netters put loaded phrases like `KGB', `Uzi', `nuclear materials',

`Palestine', `cocaine', and `assassination' in their {sig block}s

in a (probably futile) attempt to confuse and overload the

creature. The {GNU} version of {EMACS} actually has a command

that randomly inserts a bunch of insidious anarcho-verbiage into

your edited text.

There is a mainstream variant of this myth involving a `Trunk Line

Monitor', which supposedly used speech recognition to extract words

from telephone trunks. This one was making the rounds in the

late 1970s, spread by people who had no idea of then-current

technology or the storage, signal-processing, or speech recognition

needs of such a project. On the basis of mass-storage costs alone

it would have been cheaper to hire 50 high-school students and just

let them listen in. Speech-recognition technology can't do this

job even now (1991), and almost certainly won't in this millennium,

either. The peak of silliness came with a letter to an alternative

paper in New Haven, Connecticut, laying out the factoids of this

Big Brotherly affair. The letter writer then revealed his actual

agenda by offering --- at an amazing low price, just this once, we

take VISA and MasterCard --- a scrambler guaranteed to daunt the

Trunk Trawler and presumably allowing the would-be Baader-Meinhof

gangs of the world to get on with their business.

:nuke: vt. 1. To intentionally delete the entire contents of a

given directory or storage volume. "On UNIX, `rm -r /usr'

will nuke everything in the usr filesystem." Never used for

accidental deletion. Oppose {blow away}. 2. Syn. for

{dike}, applied to smaller things such as files, features, or

code sections. Often used to express a final verdict. "What do

you want me to do with that 80-meg {wallpaper} file?" "Nuke

it." 3. Used of processes as well as files; nuke is a frequent

verbal alias for `kill -9' on UNIX. 4. On IBM PCs, a bug

that results in {fandango on core} can trash the operating

system, including the FAT (the in-core copy of the disk block

chaining information). This can utterly scramble attached disks,

which are then said to have been `nuked'. This term is also

used of analogous lossages on Macintoshes and other micros without

memory protection.

:number-crunching: n. Computations of a numerical nature, esp.

those that make extensive use of floating-point numbers. The only

thing {Fortrash} is good for. This term is in widespread

informal use outside hackerdom and even in mainstream slang, but

has additional hackish connotations: namely, that the computations

are mindless and involve massive use of {brute force}. This is

not always {evil}, esp. if it involves ray tracing or fractals

or some other use that makes {pretty pictures}, esp. if such

pictures can be used as {wallpaper}. See also {crunch}.

:numbers: [scientific computation] n. Output of a computation that

may not be significant results but at least indicate that the

program is running. May be used to placate management, grant

sponsors, etc. `Making numbers' means running a program

because output --- any output, not necessarily meaningful output

--- is needed as a demonstration of progress. See {pretty

pictures}, {math-out}, {social science number}.

:NUXI problem: /nuk'see pro'bl*m/ n. This refers to the problem of

transferring data between machines with differing byte-order. The

string `UNIX' might look like `NUXI' on a machine with a

different `byte sex' (e.g., when transferring data from a

{little-endian} to a {big-endian}, or vice-versa). See also

{middle-endian}, {swab}, and {bytesexual}.

:nybble: /nib'l/ (alt. `nibble') [from v. `nibble' by analogy

with `bite' => `byte'] n. Four bits; one {hex} digit;

a half-byte. Though `byte' is now techspeak, this useful relative

is still jargon. Compare {{byte}}, {crumb}, {tayste},

{dynner}; see also {bit}, {nickle}, {deckle}. Apparently

this spelling is uncommon in Commonwealth Hackish, as British

orthography suggests the pronunciation /ni:'bl/.

:nyetwork: /nyet'werk/ [from Russian `nyet' = no] n. A network,

when it is acting {flaky} or is {down}. Compare {notwork}.

= 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-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 which 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.

: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 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:

The Jargon File, Version 2.9.10, 01 Jul 1992 · 第 13 / 21 题