Son of Devil's Advocate, April 2000

Click here to make UNIX performance tuning easier!

Previous SODA Index of SODA Columns Next SODA

Son of Devil's Advocate

Stan Kelly-Bootle

Picture of Stan Kelly-Bootle

Soul Tax Reform

Over the UNIX Review Devil's Advocational years I've variously tackled the monthly columnist's "April" challenge as follows:

  • Ape the "serious" journals (Scientific American, Software Development Magazine, Vatican Vogue, ACM Communications, Neo-Nazi News, Pigeon Fancier) with an outrageous April Fool's piece.
    Problem One: many irony-deficient readers fail to spot the spoof and either renew or cancel their subscriptions. Thus, Scientific American is flooded with crank mail saying "There, I always knew that anti-gravity cold-fusion would prevent global- warming." Neo-Nazis write: "Erstaunlich! Adolf and Elvis seen chatting outside the Buenos Aires 7-11! König und Führer together at last!" Contrariwise, letters pour into Vatican Vogue screaming "I must, after 30 faithful years, leave a church that could consider Gary Glitter as the next Pope."
    Problem Two: it's becoming impossible to distinguish wild satire such as "IBM-Microsoft-GM Merger Talks" from the factual "Red Hat Free Open Source Linux IPO nets $50 billion."
  • Exploit the fact that for most readers April is the month of many happy tax returns. Been there -- done that. See the "This Column 15-years-ago" extracts below from my April 1985 DA column.
  • Resist the "meta-April" temptation.

Texts Mania

Comparing an author's original autograph or subsequent manuscripts with the final printed text can be great fun, except, of course, for full-time literary editors. The latter are a miserable, contentious lot forever battling over whether Hamlet's flesh was "too too solid" or "too too sullied." You might argue that this and similar examples result from pirates sitting in different parts of a riotous Globe Theater as they scribbled down unauthorized versions. I suspect that, if asked, the Bard (as seen recently in love on the big screen) would say "Sullied? Solid? -- bothe soundeth goode to mine distracted eares!"

Alas, we have only a few dubious (mainly litigious) examples of Shakespeare's C minus handwriting with D minus minus for spelling, especially his own name [ref 1], which should encourage all you dyxlesics [sic] out there attending Creative Writing Classes. But even when we have well-attested author scribble, the scholars wrangle on. A. L. Rowse's identification of Emilia Lanier (née Bassano) as the Dark Lady of the Sonnets, for example, which made the Times of London front pages in the 1970s, rested partly on his reading in an Elizabethan diary that "she was browne" while others swore it said "she was brave."

