Channels ▼
RSS

C/C++

State of Decay


Verity Stob has developed a new tool that will help you make rapid diagnoses of sick PCs. A rolling computer gathers "cruft." When you spot a class interface that is no longer used by any client, but that nobody dare delete, that's cruft. It is also the word "seperate," added to a spellchecker's private dictionary in a moment of careless haste, and now waiting for a suitably important document. Cruft is the cruel corruption and confusion inevitably wrought by time upon all petty efforts of humankind. There.

At Laboratoires Stob, we have been working on the cruft crisis for a while. Recalling the maxim "to control a problem you must first measure it," we have devised a suitable metric, an index of cruftidity. Our first version, presented below, is based on a typical PC installation running Windows 2000. But there will shortly be ports to Linux, Mac OS X, and other Unices; we are confident these OSes are just as prone.

We would like to acknowledge our debt, in the construction of this instrument, to Rear-Admiral Sir Francis Beaufort. His 1805 scale of windspeeds ("Insurance Claim Force 8. Description on land: Tile blown off roof falls onto litigious neighbour's Toyota Shiny") is as valid and useful today as it ever was. Enough preamble.

Cruft Force 0. Virgin. Description: The "Connect to the Internet" shortcut is still on the desktop, and the "How to use Windows" dialog appears at logon. Menu animations and the various event-based sound effects — even the dreaded Microsoft Sound — seem cheerful and amusing. Likewise, a clandestine installation of the Blue Screen Of Death screensaver (complete with simulated reboot, natch) from the Sysinternals web site is hilarious. Compilers run crisply, and report only sensible, easily resolved errors. There are just nine directories off C:\.

Filled with the enthusiasm that goes with having a brand new machine, the user resolves to stick to the new-fangled security-conscious temp directory buried deep somewhere below Documents and Settings.

Cruft Force 1. New. Description: User has taken time to rename cutesy desktop icons incorporating the first person singular possessive pronoun.

Twice, the mouse cursor has done that poltergeist trick where, with the actual mouse stationary, it drifts three inches due east and then stops. For no reason at all. Works fine afterwards though. Brrrrrrr.

Cruft Force 2. Comfortable. Description: User has now got around to resetting Explorer so that "web content in folders" is suppressed. Something has made a C:\TEMP directory in the proper place unasked, for which mercy the user guiltily feels grateful.

A strange entry is found in the System event log: MRxSmb: The redirector was unable to initialise security context or query context attributes. Assiduous googling of the key phrases, up web site and down newsgroup, establishes that, although many have wondered, nobody knows what this means.

Cruft Force 3. Lived-in. Description: One time in seven when the user starts Word or other Office 2000 app, instead of running, it pretends it is installing itself for the first time and starts a setup program.

Directory count in C:\ up to 17, and something has pooed a Paradox lock control file there, too.

Cruft Force 4. Middle-aged. Description: Amount of time from screen showing "real" Windows background to the logon box appearing is >30 seconds. Sometimes cannot "browse" other machines on LAN.

Get first real BSOD. Uninstall jokey screen saver, replace with SETI.

An extra disk of huge capacity has been installed. CD-ROM moves from drive F: to drive [:

Cruft Force 5. Worn out. Description: Some time after bootup, always get a dialog "A service has failed to start - BLT300." What is BLT300? Nobody knows. Although one can manually remove/disable this service, it always reappears two or three reboots later.

If one double-clicks a document icon, Word takes 4 minutes 30 seconds to start up. But it still works fine if started as a program. Somebody opines that this is due to misconfigured DDE. Or the Mars-Jupiter cusp.

Cruft Force 6. Limping. Description: [Delphi|Visual Basic|Java] suddenly remembers a trial shareware component — deleted six months ago because it was rubbish — and refuses to compile anything until it is reinstated.

"Web content in folders" Explorer setting switches itself back on unbidden. "Setup" programs start crashing while unpacking their own decompression DLLs.

Cruft Force 7. Wounded. Description: No longer able to logon using original account as the system freezes, so must logon as "Verity2" or similar.

There are now nine items in BOOT.INI: the original W2K starter, a brace of two-entries-each NT4s (one Turkish), a Windows 98, and three assorted Linuxen. Left to start up by itself, the machine chooses a broken installation of SUSE and halts with a kernel panic.

Cruft Force 8. Decrepit. Description: A virus checker is installed at the insistence of IT. This actually improves performance, apparently violating Newton's laws.

Blue Screens Of Death are served daily. The SETI screen saver, like ET himself, encounters difficulty calling home and despairing during an overnight run creates 312 copies of its icon in an (impressively expanded) system tray that fills half the screen.

Successful connections to the LAN are very rare.

Cruft Force 9. Putrefaction. Description: Can only see the 32-GB D:\ partition — the one which has all the source code on it — at every third boot. Directory count in C:\ up to 93, partly because some [one/thing] has put a complete (but non-working) installation of the Eudora e-mail client in the root.

Starting Control Panel shows rolling torch animation. The applet icons never appear.

Cruft Force 10. Expiry. Description: Machine only runs in Safe mode at 16-color 800×600, and even then for about a minute and a half before BSODing. Attempts to start an app are rewarded with a dialog "No font list found."

Ordinary dodges, such as reformatting the hard disk(s) and starting again, are ineffective. Cruft has soaked into the very fabric of the machine, and it should be disposed of safely at a government-approved facility. There it will be encased in cruft-resistant glass and buried in a residential district.


Verity is the pseudonym of a programmer based in the UK. She can be contacted at VerityStob@ddj.com.


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