Sunday, November 12, 2006

In Part II, Question 2 of the Malleus Maleficarum (The Hammer of the Witches), the 15th century witch hunter's manual, the authors ask:

Is it lawful to remove witchcraft by means of further witchcraft, or by any other forbidden means?

 This is a variation on the question concerning means and ends, but with a poetic twist.  In the standard form of the question, we evaluate the two terms and try to determine if the good we seek to accomplish is greater than, or less than, the evil that is required to accomplish it, and if the answer is yes, then we call these means a necessary evil.  In the form posed by the Malleus Maleficarum, there is a more direct relationship between the means to be used and the evil to be overcome.  They are neither greater nor less than, but are in fact identical to the evil to be overcome.

In metaphysical jurisprudence, Dante calls this relationship between the crime and the punishment  contrapasso, or the counter-suffering that a soul suffers for the sins he committed in life.  Through this principle, people in sinning choose their own meet punishment in the afterlife, and the cosmic order is maintained.  Thus, Paolo and Francesca, who were caught up in each other's lust in life, are caught up in in an eternal whirlwind in the afterlife, and the epicureans, who insist that the soul is permanently tied to the body, are forced to drag their bodies around in hell.

This poetic principle which assures justice with regard to punishment, because it makes the punishment always fit the crime, has a jarring effect when applied to practical reasoning and police work, which occur before any punishment is necessary.  By using the means of the enemy we seek to overcome, we somehow perpetuate the evil that we seek to destroy.  Cosmically, this evil is somehow transferred to us.  It is a standard trope of science fiction that when we use the tools of our enemy, we become no better than our enemy. 

There is a direct relationship between the witch-hunting of the 15th century, and the cold war of the 20th.  Not only were we similarly caught in a general fear about an enemy that we were not certain we could overcome, but the same temptations about the tools to be used were raised by the nature of the conflict.  Deviousness and ruthlessness, an absence of morality, are the greatest strengths of the enemy.  To what extent must we suspend our own morality in order to defeat this enemy?  And having done so, to what extent are we still the good guys.

In the 15th century, the advice to witch-hunters was to not use the tools of the witches.  In the Malleus Maleficarum, this is stated as an absolute prohibition, with the explanation that any attempt to use magic will either directly call upon the aid of demons, or will open the practitioner of such means up to the influence of the demons.

In the 20th century, we were more accommodating toward the Devil.  In The Spy Who Came In From The Cold, John Le Carre places the following words in the mouth of Control, the head of the Britain's Secret Service, who is explaining to the hero, Alec Leamas, why he must go on just one more mission:

 

"Thus we do disagreeable things, but we are defensive.  That, I think, is still fair.  We do disagreeable things so that ordinary people here and elsewhere can sleep safely in their beds at night.  Is that too romantic?  Of course, we occasionally do very wicked things"; he grinned like a schoolboy.  "And in weighing up the moralities, we rather go in for dishonest comparisons; after all, you can't compare the ideals of one side with the methods of the other, can you, now?"

Leamas was lost.  He'd heard the man talked a lot of drivel before getting the knife in, but he'd never heard anything like this before.

"I mean you've got to compare method with method, and ideal with ideal.  I would say that since the war, our methods -- ours and those of the opposition -- have become much the same.  I mean you can't be less ruthless than the opposition simply because your government's policy is benevolent, can you now?"  He laughed quietly to himself: "That would never do," he said.

 

 But if our actions are justified because we are the good guys, at what point are we no longer able to distinguish ourselves from the bad guys and suddenly find ourselves in Hegel's verkehrte Welt, the inverted world in which we are no longer ourselves?  This is a question that is raised with great regularity in modern politics, in world affairs, and in our daily lives.  The problems of the topsy-turvy world arise when we begin to practice a negative ethics rather than a positive one, in which we are defined much more by what we are not, rather than by what we are.

posted by J Ashley on Sunday, November 12, 2006 1:52:35 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]
 Wednesday, October 25, 2006

 As mentioned in a previous post, programmers typically explain one technology by referencing another more familiar technology.  What sometimes happens, however, is that the technology that was thought to be more familiar, and consequently believed to have explanatory power, in fact was simply originally explained by referencing some third vaguely understood technology; but time made the simile comfortable and vanity made it acceptable.  We only become aware of the semantic web we programmers weave when we are finally forced to use one of the referenced technologies and discover, once again, what a strange and incomprehensible thing programming is.  The experience is a bit like the shock felt by the woman who brought home a stray dog from Paris only to discover that it was really a large tailless rat.

