Channels ▼

Jocelyn Paine

Dr. Dobb's Bloggers

The New Hacker's Dictionary

August 17, 2008

I want to introduce you to The New Hacker's Dictionary.

Here's what it has to say about one too-common problem of ageing programs:

balloonian variable /n./

[Commodore users; perh. a deliberate phonetic mangling of `boolean variable'?] Any variable that doesn't actually hold or control state, but must nevertheless be declared, checked, or set. A typical balloonian variable started out as a flag attached to some environment feature that either became obsolete or was planned but never implemented. Compatibility concerns (or politics attached to same) may require that such a flag be treated as though it were live.
Balloonian variables are one manifestation of:   

 bit rot /n./

Also bit decay. Hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if `nothing has changed'. The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.

 There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with error-detecting circuitry to compensate for them). The notion long favored among hackers that cosmic rays are among the causes of such events turns out to be a myth; see the cosmic rays entry for details.

The term software rot is almost synonymous. Software rot is the effect, bit rot the notional cause.

Other spurious physical phenomena include:

magic smoke /n./

 A substance trapped inside IC packages that enables them to function (also called `blue smoke'; this is similar to the archaic `phlogiston' hypothesis about combustion). Its existence is demonstrated by what happens when a chip burns up -- the magic smoke gets let out, so it doesn't work any more. See smoke test, let the smoke out.

Usenetter Jay Maynard tells the following story: "Once, while hacking on a dedicated Z80 system, I was testing code by blowing EPROMs and plugging them in the system, then seeing what happened. One time, I plugged one in backwards. I only discovered that after I realized that Intel didn't put power-on lights under the quartz windows on the tops of their EPROMs -- the die was glowing white-hot. Amazingly, the EPROM worked fine after I erased it, filled it full of zeros, then erased it again. For all I know, it's still in service. Of course, this is because the magic smoke didn't get let out." Compare the original phrasing of Murphy's Law.

Amongst the spurious physical measurements invented by Dictionary sources is the microLenat: a unit of bogosity named after AI researcher Douglas Lenat. Lenat is famous for his Automated Mathematician program AM and its successor Eurisko, and for the 24-year long project that aims to capture all common-sense knowledge as logical assertions, usable by any sufficiently advanced Artificial Intelligence, in the vast encyclopaedic knowledge-base called Cyc.

You can read the Dictionary's account of the microLenat's origins here. But I prefer an alternative history from Topher Cooper, mentioned in a Language Log posting, also about Bogosity:

The explanation that I received for naming the unit of bogosity after him [Lenat] was that he was someone who would generate more ideas in five minutes than most people do in a week — sort of a comp sci Robin Williams. Of course, nearly all of those ideas were completely bogus. Every once in a while, though, one of those ideas was a true gem. That still left him with more good ideas a week than most people.
After all, one can only admire Lenat's persistence with Cyc.

But returning to the B's, I very much enjoy Douglas Hofstadter's research into analogy. In an essay in his book Metamagical Themas, Hofstadter quotes a parody of German once popular amongst mainframe operators, which goes something like this:

ACHTUNG! ALLES LOOKENSPEEPERS!

Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist easy schnappen der springenwerk, blowenfusen und poppencorken mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen. Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das pockets muss; relaxen und watchen das blinkenlichten.

And, Hofstadter asks, how would Germans parody English? We might change "s-" to "sch-" and glue "-en" endings to many words; surely German speakers wouldn't just change "sch-" to "s-" and knock the "-en"'s off their plurals? Here's an answer. It is from the same Dictionary entry — blinkenlights — as I took the fake-German warning.

ATTENTION @br

This room is fullfilled mit special electronische equippment. Fingergrabbing and pressing the cnoeppkes from the computers is allowed for die experts only! So all the "lefthanders" stay away and do not disturben the brainstorming von here working intelligencies. Otherwise you will be out thrown and kicked anderswhere! Also: please keep still and only watchen astaunished the blinkenlights.

 

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video