Chapter 36 of 61 · 3998 words · ~20 min read

Part 36

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 (compiled) language that cannot even be used to write its own compiler is beneath contempt. (The qualification has become necessary because of the increasing popularity of interpreted languages like Perl and Python. See break-even point.

(On a related note, Doug McIlroy once 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 FORTRAN program acceptable as input to the FORTRAN compiler?" In other words, can you write programs that write programs? (See toolsmith.) Alarming numbers of (language, OS) pairs fail this test, particularly when the language is FORTRAN; aficionados are 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 to have worked only under modern systems which lack OS-supported and -imposed "file types".)

Node:mickey, Next:mickey mouse program, Previous:MFTL, Up:= M =

mickey n.

The resolution unit of mouse movement. It has been suggested that the `disney' will become a benchmark unit for animation graphics performance.

Node:mickey mouse program, Next:micro-, Previous:mickey, Up:= M =

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.

Node:micro-, Next:MicroDroid, Previous:mickey mouse program, Up:= M =

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.

Node:MicroDroid, Next:microfloppies, Previous:micro-, Up:= M =

MicroDroid n.

[Usenet] A Microsoft employee, esp. one who posts to various operating-system advocacy newsgroups. MicroDroids post follow-ups to any messages critical of Microsoft's operating systems, and often end up sounding like visiting fundamentalist missionaries. See also astroturfing; compare microserf.

Node:microfloppies, Next:microfortnight, Previous:MicroDroid, Up:= M =

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.

Node:microfortnight, Next:microLenat, Previous:microfloppies, Up:= M =

microfortnight n.

1/1000000 of the fundamental unit of time in the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec. (A furlong is 1/8th of a mile; a firkin is 1/4th of a barrel; the mass unit of the system is taken to be a firkin of water). 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.

Node:microLenat, Next:microReid, Previous:microfortnight, Up:= M =

microLenat /mi:`-kroh-len'-*t/ n.

The unit of bogosity. consensus is that this is the largest unit practical for everyday use. The microLenat, originally invented by David Jefferson, was promulgated as an attack against noted computer scientist Doug Lenat by a tenured graduate student at CMU. Doug had failed the student on an important exam because the student gave only "AI is bogus" as his answer to the questions. The slur is generally considered unmerited, but it has become a running gag nevertheless. Some of Doug's friends argue that of course a microLenat is bogus, since it is only one millionth of a Lenat. Others have suggested that the unit should be redesignated after the grad student, as the microReid.

Node:microReid, Next:microserf, Previous:microLenat, Up:= M =

microReid /mi:'kroh-reed/ n.

See microLenat.

Node:microserf, Next:Microsloth Windows, Previous:microReid, Up:= M =

microserf /mi:'kro-s*rf/

[popularized, though not originated, by Douglas Copeland's book "Microserfs"] A programmer at Microsoft, especially a low-level coder with little chance of fame or fortune. Compare MicroDroid.

Node:Microsloth Windows, Next:Microsoft, Previous:microserf, Up:= M =

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

(Variants combine {Microshift, Macroshaft, Microsuck} with {Windoze, WinDOS}. Hackerism(s) for `Microsoft Windows'. A thirty-two bit extension and graphical shell to a sixteen bit patch to an eight bit operating system originally coded for a four bit microprocessor which was written by a two-bit company that can't stand one bit of competition. Also just called `Windoze', with the implication that you can fall asleep waiting for it to do anything; the latter term is extremely common on Usenet. See Black Screen of Death and Blue Screen of Death; compare X, sun-stools.

Node:Microsoft, Next:micros~1, Previous:Microsloth Windows, Up:= M =

Microsoft

The new Evil Empire (the old one was IBM). The basic complaints are, as formerly with IBM, that (a) their system designs are horrible botches, (b) we can't get source to fix them, and (c) they throw their weight around a lot. See also Halloween Documents.

Node:micros~1, Next:middle-endian, Previous:Microsoft, Up:= M =

micros~1

An abbreviation of the full name Microsoft resembling the rather bogus way Windows 9x's VFAT filesystem truncates long file names to fit in the MS-DOS 8+3 scheme (the real filename is stored elsewhere). If other files start with the same prefix, they'll be called micros~2 and so on, causing lots of problems with backups and other routine system-administration problems. During the US Antitrust trial against Microsoft the names Micros~1 ans Micros~2 were suggested for the two companies that would exist after a break-up.

Node:middle-endian, Next:middle-out implementation, Previous:micros~1, Up:= M =

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. Non-US hackers use this term to describe the American mm/dd/yy style of writing dates (Europeans write little-endian dd/mm/yy, and Japanese use big-endian yy/mm/dd for Western dates).

Node:middle-out implementation, Next:milliLampson, Previous:middle-endian, Up:= M =

middle-out implementation

See bottom-up implementation.

Node:milliLampson, Next:minifloppies, Previous:middle-out implementation, Up:= M =

milliLampson /mil'*-lamp`sn/ n.

A unit of talking speed, abbreviated mL. Most people run about 200 milliLampsons. The eponymous 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.

Node:minifloppies, Next:MIPS, Previous:milliLampson, Up:= M =

minifloppies n.,obs.

5.25-inch floppy disks, as opposed to 3.5-inch or microfloppies and the long-obsolescent 8-inch variety (if there is ever a smaller size, they will undoubtedly be tagged `nanofloppies'). At one time, this term was a trademark of Shugart Associates for their SA-400 minifloppy drive. Nobody paid any attention. See stiffy.

Node:MIPS, Next:misbug, Previous:minifloppies, Up:= M =

MIPS /mips/ n.

[abbreviation] 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, such as `Meaningless Information Provided by Salesmen'. This joke expresses an attitude nearly universal among hackers about the value of most benchmark claims, said attitude being one of the great cultural divides between hackers and marketroids (see also BogoMIPS). 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 computrons. "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).

Node:misbug, Next:misfeature, Previous:MIPS, Up:= M =

misbug /mis-buhg/ n.

[MIT; rare (like its referent)] 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. Compare green lightning. See miswart.

Node:misfeature, Next:Missed'em-five, Previous:misbug, Up:= M =

misfeature /mis-fee'chr/ or /mis'fee`chr/ n.

[common] A feature that eventually causes lossage, possibly because it is not adequate for a new situation that 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 trade-offs were 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 six characters, but the original implementors wanted to save directory space and we're stuck with it for now."

Node:Missed'em-five, Next:missile address, Previous:misfeature, Up:= M =

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.

Node:missile address, Next:miswart, Previous:Missed'em-five, Up:= M =

missile address n.

See ICBM address.

Node:miswart, Next:MMF, Previous:missile address, Up:= M =

miswart /mis-wort/ n.

[from wart by analogy with misbug] 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.

Node:MMF, Next:mobo, Previous:miswart, Up:= M =

MMF //

[Usenet; common] Abbreviation: "Make Money Fast". Refers to any kind of scheme which promises participants large profits with little or no risk or effort. Typically, it is a some kind of multi-level marketing operation which involves recruiting more members, or an illegal pyramid scam. The term is also used to refer to any kind of spam which promotes this. For more information, see the Make Money Fast Myth Page.

Node:mobo, Next:moby, Previous:MMF, Up:= M =

mobo /moh'bo/

Written and (rarely) spoken contraction of "motherboard"

Node:moby, Next:mockingbird, Previous:mobo, Up:= M =

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'). Now common.] 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 Appendix A for discussion.) 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 3): 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. 5. The largest available unit of something which is available in discrete increments. Thus, ordering a "moby Coke" at the local fast-food joint is not just a request for a large Coke, it's an explicit request for the largest size they sell.

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 widely-used 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).

Node:mockingbird, Next:mod, Previous:moby, Up:= M =

mockingbird n.

Software that intercepts communications (especially login transactions) between users and hosts and provides system-like responses to the users while saving their responses (especially account IDs and passwords). A special case of Trojan horse.

Node:mod, Next:mode, Previous:mockingbird, Up:= M =

mod vt.,n.

[very common] 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.

Node:mode, Next:mode bit, Previous:mod, Up:= M =

mode n.

[common] 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 that 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, modeful interfaces are generally considered losing but survive in quite a few widely used tools built in less enlightened times.

Node:mode bit, Next:modulo, Previous:mode, Up:= M =

mode bit n.

[common] 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.

Node:modulo, Next:molly-guard, Previous:mode bit, Up:= M =

modulo /mod'yu-loh/ prep.

Except for. An overgeneralization of mathematical terminology; one can consider saying that 4 equals 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."

Node:molly-guard, Next:Mongolian Hordes technique, Previous:modulo, Up:= M =

molly-guard /mol'ee-gard/ n.

[University of Illinois] A shield to prevent tripping of some Big Red Switch by clumsy or ignorant hands. Originally used of the 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. In hardware catalogues, you'll see the much less interesting description "guarded button".

Node:Mongolian Hordes technique, Next:monkey up, Previous:molly-guard, Up:= M =

Mongolian Hordes technique n.

[poss. from the Sixties counterculture expression `Mongolian clusterfuck' for a public orgy] Development by gang bang. Implies that large numbers of inexperienced programmers are being put on a job better performed by a few skilled ones (but see bazaar). Also called `Chinese Army technique'; see also Brooks's Law.

Node:monkey up, Next:monkey scratch, Previous:Mongolian Hordes technique, Up:= M =

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.

Node:monkey scratch, Next:monstrosity, Previous:monkey up, Up:= M =

monkey, scratch n.

See scratch monkey.

Node:monstrosity, Next:monty, Previous:monkey scratch, Up:= M =

monstrosity

1. n. A ridiculously elephantine program or system, esp. one that is buggy or only marginally functional. 2. adj. The quality of being monstrous (see `Overgeneralization' in the discussion of jargonification). See also baroque.

Node:monty, Next:Moof, Previous:monstrosity, Up:= M =

monty /mon'tee/ n.

1. [US Geological Survey] A program with a ludicrously complex user interface written to perform extremely trivial tasks. An example would be a menu-driven, button clicking, pulldown, pop-up windows program for listing directories. The original monty was an infamous weather-reporting program, Monty the Amazing Weather Man, written at the USGS. Monty had a widget-packed X-window interface with over 200 buttons; and all monty actually did was FTP files off the network. 2. [Great Britain; commonly capitalized as `Monty' or as `the Full Monty'] 16 megabytes of memory, when fitted to an IBM-PC or compatible. A standard PC-compatible using the AT- or ISA-bus with a normal BIOS cannot access more than 16 megabytes of RAM. Generally used of a PC, Unix workstation, etc. to mean `fully populated with' memory, disk-space or some other desirable resource. This usage may be related to a TV commercial for Del Monte fruit juice, in which one of the characters insisted on "the full Del Monte"; but see the World Wide Words article "The Full Monty" for discussion of the rather complex etymology that may lie behind this. Compare American moby.

Node:Moof, Next:Moore's Law, Previous:monty, Up:= M =

Moof /moof/

[Macintosh users] 1. n. The call of a semi-legendary creature, properly called the dogcow. (Some previous versions of this entry claimed, incorrectly, that Moof was the name of the creature.) 2. adj. Used to flag software that's a hack, something untested and on the edge. On one Apple CD-ROM, certain folders such as "Tools & Apps (Moof!)" and "Development Platforms (Moof!)", are so marked to indicate that they contain software not fully tested or sanctioned by the powers that be. When you open these folders you cross the boundary into hackerland. 3. v. On the Microsoft Network, the term `moof' has gained popularity as a verb meaning `to be suddenly disconnected by the system'. One might say "I got moofed".

Node:Moore's Law, Next:moose call, Previous:Moof, Up:= M =

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^(t - 1962) where t is time in years; that is, the amount of information storable on a given amount of silicon has roughly doubled every year since the technology was invented. This relation, first uttered in 1964 by semiconductor engineer Gordon Moore (who co-founded Intel four years later) held until the late 1970s, at which point the doubling period slowed to 18 months. The doubling period remained at that value through time of writing (late 1999). Moore's Law is apparently self-fulfilling. The implication is that somebody, somewhere is going to be able to build a better chip than you if you rest on your laurels, so you'd better start pushing hard on the problem. See also Parkinson's Law of Data and Gates's Law.

Node:moose call, Next:moria, Previous:Moore's Law, Up:= M =

moose call n.

See whalesong.

Node:moria, Next:MOTAS, Previous:moose call, Up:= M =

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. The name is from Tolkien's Mines of Moria; compare elder days, elvish. The game is extremely addictive and a major consumer of time better used for hacking. See also nethack, rogue, Angband.

Node:MOTAS, Next:MOTOS, Previous:moria, Up:= M =

MOTAS /moh-tahz/ n.

[Usenet: Member Of The Appropriate Sex, after MOTOS and MOTSS] A potential or (less often) actual sex partner. See also SO.

Node:MOTOS, Next:MOTSS, Previous:MOTAS, Up:= M =

MOTOS /moh-tohs/ n.

[acronym from the 1970 U.S. census forms via Usenet: Member Of The Opposite Sex] A potential or (less often) actual sex partner. See MOTAS, MOTSS, SO. Less common than MOTSS or MOTAS, which has largely displaced it.

Node:MOTSS, Next:mouse ahead, Previous:MOTOS, Up:= M =

MOTSS /mots/ or /M-O-T-S-S/ n.

[from the 1970 U.S. census forms via Usenet] Member Of The Same Sex, 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. See also SO.

Node:mouse ahead, Next:mouse around, Previous:MOTSS, Up:= M =

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.