To find out what one of the trendier new technologies is really like, I recently consulted Google.  A google search on "Ajax is like..." turns up the following results:

"Comparing Java and AJAX is like comparing apples and blue."

"[U]sing Ajax is like consuming alcohol in public."

"[A]jax is like instant messaging...."

"Customers asking for AJAX is like a prospective homeowner walking over to the contractors hired to do the building and handing them a saw."

"AJAX is like Flash or HTML."

"AJAX is like a javascript."

"AJAX is like Javascript on steroids."

"AJAX is like web services."

"[A]jax is like everything else on line, it will be abused by various low lifes."

"Ajax is like to partial update in Intraweb I am wrong?"

"Ajax is like 'roller skates for the web.'"

"Ajax is like shell, Perl, Ruby. Ajax is like UNIX."

"AJAX is like a Hooker turn School Teacher, it has a dirty secret and unless you get it alone and play with it, you won't pickup on it's secrets until it's too late."

"Ajax is, like stated in the essay, a new way to think about user interfaces on the web...."

"AJAX is like wearing 70's djeans with an Hugo Boss Shoes...."

"AJAX is like Dinosaur cloning in Jurassic park."

"AJAX is like folding a web page origami-style into a Lego brick...."

"AJAX is like a house of cards, and when a browser vendor screws up on a revision it'll all come tumbling down."

"AJAX is like putting a tiny bandage on a gaping wound the size of a grapefruit."

"Ajax is like DHTML was 4 years ago, like javascript was 6 years ago, like applets were 8 years ago."

"AJAX is like the killer buzzword."

posted by J Ashley on Wednesday, October 25, 2006 11:32:44 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]
 Sunday, October 22, 2006

This site uses DasBlog as it's blogging engine.  One of the themes that comes with DasBlog, Project84, has a rendering problem in IE7 that causes the footer to bleed into the main page somewhere a few inches from the top, when it should, of course, display at the bottom of the page.

The problem turns out to be only one line in the style.css file:

html, body{height:100%;}

Comment this out and the page should render correctly.  This also affects the Project84Green theme.

I viewed the corrected style in Firefox 1.5, IE6 and IE7 and did not note any issues. 

posted by J Ashley on Sunday, October 22, 2006 7:08:16 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]
 Friday, October 20, 2006

This is simply a side by side pastiche of the history of Extreme Programming and the history of Methodism.  It is less a commentary or argument than simply an experiment to see if I can format this correctly in HTML.  The history of XP is drawn from Wikipedia.  The history of Methodism is drawn from John Wesley's A Short History of Methodism.

 

Software development in the 1990s was shaped by two major influences: internally, object-oriented programming replaced procedural programming as the programming paradigm favored by some in the industry; externally, the rise of the Internet and the dot-com boom emphasized speed-to-market and company-growth as competitive business factors. Rapidly-changing requirements demanded shorter product life-cycles, and were often incompatible with traditional methods of software development.

The Chrysler Comprehensive Compensation project was started in order to determine the best way to use object technologies, using the payroll systems at Chrysler as the object of research, with Smalltalk as the language and GemStone as the persistence layer. They brought in Kent Beck, a prominent Smalltalk practitioner, to do performance tuning on the system, but his role expanded as he noted several issues they were having with their development process. He took this opportunity to propose and implement some changes in their practices based on his work with his frequent collaborator, Ward Cunningham.

The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else. —Kent Beck

Beck invited Ron Jeffries to the project to help develop and refine these methods. Jeffries thereafter acted as a kind of coach to instill the practices as habits in the C3 team. Information about the principles and practices behind XP was disseminated to the wider world through discussions on the original Wiki, Cunningham's WikiWikiWeb. Various contributors discussed and expanded upon the ideas, and some spin-off methodologies resulted (see agile software development). Also, XP concepts have been explained, for several years, using a hyper-text system map on the XP website at "www.extremeprogramming.org" circa 1999.

Beck edited a series of books on XP, beginning with his own Extreme Programming Explained (1999, ISBN 0-201-61641-6), spreading his ideas to a much larger, yet very receptive, audience. Authors in the series went through various aspects attending XP and its practices, even a book critical of the practices. Current state XP created quite a buzz in the late 1990s and early 2000s, seeing adoption in a number of environments radically different from its origins.

