Part 29
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.
Node:hash collision, Next:hat, Previous:hash bucket, Up:= H =
hash collision n.
[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.
Node:hat, Next:HCF, Previous:hash collision, Up:= H =
hat n.
Common (spoken) name for the circumflex (`^', ASCII 1011110) character. See ASCII for other synonyms.
Node:HCF, Next:heads down, Previous:hat, Up:= H =
HCF /H-C-F/ n.
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.
Node:heads down, Next:heartbeat, Previous:HCF, Up:= H =
heads down [Sun] adj.
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.
Node:heartbeat, Next:heatseeker, Previous:heads down, Up:= H =
heartbeat n.
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.
Node:heatseeker, Next:heavy metal, Previous:heartbeat, Up:= H =
heatseeker n.
[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.
Node:heavy metal, Next:heavy wizardry, Previous:heatseeker, Up:= H =
heavy metal n.
[Cambridge] Syn. big iron.
Node:heavy wizardry, Next:heavyweight, Previous:heavy metal, Up:= H =
heavy wizardry n.
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.
Node:heavyweight, Next:heisenbug, Previous:heavy wizardry, Up:= H =
heavyweight adj.
[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'.
Node:heisenbug, Next:Helen Keller mode, Previous:heavyweight, Up:= H =
heisenbug /hi:'zen-buhg/ n.
[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 Bohr bug; see also 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.
Node:Helen Keller mode, Next:hello sailor!, Previous:heisenbug, Up:= H =
Helen Keller mode n.
1. State of a hardware or software system that is deaf, dumb, and blind, i.e., accepting no input and generating no output, usually due to an infinite loop or some other excursion into deep space. (Unfair to the real Helen Keller, whose success at learning speech was triumphant.) See also go flatline, catatonic. 2. On IBM PCs under DOS, refers to a specific failure mode in which a screen saver has kicked in over an ill-behaved application which bypasses the very interrupts the screen saver watches for activity. Your choices are to try to get from the program's current state through a successful save-and-exit without being able to see what you're doing, or to re-boot the machine. This isn't (strictly speaking) a crash.
Node:hello sailor!, Next:hello wall!, Previous:Helen Keller mode, Up:= H =
hello sailor! interj.
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...).
Node:hello wall!, Next:hello world, Previous:hello sailor!, Up:= H =
hello, wall! excl.
See wall.
Node:hello world, Next:hex, Previous:hello wall!, Up:= H =
hello world interj.
1. The canonical minimal test message in the C/Unix universe. 2. Any of the minimal programs that emit this message. 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 lose (see X). 3. Greeting uttered by a hacker making an entrance or requesting information from anyone present. "Hello, world! Is the LAN back up yet?"
Node:hex, Next:hexadecimal, Previous:hello world, Up:= H =
hex n.
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.
Node:hexadecimal, Next:hexit, Previous:hex, Up:= H =
hexadecimal n.
Base 16. Coined in the early 1960s 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' is from an ordinal number; the corresponding prefix for 6 would imply something like `sextidecimal'. 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.
Node:hexit, Next:HHOK, Previous:hexadecimal, Up:= H =
hexit /hek'sit/ n.
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).
Node:HHOK, Next:HHOS, Previous:hexit, Up:= H =
HHOK
See ha ha only serious.
Node:HHOS, Next:hidden flag, Previous:HHOK, Up:= H =
HHOS
See ha ha only serious.
Node:hidden flag, Next:high bit, Previous:HHOS, Up:= H =
hidden flag n.
[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.
Node:high bit, Next:high moby, Previous:hidden flag, Up:= H =
high bit n.
[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, hobbit, dread high-bit disease, and compare the mainstream slang `bottom line'.
Node:high moby, Next:highly, Previous:high bit, Up:= H =
high moby /hi:' mohb'ee/ n.
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.
Node:highly, Next:hing, Previous:high moby, Up:= H =
highly adv.
[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.
Node:hing, Next:hired gun, Previous:highly, Up:= H =
hing // n.
[IRC] Fortuitous typo for `hint', now in wide intentional use among players of initgame. Compare newsfroup, filk.
Node:hired gun, Next:hirsute, Previous:hing, Up:= H =
hired gun n.
A contract programmer, as opposed to a full-time staff member. All the connotations of this term suggested by innumerable spaghetti Westerns are intentional.
Node:hirsute, Next:HLL, Previous:hired gun, Up:= H =
hirsute adj.
Occasionally used humorously as a synonym for hairy.
Node:HLL, Next:hoarding, Previous:hirsute, Up:= H =
HLL /H-L-L/ n.
[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.
Node:hoarding, Next:hobbit, Previous:HLL, Up:= H =
hoarding n.
See software hoarding.
Node:hobbit, Next:hog, Previous:hoarding, Up:= H =
hobbit n.
1. [rare] The High Order BIT of a byte; same as the meta bit or high bit. 2. The non-ITS name of vad@ai.mit.edu (*Hobbit*), master of lasers.
Node:hog, Next:hole, Previous:hobbit, Up:= H =
hog n.,vt.
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.
Node:hole, Next:hollised, Previous:hog, Up:= H =
hole n.
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.
Node:hollised, Next:holy wars, Previous:hole, Up:= H =
hollised /hol'ist/ adj.
[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.
Node:holy wars, Next:home box, Previous:hollised, Up:= H =
holy wars n.
[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, Unix vs. VMS, BSD Unix vs. USG Unix, C vs. Pascal, C vs. FORTRAN, etc. In the year 2000, popular favorites of the day are KDE vs, GNOME, vim vs. elvis, Linux vs. [Free|Net|Open]BSD. Hardy perennials include EMACS vs. 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.
Node:home box, Next:home machine, Previous:holy wars, Up:= H =
home box n.
A hacker's personal machine, especially one he or she owns. "Yeah? Well, my home box runs a full 4.4 BSD, so there!"
Node:home machine, Next:home page, Previous:home box, Up:= H =
home machine n.
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.
Node:home page, Next:honey pot, Previous:home machine, Up:= H =
home page n.
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.
Node:honey pot, Next:hook, Previous:home page, Up:= H =
honey pot n.
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 it's 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".
Node:hook, Next:hop, Previous:honey pot, Up:= H =
hook n.
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.
Node:hop, Next:hose, Previous:hook, Up:= H =
hop
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 UUCPNET 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."
Node:hose, Next:hosed, Previous:hop, Up:= H =
hose
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.
Node:hosed, Next:hot chat, Previous:hose, Up:= H =
hosed adj.
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.
Node:hot chat, Next:hot spot, Previous:hosed, Up:= H =
hot chat n.
Sexually explicit one-on-one chat. See teledildonics.
Node:hot spot, Next:hotlink, Previous:hot chat, Up:= H =
hot spot n.
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 tune, bum, 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.
Node:hotlink, Next:house wizard, Previous:hot spot, Up:= H =
hotlink /hot'link/ n.
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.
Node:house wizard, Next:HP-SUX, Previous:hotlink, Up:= H =
house wizard n.
[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.
Node:HP-SUX, Next:HTH, Previous:house wizard, Up:= H =
HP-SUX /H-P suhks/ n.
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. Compare AIDX, buglix. See also Nominal Semidestructor, Telerat, ScumOS, sun-stools, Slowlaris.
Node:HTH, Next:huff, Previous:HP-SUX, Up:= H =
HTH //
[Usenet: very common] Abbreviation: Hope This Helps (e.g. following a response to a technical question). Often used just before HAND. See also YHBT.
Node:huff, Next:humma, Previous:HTH, Up:= H =
huff v.