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.
:hakspek: /hak'speek/ n. A shorthand method of spelling found on many British academic bulletin boards and {talker system}s. 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. Has become rarer since. See also {talk mode}.
:hammer: vt. Commonwealth hackish syn. for {bang on}.
:hamster: n. 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.
:hand-hacking: n. 1. The practice of translating {hot spot}s 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 {tune}, {bum}, {by hand}; syn. with v. {cruft}. 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.
:handle: [from CB slang] n. 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
{cracker}s, {weenie}s, {spod}s, and other lower forms of
network life; true hackers travel on their own reputations rather
than invented legendry.
:hand-roll: [from obs. mainstream slang `hand-rolled' in
opposition to `ready-made', referring to cigarettes] v. 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."
:handshaking: n. 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}.