Extreme Programming Explained describes Extreme Programming as being:

  • An attempt to reconcile humanity and productivity
  • A mechanism for social change
  • A path to improvement
  • A style of development
  • A software development discipline

The advocates of XP argue that the only truly important product of the system development process is code (a concept to which they give a somewhat broader definition than might be given by others). Without code you have nothing.

Coding can also help to communicate thoughts about programming problems. A programmer dealing with a complex programming problem and finding it hard to explain the solution to fellow programmers might code it and use the code to demonstrate what he or she means. Code, say the exponents of this position, is always clear and concise and cannot be interpreted in more than one way. Other programmers can give feedback on this code by also coding their thoughts.

 The high discipline required by the original practices often went by the wayside, causing certain practices to be deprecated or left undone on individual sites.

Agile development practices have not stood still, and XP is still evolving, assimilating more lessons from experiences in the field. In the second edition of Extreme Programming Explained, Beck added more values and practices and differentiated between primary and corollary practices.

In November, 1729, four young gentlemen of Oxford — Mr. John Wesley, Fellow of Lincoln College; Mr. Charles Wesley, Student of Christ Church; Mr. Morgan, Commoner of Christ Church; and Mr. Kirkham, of Merton College — began to spend some evenings in a week together, in reading, chiefly, the Greek Testament. The next year two or three of Mr. John Wesley's pupils desired the liberty of meeting with them; and afterwards one of Mr. Charles Wesley's pupils. It was in 1732, that Mr. Ingham, of Queen's College, and Mr. Broughton, of Exeter, were added to their number. To these, in April, was joined Mr. Clayton, of Brazen-nose, with two or three of his pupils. About the same time Mr. James Hervey was permitted to meet with them; and in 1735, Mr. Whitefield.

The exact regularity of their lives, as well as studies, occasioned a young gentleman of Christ Church to say, "Here is a new set of Methodists sprung up;" alluding to some ancient Physicians who were so called. The name was new and quaint; so it took immediately, and the Methodists were known all over the University.

They were all zealous members of the Church of England; not only tenacious of all her doctrines, so far as they knew them, but of all her discipline, to the minutest circumstance. They were likewise zealous observers of all the University Statutes, and that for conscience' sake. But they observed neither these nor anything else any further than they conceived it was bound upon them by their one book, the Bible; it being their one desire and design to be downright Bible-Christians; taking the Bible, as interpreted by the primitive Church and our own, for their whole and sole rule.

The one charge then advanced against them was, that they were "righteous overmuch;" that they were abundantly too scrupulous, and too strict, carrying things to great extremes: In particular, that they laid too much stress upon the Rubrics and Canons of the Church; that they insisted too much on observing the Statutes of the University; and that they took the Scriptures in too strict and literal a sense; so that if they were right, few indeed would be saved.

In October, 1735, Mr. John and Charles Wesley, and Mr. Ingham, left England, with a design to go and preach to the Indians in Georgia: But the rest of the gentlemen continued to meet, till one and another was ordained and left the University. By which means, in about two years' time, scarce any of them were left.

In February, 1738, Mr. Whitefield went over to Georgia with a design to assist Mr. John Wesley; but Mr. Wesley just then returned to England. Soon after he had a meeting with Messrs, Ingham, Stonehouse, Hall, Hutchings, Kinchin, and a few other Clergymen, who all appeared to be of one heart, as well as of one judgment, resolved to be Bible-Christians at all events; and, wherever they were, to preach with all their might plain, old, Bible Christianity.

They were hitherto perfectly regular in all things, and zealously attached to the Church of England. Meantime, they began to be convinced, that "by grace we are saved through faith;" that justification by faith was the doctrine of the Church, as well as of the Bible. As soon as they believed, they spake; salvation by faith being now their standing topic. Indeed this implied three things: (1) That men are all, by nature, "dead in sin," and, consequently, "children of wrath." (2) That they are "justified by faith alone." (3) That faith produces inward and outward holiness: And these points they insisted on day and night. In a short time they became popular Preachers. The congregations were large wherever they preached. The former name was then revived; and all these gentlemen, with their followers, were entitled Methodists.

