[from SF fandom] A method of “marking” common words, i.e., calling attention to the fact that they are being used in a nonstandard, ironic, or humorous way. Originated in the fannish catchphrase “Bheer is the One True Ghod!” from decades ago. H-infix marking of “Ghod” and other words spread into the 1960s counterculture via underground comix, and into early hackerdom either from the counterculture or from SF fandom (the three overlapped heavily at the time). More recently, the h infix has become an expected feature of benchmark names (Dhrystone, Rhealstone, etc.); this is probably patterning on the original Whetstone (the name of a laboratory) but influenced by the fannish/counterculture h infix.
[from SF fandom, orig. as mutation of HHOK, “Ha Ha Only Kidding”] A phrase (often seen abbreviated as HHOS) that aptly captures the flavor of much hacker discourse. Applied especially to parodies, absurdities, and ironic jokes that are both intended and perceived to contain a possibly disquieting amount of truth, or truths that are constructed on in-joke and self-parody. This lexicon contains many examples of ha-ha-only-serious in both form and content. Indeed, the entirety of hacker culture is often perceived as ha-ha-only-serious by hackers themselves; to take it either too lightly or too seriously marks a person as an outsider, a wannabee, or in larval stage. For further enlightenment on this subject, consult any Zen master. See also hacker humor, and koan.
[poss. by analogy with “Big Mac Attack” from ads for the McDonald’s fast-food chain; the variant “big hack attack” is reported] Nearly synonymous with hacking run, though the latter more strongly implies an all-nighter.
1. What one is in when hacking, of course.
2. More specifically, a Zen-like state of total focus on The Problem that may be achieved when one is hacking (this is why every good hacker is part mystic). Ability to enter such concentration at will correlates strongly with wizardliness; it is one of the most important skills learned during larval stage. Sometimes amplified as "deep hack mode".
Being yanked out of hack mode (see priority interrupt) may be experienced as a physical shock, and the sensation of being in hack mode is more than a little habituating. The intensity of this experience is probably by itself sufficient explanation for the existence of hackers, and explains why many resist being promoted out of positions where they can code. See also cyberspace (sense 3).
Some aspects of hacker etiquette will appear quite odd to an observer unaware of the high value placed on hack mode. For example, if someone appears at your door, it is perfectly okay to hold up a hand (without turning one’s eyes away from the screen) to avoid being interrupted. One may read, type, and interact with the computer for quite some time before further acknowledging the other’s presence (of course, he or she is reciprocally free to leave without a word). The understanding is that you might be in hack mode with a lot of delicate state (sense 2) in your head, and you dare not swap that context out until you have reached a good point to pause. See also juggling eggs.
[very common] To hack; implies that the subject is some pre-existing hunk of code that one is evolving, as opposed to something one might hack up.
[common] To throw something together so it will work. Unlike “kluge together” or cruft together, this does not necessarily have negative connotations.
To hack, but generally implies that the result is a hack in sense 1 (a quick hack). Contrast this with hack on. To “hack up on” implies a quick-and-dirty modification to an existing system. Contrast hacked up; compare monkey up, cruft together.
Often adduced as the reason or motivation for expending effort toward a seemingly useless goal, the point being that the accomplished goal is a hack. For example, MacLISP had features for reading and printing Roman numerals, which were installed purely for hack value. See display hack for one method of computing hack value, but this cannot really be explained, only experienced. As Louis Armstrong once said when asked to explain jazz: “Man, if you gotta ask you’ll never know.” (Feminists please note Fats Waller’s explanation of rhythm: “Lady, if you got to ask, you ain’t got it.”)
[very common]
1. n. Originally, a quick job that produces what is needed, but not well.
2. n. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed.
3. vt. To bear emotionally or physically. “I can’t hack this heat!”
4. vt. To work on something (typically a program). In an immediate sense: “What are you doing?” “I’m hacking TECO.” In a general (time-extended) sense: “What do you do around here?” “I hack TECO.” More generally, “I hack ‘foo’” is roughly equivalent to “‘foo’ is my major interest (or project)”. “I hack solid-state physics.” See Hacking X for Y.
5. vt. To pull a prank on. See sense 2 and hacker (sense 5).
6. vi. To interact with a computer in a playful and exploratory rather than goal-directed way. “Whatcha up to?” “Oh, just hacking.”
7. n. Short for hacker.
8. See nethack.
9. [MIT] v. To explore the basements, roof ledges, and steam tunnels of a large, institutional building, to the dismay of Physical Plant workers and (since this is usually performed at educational institutions) the Campus Police. This activity has been found to be eerily similar to playing adventure games such as Dungeons and Dragons and Zork. See also vadding.
Constructions on this term abound. They include “happy hacking” (a farewell), “how’s hacking?” (a friendly greeting among hackers) and “hack, hack” (a fairly content-free but friendly comment, often used as a temporary farewell). For more on this totipotent term see neat hack, real hack.
[analogous to “pissed off”] Said of system administrators who have become annoyed, upset, or touchy owing to suspicions that their sites have been or are going to be victimized by crackers, or used for inappropriate, technically illegal, or even overtly criminal activities. For example, having unreadable files in your home directory called “worm”, “lockpick”, or “goroot” would probably be an effective (as well as impressively obvious and stupid) way to get your sysadmin hacked off at you.
It has been pointed out that there is precedent for this usage in U.S. Navy slang, in which officers under discipline are sometimes said to be “in hack” and one may speak of “hacking off the C.O.”.
Sufficiently patched, kluged, and tweaked that the surgical scars are beginning to crowd out normal tissue (compare critical mass). Not all programs that are hacked become “hacked up”; if modifications are done with some eye to coherence and continued maintainability, the software may emerge better for the experience. Contrast hack up.
1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing open-source code and facilitating access to information and to computing resources wherever possible.
2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality.
Both of these normative ethical principles are widely, but by no means universally, accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away open-source software. A few go further and assert that all information should be free and any proprietary control of it is bad; this is the philosophy behind the GNU project.
Sense 2 is more controversial: some people consider the act of cracking itself to be unethical, like breaking and entering. But the belief that “ethical” cracking excludes destruction at least moderates the behavior of people who see themselves as “benign” crackers (see also gray hat). On this view, it may be one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by email from a superuser account, exactly how it was done and how the hole can be plugged – acting as an unpaid (and unsolicited) tiger team.
The most reliable manifestation of either version of the hacker ethic is that almost all hackers are actively willing to share technical tricks, software, and (where possible) computing resources with other hackers. Huge cooperative networks such as Usenet, FidoNet and the Internet itself can function without central control because of this trait; they both rely on and reinforce a sense of community that may be hackerdom’s most valuable intangible asset.
A distinctive style of shared intellectual humor found among hackers, having the following marked characteristics:
1. Fascination with form-vs.-content jokes, paradoxes, and humor having to do with confusion of metalevels (see meta). One way to make a hacker laugh: hold a red index card in front of him/her with “GREEN” written on it, or vice-versa (note, however, that this is funny only the first time).
2. Elaborate deadpan parodies of large intellectual constructs, such as specifications (see write-only memory), standards documents, language descriptions (see INTERCAL), and even entire scientific theories (see computron).
3. Jokes that involve screwily precise reasoning from bizarre, ludicrous, or just grossly counter-intuitive premises.
4. Fascination with puns and wordplay.
5. A fondness for apparently mindless humor with subversive currents of intelligence in it – for example, old Warner Brothers and Rocky & Bullwinkle cartoons, the Marx brothers, the early B-52s, and Monty Python’s Flying Circus. Humor that combines this trait with elements of high camp and slapstick is especially favored.
6. References to the symbol-object antinomies and associated ideas in Zen Buddhism and (less often) Taoism. See has the X nature, Discordianism, ha ha only serious, filk, retrocomputing, and the Portrait of J. Random Hacker in Appendix B. If you have an itchy feeling that all six of these traits are really aspects of one thing that is incredibly difficult to talk about exactly, you are (a) correct and (b) responding like a hacker. These traits are also recognizable (though in a less marked form) throughout science-fiction fandom.
[originally, someone who makes furniture with an axe]
1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users’ Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.
2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
3. A person capable of appreciating hack value.
4. A person who is good at programming quickly.
5. An expert at a particular program, or one who frequently does work using it or on it; as in "a Unix hacker". (Definitions 1 through 5 are correlated, and people who fit them congregate.)
6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.
8. [deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence “password hacker”, “network hacker”. The correct term for this sense is cracker.
The term "hacker" also tends to connote membership in the global community defined by the net (see the network. For discussion of some of the basics of this culture, see the How To Become A Hacker FAQ. It also implies that the person described is seen to subscribe to some version of the hacker ethic (see hacker ethic).
It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you’ll quickly be labeled bogus). See also wannabee.
This term seems to have been first adopted as a badge in the 1960s by the hacker culture surrounding TMRC and the MIT AI Lab. We have a report that it was used in a sense close to this entry’s by teenage radio hams and electronics tinkerers in the mid-1950s.
A notable bomb from 1995. Should have been titled Crackers, because cracking is what the movie was about. It’s understandable that they didn’t however; titles redolent of snack food are probably a tough sell in Hollywood.
[analogy with “bombing run” or “speed run”] A hack session extended long outside normal working times, especially one longer than 12 hours. May cause you to “change phase the hard way” (see phase).
[ITS] Ritual phrasing of part of the information which ITS made publicly available about each user. This information (the INQUIR record) was a sort of form in which the user could fill out various fields. On display, two of these fields were always combined into a project description of the form “Hacking X for Y” (e.g., “Hacking perceptrons for Minsky”). This form of description became traditional and has since been carried over to other systems with more general facilities for self-advertisement (such as Unix plan files).
1. An Apple Lisa that has been hacked into emulating a Macintosh (also called a “Mac XL”).
2. A Macintosh assembled from parts theoretically belonging to different models in the line.
3. A generic brand PC hacked to run the newer Macintosh operating system.
(also hackishness n.)
1. Said of something that is or involves a hack.
2. Of or pertaining to hackers or the hacker subculture. See also true-hacker.
The quality of being or involving a hack. This term is considered mildly silly. Syn. hackitude.
Syn. hackishness; this word is considered sillier.
[back-formation from hairy] The complications that make something hairy. “Decoding TECO commands requires a certain amount of hair.” Often seen in the phrase “infinite hair”, which connotes extreme complexity. Also in “hairiferous” (tending to promote hair growth): “GNUMACS elisp encourages lusers to write complex editing modes.” “Yeah, it’s pretty hairiferous all right.” (or just: “Hair squared!”)
1. [Fidonet] A large batch of messages that a store-and-forward network is failing to forward when it should. Often used in the phrase “Fido coughed up a hairball today”, meaning that the stuck messages have just come unstuck, producing a flood of mail where there had previously been drought.
2. An unmanageably huge mass of source code. “JWZ thought the Mozilla effort bogged down because the code was a huge hairball.”
3. Any large amount of garbage coming out suddenly. “Sendmail is coughing up a hairball, so expect some slowness accessing the Internet.”
1. Annoyingly complicated. "DWIM is incredibly hairy."
2. Incomprehensible. “DWIM is incredibly hairy.”
3. Of people, high-powered, authoritative, rare, expert, and/or incomprehensible. Hard to explain except in context: “He knows this hairy lawyer who says there’s nothing to worry about.” See also hirsute.
There is a theorem in simplicial homology theory which states that any continuous tangent field on a 2-sphere is null at least in a point. Mathematically literate hackers tend to associate the term “hairy” with the informal version of this theorem; “You can’t comb a hairy ball smooth.” (Previous versions of this entry associating the above informal statement with the Brouwer fixed-point theorem were incorrect.)
The adjective “long-haired” is well-attested to have been in slang use among scientists and engineers during the early 1950s; it was equivalent to modern “hairy” senses 1 and 2, and was very likely ancestral to the hackish use. In fact the noun “long-hair” was at the time used to describe a person satisfying sense 3. Both senses probably passed out of use when long hair was adopted as a signature trait by the 1960s counterculture, leaving hackish “hairy” as a sort of stunted mutant relic.
In British mainstream use, “hairy” means “dangerous”, and consequently, in British programming terms, “hairy” may be used to denote complicated and/or incomprehensible code, but only if that complexity or incomprehesiveness is also considered dangerous.
MIT AI Memo 239 (February 1972). A legendary collection of neat mathematical and programming hacks contributed by many people at MIT and elsewhere. (The title of the memo really is “HAKMEM”, which is a 6-letterism for “hacks memo”.) Some of them are very useful techniques, powerful theorems, or interesting unsolved problems, but most fall into the category of mathematical and computer trivia. Here is a sampling of the entries (with authors), slightly paraphrased:
Item 41 (Gene Salamin): There are exactly 23,000 prime numbers less than 218.
Item 46 (Rich Schroeppel): The most probable suit distribution in bridge hands is 4-4-3-2, as compared to 4-3-3-3, which is the most evenly distributed. This is because the world likes to have unequal numbers: a thermodynamic effect saying things will not be in the state of lowest energy, but in the state of lowest disordered energy.
Item 81 (Rich Schroeppel): Count the magic squares of order 5 (that is, all the 5-by-5 arrangements of the numbers from 1 to 25 such that all rows, columns, and diagonals add up to the same number). There are about 320 million, not counting those that differ only by rotation and reflection.
Item 154 (Bill Gosper): The myth that any given programming language is machine independent is easily exploded by computing the sum of powers of 2. If the result loops with period = 1 with sign +, you are on a sign-magnitude machine. If the result loops with period = 1 at -1, you are on a twos-complement machine. If the result loops with period greater than 1, including the beginning, you are on a ones-complement machine. If the result loops with period greater than 1, not including the beginning, your machine isn’t binary – the pattern should tell you the base. If you run out of memory, you are on a string or bignum system. If arithmetic overflow is a fatal error, some fascist pig with a read-only mind is trying to enforce machine independence. But the very ability to trap overflow is machine dependent. By this strategy, consider the universe, or, more precisely, algebra: Let X = the sum of many powers of 2 = ...111111 (base 2). Now add X to itself: X + X = ...111110. Thus, 2X = X - 1, so X = -1. Therefore algebra is run on a machine (the universe) that is two’s-complement.
Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the only number such that if you represent it on the PDP-10 as both an integer and a floating-point number, the bit patterns of the two representations are identical.
Item 176 (Gosper): The “banana phenomenon” was encountered when processing a character string by taking the last 3 letters typed out, searching for a random occurrence of that sequence in the text, taking the letter following that occurrence, typing it out, and iterating. This ensures that every 4-letter string output occurs in the original. The program typed BANANANANANANANA... We note an ambiguity in the phrase, “the Nth occurrence of.” In one sense, there are five 00’s in 0000000000; in another, there are nine. The editing program TECO finds five. Thus it finds only the first ANA in BANANA, and is thus obligated to type N next. By Murphy’s Law, there is but one NAN, thus forcing A, and thus a loop. An option to find overlapped instances would be useful, although it would require backing up N − 1 characters before seeking the next N-character string.
Note: This last item refers to a Dissociated Press implementation. See also banana problem.
HAKMEM also contains some rather more complicated mathematical and technical items, but these examples show some of its fun flavor.
An HTML transcription of the entire document is available at http://www.inwap.com/pdp10/hbaker/hakmem/hakmem.html.
A shorthand method of spelling found on many British academic bulletin boards and talker systems. Syllables and whole words in a sentence are replaced by single ASCII characters the names of which are phonetically similar or equivalent, while multiple letters are usually dropped. Hence, “for” becomes “4”; “two”, “too”, and “to” become “2”; “ck” becomes “k”. “Before I see you tomorrow” becomes “b4 i c u 2moro”. First appeared in London about 1986, and was probably caused by the slowness of available talker systems, which operated on archaic machines with outdated operating systems and no standard methods of communication.
Hakspek almost disappeared after the great bandwidth explosion of the early 1990s, as fast Internet links wiped out the old-style talker systems. However, it has enjoyed a revival in another medium – the Short Message Service (SMS) associated with GSM cellphones. SMS sends are limited to a maximum of 160 characters, and typing on a cellphone keypad is difficult and slow anyway. There are now even published paper dictionaries for SMS users to help them do hakspek-to-English and vice-versa.
See also talk mode.
A pair of Microsoft internal strategy memoranda leaked to ESR in late 1998 that confirmed everybody’s paranoia about the current Evil Empire. These documents praised the technical excellence of Linux and outlined a counterstrategy of attempting to lock in customers by “de-commoditizing” Internet protocols and services. They were extensively cited on the Internet and in the press and proved so embarrassing that Microsoft PR barely said a word in public for six months afterwards.
The opposite of spam, sense 3; that is, incoming mail that the user actually wants to see.
Commonwealth hackish syn. for bang on.
1. [Fairchild] A particularly slick little piece of code that does one thing well; a small, self-contained hack. The image is of a hamster happily spinning its exercise wheel.
2. A tailless mouse; that is, one with an infrared link to a receiver on the machine, as opposed to the conventional cable.
3. [UK] Any item of hardware made by Amstrad, a company famous for its cheap plastic PC-almost-compatibles.
[pun on "hand craft"] See cruft, sense 3.
1. [rare] The practice of translating hot spots from an HLL into hand-tuned assembler, as opposed to trying to coerce the compiler into generating better code. Both the term and the practice are becoming uncommon. See by hand; syn. with v. cruft.
2. [common] More generally, manual construction or patching of data sets that would normally be generated by a translation utility and interpreted by another program, and aren’t really designed to be read or modified by humans.
[from obs. mainstream slang “hand-rolled” in opposition to “ready-made”, referring to cigarettes] To perform a normally automated software installation or configuration process by hand; implies that the normal process failed due to bugs in the configurator or was defeated by something exceptional in the local environment. “The worst thing about being a gateway between four different nets is having to hand-roll a new sendmail configuration every time any of them upgrades.”
[Usenet: very common] Abbreviation: Have A Nice Day. Typically used to close a Usenet posting, but also used to informally close emails; often preceded by HTH.
1. [from CB slang] An electronic pseudonym; a nom de guerre intended to conceal the user’s true identity. Network and BBS handles function as the same sort of simultaneous concealment and display one finds on Citizen’s Band radio, from which the term was adopted. Use of grandiose handles is characteristic of crackers, spods, and other lower forms of network life; true hackers travel on their own reputations rather than invented legendry. Compare nick, magic cookie, often in the form of a numeric index into some array somewhere, through which you can manipulate an object like a file or window. The form “file handle” is especially common.
2. [Mac] A pointer to a pointer to dynamically-allocated memory; the extra level of indirection allows on-the-fly memory compaction (to cut down on fragmentation) or aging out of unused resources, with minimal impact on the (possibly multiple) parts of the larger program containing references to the allocated memory. Compare snap (to snap a handle would defeat its purpose); see also dangling pointer.
[very common] Hardware or software activity designed to start or keep two machines or programs in synchronization as they do protocol. Often applied to human activity; thus, a hacker might watch two people in conversation nodding their heads to indicate that they have heard each others' points and say “Oh, they’re handshaking!”. See also protocol.
[poss. from gestures characteristic of stage magicians]
1. v. To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic.
2. n. The act of handwaving. "Boy, what a handwave!"
If someone starts a sentence with “Clearly...” or “Obviously...” or “It is self-evident that...”, it is a good bet he is about to handwave (alternatively, use of these constructions in a sarcastic tone before a paraphrase of someone else’s argument suggests that it is a handwave). The theory behind this term is that if you wave your hands at the right moment, the listener may be sufficiently distracted to not notice that what you have said is bogus. Failing that, if a listener does object, you might try to dismiss the objection with a wave of your hand.
The use of this word is often accompanied by gestures: both hands up, palms forward, swinging the hands in a vertical plane pivoting at the elbows and/or shoulders (depending on the magnitude of the handwave); alternatively, holding the forearms in one position while rotating the hands at the wrist to make them flutter. In context, the gestures alone can suffice as a remark; if a speaker makes an outrageously unsupported assumption, you might simply wave your hands in this way, as an accusation, far more eloquent than words could express, that his logic is faulty.
1. [very common] To wait for an event that will never occur. “The system is hanging because it can’t read from the crashed drive”. See wedged, hung.
2. To wait for some event to occur; to hang around until something happens. “The program displays a menu and then hangs until you type a character.” Compare block.
3. To attach a peripheral device, esp. in the construction “hang off”: “We’re going to hang another tape drive off the file server.” Implies a device attached with cables, rather than something that is strictly inside the machine’s chassis.
A corollary of Finagle’s Law, similar to Occam’s Razor, that reads “Never attribute to malice that which can be adequately explained by stupidity.” Quoted here because it seems to be a particular favorite of hackers, often showing up in fortune cookie files and the login banners of BBS systems and commercial networks. This probably reflects the hacker’s daily experience of environments created by well-intentioned but short-sighted people. Compare Ninety-Ninety Rule.
At http://www.statusq.org/2001/11/26.html it is claimed that Hanlon’s Razor was coined by one Robert J. Hanlon of Scranton, PA. However, a curiously similar remark (“You have attributed conditions to villainy that simply result from stupidity.”) appears in Logic of Empire, a classic 1941 SF story by Robert A. Heinlein, who calls the error it indicates the “devil theory” of sociology. Similar epigrams have been attributed to William James and (on dubious evidence) Napoleon Bonaparte.
Of software, used to emphasize that a program is unaware of some important fact about its environment, either because it has been fooled into believing a lie, or because it doesn’t care. The sense of “happy” here is not that of elation, but rather that of blissful ignorance. “The program continues to run, happily unaware that its output is going to /dev/null.” Also used to suggest that a program or device would really rather be doing something destructive, and is being given an opportunity to do so. “If you enter an O here instead of a zero, the program will happily erase all your data.” Nevertheless, use of this term implies a basically benign attitude towards the program: It didn’t mean any harm, it was just eager to do its job. We’d like to be angry at it but we shouldn’t, we should try to understand it instead. The adjective “cheerfully” is often used in exactly the same way.
See boot.
1. [common] Said of data inserted directly into a program, where it cannot be easily modified, as opposed to data in some profile, resource (see de-rezz sense 2), or environment variable that a user or hacker can easily modify.
2. In C, this is esp. applied to use of a literal instead of a #define macro (see magic number).
In a way pertaining to hardware. “The system is hardwarily unreliable.” The adjective “hardwary” is not traditionally used, though it has recently been reported from the U.K. See softwarily.
1. In software, syn. for hardcoded.
2. By extension, anything that is not modifiable, especially in the sense of customizable to one’s particular needs or tastes.
[seems to derive from Zen Buddhist koans of the form “Does an X have the Buddha-nature?”] adj. Common hacker construction for “is an X”, used for humorous emphasis. “Anyone who can’t even use a program with on-screen help embedded in it truly has the loser nature!” See also the X that can be Y is not the true X. See also mu.
A notional receptacle, a set of which might be used to apportion data items for sorting or lookup purposes. When you look up a name in the phone book (for example), you typically hash it by extracting its first letter; the hash buckets are the alphabetically ordered letter sections. This term is used as techspeak with respect to code that uses actual hash functions; in jargon, it is used for human associative memory as well. Thus, two things “in the same hash bucket” are more difficult to discriminate, and may be confused. “If you hash English words only by length, you get too many common grammar words in the first couple of hash buckets.” Compare hash collision.
[from the techspeak] (var.: “hash clash”) When used of people, signifies a confusion in associative memory or imagination, especially a persistent one (see thinko). True story: One of us [ESR] was once on the phone with a friend about to move out to Berkeley. When asked what he expected Berkeley to be like, the friend replied: “Well, I have this mental picture of naked women throwing Molotov cocktails, but I think that’s just a collision in my hash tables.” Compare hash bucket.
Common (spoken) name for the circumflex (“^”, ASCII 1011110) character. See ASCII for other synonyms.
Mnemonic for “Halt and Catch Fire”, any of several undocumented and semi-mythical machine instructions with destructive side-effects, supposedly included for test purposes on several well-known architectures going as far back as the IBM 360. The MC6800 microprocessor was the first for which an HCF opcode became widely known. This instruction caused the processor to toggle a subset of the bus lines as rapidly as it could; in some configurations this could actually cause lines to burn up. Compare killer poke.
Concentrating, usually so heavily and for so long that everything outside the focus area is missed. See also hack mode and larval stage, although this mode is hardly confined to fledgling hackers.
1. The signal emitted by a Level 2 Ethernet transceiver at the end of every packet to show that the collision-detection circuit is still connected.
2. A periodic synchronization signal used by software or hardware, such as a bus clock or a periodic interrupt.
3. The “natural” oscillation frequency of a computer’s clock crystal, before frequency division down to the machine’s clock rate.
4. A signal emitted at regular intervals by software to demonstrate that it is still alive. Sometimes hardware is designed to reboot the machine if it stops hearing a heartbeat. See also breath-of-life packet.
[IBM] A customer who can be relied upon to buy, without fail, the latest version of an existing product (not quite the same as a member of the lunatic fringe). A 1993 example of a heatseeker was someone who, owning a 286 PC and Windows 3.0, went out and bought Windows 3.1 (which offers no worthwhile benefits unless you have a 386). If all customers were heatseekers, vast amounts of money could be made by just fixing some of the bugs in each release (n) and selling it to them as release (n+1). Microsoft in fact seems to have mastered this technique.
[Cambridge] Syn. big iron.
Code or designs that trade on a particularly intimate knowledge or experience of a particular operating system or language or complex application interface. Distinguished from deep magic, which trades more on arcane theoretical knowledge. Writing device drivers is heavy wizardry; so is interfacing to X (sense 2) without a toolkit. Esp.: found in source-code comments of the form “Heavy wizardry begins here”. Compare voodoo programming.
[common] High-overhead; baroque; code-intensive; featureful, but costly. Esp. used of communication protocols, language designs, and any sort of implementation in which maximum generality and/or ease of implementation has been pushed at the expense of mundane considerations such as speed, memory utilization, and startup time. EMACS is a heavyweight editor; X is an extremely heavyweight window system. This term isn’t pejorative, but one hacker’s heavyweight is another’s elephantine and a third’s monstrosity. Oppose “lightweight”. Usage: now borders on techspeak, especially in the compound "heavyweight process">.
Unflattering spoonerism of Red Hat, a popular Linux distribution. Compare Macintrash. HP-SUX, Slowlaris.
[from Heisenberg’s Uncertainty Principle in quantum physics] A bug that disappears or alters its behavior when one attempts to probe or isolate it. (This usage is not even particularly fanciful; the use of a debugger sometimes alters a program’s operating environment significantly enough that buggy code, such as that which relies on the values of uninitialized memory, behaves quite differently.) Antonym of mandelbug, schroedinbug. In C, nine out of ten heisenbugs result from uninitialized auto variables, fandango on core phenomena (esp. lossage related to corruption of the malloc arena) or errors that smash the stack.
Common mispronunciation of “help desk”, especially among people who have to answer phones at one.
See wall.
Occasional West Coast equivalent of hello world; seems to have originated at SAIL, later associated with the game Zork (which also included “hello, aviator” and “hello, implementor”). Originally from the traditional hooker’s greeting to a swabbie fresh off the boat, of course. The standard response is “Nothing happens here.”; of all the Zork/Dungeon games, only in Infocom’s Zork 3 is “Hello, Sailor” actually useful (excluding the unique situation where _knowing_ this fact is important in Dungeon...).
1. The canonical minimal test message in the C/Unix universe.
2. Any of the minimal programs that emit this message (a representative sample in various languages can be found at http://www.latech.edu/~acm/helloworld/). Traditionally, the first program a C coder is supposed to write in a new environment is one that just prints “hello, world” to standard output (and indeed it is the first example program in K&R). Environments that generate an unreasonably large executable for this trivial test or which require a hairy compiler-linker invocation to generate it are considered to X).
3. Greeting uttered by a hacker making an entrance or requesting information from anyone present. “Hello, world! Is the LAN back up yet?”
1. Short for hexadecimal, base 16.
2. A 6-pack of anything (compare quad, sense 2). Neither usage has anything to do with magic or black art, though the pun is appreciated and occasionally used by hackers. True story: As a joke, some hackers once offered some surplus ICs for sale to be worn as protective amulets against hostile magic. The chips were, of course, hex inverters.
Base 16. Coined in the early 1950s to replace earlier “sexadecimal”, which was too racy and amusing for stuffy IBM, and later adopted by the rest of the industry.
Actually, neither term is etymologically pure. If we take “binary” to be paradigmatic, the most etymologically correct term for base 10, for example, is “denary”, which comes from “deni” (ten at a time, ten each), a Latin “distributive” number; the corresponding term for base-16 would be something like “sendenary”. “Decimal” comes from the combining root of “decem”, Latin for 10. If wish to create a truly analogous word for base 16, we should start with “sedecim”, Latin for 16. Ergo, “sedecimal” is the word that would have been created by a Latin scholar. The “sexa-” prefix is Latin but incorrect in this context, and "hexa-" is Greek. The word "octal" is similarly incorrect; a correct form would be "octaval" (to go with decimal), or "octonary" (to go with binary). If anyone ever implements a base-3 computer, computer scientists will be faced with the unprecedented dilemma of a choice between two correct forms; both "ternary" and "trinary" have a claim to this throne.
A hexadecimal digit (0-9, and A-F or a-f). Used by people who claim that there are only ten digits, dammit; sixteen-fingered human beings are rather rare, despite what some keyboard designs might seem to imply (see space-cadet keyboard).
See ha ha only serious.
See ha ha only serious.
[scientific computation] An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. The use of hidden flags can make a program very hard to debug and understand, but is all too common wherever programs are hacked on in a hurry.
[from “high-order bit”]
1. The most significant bit in a byte.
2. [common] By extension, the most significant part of something other than a data byte: “Spare me the whole saga, just give me the high bit.” See also meta bit, dread high-bit disease, and compare the mainstream slang “bottom line”.
The high half of a 512K PDP-10’s physical address space; the other half was of course the low moby. This usage has been generalized in a way that has outlasted the PDP-10; for example, at the 1990 Washington D.C. Area Science Fiction Conclave (Disclave), when a miscommunication resulted in two separate wakes being held in commemoration of the shutdown of MIT’s last ITS machines, the one on the upper floor was dubbed the “high moby” and the other the “low moby”. All parties involved grokked this instantly. See moby.
[scientific computation] The preferred modifier for overstating an understatement. As in: “highly nonoptimal”, the worst possible way to do something; “highly nontrivial”, either impossible or requiring a major research project; “highly nonlinear”, completely erratic and unpredictable; “highly nontechnical”, drivel written for lusers, oversimplified to the point of being misleading or incorrect (compare drool-proof paper). In other computing cultures, postfixing of in the extreme might be preferred.
[IRC] Fortuitous typo for “hint”, now in wide intentional use among players of initgame. Compare filk.
A contract programmer, as opposed to a full-time staff member. All the connotations of this term suggested by innumerable spaghetti Westerns are intentional.
Occasionally used humorously as a synonym for hairy.
[High-Level Language (as opposed to assembler)] Found primarily in email and news rather than speech. Rarely, the variants “VHLL” and “MLL” are found. VHLL stands for “Very-High-Level Language” and is used to describe a bondage-and-discipline language that the speaker happens to like; Prolog and Backus’s FP are often called VHLLs. “MLL” stands for “Medium-Level Language” and is sometimes used half-jokingly to describe C, alluding to its “structured-assembler” image. See also languages of choice.
See software hoarding.
1. Favored term to describe programs or hardware that seem to eat far more than their share of a system’s resources, esp. those which noticeably degrade interactive response. Not used of programs that are simply extremely large or complex or that are merely painfully slow themselves. More often than not encountered in qualified forms, e.g., “memory hog”, “core hog”, “hog the processor”, “hog the disk”. “A controller that never gives up the I/O bus gets killed after the bus-hog timer expires.”
2. Also said of people who use more than their fair share of resources (particularly disk, where it seems that 10% of the people use 90% of the disk, no matter how big the disk is or how many people use it). Of course, once disk hogs fill up one filesystem, they typically find some other new one to infect, claiming to the sysadmin that they have an important new project to complete.
A region in an otherwise flat entity which is not actually present. For example, some Unix filesystems can store large files with holes so that unused regions of the file are never actually stored on disk. (In techspeak, these are referred to as "sparse" files.) As another example, the region of memory in IBM PCs reserved for memory-mapped I/O devices which may not actually be present is called “the I/O hole”, since memory-management systems must skip over this area when filling user requests for memory.
[Usenet: sci.space] To be hollised is to have been ordered by one’s employer not to post any even remotely job-related material to Usenet (or, by extension, to other Internet media). The original and most notorious case of this involved one Ken Hollis, a Lockheed employee and space-program enthusiast who posted publicly available material on access to Space Shuttle launches to sci.space. He was gagged under threat of being fired in 1994 at the behest of NASA public-relations officers. The result was, of course, a huge publicity black eye for NASA. Nevertheless several other NASA contractor employees were subsequently hollised for similar activities. Use of this term carries the strong connotation that the persons doing the gagging are bureaucratic idiots blinded to their own best interests by territorial reflexes.
[Linux] Notional substance said to be sprinkled by Linus onto other people’s contributions. With this ritual, he blesses them, officially making them part of the kernel. First used in November 1998 just after Linus had handed the maintenance of the stable kernel over to Alan Cox.
[from Usenet, but may predate it; common] n. flame wars over religious issues. The paper by Danny Cohen that popularized the terms big-endian and little-endian in connection with the LSB-first/MSB-first controversy was entitled On Holy Wars and a Plea for Peace.
Great holy wars of the past have included ITS vs.: Unix vs.: BSD Unix vs.: System V, Pascal, C vs.: FORTRAN, etc. In the year 2003, popular favorites of the day are KDE vs, GNOME, vim vs. elvis, Linux vs. [Free|Net|Open]BSD. Hardy perennials include vi, my personal computer vs.: everyone else’s personal computer, ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy war most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. This happens precisely because in a true holy war, the actual substantive differences between the sides are relatively minor. See also theology.
A hacker’s personal machine, especially one he or she owns. “Yeah? Well, my home box runs a full 4.4 BSD, so there!”
1. Syn. home box.
2. The machine that receives your email. These senses might be distinct, for example, for a hacker who owns one computer at home, but reads email at work.
1. One’s personal billboard on the World Wide Web. The term “home page” is perhaps a bit misleading because home directories and physical homes in RL are private, but home pages are designed to be very public.
2. By extension, a WWW repository for information and links related to a project or organization. Compare home box.
Built from scratch rather than purchased off the shelf. This term can have connotations of a poorer quality or “first draft” approach, but more often is used as an expression of pride and confidence in the actual usefulness and quality of whatever software is being built. By extension, may be used to refer to other items the builder finds personally more useful, aesthetically pleasing, and/or accurate.
1. A box designed to attract crackers so that they can be observed in action. It is usually well isolated from the rest of the network, but has extensive logging (usually network layer, on a different machine). Different from an iron box in that its purpose is to attract, not merely observe. Sometimes, it is also a defensive network security tactic – you set up an easy-to-crack box so that your real servers don’t get messed with. The concept was presented in Cheswick & Bellovin’s book Firewalls and Internet Security.
2. A mail server that acts as an open relay when a single message is attempted to send through it, but discards or diverts for examination messages that are detected to be part of a spam run.
A software or hardware feature included in order to simplify later additions or changes by a user. For example, a simple program that prints numbers might always print them in base 10, but a more flexible version would let a variable determine what base to use; setting the variable to 5 would make the program print numbers in base 5. The variable is a simple hook. An even more flexible program might examine the variable and treat a value of 16 or less as the base to use, but treat any other number as the address of a user-supplied routine for printing a number. This is a hairy but powerful hook; one can then write a routine to print numbers as Roman numerals, say, or as Hebrew characters, and plug it into the program through the hook. Often the difference between a good program and a superb one is that the latter has useful hooks in judiciously chosen places. Both may do the original job about equally well, but the one with the hooks is much more flexible for future expansion of capabilities (EMACS, for example, is all hooks). The term “user exit” is synonymous but much more formal and less hackish.
1. n. [common] One file transmission in a series required to get a file from point A to point B on a store-and-forward network. On such networks (including the old UUCP network and and FidoNet), an important inter-machine metric is the number of hops in the shortest path between them, which can be more significant than their geographical separation. See bang path.
2. v. [rare] To log in to a remote machine, esp. via rlogin or telnet. “I’ll hop over to foovax to FTP that.”
Broken. Confused. Trashed. Now common; seems to be post-1995. There is an entertaining web page of related definitions, few of which seem to be in live use but many of which would be in the recognition vocabulary of anyone familiar with the adjective.
1. vt. [common] To make non-functional or greatly degraded in performance. “That big ray-tracing program really hoses the system.” See hosed.
2. n. A narrow channel through which data flows under pressure. Generally denotes data paths that represent performance bottlenecks.
3. n. Cabling, especially thick Ethernet cable. This is sometimes called “bit hose” or “hosery” (play on “hosiery”) or “etherhose”. See also washing machine.
Same as down. Used primarily by Unix hackers. Humorous: also implies a condition thought to be relatively easy to reverse. Probably derived from the Canadian slang “hoser” popularized by the Bob and Doug Mackenzie skits on SCTV, but this usage predated SCTV by years in hackerdom (it was certainly already live at CMU in the 1970s). See hose. It is also widely used of people in the mainstream sense of “in an extremely unfortunate situation”.
Once upon a time, a Cray that had been experiencing periodic difficulties crashed, and it was announced to have been hosed. It was discovered that the crash was due to the disconnection of some coolant hoses. The problem was corrected, and users were then assured that everything was OK because the system had been rehosed. See also dehose.
Sexually explicit one-on-one chat. See teledildonics.
1. [primarily used by C/Unix programmers, but spreading] It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; if one were to graph instruction visits versus code addresses, one would typically see a few huge spikes amidst a lot of low-level noise. Such spikes are called “hot spots” and are good candidates for heavy optimization or hand-hacking. The term is especially used of tight loops and recursions in the code’s central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations. See hand-hacking.
2. The active location of a cursor on a bit-map display. “Put the mouse’s hot spot on the ”ON" widget and click the left button."
3. A screen region that is sensitive to mouse gestures, which trigger some action. World Wide Web pages now provide the canonical examples; WWW browsers present hypertext links as hot spots which, when clicked on, point the browser at another document (these are specifically called hotlinks).
4. In a massively parallel computer with shared memory, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a busy-wait on the same lock).
5. More generally, any place in a hardware design that turns into a performance bottleneck due to resource contention.
A hot spot on a World Wide Web page; an area, which, when clicked or selected, chases a URL. Also spelled “hot link”. Use of this term focuses on the link’s role as an immediate part of your display, as opposed to the timeless sense of logical connection suggested by web pointer. Your screen shows hotlinks but your document has web pointers, not (in normal usage) the other way around.
[prob.: from ad-agency tradetalk, “house freak”] A hacker occupying a technical-specialist, R&D, or systems position at a commercial shop. A really effective house wizard can have influence out of all proportion to his/her ostensible rank and still not have to wear a suit. Used esp. of Unix wizards. The term “house guru” is equivalent.
Unflattering hackerism for HP-UX, Hewlett-Packard’s Unix port, which features some truly unique bogosities in the filesystem internals and elsewhere (these occasionally create portability problems). HP-UX is often referred to as “hockey-pux” inside HP, and one respondent claims that the proper pronunciation is /H·P ukkkhhhh/ as though one were about to spit. Another such alternate spelling and pronunciation is “H-PUX” /H-puhks/. Hackers at HP/Apollo (the former Apollo Computers which was swallowed by HP in 1989) have been heard to complain that Mr. Packard should have pushed to have his name first, if for no other reason than the greater eloquence of the resulting acronym. See sun-stools, Slowlaris.
[Usenet: very common] Abbreviation: Hope This Helps (e.g. following a response to a technical question). Often used just before HAND. See also YHBT.
To compress data using a Huffman code. Various programs that use such methods have been called “HUFF” or some variant thereof. Oppose crunch, compress.
[from “hung up”; common] Equivalent to wedged, but more common at Unix/C sites. Not generally used of people. Syn. with locked up, hosed. See also hang. A hung state is distinguished from down, where the program or system is also unusable but because it is not running rather than because it is waiting for something. However, the recovery from both situations is often the same. It is also distinguished from the similar but more drastic state wedged – hung software can be woken up with easy things like interrupt keys, but wedged will need a kill -9 or even reboot.
Syn. slopsucker.
[perhaps related to slang “humongous”] Large, unwieldy, usually unmanageable. “TCP is a hungus piece of code.” “This is a hungus set of modifications.” The Infocom text adventure game Beyond Zork included two monsters called hunguses.
A memory location that is far away from where the program counter should be pointing, especially a place that is inaccessible because it is not even mapped in by the virtual-memory system. “Another core dump – looks like the program jumped off to hyperspace somehow.” (Compare jump off into never-never land.) This usage is from the SF notion of a spaceship jumping “into hyperspace”, that is, taking a shortcut through higher-dimensional space – in other words, bypassing this universe. The variant “east hyperspace” is recorded among CMU and Bliss hackers.
(also “hysterical raisins”) A variant on the stock phrase “for historical reasons”, indicating specifically that something must be done in some stupid way for backwards compatibility, and moreover that the feature it must be compatible with was the result of a bad design in the first place. “All IBM PC video adapters have to support MDA text mode for hysterical reasons.” Compare bug-for-bug compatible.