[comp.sys.mac] kludge

pgn@osupyr.UUCP (04/13/87)

Help! 	Help!	 Help!

Will someone explain it to me what exactly a "kludge" is?

Thanks,

Paul

Have Orthogonal Polynomials
Will Travel

Paul Nevai                                pgn%osupyr.uucp (PREFERRED) 
Department of Mathematics                 nevai-p@osu-eddie.uucp
The Ohio State University                 ...!ihnp4!cbatt!osupyr!pgn
231 West Eighteenth Avenue                TS1171@OHSTVMA.bitnet
Columbus, OH 43210, U.S.A.	          1-614-292-5688

sarrel@osu-eddie.UUCP (04/13/87)

I read a story somewhere that said what a kludge is.  It goes something like
this (pardon me, for I'm paraphrasing):

	Not too long ago, in the Navy, there was a Seaman who was
	famous for building Kludges.  No one was quite sure what
	a Kludge was, but all agreed that he was the best at making
	them.  Now, one day an Admiral heard of this famous Kludge-
	building sailor and decided that every ship in the Navy should
	be equipped with a kludge.  After all, what would happend if
	the Russians should build Kludges for their ships first?

	Being a military man, the first thing that the Admiral did was
	to was to get Congress to appropriate large sums of money for his
	top-secret Kludge project.  Only the President and a few select
	officials knew the details of the plan (which were few and
	far between to begin with).  Then the Admiral set the Seaman to
	work.  The Admiral offered the best military reasearch labs and
	equipment in the country, but the Seaman would have none of it.
	All the seaman wanted was a small room, some old piano wire, some
	fish hooks, chains, cable and the like.  The Admiral, although
	puzzled, granted the Seaman's request and the Seaman set to work.

	For nearly a week, the Seaman work furiously.  He barely slept and
	only came out of the room to eat and use the bathroom.  Then, on
	the seventh day, the Seaman announced that he had finished the
	prototype.  The Admiral was very excited and arranged for a
	demonstration the very next day aboard one of the Navy's 
	biggest and best ships.

	All the top Navy Brass were present for the unveiling.  They 
	waited nervously to see the Kludge in action, for by this
	time, the rumors of its capabilities and powers had grown
	almost beyond all rational belief.  Then, it was time.  The
	Seaman came out, made a short speech and then revealed his
	creation.  The crowd gasped.  None knew quite what to make
	of it.  Before them was what looked like a large ball of
	tangled wires and junk, nearly six feet accross.  It had no
	real shape, and didn't look like it was capable of doing much
	of anything.  But, the Seaman told them to wait and he
	would demonstrate.

	He rolled the Kludge off the pedestal and rolled it to the side
	of the ship where the railing had been removed.  He checked the
	distance to the water, liked his finger to test the wind direction
	and then gave the Kludge a strong, but a calculated push off the
	deck of the ship.

	It fell for what seemed like an eternity, then, as it hit the
	water, it went "KLUDGE!" and sank.  The Seaman was very pleased.

I think I read the original version in a book entitled "Tomfoolery".

Hope this explanation helps... :-)
-- 
Marc Sarrel
CIS Gradual Student			611 Harley Dr. #1
The Ohio State University		Columbus, OH  43202
..!osu-eddie!sarrel or sarrel@osu-eddie.uucp

lamy@utegc.UUCP (04/14/87)

Folklore has it that a kludge is something that sort of works, but for
the wrong reasons (does not fix the right problem).  Kind of like vaseline.

Jean-Francois Lamy                           lamy@ai.toronto.edu (CSNet, UUCP)
AI Group, Dept of Computer Science,          lamy@ai.toronto.cdn (EAN)
University of Toronto, Ont, Canada M5S 1A4   lamy@ai.utoronto    (Bitnet)

mpease@cvedc.UUCP (04/14/87)

In article <> pgn@.UUCP (Paul G. Nevai) writes:
>Will someone explain it to me what exactly a "kludge" is?

A kludge is an intentional tweek.


-- 
Mark Pease                      ..tektronix.csnet!ogcvax.uucp!cvedc!mpease
Computervision                  ..sun.arpa!cvbnet.uucp!cvedc!mpease
14952 N.W. Greenbrier Pkway          
Beavertion, Oregon 97006                    (503)645-2410

dlc@beta.UUCP (04/15/87)

From the examples of seen of what people call kludges, I'd say the short
definition is "an inelegant patch which causes a failing object to begin
working."  For a lawn mower, it might be baling wire to hold the
carburetor on.  For a program, it might be defining a flag to keep track
of whether an early exit from a path should be taken.  It surprised me
a little that the U. S. Navy was mentioned as originating the use of
kludge in English, since the Navy teaches its officer candidates that
such a beast is called a "jury-rig."

mwilber@teknowledge-vaxc.UUCP (04/16/87)

ok, i can't stand it any more...back in the 60's a fellow named ascher opler (i
think that was his name) defined a kludge as an ill-chosen assortment of parts
making up a distressing whole...for more details (given access, of course, to a
suitable archive), you might wish to look up a series of articles datamation
ran on the kludge komputer korporation some time from 10/64 to 5/66 (there
were, as i recall, at least three, maybe six, articles in the series)...some
say it's from the old high german word kloege, whose meaning i'll spare you...
cheers -- mike

merchant@dartvax.UUCP (04/17/87)

In article <4077@beta.UUCP>, dlc@beta.UUCP (Dale Carstensen) writes:
> From the examples of seen of what people call kludges, I'd say the short
> definition is "an inelegant patch which causes a failing object to begin
> working."  For a lawn mower, it might be baling wire to hold the
> carburetor on.  For a program, it might be defining a flag to keep track
> of whether an early exit from a path should be taken.  It surprised me
> a little that the U. S. Navy was mentioned as originating the use of
> kludge in English, since the Navy teaches its officer candidates that
> such a beast is called a "jury-rig."

