
The New Hacker's Dictionary
.pdf651
Node:life, Next:[7940]Life is hard, Previous:[7941]lexiphage, Up:[7942]= L =
life n.
1. A cellular-automata game invented by John Horton Conway and first introduced publicly by Martin Gardner ("Scientific American", October 1970); the game's popularity had to wait a few years for computers on which it could reasonably be played, as it's no fun to simulate the cells by hand. Many hackers pass through a stage of fascination with it, and hackers at various places contributed heavily to the mathematical analysis of this game (most notably Bill Gosper at MIT, who even implemented life in [7943]TECO!; see [7944]Gosperism). When a hacker mentions `life', he is much more likely to mean this game than the magazine, the breakfast cereal, or the human state of existence. 2. The opposite of [7945]Usenet. As in "[7946]Get a life!"
---
Node:Life is hard, Next:[7947]light pipe, Previous:[7948]life, Up:[7949]= L =
Life is hard prov.
[XEROX PARC] This phrase has two possible interpretations: (1) "While your suggestion may have some merit, I will behave as though I hadn't heard it." (2) "While your suggestion has obvious merit, equally obvious circumstances prevent it from being seriously considered." The charm of the phrase lies precisely in this subtle but important ambiguity.
---
Node:light pipe, Next:[7950]lightweight, Previous:[7951]Life is hard, Up:[7952]= L =
light pipe n.
652
Fiber optic cable. Oppose [7953]copper.
---
Node:lightweight, Next:[7954]like kicking dead whales down the beach, Previous:[7955]light pipe, Up:[7956]= L =
lightweight adj.
Opposite of [7957]heavyweight; usually found in combining forms such as `lightweight process'.
---
Node:like kicking dead whales down the beach, Next:[7958]like nailing jelly to a tree, Previous:[7959]lightweight, Up:[7960]= L =
like kicking dead whales down the beach adj.
Describes a slow, difficult, and disgusting process. First popularized by a famous quote about the difficulty of getting work done under one of IBM's mainframe OSes. "Well, you could write a C compiler in COBOL, but it would be like kicking dead whales down the beach." See also [7961]fear and loathing.
---
Node:like nailing jelly to a tree, Next:[7962]line 666, Previous:[7963]like kicking dead whales down the beach, Up:[7964]= L =
like nailing jelly to a tree adj.
Used to describe a task thought to be impossible, esp. one in which the difficulty arises from poor specification or inherent slipperiness in the problem domain. "Trying to display the `prettiest' arrangement of nodes and arcs that diagrams a given graph is like nailing jelly to a tree, because
653
nobody's sure what `prettiest' means algorithmically."
Hacker use of this term may recall mainstream slang originated early in the 20th century by President Theodore Roosevelt. There is a legend that, weary of inconclusive talks with Colombia over the right to dig a canal through its then-province Panama, he remarked, "Negotiating with those pirates is like trying to nail currant jelly to the wall." Roosevelt's government subsequently encouraged the anti-Colombian insurgency that created the nation of Panama.
---
Node:line 666, Next:[7965]line eater the, Previous:[7966]like nailing jelly to a tree, Up:[7967]= L =
line 666 [from Christian eschatological myth] n.
The notional line of source at which a program fails for obscure reasons, implying either that somebody is out to get it (when you are the programmer), or that it richly deserves to be so gotten (when you are not). "It works when I trace through it, but seems to crash on line 666 when I run it." "What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit hardcoded a buffer size."
---
Node:line eater the, Next:[7968]line noise, Previous:[7969]line 666, Up:[7970]= L =
line eater, the n. obs.
[Usenet] 1. A bug in some now-obsolete versions of the netnews software that used to eat up to BUFSIZ bytes of the article text. The bug was triggered by having the text of the article start with a space or tab. This bug was quickly personified as a mythical creature called the `line eater', and postings often included a dummy line of `line eater food'. Ironically, line
654
eater `food' not beginning with a space or tab wasn't actually eaten, since the bug was avoided; but if there was a space or tab before it, then the line eater would eat the food and the beginning of the text it was supposed to be protecting. The practice of `sacrificing to the line eater' continued for some time after the bug had been [7971]nailed to the wall, and is still humorously referred to. The bug itself was still occasionally reported to be lurking in some mail-to-netnews gateways as late as 1991. 2. See [7972]NSA line eater.
---
Node:line noise, Next:[7973]line starve, Previous:[7974]line eater the, Up:[7975]= L =
line noise n.
1. [techspeak] Spurious characters due to electrical noise in a communications link, especially an RS-232 serial connection. Line noise may be induced by poor connections, interference or crosstalk from other circuits, electrical storms, [7976]cosmic rays, or (notionally) birds crapping on the phone wires. 2. Any chunk of data in a file or elsewhere that looks like the results of line noise in sense 1. 3. Text that is theoretically a readable text or program source but employs syntax so bizarre that it looks like line noise in senses 1 or 2. Yes, there are languages this ugly. The canonical example is [7977]TECO; it is often claimed that "TECO's input syntax is indistinguishable from line noise." Other non-[7978]WYSIWYG editors, such as Multics qed and Unix ed, in the hands of a real hacker, also qualify easily, as do deliberately obfuscated languages such as [7979]INTERCAL.
---
Node:line starve, Next:[7980]linearithmic, Previous:[7981]line noise, Up:[7982]= L =
line starve
655
[MIT] 1. vi. To feed paper through a printer the wrong way by one line (most printers can't do this). On a display terminal, to move the cursor up to the previous line of the screen. "To print `X squared', you just output `X', line starve, `2', line feed." (The line starve causes the `2' to appear on the line above the `X', and the line feed gets back to the original line.) 2. n. A character (or character sequence) that causes a terminal to perform this action. ASCII 0011010, also called SUB or control-Z, was one common line-starve character in the days before microcomputers and the X3.64 terminal standard. Today, the term might be used for the ISO reverse line feed character 0x8D. Unlike `line feed', `line starve' is not standard [7983]ASCII terminology. Even among hackers it is considered a bit silly. 3. [proposed] A sequence such as \c (used in System V echo, as well as [7984]nroff and [7985]troff) that suppresses a [7986]newline or other character(s) that would normally be emitted.
---
Node:linearithmic, Next:[7987]link farm, Previous:[7988]line starve, Up:[7989]= L =
linearithmic adj.
Of an algorithm, having running time that is O(N log N). Coined as a portmanteau of `linear' and `logarithmic' in "Algorithms In C" by Robert Sedgewick (Addison-Wesley 1990, ISBN 0-201-51425-7).
---
Node:link farm, Next:[7990]link rot, Previous:[7991]linearithmic, Up:[7992]= L =
link farm n.
[Unix] A directory tree that contains many links to files in a master directory tree of files. Link farms save space when one is maintaining several nearly identical copies of the same source tree -- for example, when
656
the only difference is architecture-dependent object files. "Let's freeze the source and then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms." Link farms may also be used to get around restrictions on the number of -I (include-file directory) arguments on older C preprocessors. However, they can also get completely out of hand, becoming the filesystem equivalent of [7993]spaghetti code.
---
Node:link rot, Next:[7994]link-dead, Previous:[7995]link farm, Up:[7996]= L =
link rot n.
The natural decay of web links as the sites they're connected to change or die. Compare [7997]bit rot.
---
Node:link-dead, Next:[7998]lint, Previous:[7999]link rot, Up:[8000]= L =
link-dead adj.
[MUD] The state a player is in when they kill their connection to a [8001]MUD without leaving it properly. The player is then commonly left as a statue in the game, and is only removed after a certain period of time (an hour on most MUDs). Used on [8002]IRC as well, although it is inappropriate in that context. Compare [8003]netdead.
---
Node:lint, Next:[8004]Lintel, Previous:[8005]link-dead, Up:[8006]= L =
lint
657
[from Unix's lint(1), named for the bits of fluff it supposedly picks from programs] 1. vt. To examine a program closely for style, language usage, and portability problems, esp. if in C, esp. if via use of automated analysis tools, most esp. if the Unix utility lint(1) is used. This term used to be restricted to use of lint(1) itself, but (judging by references on Usenet) it has become a shorthand for [8007]desk check at some non-Unix shops, even in languages other than C. Also as v. [8008]delint. 2. n. Excess verbiage in a document, as in "This draft has too much lint".
---
Node:Lintel, Next:[8009]Linus, Previous:[8010]lint, Up:[8011]= L =
Lintel n.
The emerging [8012]Linux/Intel alliance. This term began to be used in early 1999 after it became clear that the [8013]Wintel alliance was under increasing strain and Intel started taking stakes in Linux companies.
---
Node:Linus, Next:[8014]Linux, Previous:[8015]Lintel, Up:[8016]= L =
Linus /leen'us'/ or /lin'us'/, not /li:'nus/
Linus Torvalds, the author of [8017]Linux. Nobody in the hacker culture has been as readily recognized by first name alone since Ken (Thompson).
---
Node:Linux, Next:[8018]lion food, Previous:[8019]Linus, Up:[8020]= L =
Linux /lee'nuhks/ or /li'nuks/, not /li:'nuhks/ n.
The free Unix workalike created by Linus Torvalds and friends starting about 1991. The pronunciation /lee'nuhks/ is preferred because the name
658
`Linus' has an /ee/ sound in Swedish (Linus's family is part of Finland's 6% ethnic-Swedish minority). This may be the most remarkable hacker project in history -- an entire clone of Unix for 386, 486 and Pentium micros, distributed for free with sources over the net (ports to Alpha and Sparc and many other machines are also in use).
Linux is what [8021]GNU aimed to be, and it relies on the GNU toolset. But the Free Software Foundation didn't produce the kernel to go with that toolset until 1999, which was too late. Other, similar efforts like FreeBSD and NetBSD have been technically successful but never caught fire the way Linux has; as this is written in 2000, Linux is seriously challenging Microsoft's OS dominance. It has already captured 31% of the Internet-server market and 25% of general business servers.
An earlier version of this entry opined "The secret of Linux's success seems to be that Linus worked much harder early on to keep the development process open and recruit other hackers, creating a snowball effect." Truer than we knew. See [8022]bazaar.
(Some people object that the name `Linux' should be used to refer only to the kernel, not the entire operating system. This claim is a proxy for an underlying territorial dispute; people who insist on the term `GNU/Linux' want the the [8023]FSF to get most of the credit for Linux because RMS and friends wrote many of its user-level tools. Neither this theory nor the term `GNU/Linux' has gained more than minority acceptance).
---
Node:lion food, Next:[8024]Lions Book, Previous:[8025]Linux, Up:[8026]= L =
lion food n.
[IBM] Middle management or HQ staff (or, by extension, administrative drones in general). From an old joke about two lions who, escaping from the zoo, split up to increase their chances but agree to meet after 2 months.
659
When they finally meet, one is skinny and the other overweight. The thin one says: "How did you manage? I ate a human just once and they turned out a small army to chase me -- guns, nets, it was terrible. Since then I've been reduced to eating mice, insects, even grass." The fat one replies:
"Well, I hid near an IBM office and ate a manager a day. And nobody even noticed!"
---
Node:Lions Book, Next:[8027]LISP, Previous:[8028]lion food, Up:[8029]= L =
Lions Book n.
"Source Code and Commentary on Unix level 6", by John Lions. The two parts of this book contained (1) the entire source listing of the Unix Version 6 kernel, and (2) a commentary on the source discussing the algorithms. These were circulated internally at the University of New South Wales beginning 1976-77, and were, for years after, the only detailed kernel documentation available to anyone outside Bell Labs. Because Western Electric wished to maintain trade secret status on the kernel, the Lions Book was only supposed to be distributed to affiliates of source licensees. In spite of this, it soon spread by [8030]samizdat to a good many of the early Unix hackers.
[1996 update: The Lions book lives again! It was put back in print as ISBN 1-57398-013-7 from Peer-To-Peer Communications, with forewords by Dennis Ritchie and Ken Thompson. In a neat bit of reflexivity, the page before the contents quotes this entry.]
---
Node:LISP, Next:[8031]list-bomb, Previous:[8032]Lions Book,
Up:[8033]= L =
LISP n.
660
[from `LISt Processing language', but mythically from `Lots of Irritating Superfluous Parentheses'] AI's mother tongue, a language based on the ideas of (a) variable-length lists and trees as fundamental data types, and
(b) the interpretation of code as data and vice-versa. Invented by John McCarthy at MIT in the late 1950s, it is actually older than any other [8034]HLL still in use except FORTRAN. Accordingly, it has undergone considerable adaptive radiation over the years; modern variants are quite different in detail from the original LISP 1.5. The dominant HLL among hackers until the early 1980s, LISP now shares the throne with [8035]C. Its partisans claim it is the only language that is truly beautiful. See [8036]languages of choice.
All LISP functions and programs are expressions that return values; this, together with the high memory utilization of LISPs, gave rise to Alan Perlis's famous quip (itself a take on an Oscar Wilde quote) that "LISP programmers know the value of everything and the cost of nothing".
One significant application for LISP has been as a proof by example that most newer languages, such as [8037]COBOL and [8038]Ada, are full of unnecessary [8039]crocks. When the [8040]Right Thing has already been done once, there is no justification for [8041]bogosity in newer languages.
---
Node:list-bomb, Next:[8042]lithium lick, Previous:[8043]LISP, Up:[8044]= L =
list-bomb v.
To [8045]mailbomb someone by forging messages causing the victim to become a subscriber to many mailing lists. This is a self-defeating tactic; it merely forces mailing list servers to require confirmation by return message for every subscription.
---