Habitat

<networking, graphics>

The original term for on-line graphical virtual communities or worlds. Created at Lucasfilm in 1985 by Randy Farmer and Chip Morningstar.

http://communities.com/habitat.html.

Last updated: 1996-06-12

hack

<jargon>

1. Originally, a quick job that produces what is needed, but not well.

2. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed.

3. To bear emotionally or physically. "I can't hack this heat!"

4. 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. To pull a prank on. See hacker.

6. To interact with a computer in a playful and exploratory rather than goal-directed way. "Whatcha up to?" "Oh, just hacking."

7. Short for hacker.

8. See nethack.

9. (MIT) 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.

See also neat hack, real hack.

[Jargon File]

Last updated: 1996-08-26

hackathon

<jargon>

A planned hacking run that is intended to last for about a week with lots of hackers. The term was used in 2005 by the Apache Foundation and the OpenBSD Project, among others.

Last updated: 2005-01-26

hack attack

<jargon>

(Possibly by analogy with "Big Mac Attack" from advertisements 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.

[Jargon File]

Last updated: 1996-08-26

hacked off

<jargon>

(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 victimised 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.

[Jargon File]

Last updated: 1996-08-26

hacked up

<jargon, programming>

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.

[Jargon File]

Last updated: 1996-08-26

hacker

<person, jargon>

(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.

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 is cracker.

The term "hacker" also tends to connote membership in the global community defined by the net (see The Network and Internet address). It also implies that the person described is seen to subscribe to some version of the 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. Thus while it is gratifying to be called a hacker, false claimants to the title are quickly labelled as "bogus" or a "wannabee".

9. (University of Maryland, rare) A programmer who does not understand proper programming techniques and principles and doesn't have a Computer Science degree. Someone who just bangs on the keyboard until something happens. For example, "This program is nothing but spaghetti code. It must have been written by a hacker".

[Jargon File]

Last updated: 1996-08-26

hacker ethic

<philosophy>

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 free software 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 free 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 behaviour of people who see themselves as "benign" crackers (see also samurai). 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 e-mail 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 Internet (see Internet address) 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.

Last updated: 1995-12-18

hacker humour

A distinctive style of shared intellectual humour found among hackers, having the following marked characteristics:

1. Fascination with form-vs.-content jokes, paradoxes, and humour 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 quantum bogodynamics, 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 humour 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. Humour that combines this trait with elements of high camp and slapstick is especially favoured.

6. References to the symbol-object antinomies and associated ideas in Zen Buddhism and (less often) Taoism. See has the X nature, Discordianism, zen, ha ha only serious, AI koan.

See also filk and retrocomputing. If you have an itchy feeling that all 6 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.

Last updated: 1995-12-18

hacking run

<jargon>

(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".

[Jargon File]

Last updated: 1996-08-26

Hacking X for Y

[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).

[Jargon File]

Hackintosh

<jargon, computer>

1. An Apple Lisa that has been hacked into emulating a Macintosh (also called a "Mac XL").

<jargon, computer>

2. A Macintosh assembled from parts theoretically belonging to different models in the line.

Last updated: 1995-03-08

hackish

<jargon>

/hak'ish/ 1. Said of something that is or involves a hack.

2. Of or pertaining to hackers or the hacker subculture.

See also true-hacker.

[Jargon File]

Last updated: 1995-03-08

hackishness

<jargon>

The quality of being or involving a hack. This term is considered mildly silly.

Synonym hackitude.

[Jargon File]

Last updated: 1995-03-08

hackitude

<jargon>

An even sillier word for hackishness.

[Jargon File]

Last updated: 1995-03-08

hack mode

<jargon>

Engaged in hacking. 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.

Some aspects of hackish 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 in your head, and you dare not swap that context out until you have reached a good point to pause. See also juggling eggs.

[Jargon File]

Last updated: 1996-07-31

hack on

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.

[Jargon File]

hack together

<jargon>

To throw something together so it will work. Unlike "kluge together" or "cruft together", this does not necessarily have negative connotations.

Last updated: 2003-09-02

hack up

<jargon>

To hack, but generally implies that the result is 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 kluge up, monkey up, cruft together.

[Jargon File]

Last updated: 2003-09-02

hack value

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.")

ha ha only serious

(SF fandom, originally as mutation of HHOK, "Ha Ha Only Kidding") A phrase (often seen abbreviated as HHOS) that aptly captures the flavour 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.

The Jargon File 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 AI koan.

[Jargon File]

hair

[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!")

hairball

pub/js/hairball.html

hairy

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.

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" and was very likely ancestral to the hackish use. In fact the noun "long-hair" was at the time used to describe a hairy person. 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.

<topology>

4. hairy ball.

[Jargon File]

Last updated: 2001-03-29

hairy ball

<topology>

A result in topology stating that a continuous vector field on a sphere is always zero somewhere. The name comes from the fact that you can't flatten all the hair on a hairy ball, like a tennis ball, there will always be a tuft somewhere (where the tangential projection of the hair is zero). An immediate corollary to this theorem is that for any continuous map f of the sphere into itself there is a point x such that f(x)=x or f(x) is the antipode of x. Another corollary is that at any moment somewhere on the Earth there is no wind.

Last updated: 2002-01-07

HAKMEM

<publication>

/hak'mem/ 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 2^18.

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 flavour.

HAKMEM is available from MIT Publications as a TIFF file.

ftp://ftp.netcom.com/pub/hb/hbaker.

Last updated: 1996-01-19

hakspek

<jargon>

/hak'speek/ A shorthand method of spelling found on many British academic bulletin boards and chat 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 talk systems, which operated on archaic machines with outdated operating systems and no standard methods of communication. Has become rarer since.

See also chat, B1FF, ASCIIbonics.

[Jargon File]

Last updated: 1998-01-25

HAL

<computer>

1. HAL 9000, the murdering computer on the spaceship in the science fiction classic "2001, A Space Odyssey" by Arthur C. Clark.

"HAL" is "IBM" with each letter changed to the one before and there is an unconfirmed rumour that 9000 is the sum of the various IBM computer numbers that were in service at the time. However, in the sequel "2010", Clarke emphatically denies that HAL's name is supposed to be "one step ahead of IBM". It is, rather, short for "heuristic algorithm".

<operating system>

2. Hardware Abstraction Layer.

Last updated: 1995-11-09

half-duplex

<communications>

(hdx, from telegraphy) 1. A type of communication channel using a single circuit which can carry data in either direction but not both directions at once.

Compare: simplex, full-duplex.

2. An obsolete term for local echo.

Last updated: 2001-07-21

halftone

<graphics>

The reproducion of greyscale images using dots of a single shade but varying size to simulate the different shades of grey.

Laser printers that cannot print different sized dots, halftones are produced by varying the numbers of dots in a given area.

This process is also used to produce a black and white version of a colour original using shades of grey in place of colours.

See also device independent bitmap.

Last updated: 1996-09-20

HALGOL

<language>

A simple language from Hewlett-Packard for communicating with devices such as modems and X.25 PADs.

Last updated: 1995-04-12

HALMAT

Intermediate language used by HAL/S.

Hal/S

<language>

(Hal/Shuttle) A real-time high-level language for flight control applications. Hal was developed for NASA by Intermetrics, Inc. in the 1970s for on-board software. The initial version was a Fortran preprocessor, written in Fortran. In 1972, as the space shuttle project advanced, the language was renamed Hal/S and made more adaptable to architecture of different computers by using XPL. In all, 11 different implementations, mostly based on IBM 360, were created. Applications also included projects by JPL (Galileo probe, Deep Space network).

["Two-Dimensional Characteristics of HAL, A Language for Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10), Oct 1972].

["Space Station Flight Software: Hal/S or Ada?", Allan R. Klumpp, "Computer", March 1985].

Last updated: 2002-07-13

Halt and Catch Fire

<humour, processor>

(HCF) 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 Motorola 6800 microprocessor was the first for which an HCF opcode became widely known. This instruction caused the processor to read every memory location sequentially until reset.

[Gerry Wheeler, Byte, December 1977, p46, "Undocumented M6800 Instructions"].

Last updated: 2014-09-20

halting problem

The problem of determining in advance whether a particular program or algorithm will terminate or run forever. The halting problem is the canonical example of a provably unsolvable problem. Obviously any attempt to answer the question by actually executing the algorithm or simulating each step of its execution will only give an answer if the algorithm under consideration does terminate, otherwise the algorithm attempting to answer the question will itself run forever.

Some special cases of the halting problem are partially solvable given sufficient resources. For example, if it is possible to record the complete state of the execution of the algorithm at each step and the current state is ever identical to some previous state then the algorithm is in a loop. This might require an arbitrary amount of storage however. Alternatively, if there are at most N possible different states then the algorithm can run for at most N steps without looping.

A program analysis called termination analysis attempts to answer this question for limited kinds of input algorithm.

Last updated: 1994-10-20

Hamilton

William Hamilton

Hamiltonian cycle

Hamiltonian problem

Hamiltonian path

Hamiltonian problem

Hamiltonian problem

<computability>

(Or "Hamilton's problem") A problem in graph theory posed by William Hamilton: given a graph, is there a path through the graph which visits each vertex precisely once (a "Hamiltonian path")? Is there a Hamiltonian path which ends up where it started (a "Hamiltonian cycle" or "Hamiltonian tour")?

Hamilton's problem is NP-complete. It has numerous applications, sometimes completely unexpected, in computing.

http://ing.unlp.edu.ar/cetad/mos/Hamilton.html.

Last updated: 1997-07-18

Hamiltonian tour

Hamiltonian problem

Hamilton's problem

Hamiltonian problem

hammer

Commonwealth hackish synonym for bang on.

[Jargon File]

Last updated: 1995-02-16

Hamming code

<algorithm>

Extra, redundant bits added to stored or transmitted data for the purposes of error detection and correction.

Named after the mathematician Richard Hamming, Hamming codes greatly improve the reliability of data, e.g. from distant space probes, where it is impractical, because of the long transmission delay, to correct errors by requesting retransmission.

[Detail? Connection with Hamming Distance?]

Last updated: 2002-07-02

Hamming distance

<data>

The minimum number of bits that must be changed in order to convert one bit string into another.

Named after the mathematician Richard Hamming.

[Connection with Hamming code?].

Last updated: 2002-07-02

Hamming, Richard

Richard Hamming

hamster

<programming>

1. (From 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.

<hardware>

2. A tailless mouse; that is, one with an infrared link to a receiver on the machine, as opposed to the conventional cable.

<product>

3. (UK) Any item of hardware made by Amstrad, a company famous for its cheap plastic PC-almost-compatibles.

[Jargon File]

Last updated: 1995-02-16

Han character

<character>

(From the Han dynasty, 206 B.C.E to 25 C.E.) One of the set of glyphs common to Chinese (where they are called "hanzi"), Japanese (where they are called kanji), and Korean (where they are called hanja).

Han characters are generally described as "ideographic", i.e., picture-writing; but see the reference below.

Modern Korean, Chinese and Japanese fonts may represent a given Han character as somewhat different glyphs. However, in the formulation of Unicode, these differences were folded, in order to conserve the number of code positions necessary for all of CJK. This unification is referred to as "Han Unification", with the resulting character repertoire sometimes referred to as "Unihan".

Unihan reference at the Unicode Consortium.

[John DeFrancis, "The Chinese Language: Fact and Fantasy", University of Hawaii Press, 1984].

Last updated: 1998-10-18

HAND

<chat>

Have A Nice Day. Often used sarcastically and in connection with HTH, as in:

  > Where's the point of alt.stupidity?

  Between the 't' and the 's'.  HTH.  HAND.

Last updated: 1998-03-06

hand cruft

<jargon>

(After "hand craft") To write something by hand that would be better done automatically, e.g. writing assembly language instead of using a compiler (see hand hacking).

[Jargon File]

Last updated: 2006-01-19

Handel

<language>

An imperative language with primitives for controlling parallel programs.

Used by Wayne Luk for work in compilation of programs to hardware (FPGAs).

Last updated: 1995-02-28

hand hack

<jargon>

1. (Or "hand cruft") To Translate a hot spot of a program in a HLL into assembly language by hand, as opposed to trying to coerce the compiler into generating better code. Both the term and the practice are becoming uncommon.

See tune, bum.

2. 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.

[Jargon File]

Last updated: 1995-02-16

Hand-held Personal Computer

palmtop

handle

<programming, operating system>

1. A simple item of data that identifies a resource. For example, a Unix file handle identifies an open file and associated data such as whether it was opened for read or write and the current read/write position. On the Macintosh, a handle is a pointer to a pointer to some dynamically-allocated memory. The extra level of indirection allows on-the-fly memory compaction or garbage collection without invalidating application program references to the allocated memory.

<jargon>

2. An alias used intended to conceal a user's true identity in an electronic message. The term is common on Citizen's Band and other amateur radio but, in that context usually means the user's real name as FCC rules forbid concealing one's identity.

Use of grandiose handles is characteristic of crackers, weenies, spods, and other lower forms of network life; true hackers travel on their own reputations.

Compare nick.

[Jargon File]

<networking>

3. domain handle.

Last updated: 2004-07-20

handoff

handover

handover

<communications>

(HO, or "handoff") the mechanism by which an on-going cellular connection between a mobile terminal (MT, typically a mobile phone) or mobile host (MH) and a corresponding terminal or host is transferred from one point of access of the fixed network to another.

Handover may occur because the phone is leaving its current cell, to balance demand between cells, to reduce interference or to transfer a user who has stopped moving to a nearby cell with shorter range.

Last updated: 2010-05-07

hand-roll

<jargon>

(From mainstream slang "hand-rolled cigarette" in opposition to "ready-made") To perform a normally automated software installation or configuration process by hand; implies that the normal process failed due to bugs 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."

[Jargon File]

Last updated: 1995-02-28

handshake

handshaking

handshaking

1. Predetermined hardware or software activity designed to establish or maintain two machines or programs in synchronisation. Handshaking often concerns the exchange of messages or packets of data between two systems with limited buffers. A simple handshaking protocol might only involve the receiver sending a message meaning "I received your last message and I am ready for you to send me another one." A more complex handshaking protocol might allow the sender to ask the receiver if he is ready to receive or for the receiver to reply with a negative acknowledgement meaning "I did not receive your last message correctly, please resend it" (e.g. if the data was corrupted en route).

Hardware handshaking uses voltage levels or pulses on wires to carry the handshaking signals whereas software handshaking uses data units (e.g. ASCII characters) carried by some underlying communication medium.

Flow control in bit-serial data transmission such as EIA-232 may use either hardware or software handshaking.

2. The method used by two modems to establish contact with each other and to agreee on baud rate, error correction and compression protocols.

3. The exchange of predetermined signals between agents connected by a communications channel to assure each that it is connected to the other (and not to an imposter). This may also include the use of passwords and codes by an operator.

[Jargon File]

Last updated: 1995-01-13

handwave

[possibly from gestures characteristic of stage magicians] To gloss over a complex point; to distract a listener; to support a (possibly actually valid) point with blatantly faulty logic.

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 wrong. 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.

[Jargon File]

hang

1. 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, especially 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.

hanja

Han characters

Hanoi

Towers of Hanoi

Han Unification

Han character

hanzi

Han characters

happily

Of software, used to emphasise 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."

[Jargon File]

Happy

<tool>

A dyslexic acronym for "A Yacc-like Haskell Parser generator".

An LALR1 grammar parser generator for Haskell. Happy is written in Haskell, uses a parser generated by itself, and can be compiled using ghc, hbc or gofer. Happy uses an implementation of monadic IO built on top of stream IO, but this should change when the Haskell 1.3 standard has been implemented.

Version: 0.9 (1996-02-28).

Happy is covered by the General Public License.

http://dcs.gla.ac.uk/fp/software/happy.html.

ftp://ftp.dcs.gla.ac.uk/pub/haskell/happy/.

E-mail: <[email protected]>, <[email protected]>.

Last updated: 1996-03-21

haptic interface

<interface, hardware>

A touch interface to a computer that provides feedback, such as a data glove.

Last updated: 2003-10-17

haptics

<interface>

The science of applying tactile sensation to human interaction with computers.

Haptics Community.

Last updated: 2003-10-17

haque

<spelling, jargon>

/hak/ (Usenet) A variant spelling of hack, used only for the noun form and connoting an elegant hack.

[Jargon File]

Last updated: 1995-02-22

hard boot

<operating system>

A boot which resets the entire system.

The phrase has connations of hostility toward, or frustration with, the computer being booted. For example, "I'll have to hard boot this losing Sun", or "I recommend booting it hard".

Hard boots are often performed with a power cycle.

Contrast soft boot. See also cold boot and reboot

[Jargon File]

Last updated: 1995-11-27

hard-coded

<jargon>

(By analogy with "hard-wired") Said of a data value or behaviour written directly into a program, possibly in multiple places, where it cannot be easily modified. There are several alternatives, depending on how often the value is likely to change. It may be replaced with a compile-time constant, such as a C "#define" macro, in which case a change will still require recompilation; or it may be read at run time from a profile, resource (see de-rezz), or environment variable that a user can easily modify; or it may be read as part of the program's input data.

To change something hard-coded requires recompilation (if using a compiled language of course) but, more seriously, it requires sufficient understanding of the implementation to be sure that the change will not introduce inconsistency and cause the program to fail.

For example, "The line terminator is hard-coded as newline; who in their right mind would use anything else?"

See magic number.

[Jargon File]

Last updated: 1999-10-18

hardcopy

<jargon>

A paper printout of data displayed on a screen.

Contrast softcopy.

Last updated: 1995-08-31

hard crash

<programming>

When a program stops running completely and unexpectedly, often due to external events, e.g. the CPU overheating or an unrecoverable memory error.

See also disk crash.

Last updated: 2009-07-01

hard disk

<storage>

(In contrast to floppy disk) A magnetic disk data storage device where the disks are rigid and fixed to a central axle. They are usually packaged with associated read/write heads and electronics. Most hard disks are permanently connected to the drive (fixed disks) though there are also removable hard disks.

See magnetic disk.

Last updated: 2007-06-14

hard disk drive

<storage>

(HDD) A disk drive used to read and write hard disks.

Last updated: 1995-03-14

hard drive

hard disk drive

hard link

<file system>

One of several directory entries which refer to the same Unix file. A hard link is created with the "ln" (link) command:

 ln <old name> <new name>

where <old name> and <new name> are pathnames within the same file system. Hard links to the same file are indistinguishable from each other except that they have different pathnames. They all refer to the same inode and the inode contains all the information about a file.

The standard ln command does not usually allow you to create a hard link to a directory, chiefly because the standard rm and rmdir commands do not allow you to delete such a link. Some systems provide link and unlink commands which give direct access to the system calls of the same name, for which no such restrictions apply.

Normally all hard links to a file must be in the same file system because a directory entry just relates a pathname to an inode within the same file system. The only exception is a mount point.

The restrictions on hard links to directories and between file systems are very common but are not mandated by POSIX. Symbolic links are often used instead of hard links because they do not suffer from these restrictions.

The space associated with a file is not freed until all the hard links to the file are deleted. This explains why the system call to delete a file is called "unlink".

Microsoft Windows NTFS supports hard links via the fsutil command.

Unix manual page: ln(1).

http://microsoft.com/windowsxp/home/using/productdoc/en/fsutil_hardlink.asp.

Last updated: 2004-02-24

hard linking

hard link

hard sector

<storage>

An archaic floppy disk format employing multiple synchronisation holes in the media to define the sectors.

Last updated: 1995-01-24

hardware

<hardware>

The physical, touchable, material parts of a computer or other system. The term is used to distinguish these fixed parts of a system from the more changeable software or data components which it executes, stores, or carries.

Typical computer hardware consists of electronic devices (CPU, memory, display) with some electromechanical parts (keyboard, printer, disk drives, tape drives, loudspeakers) for input, output and storage. Completely non-electronic (mechanical, electromechanical, hydraulic, biological) computers have also been conceived of and built.

See also firmware, wetware.

Last updated: 1997-01-23

Hardware Abstraction Layer

<operating system>

(HAL) The layer of Microsoft Windows NT where they have isolated their assembly language code.

Last updated: 1995-04-17

hardware circular buffer

<programming, hardware>

digital signal processors which support hardware circular buffers automatically generate and increment pointers for memory accesses which wrap to the beginning of the buffer when its end is reached, thus saving the time and instructions otherwise needed to ensure that the address pointer stays within the boundary of the buffer, and speeding the execution of repetitive DSP algorithms.

Digital Signal Processor For Digital Audio Applications.

Last updated: 2000-06-17

Hardware Description Language

<language>

(HDL) A kind of language used for the conceptual design of integrated circuits. Examples are VHDL and Verilog.

Last updated: 1995-04-18

hardware handshaking

<communications>

A technique for regulating the flow of data across an interface by means of signals carried on separate wires.

A common example is the RTS (Request to Send) and CTS (Clear to Send) signals on an EIA-232 serial line.

The alternative, software handshaking, uses two special characters inserted into the data stream to carry the same information.

Last updated: 1995-01-23

hardware register

<hardware, system administration>

(Or "hardware log") A list of all hardware, both internal and external, that is attached to a particular computer.

Last updated: 2006-09-07

hardwarily

/hard-weir'*-lee/ 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.

[Jargon File]

Last updated: 1995-01-23

hard-wired

<electronics>

1. An aspect of an electronic circuit which is determined by the wiring of the hardware, as opposed to being programmable in software or controlled by a switch.

<software, jargon>

2. In software, a synonym for hard-coded.

3. By extension, anything that is not modifiable, especially in the sense of customisable to one's particular needs or tastes.

[Jargon File]

Last updated: 1999-10-18

Harris Semiconductor Ltd.

<company>

Address: Riverside Way, Camberley, Surrey, CU15 3YQ, UK.

Telephone: +44 (1276) 686 886. Fax: +44 (1276) 682 323.

Last updated: 1995-11-21

Harvard architecture

<architecture>

A computer architecture in which program instructions are stored in different memory from data. Each type of memory is accessed via a separate bus, allowing instructions and data to be fetched in parallel.

Contrast: von Neumann architecture.

[Why Harvard?]

Last updated: 2004-01-14

Harvard Graphics

<graphics, tool>

A presentation graphics product by Software Publishing Corporation (SPC) for creating presentations, speeches, slides, etc..

Last updated: 1998-07-20

Harvard Mark II Machine

<computer, history>

A relay-based computer designed and built by Howard Aiken, with support from IBM, for the United States Navy's Naval Proving Ground, between 1942 - 1947. The Harvard Mark II was the second in a series of four electro-mechanical computers that were forerunners of the ENIAC.

Harvard machines.

Last updated: 2003-09-13

Harvest

<tool, networking>

A highly scalable, customisable system for discovering resources on the Internet.

Version: 1.3.

http://tardis.ed.ac.uk/harvest/.

Last updated: 1999-01-16

Harvest C

A C compiler, assembler and linker for the Macintosh by Eric W. Sink. The parts of the system are integrated in a single application, which manages a "project" composed by several C source files and resource files (which contain data). Version 1.3.

ftp://archive.umich.edu/mac/development/languages/.

Last updated: 1992-05-26

hash

<character>

1. hash character.

<programming>

2. hash coding.

3. The preferred term for a Perl associative array.

Last updated: 1995-03-06

hash bucket

hash coding

hash character

<character>

"#", ASCII character 35.

Common names: number sign; pound; pound sign; hash; sharp; crunch; hex; INTERCAL: mesh. Rare: grid; crosshatch; octothorpe; flash; ITU-T: square, pig-pen; tictactoe; scratchmark; thud; thump; splat.

The pronunciation of "#" as "pound" is common in the US but a bad idea; Commonwealth Hackish has its own, rather more apposite use of "pound sign" (confusingly, on British keyboards the pound graphic happens to replace "#"; thus Britishers sometimes call "#" on a US-ASCII keyboard "pound", compounding the American error). The US usage derives from an old-fashioned commercial practice of using a "#" suffix to tag pound weights on bills of lading. The character is usually pronounced "hash" outside the US.

The name "octothorpe" was made up by a Bell Labs supervisor, Don Macpherson.

Octothorpe story.

Last updated: 2003-07-05

hash coding

<programming, algorithm>

(Or "hashing") A scheme for providing rapid access to data items which are distinguished by some key. Each data item to be stored is associated with a key, e.g. the name of a person. A hash function is applied to the item's key and the resulting hash value is used as an index to select one of a number of "hash buckets" in a hash table. The table contains pointers to the original items.

If, when adding a new item, the hash table already has an entry at the indicated location then that entry's key must be compared with the given key to see if it is the same. If two items' keys hash to the same value (a "hash collision") then some alternative location is used (e.g. the next free location cyclically following the indicated one). For best performance, the table size and hash function must be tailored to the number of entries and range of keys to be used. The hash function usually depends on the table size so if the table needs to be enlarged it must usually be completely rebuilt.

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.

See also: btree, checksum, CRC, pseudorandom number, random, random number, soundex.

Last updated: 1997-08-03

hash collision

<programming>

(Or "hash clash") When two different keys hash to the same value, i.e. to the same location in a hash table.

ESR once asked a friend 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."

[Jargon File]

Last updated: 1995-01-23

hash function

<programming>

A hash coding function which assigns a data item distinguished by some "key" into one of a number of possible "hash buckets" in a hash table. The hash function is usually combined with another more precise function.

For example a program might take a string of letters and put it in one of twenty six lists depending on its first letter. Ideally, a hash function should distribute items evenly between the buckets to reduce the number of hash collisions. If, for example, the strings were names beginning with "Mr.", "Miss" or "Mrs." then taking the first letter would be a very poor hash function because all names would hash the same.

Last updated: 1997-08-03

hashing

hash coding

hash table

hash coding

Haskell

<language>

(Named after the logician Haskell Curry) A lazy purely functional language largely derived from Miranda but with several extensions. Haskell was designed by a committee from the functional programming community in April 1990. It features static polymorphic typing, higher-order functions, user-defined algebraic data types, and pattern-matching list comprehensions. Innovations include a class system, systematic operator overloading, a functional I/O system, functional arrays, and separate compilation.

Haskell 1.3 added many new features, including monadic I/O, standard libraries, constructor classes, labeled fields in datatypes, strictness annotations, an improved module system, and many changes to the Prelude.

Gofer is a cut-down version of Haskell with some extra features.

Filename extension: .hs, .lhs (literate programming).

http://haskell.org/.

["Report on the Programming Language Haskell Version 1.1", Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U., Aug 1991].

[Version 1.2: SIGPLAN Notices 27(5), Apr 1992].

Haskell 1.3 Report.

Mailing list: <[email protected]>.

Yale Haskell - Version 2.0.6, Haskell 1.2 built on Common Lisp.

ftp://nebula.cs.yale.edu/pub/haskell/yale/.

Glasgow Haskell (GHC) - Version 2.04 for DEC Alpha/OSF2; HPPA1.1/HPUX9,10; SPARC/SunOs 4, Solaris 2; MIPS/Irix 5,6; Intel 80386/Linux,Solaris 2,FreeBSD,CygWin 32; PowerPC/AIX. GHC generates C or native code.

ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/.

E-mail: <[email protected]>.

Haskell-B - Haskell 1.2 implemented in LML, generates native code.

ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/.

E-mail: <[email protected]>.

Last updated: 1997-06-06

Haskell B

<language>

An early version of Haskell by Lennart Augustsson <[email protected]> from Chalmers. Haskell B evolved into a full-featured implementation of Haskell 1.2, with quite a few extensions.

Ports exist for many platforms including Sun, DEC, Sequent, IBM PC, Symmetry and unsupported versions for NS32000, IBM RT/PC, Cray, Sun-3, Vax, ARM, and RS/6000.

Version 0.999.5 included a compiler, interpreter, library, documentation, and examples.

ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/.

Mailing list: <[email protected]>.

E-mail: <[email protected]>.

Last updated: 1996-08-21

Haskell Curry

<person>

Haskell Brooks Curry (1900-09-12 - 1982-09-01). The logician who re-invented and developed combinatory logic.

The functional programming language Haskell was named after him.

Biography.

Last updated: 1999-01-08

Haskell User's Gofer System

<language>

(HUGS) An implementation of Haskell derived from Gofer 2.30b with an interactive development environment much like Gofer's. Almost all of the features of Haskell 1.2 are implemented with the exception of the module system. Hugs supports Haskell style type classes, a full prelude, derived instances, defaults, overloaded numeric literals and pattern matching, and bignum arithmetic.

Home.

ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs.

E-mail: Mark P. Jones <[email protected]>.

Last updated: 1995-02-14

HASL

<language>

SASL plus conditional unification.

["A Prological Definition of HASL, A Purely Functional Language with Unification Based Conditional Binding Expressions", H. Abramson in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986].

Last updated: 1996-08-21

HASP

Houston Automatic Spooling Program

has the X nature

(From Zen Buddhist koans of the form "Does an X have the Buddha-nature?") 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.

[Jargon File]

Last updated: 1995-01-11

hat

A common (spoken) name for the circumflex ("^", ASCII 94) character.

See ASCII for other synonyms.

[Jargon File]

hate-driven development

<programming, humour>

A play on test-driven development for use when a piece of code is not necessarily broken but you hate the way it is written so much that you feel compelled to rewrite it.

[Dodgy Coder]

Last updated: 2014-09-30

Hayes

A modem manufacturer.

gopher://leapfrog.almac.co.uk:70/00/business/comms/hayes/corporat.txt.

Address: Atlanta, Georgia, USA.

Last updated: 1995-01-30

Hayes-compatible

<communications>

A description of a modem which understands the same set of commands as one made by Hayes.

[What are the commands?]

Last updated: 1996-12-08

Haze

<graphics>

An X Window System window manager designed to be light-weight and look like MacOS. Haze is based on mlvwm. It support virtual desktops, configurable menu bar and shaded windows.

Haze home.

Last updated: 2010-05-03

Nearby terms:

H.261H.264H.323Habitathackhackathonhack attackhacked off

Try this search on Wikipedia, Wiktionary, Google, OneLook.



Loading