HOW TO DESIGN A KLUDGE

By Jackson W. Granholm


From DATAMATION magazine, February 1962

A Phone call to Phineas Burling can be revealing. Phineas Burling is the Cheif calligrapher with the Fink and Wiggles Publishing Company, Inc. Fink and Wiggles are, of course, the well known publishers of the NEW MULTILINGUAL DICTIONARY. According to Burling, the word "kludge" first appeared in the English language in the early fifteen-hundreds. It was imported into the geographic region of the lowlands between King's Lynn (then Biship's Lynn) and the Isle of Ely by Dutch settlers arriving there to reclaim tidelands of the Wash as rutabaga fields. These Dutch settlers had been driven from their homelands by a great storm in the North Sea which swept inland over The Netherlands, greatly enlarging the Yssel Meer.

The word "kludge" is, according to Burling, derived from the same root as the German "kludge" (Dutch kloog, Swedish Klag, Danish Klog, Gothic Klaugen, Lettish Kladnis and Sanskrit Veklaunn), originally meaning "smart" or "witty". In the typical machinations of language in evolutionary growth, the word "Kludge" eventually came to mean "not so smart" or "pretty ridiculous". Today the leading definition given by the N EW MULTILINGUAL is, "An ill-assorted collection of poorly-matching parts, forming a distressing whole."

It is in this latter sense that "Kludge" is used by computer hardware men. Today "kludge" forms one of the most beloved words in design terminology, and it stands ready for handy application to the work of anyone who gins up 110-wolt circuitry to plug into the 220 VAC source.

The building of a Kludge, however, is not work for amateurs. There is a certain, indefinable, masochistic finesse that must go into true Kludge building. The professional can spot it instantly. The amateur may readily presume that "that's the way computers are".

As an aid to young computer designers, then, it may be heopful, and a social service, to write down carefully, as Campylos[1] has done, some of the elementary rules for "kludgemanship" or "Designasininity", as Winchell has named it.

A word of caution is in order. One should not lash up an arithmetic unit, for example, which does not work. It must actually do arithmetic. The expert Kludge constructor will design his arithmetic unit to perform 2 to the 512 distinct kinds of addition, each called forth by opcodes six words long. None of these should, of course, be fixed point addition with sign and overflow indication. Overflow, in no instance, should be allowed to merely indicate something. It should generate a three-st age interrupt, preferably interrupting the computer in the next room, or, better yet, in the next plant.

The expert kludge builder will find ways to require three accesses to each of nine index registers in an instruction to query the real-time clock. With a little thought, he can cause automatic clearing of the upper third of memory in the event of an attempt to take square root of a negative number.

But it is in the lashing together of whole modules of equipment that the opportunity for applied kludgemanship presents itself to the hilt. Here, in what is often laughably called "interface resolution" there is an outstanding chance to glitch the user without his even realizing it.

Beginning with the most rudimentary of the I/O devices, the console keyput, the correct design approach is to use on of the standard, well-known electric typewriters, but to alter the character set. Of course, one chooses an internal machine character set differently from that of any other manufacturer (after all, theirs are no good either) and this internal character set must, at all costs, be different from the one on the console keyput.

Moving on a step to cards, the field widens. Here on has a choice of card styles. It is not good taste to mix these. Do not go round-hole on input and square-hole on output. Stick to one of the other all the way. Use some more subtle device, such as formatting all card input in card-image and all output in Hollerith, or vice-versa.

With magnetic tape the paths are well-charted. Use both odd and even parity, and as many widths as one can find reels for. Some special circuitry must, by all means, be designed into the tape connectors in order to make it, if not impossible, at least fabulously expensive to connect the tape machines of any other, second-rate manufacturer to your kludge.

Punched paper tape, in spite of its venerability and antiquity, is the latest hot diggety these days. Here is a great chance to go ape, for if the formats of cards are manifold, those of paper tape are megafold. The proper approach is to select a different one for each use, say four-channel on the input photoreader, nine-channel at the output punch, and six-channel as an auxiliary to the console keyboard. Give the user free a 28 foot-per-hour paper tape rewinder (set up for seven-channel).

Where drum and disc file function as auxiliary stores, there is room for application of some of the magnetic tape technique. But for a full discussion of kludgemanship applied to these and similar devices the reader is referred to the complete and comprehensive work, "Minimum Latencycraft and Random Accessmanship Applied in the Field" by Otis Remack.

The newer devices such as air-film floating cryogenic heads and tunnel diode delay lines are too much in the laboratory or R&D stage to be susceptible to concrete rules of use.

From the foregoing, though, the beginner should begin to form a picture of proper kludge building.[2] The essence of it is the designer who is so clever he outsmarts himself. The method lies as much in character set land and mishapen softwaresville as in techniques of solder and scope. The proper approach lies in producing a machine with maximum unforgivability. To go too far in one direction is to produce a completely impossible machine. To err the other way is to come out with just another ordi nary computer.

Enoch Mote suggests the inclusion of a translation function in every hardware data transmission. By Mote's method, information standing punched in Hollerith hexa-decimal will read into core in three's compliment form with bit order reversed.

Cicer Beam suggests a random hardware permuter built into every machine to add the contents of a random number table into all instruction regions in memory every 500 milliseconds on the even millisecond. But then, no one pays much attention to what Beam says.

The pricing structure of a machine is often a clue to its status as a kludge or quasi-kludge. Exemplary of the kind of thing one may expect to find is the following for a "basic" machine (Kledgevac 990B):

Outstanding in this case is the exhorbitant money asked for the card reader.

The actions of management turn out to be quite important in kludge design, as, indeed, they sometimes are in other matters. It is sad, but true, that a kludge cannot be designed under just any old organizational structure. One of the most helpful of atmospheres in which a kludge may arrive at full flower is that of complete, massive, and iron-bound departmentalization. It is a good idea if the I/O men, say, not only are not allowed to speak to the main frame designers, but also that they have, in fact, never met them.

Interface crosstalk should, by all means be done by edict and directive (Beam says "ukase"), and not by memo and design not. After all, someone has to hew to the line on design philosophy, or people will go off in all directions. The "Project Manager," if there be one, should preferably be chosen from among the junior-ranking personnel of the Marketing Research Department.

Finally, and this is advice of the most sound sort, if it looks like, in spite of all efforts, you kludge will begin to resemble an ordinary computing machine, it is time to put more men on the job.

Whatever weird shape your final product may assume, after a year or so of careful kludgecraft, there is one thing to keep always in mind: Don't apologize for it!

Notes:

1. Lucy Campylos, Secretary to Dr. Rupert B. Pooble.

2. The Author is indebted to MR. Norman G.R. Sanders for permission to use his notes on "design glitches in the FRED Project."