Kludges, from the way I understood it, are inelegant solutions to a problem
because the elegant solution would require far too much work.  (ie, either
add this bizarre flag or rewrite the whole routine)

In common parlance around here (at the Merchant Marine Academy), "jury-rigs"
are done when the resources to create an effective repair are not available
(time is also considered a resource).  Thus, while they look the same, a kludge
is something done by lazy people who don't want to put in the time to do it
correctly, whereas a "jury-rig" is a temporary solution until the resources for
a proper solution are available.

I doubt there's a precise definition, though.
--
"Well it's all right now,                 Peter Merchant (merchant@dartvax.UUCP)
 In fact it's a gas."

mwilber@teknowledge-vaxc.ARPA (Mike Wilber) (04/22/87)

The following defninition comes from the ARPANet Hacker's Dictionary, as of
11/82 (it may be old, but this definition is still pretty good):

KLUGE (kloodj) alt. KLUDGE [from the German "kluge", clever] n. 1. A
   Rube Goldberg device in hardware or software.  2. A clever
   programming trick intended to solve a particular nasty case in an
   efficient, if not clear, manner.  Often used to repair bugs.  Often
   verges on being a crock.  3. Something that works for the wrong
   reason.  4. v. To insert a kluge into a program.  "I've kluged this
   routine to get around that weird bug, but there's probably a better
   way."  Also KLUGE UP.  5. KLUGE AROUND: To avoid by inserting a
   kluge.  6. (WPI) A feature which is implemented in a RUDE manner.

The Hacker's Dictionary also states that

   (The following terms are all used to describe programs or portions 
   thereof, except for the first two, which are included for completeness.)
	CRASH  STOPPAGE  BUG  SCREW  LOSS  MISFEATURE
		CROCK  KLUGE  HACK  WIN  FEATURE  PERFECTION
   (The last is never actually attained.)

-- David D. Levine, formerly of Tektronix, now of Intel
   ...{decvax,ihnp4,hplabs}!tektronix!ogcvax!inteloa!inteloe!davidl


...fyi, this message came with the following header...(i tried to make this
article's header simulate his having sent it directly, please forgive me if i
confused your news reader)...
From mkhaw Tue Apr 21 17:01:28 1987
Date: Tue, 21 Apr 87 17:01:27 pst
From: mkhaw (Michael Khaw)
To: mwilber
Subject: uucp - wrong one last time
Status: R

>From ctnews!pyramid!oliveb!intelca!mipos3!inteloe!davidl  Fri Apr 17 13:05:45 1987 remote from sri-unix
Received: by sri-unix.ARPA (5.31/5.14)
	id AA03497; Fri, 17 Apr 87 13:05:45 MST
Received: from inteloe.intel.com by omepd.intel.com (5.51/i2.4); Fri, 17 Apr 87 09:16:17 PDT
Received: by inteloe.intel.com (5.52/i2.1); Fri, 17 Apr 87 09:16:50 PST
Message-Id: <8704171716.AA22983@inteloe.intel.com>
To: omepd!mipos3!intelca!oliveb!pyramid!ctnews!sri-unix!teknowledge-vaxc!mwilber
Subject: Re: Re: kludge 
In-Reply-To: Your message of 16 Apr 87 03:35:17 GMT.
             <11848@teknowledge-vaxc.ARPA> 
Date: Fri, 17 Apr 87 09:16:49 PST
From: David D. Levine <sri-unix!mipos3!inteloe!davidl>

I'd like to post this, but I can't (well, not easily).  Would you please?

-------------------------------cut here----------------------------------

jim@alberta.UUCP (04/29/87)

> Help!   Help!   Help!
>
> Will someone explain it to me what exactly a "kludge" is?
>
> Thanks,
>
> Paul

Sometime around 1960 IBM produced the 1620.  There were many things
wrong with that machine but nothing wrong enough to prevent it from
being used.

It had core memory, which was just about it's only saving grace.  Its
arithmetic was decimal to arbitrary precision from arithmetic tables which
were accessible to the program.  Mag tape was 7 track even parity, memory
was odd parity, paper tape was odd parity which meant that tape feed (ie.
blank tape) was "all holes punched"  (this weakened it so much that it
usually didn't manage to survive more that two or three readings).  The
paper tape reader was a classic Rube Goldberg device (It read from the
inside of the roll as I recall).

Shortly after Datamation published an article entitled "How to Design
a Kludge".  It was an hilarious article, which I fervently wish I had
saved (I didn't).  In it they defined a "kludge" - central to that
definition was the property that it was distressing to use but would
do the job (thereby ensuring that it would indeed be used).

Other properties of Kludges were that they had to be expensive to
produce and maintain.  The ideal Kludge had inexpensive modules (eg.
mag. tape, cpu etc) but that the box required to make the whole mess
work together cost ten times the rest put together (just part of its
being distressing)  One of the design rules was "rigid departmentalization"
eg. never let the person designing the mag tape talk to the guy who's
designing the main memory"

The term stuck and more articles were published about the progress of
the "Kludge Komputer Korporation".  eg. shortly after TSS was announced
we were treated to an article about the "Super Kludge Time Sharing System"
which could support one interactive user.  Data rate was measured in BPF
(Bauds per fortnight).  Then there was the Kludge OS which reached the
epitome of all operating systems - viz. it spent 100% of its time on system
activities.

I haven't seen any recent article on the "Kludge Komputer Korporation",
but then I haven't been looking either.  Certainly there's lots of material
to work with.

	Jim Easton (..!alberta!jim)