`Garbage collection' is computer-science techspeak for a
particular class of strategies for dynamically but transparently
reallocating computer memory (i.e., without requiring explicit
allocation and deallocation by higher-level software). One such
strategy involves periodically scanning all the data in memory and
determining what is no longer accessible; useless data items are
then discarded so that the memory they occupy can be recycled and
used for another purpose. Implementations of the LISP language
usually use garbage collection.
In jargon, the full phrase is sometimes heard but the abbrev is
more frequently used because it is shorter. Note that there is an
ambiguity in usage that has to be resolved by context: "I'm going
to garbage-collect my desk" usually means to clean out the
drawers, but it could also mean to throw away or recycle the desk
itself.
`Gedanken' is a German word for `thought'. A thought
experiment is one you carry out in your head. In physics, the term
`gedanken experiment' is used to refer to an experiment that is
impractical to carry out, but useful to consider because it can
be reasoned about theoretically. (A classic gedanken experiment of
relativity theory involves thinking about a man in an elevator
accelerating through space.) Gedanken experiments are very useful
in physics, but must be used with care. It's too easy to idealize
away some important aspect of the real world in constructing the
`apparatus'.
Among hackers, accordingly, the word has a pejorative connotation.
It is typically used of a project, especially one in artificial
intelligence research, that is written up in grand detail
(typically as a Ph.D. thesis) without ever being implemented to
any great extent. Such a project is usually perpetrated by people
who aren't very good hackers or find programming distasteful or are
just in a hurry. A `gedanken thesis' is usually marked by an
obvious lack of intuition about what is programmable and what is
not, and about what does and does not constitute a clear
specification of an algorithm. See also AI-complete,
DWIM.
All these uses of `glitch' derive from the specific technical
meaning the term has in the electronic hardware world, where it is
now techspeak. A glitch can occur when the inputs of a circuit
change, and the outputs change to some random value for some
very brief time before they settle down to the correct value. If
another circuit inspects the output at just the wrong time, reading
the random value, the results can be very wrong and very hard to
debug (a glitch is one of many causes of electronic heisenbugs).
*
wildcard for any string (see also UN*X)
?
wildcard for any single character (generally read this way
only at the beginning or in the middle of a word)
[]
delimits a wildcard matching any of the enclosed characters
[]
alternation of comma-separated alternatives; thus,
`foo[baz,qux]' would be read as `foobaz' or `fooqux'
Some examples: "He said his name was [KC]arl" (expresses
ambiguity). "I don't read talk.politics.*" (any of the
talk.politics subgroups on USENET). Other examples are given
under the entry for X. Note that glob patterns are similar,
but not identical, to those used in regexps.
Historical note: The jargon usage derives from `glob', the
name of a subprogram that expanded wildcards in archaic pre-Bourne
versions of the UNIX shell.
Decades ago, back in the days when it was the sole supplier of
long-distance hardcopy transmittal devices, the Teletype
Corporation was faced with a major design choice. To shorten code
lengths and cut complexity in the printing mechanism, it had been
decided that teletypes would use a monocase font, either ALL UPPER
or all lower. The Question Of The Day was therefore, which one to
choose. A study was conducted on readability under various
conditions of bad ribbon, worn print hammers, etc. Lowercase won;
it is less dense and has more distinctive letterforms, and is thus
much easier to read both under ideal conditions and when the
letters are mangled or partly obscured. The results were filtered
up through management. The chairman of Teletype killed the
proposal because it failed one incredibly important criterion:
"It would be impossible to spell the name of the Deity
correctly."
In this way (or so, at least, hacker folklore has it) superstition
triumphed over utility. Teletypes were the major input devices on
most early computers, and terminal manufacturers looking for
corners to cut naturally followed suit until well into the 1970s.
Thus, that one bad call stuck us with Great Runes for thirty years.
The original green card became a yellow card when the System/370
was introduced, and later a yellow booklet. An anecdote from IBM
refers to a scene that took place in a programmers' terminal room
at Yorktown in 1978. A luser overheard one of the programmers ask
another "Do you have a green card?" The other grunted and
passed the first a thick yellow booklet. At this point the luser
turned a delicate shade of olive and rapidly left the room, never
to return..
Historical note: At least one real machine actually had a grind
crank --- the R1, a research machine built toward the end of the
days of the great vacuum tube computers, in 1959. R1 (also known
as `The Rice Institute Computer' (TRIC) and later as `The Rice
University Computer' (TRUC)) had a single-step/free-run switch for
use when debugging programs. Since single-stepping through a large
program was rather tedious, there was also a crank with a cam and
gear arrangement that repeatedly pushed the single-step button.
This allowed one to `crank' through a lot of code, then slow
down to single-step for a bit when you got near the code of
interest, poke at some registers using the console typewriter, and
then keep on cranking.
This term is (no surprise) an in-joke from the earliest days of the
Amiga. There used to be a device called a `Joyboard' which was
basically a plastic board built onto a joystick-like device; it
was sold with a skiing game cartridge for the Atari game machine.
It is said that whenever the prototype OS crashed, the system
programmer responsible would calm down by concentrating on a
solution while sitting cross-legged on a Joyboard trying to keep
the board in balance. This position resembled that of a
meditating guru. Sadly, the joke was removed in AmigaOS 2.04.