Moving to more modern textual altercations, the longest-running and most cantankerous is surely the problem of producing the canonical edition of James Joyce's Ulysses from the author's endless sand-blind palimpsestous re-workings. The vitriol over minor spelling differences (was so-and-so McX or MacX?) and (there's always a cash nexus) the Joyce-family rows over copyright continue. (Ironically, there's less argufaction over Finnegans Wake, provided you avoid the solecism Finnegan's Wake, since "nobirdy aviar soar anywing to eagle it.")

The web has dramatically changed the scholarly text-editing process for literary, 2- and 3-D (more) artistic, and musical works. We can now exchange, compare, and comment on not only the published corpora, but also view and hear all known autographs, and zoom in to see if it's "brave" or "browne," or whether Bach really meant B flat in bar five.

No, thank God, this merely prolongs the donnish disputations.

Reader Mail

From long-loyal Harry Forbes:


Great! Glad to be able to read your column. I was thinking (as I looked over the 1-meter stack of UNIX Review issues that I have in my loft) that if the mag had stuck to its knitting it might well have prospered. Covering NT instead of Linux was not a good choice in retrospect. Of course, who am I to criticize them...I sold my Sun stock!

Harry also reports a strange Catch-22 situation: an (unnamed) Infoworld/LinuxWorld columnist discussing certain Linux and Solaris server gliches was unable to download his column owing to certain Linux and Solaris server glitches.

Well, Harry: Miller Freeman Inc., as I write, are planning to resurrect the old UNIX Review sans papier at -- stay tooned with your mouse-clicking fingers en garde.

Null Headers

We are all used to getting e-mail with several empty header fields (see my UNIX Review/Performance Computing, November 1998 column titled "Untitled"), but I recently received the following uniquely nuller-than-ever example:

From: Sender Unspecified
Date: Thursday March 09 2000 10:40pm
To: none
Subject: [No subject]

I was reminded of the long-missed Get [Max] Smart spy series where 99 would say to 86: "Once we know the 'when,' we can get the 'who,' and then the 'what' and the 'why.'"

My first reaction was that the message was from one of my click- happy grandkids -- but NO -- the e-mail body was from, the first holy-of-holies temple of computerdom:

-- To visit the TechNews home page, point your browser to:

-- To unsubscribe from the ACM TechNews Early Alert Service: Please send a separate email to with the line

signoff technews

in the body of your message.

The next confidence killer was:

Please note that replying directly to this message does not automatically unsubscribe you from the TechNews list.

Hardly surprising since the Sender is Unspecified! Then comes the ambiguous:

For help with technical problems, including problems with leaving the list, please write to:

Are they inviting our help over their mailing problems?

This Column 15-Years Ago

Devil's Advocate, UNIX Review, April, 1985

Teems of Times and Happy Returns

Was it not Dylan S. Eliot, the Taxpayer's Bard, who warned us:

"Do not go, April, into that cruel month" ?

In spite of which, millions of wage-earning hedonists, referred to by the politicians as "Fellow 'Mericans," each year, at the drop of an Easter Bonnet, rush to complete a self-taxing but fun-packed exercise known as "The Filing of The Return."

What was formerly a painful annual chore imposed by a sadistic IRS is now a welcome opportunity for loyal citizens to hone their data processing skills, reduce the budget deficit, trim the National Debt, and flush out those uncomfortable, guilty lumps from under the mattress. Just as the medical profession recently rediscovered the efficacy of the leech, psychosocial- econometricians are now convinced that the regular bleeding out of our surplus dollars is vital to the health of our body-fiscal - "interim sanum in portfolio sano!" The old alienation between "us" and "them" is melting away under the Freedom of Information Network.

We now know precisely what they do with our individual contributions. Your personalized name-tag could well appear on a navy hammer-shaft, in the identifier list of a DOD ADA module or on the hinge of an air-force toilet seat (unless, of course, you tick the box saying "I want my tax contribution to remain anonymous."). The interflow of money and government services holds the nation together as surely as the gluon binds the modern atom.

But of more relevance to this column, a major reason for this dramatic change in our attitude to "Filing the Return" is that both Taxer and Taxee are now computer literate. This spread of computer literacy, although gained at the expense of literacy in general, is reflected in the RPG-styled Worksheets which have replaced the traditional IRS tax forms. The underlying language, formulated to appeal equally to structured and misguided form- fillers, is a powerful blend of C, BASIC, Algol 68 and pedagese, known simply as T.

The documentation for T is a model of sublime clarity. After struggling through UNIX manuals during the year, it is a pleasure each April to turn to such precise, reader-friendly stuff as "T by Example" (formerly called "IRS Publication 334 (Rev. Nov. 84): Tax Guide for Small Business.")

T is a strongly-typed language but has only three types:

FP$ (floating-point dollar) INT$ (integer dollar) FSF (filing status flag)

Some character strings are allowed for NAME_ID but these are immediately transformed into integer values.

There is also a user-defined binary-valued ICON for "box- checking" (almost any non-frivolous mark can be made or not made as the mood dictates; the significance of the mark varies according to the box to be checked. Frivolous marks are said to "spoil the box" and incur a fine of $500).

The "check-box" on the new 1040 (alongside the boxes which allow you and/or your spouse to send $1 to the President) which has attracted most attention is:

      Do you want an Audit?....     YES /////     NO.

Some 90% of all tax-payers proudly say YES, but unfortunately the IRS are physically unable to meet this demand. I understand the frustration: you have produced an algoristic gem in the new fashionable T language, and you seek the approbation, nay, the admiration of your peers. The months drift by with no call from the auditor/referees. Self-doubt grips you. Did I miss a GOTO in the Bows and Arrows Excise Tax module? (Chapter 35 page 149) Did I dispose of, or merely deplete, my standing timber between June 22 1984 and December 22 1984? (Chapter 22 page 94). If it's any consolation, there's always next year.

T carries some of the spice and mystery of assembler by using line numbers as either variables or pointers to variables according to the context, e.g.,

14. Add Lines 1 through 12. Enter sum here and on line 4, page 1

Note the natural, conversational form of the FOR-NEXT ADD loop and the exciting hint of VM and possible page-faults. In my own case, for example, I was unable to locate page 1, and entered a halt-state until the Post Office opened the following morning.

The metasyntactical device in "Enter here" indicates the cell pointed at by the value of the VPC (Virtual Program Counter), namely "14". This has caused some trouble for M68000 implementations of T since it violates the rule that relative addressing modes are not valid alterable data effective destination addresses. It remains to be seen whether Motorola will recall all M68000 chips for a free microcode fix.

Conditional statements in T also have a gentle, informal surface syntax:

31. If the total of lines 27 and 29 is larger than line 28 enter AMOUNT OWED

(The MC68020 is strongly recommended for dynamically resolving these odd-even address conflicts on the data bus.)

T compilers will here identify the local variable, AMOUNT OWED, with the cell at address 31. The variable AMOUNT OWED appears in many procedures where it is patriotically maximized by reiteration. The greatest (max-max) of all these values is then sent to the check-writing module.

Great care is needed if some variables have been declared as INT$ (accepting the IRS invitation to conserve memory by rounding to the nearest dollar) while others remain in floating point format. Remember that Schedule A has the instruction:

4. Multiply the amount on Form 1040, line 33, by 5% (.05)

which may require the temporary storage of 4 decimal places.

An obvious joy behind the new algorithmic approach to taxation is the simple and generous rule governing investment tax credits and expense deductions for the use of the T software. For T compilers bought before August 31st and residing on discs not exceeding 3 1/4" in diameter, provided that the track density/sector occupancy ratio conforms with the limits set out in Table 89.3 Rev 4, the loading time or 50 msecs, whichever is the smaller, excluding any concurrent processes which relate to personal use, can be added to the compilation time for the purposes of estimating your total deductible computer usage. The Bellsoft TaxLog program, for example, will figure all this for you automatically.

The success of the new regime proves that if you treat people as honest hackers their response will amaze you.

The latest Coding Reduction Act is calling for a simplified four-line Schedule, written in tiny-t, to replace all current variations:

1. Enter here what you have                  ........
2. Round line 1 to the nearest $             ........
3. Subtract line 2 from line 1. Enter here   ........

4. If line 3 is less than zero mail us the amount in line 2
   If line 3 is greater than zero mail us the amount in line 1
   If line 3 is zero mail us either the amount in line 1 or the
   amount in line 2

Beta-site testing of tiny-t has revealed a tiny bug in the above, but the general feeling is that, after all the boring consistency and portability of C and UNIX, programmers will welcome a language with a spark of personality.

ref 1: You may recall Peter Cooke's "I would rather have been a Judge than a Miner" sketch. He fails the Judgin' Exams but scrapes through the Minin' Exams. "Question 1 was What's your Name? I got 40% for that..."

Stan's bio:

Liverpool-born Stan Kelly-Bootle has been exposed to computing, on and off and vice-versa, since 1953 when, after graduating in Pure Mathematics at Cambridge University, he switched to impure post-grad work on the wondrous EDSAC I. After some trenching with IBM and Univac in the 1960s and 70s, Stan opted for self-employment as a consultant, writer, folk-song revivalist, after-dinner entertainer, and cunning linguist.

His monthly DA ("Devil's Advocate") column ran and ran in UNIX Review (aka Performance Computing) from 1984 until January 2000 (a date that will live in infamy) but lives on as SODA ("Son of DA") via the homepage devoted to UNIX performance.

The latest of his umpteen books are "The Computer Contradictionary" (MIT Press) and "UNIX Complete" (Sybex). More on his biblio- and disco-graphy can be found on soon due for its millennial update.

Stan welcomes reader reaction:

To the SarCheck home page

The URL of this page may change in the future. Please bookmark the home page instead of this one.

Portions © copyright Stan Kelly-Bootle 2000.
Portions © copyright Aurora Software Inc. 1997-2000, all rights reserved.
This column is sponsored by Aurora Software Inc., makers of SarCheck. The opinions of Stan Kelly-Bootle are his own and do not necessarily reflect the opinions of Aurora Software Inc. Other products and companies referred to herein are trademarks or registered trademarks of their respective companies or mark holders.