In March, 1741, Mr. Whitefield, being returned to England, entirely separated from Mr. Wesley and his friends, because he did not hold the decrees. Here was the first breach, which warm men persuaded Mr. Whitefield to make merely for a difference of opinion. Those, indeed, who believed universal redemption had no desire at all to separate; but those who held particular redemption would not hear of any accommodation, being determined to have no fellowship with men that "were in so dangerous errors." So there were now two sorts of Methodists, so called; those for particular, and those for general, redemption.

posted by J Ashley on Friday, October 20, 2006 11:53:52 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]

A difficult aspect of software programming is that it is always changing.  This is no doubt true in other fields, also, but there is no tenure system in software development.  Whereas in academe, it is quite plausible to reach a certain point in your discipline and then kick the ladder out behind you, as Richard Rorty was at one point accused of doing, this isn't so in technology.  In technology, it is the young who set the pace, and the old who must keep up.

The rapid changes in technology, with which the weary developer must constantly attempt to stay current, can be broken down into two types: there are advances in tools and advances in methodologies.  While there is always a certain amount of fashion determining which tools get used -- for instance which is the better language, VB.Net or C#? --, for the most part development tools are judged based upon their effectiveness. This is not necessarily true concerning the methodologies of software development.  Which is odd since one would suppose that the whole point of a method is that it is a way of guaranteeing certain results -- use method A, and B (fame, fortune, happiness) will follow.

There is even something of a backlash against methodism (or, more specifically, certain kinds of methodism) being led, interestingly enough, by tool builders.  For instance, Rocky Lhotka, the creator of the CSLA framework says:

I am a strong believer in responsibility-driven, behavioral, CRC OO design - and that is very compatible with the concepts of Agile. So how can I believe so firmly in organic OO design, and yet find Agile/XP/SCRUM to be so...wrong...?

I think it is because the idea of taking a set of practices developed by very high-functioning people, and cramming them into a Methodology (notice the capital M!), virtually guarantees mediocrity. That, and some of the Agile practices really are just plain silly in many contexts.

Joel Spolsky, the early Microsoft Excel Product Manager and software entrepreneur, has also entered the fray a few times.  Most recently, an blog post by Steve Yegge (a developer at Google) set the technology community on fire:

Up until maybe a year ago, I had a pretty one-dimensional view of so-called "Agile" programming, namely that it's an idiotic fad-diet of a marketing scam making the rounds as yet another technological virus implanting itself in naive programmers who've never read "No Silver Bullet", the kinds of programmers who buy extended warranties and self-help books and believe their bosses genuinely care about them as people, the kinds of programmers who attend conferences to make friends and who don't know how to avoid eye contact with leaflet-waving fanatics in airports and who believe writing shit on index cards will suddenly make software development easier.
You know. Chumps.

The general tenor of these skeptical treatments is that Extreme Programming (and its umbrella methodology, Agile) is at best a put-on, and at worst a bit of a cult.  What is lacking in these analyses, however, is an explication of why programming methodologies like Extreme Programming are so appealing.  Software development is a complex endeavor, and its practitioners are always left with a sense that they are being left behind.  Each tool that comes along in order to make development easier always ends up making it actually more difficult and error prone (though also more powerful).  The general trend of software devlopment has consistently been not less complexity, but greater complexity.  This leads to an indemic sense of insecurity among developers, as well as a sense that standing still is tantamount to falling behind.  Developers are, of course, generally well compensated for this burden (unlike, for instance, untenured academics who suffer from the same constraints) so there is no sense in feeling sorry for them, but it should be clear, given this, why there is so much appeal in the notion that there is a secret method which, if they follow it correctly, will grant them admission into the kingdom and relieve them of their anxieties and doubts.

One of the strangest aspects of these methodologies is the notion that methods need evangelists, yet this is what proponents of these concepts self-consciously call themselves.  There are Extreme Programming evangelists, SCRUM evangelists, Rational evangelists, and so on who write books and tour the country giving multimedia presentations, for a price, about why you should be using their methodology and how it will transform you and your software projects. 

So are software methodologies the secular equivalent of evangelical revival meetings?  It would depend, I suppose, on whether the purpose of these methodologies is to make money or to save souls.  Let us hope it is the former, and that lots of people are simply making lots of money by advocating the use of these methodologies.

posted by J Ashley on Friday, October 20, 2006 11:25:05 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]