Thomas Jay Peckish II on Paranormal Phenomena

|

Software professionals are presumed by many executives to possess paranormal skills, such as reading their minds, and predicting the future..
--Thomas Jay Peckish II

Federation Council calls for repatriation of vital replicator technology it allowed the Ferengi to sell to the Romulans...

On the GMail Release

|

GMail is finally out of beta. News is like getting a wedding invitation from that sibling who has been shacked-up for 10 years...

Thomas Jay Peckish II on Scientific Revolutions

|

One of Thomas J. Kuhn's most trenchant observations was that the bond between Parent and Brainchild, for most, remains unshakable even in death.
--Thomas Jay Peckish II

Thomas Jay Peckish II on 21st Century Software Engineering

|

Open-Closed Principle? OCP? Make that private and Young Hakaz gonna copy-paste that pretty little banzai meditation garden of yours and do what they want to it. Encapsulate this yo.
--Thomas Jay Peckish II

Yo Hakaz! I chased it / and I faced it / and I cut it / and I pasted / I could taste it / 'til I wasted it.
Peace.

--Thomas Jay Peckish II

Thomas Jay Peckish II on Life and Death

|

Skills are important. A surgeon screws up, a person dies. A programmer screws up, a process dies. The stakes are identical. Unless you think a process is worth less than a human life...
--Thomas Jay Peckish II

Thomas Jay Peckish II on 21st Century Epistimology

|

Page Rank has become, almost w/o anyone noticing, the very cornerstone of 21st Century Epistemology.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Programmers

|

All too many programs are made in the images of the people who create them: complex, technically sound, but ineffective, often woefully, at communcating with human beings. Why are we surprised?

--Thomas Jay Peckish II

The tweet looked like:

Too many programs are made in the images of those who create them: complex, technically sound, but poor at communcating with human beings.

which may actually be a tad better...

 

Blue Mud in Oakland

|

The San Franciso PostGreSQL Meetup Group will be host a presentation by Fred Moyer entitled Big Blue Ball of Mud tonight in Oakland.

I have no idea where the "Blue" came from. Adult content? IBM? The Democats? In any case, Mudheads Unite!


http://www.redhotpenguin.com/talks/npw2007/ball_of_mud.html || http://conferences.yapceurope.org/npw2007/talk/493

The Mound Builders of Mountain View

|

In what turned out to be a de-facto tenth anniversary observance of the conception of our epic spasm of pomposity Big Ball of Mud, I was asked to give my very first presentation of this work as a Google Tech Talk last month in Mountain View. The announcement for it read:

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed.

A Ball of Mud (http://www.laputan.org/mud/mud.html) is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle . We've all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems.

Still, this approach endures and thrives. Why is this architecture so popular? Is it as bad as it seems, or might it serve as a way-station on the road to more enduring, elegant artifacts? What forces drive good programmers to build ugly systems? Can we avoid this? Should we? How can we make such systems better?


Brian Foote is a research computer scientist with nearly thirty years of professional programming experience. He cut his computational teeth in the realm of realtime scientific programming. The highly volatile requirements present in this domain led him to an interest in objects, reuse, software reuse, frameworks, components, and, ultimately, reflection and metalevel architectures. He is one of five people to have attended every OOPSLA conference since 1986.

He has also been active in the software patterns community, and edited Pattern Languages of Program Design 4. He was instrumental in gaining the conviction of the so-called Gang-of-Four (Design Patterns authors Vlissides, Johnson, Helm, and Gamma) for Crimes Against Computer Science at OOPSLA '99.

Brian is currently a Senior Pontificator at Industrial Logic, Inc., where he has been spreading the Gang of Four's Gospel to a new generation of Googlers.

Though Big Ball of Mud has been Slashdotted twice, and is probably his best known work, this will be Foote's first live, full-dress presentation based upon this material.

It went, well, God help me, something a lot like this:

Comments from LD || Referral from Best Tech Videos || วีดีโอพรีเซนต์เตชั่น Big Ball of Mud ที่ Google || Is your newspaper.com a big ball of mud? || soft wet earth || The $100MM Canonical Model || KLOCs and Golf Scores || Big Ball o' Mud: Code Tangles and Organizations

Thomas Jay Peckish II on 21st Century Media

|

Putting a talk on the web is like donating your body to science. You know it might be dissected in various unspeakable ways, by who knows whom, and that you won't be around to have very much to say about it...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Fear of Failure

|

Q: What happens to people who are afraid to fail?
A: They fail.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Professionalism

|

Do you really want the guy performing your triple bypass reading Surgery for Dummies before he gloves up?
--Thomas Jay Peckish II

Thomas Jay Peckish II on Diffidence

|

It’s better to be obnoxious than to be diffident...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Hacker Demographics

|

You don't see a lot of former high school quarterbacks throwing exceptions for a living...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Where Experts Come From

|

People like to think of experts as being the guys who are always right. Nothing could be further from the truth. Experts are people who are not afraid to be wrong. A lot. That's how they get to be experts.
--Thomas Jay Peckish II

The continuing controversy over Scrum Certification evidently inspired the following "press release", which was circulating at the Agile 2007 Conference this year. While its authenticity, or, to be more precise, its lack thereof, is no longer in dispute, you may nonetheless find it amusing.

REVOLUTIONARY NEW PROCEDURE DECREASES SCRUM MASTERBATION

Press Release, 15 August 2007

*REDACTED*, Inc., is pleased to announce that we will be able to offer safe, somewhat affordable Scrum Circumcision™, for the first time, to our preferred clients, beginning in September of 2007.

Scrum Circumcision™ is perfect for the software professional who is looking for a way to distinguish himself from, shall we say, the unwashed masses.

This revolutionary procedure entails the surgical removal of the patient's foresight. The effects are similar to a traditional XP lobotomy, though Scrum Circumcision™ is typically considerably less invasive.

Research has demonstrated that excising one's foresight can reduce premature generalization, improve code hygiene, and increase pairing satisfaction.

Customers usually report that they feel their XP-ness is dramatically enhanced after undergoing this procedure, and often experience stronger, more robust iterations.

Warning: stubbornly retaining your foresight may cause you to be subjected to ridicule and derision by your peers. Trim that foresight now, and transform yourself into a peak performer.

Act today. Our certified Mohelim are equiped with the lastest, most modern tools available, and are are waiting for your call. Remember, this procedure becomes more painful the longer you wait.

Foresight You're Not Gonna Need It™.

*REDACTED* president *REDACTED* denounced the faux press release as a "crass, puerile fabrication". Said *REDACTED*:

While we have mixed feelings about the necessity for formal certification procedures for any agile methodology, we see no reason to question or mock the motives of anyone advocating such credentialization. Frankly, I'm disgusted.

Regrettably, it appears this fabrication may have been the work of one of our own employees. Should this turn out to be the case, we assure you that the individual responsible will be sternly reprimanded.

The memepool is, after all, mankind's most magnificent achievement...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Metaphor

|

When it comes to artifacts fashioned from bits, metaphor is destiny...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Teleonomy

|

Design the human body? You couldn’t do it. It is intricate beyond your wildest imaginings. The genome is smarter than you are! Way smarter.
--Thomas Jay Peckish II

Thomas Jay Peckish II on the Role of Computer Science

|

The role of a Computer Science Department should be to provide a forum for the study of its indigenous subject matter, code, bits, The Program, and not a permanent venue for the Special Olympics of mathematics...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Finding the Last Bug

|

Bugs are like prime numbers. You can never really find the last one, but after the first billion or so, they start to thin out a little bit...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Creation 2.0

|

In the Beginning there was the Word, or at Least the Byte...
--The Rev. Thomas Jay Peckish II

A Tip of the Hat

|

A tip of the hat to fellow townsman Ken Schreiner for his kind words for Catfish in the Memepool over at Schreiner Video.

Ken evidently numbers his Georges relative to specific dynasties, rather than relative to the founding of the republic…

Thomas Jay Peckish II on Americana

|

Superbowl Sunday is unquestionably the most vulgar of the Great American Holidays...
--Thomas Jay Peckish II, during an uncharacteristic culturally supercilious moment...

Flogging a Dead Horse

|

I was greeted the other morning by an email from a colleague to one of our local mailing lists inquiring as to whether this artfully crafted conference web page parody was my Machiavellian Invention. Anytime something a tad puckish comes along, they blame me. Were this really a "Machiavellian Invention", the authors would have loaded it up with AdSense tiles and tried to get it Slashdotted.

Multiple sources are telling the Laputan Press that Waterfall 2006 is the heretofore unacknowledged brainchild of a prankster by the name of Mike Cohn...

Having somehow missed the CFP, I informed one of the organizers that I'd just take Salmon Ladders: Adding Feedback to the Waterfall Model Saves Fish, and Keeps your Project from Spiraling Down the Drain somewhere where it was wanted. I received this rather brusque reply:

A talk about feedback ("going upstream") would be entirely inappropriate at this conference. Feedback is only needed if there's a chance you might get things wrong. If you do things right, you won't get things wrong. All it takes to do things right is to Follow The Bloody Process. Already, we see that not enough of the speakers realize the importance of this simple principle. We don't need any more apostates.

This all said, the mirth and glee on the part of the agile insurgency associated with the ritual mocking and flogging of this dead horse is sadly misplaced. This horse is very much alive and with us. Once again, commando coders working in teams of sizes 100 and 101 go about their work oblivious to the machinations of the infantrymen in the trenches of the 102 and 103 world, where callous officers are still re-fighting World War I. Herein lies a tale, albeit for another day.

To paraphrase George Bernard Shaw, the big-iron SEI worlds and the XP Agile cultures are two peoples divided by a common tongue. I'm amazed how many times over the last twenty years I've heard commando and infantry people us the same language to describe radically different realities, completely oblivious to these differences in style and scale. At each of these scales, its denizens take it as implicit that their reality is the reality. Such assumptions are largely unspoken, and surprisingly pervasive. When one's context changes slowly, if at all, the temptation to postulate that which is stable and persistent in that context must hold universally can be hard to restrain.

This kind of context sensitivity is one of my favorite things about patterns.


More Waterfall 2006 commentary can be found here and here. Tags:

STS-25

|

Given my penchant for pasting images into my posts, you'd think you'd be staring at one of those awful pictures from twenty years ago today right now, wouldn't you?. But plenty of people are posting those today, and I can still barely stand to look at them, twenty years later. Like the second plane hitting the South Tower, it's still too wrenching to watch.

January Twenty-Eighth is one of those dates etched in my mind, like 12/7/41, 11/22/63, 11/9/89, and 9/11/01, not just this year, but every year. I was a Kennedy-era kid who used to get up at 4:00 in the morning to watch Mercury launches. NASA TV is one of my favorite cable channels. I don't need to see the pictures. Apollo 1, Columbia, it's a busy season, alas.

As I was waking up this morning, I was recalling that scene, right after "go at throttle up" and trying to place what it was that it was reminding me of. I imagined myself looking up the stem of a giant poppy plant, with the poppy bulb at its top where the big external fuel tank explosion billow was. Here's a picture of a poppy bulb from the top.

I still breath a little sigh of relief during every live launch I've watched since when those SRBs peel off. "Get the hell off you SOBs!", I'll think to myself, chuckling in relieved amusement at my own puerile pun.

I was home on my old couch that day, working (according to my notes) on my Masters Thesis, of all things. In fact, the scene seen from inside my picture tube was probably not all that much unlike the one shown here. I was sitting with the TV off when my sister called up and said "the space shuttle just blew up!"…

But my purpose at the moment is not to merely to add to the chorus of somber reminiscence…

…except to perhaps add that whatever differences I might have had with The Gipper and his Gang, Peggy Noonan's tasteful plundering of the first and last lines of High Flight remains the high water mark for post-Kennedy administration presidential eloquence to this very day.

…in fact, my original purpose was to use this post as a introduction to some ruminations on the limits of reuse, but I think I'll try to put those together separately, and just finish this one here instead…


From a memepool epidemiological standpoint, I wonder how many posts today will contain the phrases "etched in my memory", "major malfunction" or "surly bonds of earth"… …I suppose when you are president, any use is fair use, attributed or not…

Thomas Jay Peckish II on Refactoring

|

We'll know that refactoring has really arrived when Microsoft starts marketing Word as a refactoring tool for your prose...
--Thomas Jay Peckish II


You know, over the last couple of days since I've posted this hoary quip, it's occurred to me that there actually may be something to the idea of bringing refactoring tool ideas into the realm of prose cultivation. I wonder if there are tools like this out there already?


Indeed, witness this observation on this topic...

Ugly Stereotypes

|

Here's yet another scientific finding that will reinforce some ugly stereotypes about software professionals. The authors exhibited commendable restraint in avoiding a rather obvious, but puerile, opening for humor having to do with baseball equipment…

Bush Lite

|

It looks like our up in America's unfinished attic are changing their lead dog and veering their sled-of-state a touch to the right. It seems as if some among the current team had been sneaking a snack or two from the wrong bowls.

Catfish congratulates PM-elect Stephen Harper on his avalanche victory... …he seems to be the beneficiary of some bizarre hemispheric karmic balancing act involving Chile and Bolivia

All and all I'm reminded of my favorite Canadian joke, a tidbit I picked up from the old National Lampoon sometime during the early seventies:
Q: When Wake Up Little Susie was number one in the United States, what song was number one in Canada?
A: Who cares, but three weeks later it was Wake Up Little Susie.


Lest anyone think I've singled out The Dominion, the "Lebensraum-lite" undercurrent underlying the versatile geopolitical jape with which this post opened can also be retargeted to construe Australia as "Indonesia's unfinished basement", or Siberia as "China's unfinished attic"…
--TJP2


Robert Biddle subsequently added, re: Wake Up Little Susie:

In fact, this was also the number one song in Canada the week before it was in the US. http://en.wikipedia.org/wiki/Number-one_hits_of_1957_%28USA%29 http://www.1050chum.com/index_chumcharts.aspx?chart=21 As if I care...

Impossible Design

|

Mariann Unterluggauer reports here on the latest ruminations from peripatetic software visionary and Catfish favorite Richard P. Gabriel at the OOP 2006 Conference in Munich. Dick, whom it would appear is riding a sustained wave of popularity in Europe, summoned his inner Cervantes to deliver a talk provocatively entitled Impossible Design...

The Mind of the Theoretician

|

I have struggled for, let's say, way longer than is good for a person, to comprehend the mind of the theoretical computer scientist. I've met with mixed success at best over the years, but this post offers more insight than most into the monastic deliberations of this secular priesthood...

A postscript: I've been causally browsing "Ernie" occasionally for the last couple of three or four months, but I'd never hunted around enough to discover that Ernie's Gepetto is UIUC DCS's own Jeff Erickson. I'm reminded of one of those horror stories that ends with "run for your life, that phone call was made from inside the building!". I might add that I completely concur with Steve Freeman's observation that Erickson's work in this area is likely applicable, with appropriate revision, to conference committees in general.

The Physicists Took the Easy Problem

|
Alan H. Guth

The reader may well be surprised that scientists dare to study processes that took place so early in the history of the universe. On the basis of present observations, in a universe that is some 10 to 20 billion years old, cosmologists are claiming that they can extrapolate backward in time to learn the conditions one second after the beginning! If cosmologists are so smart, you might ask, why can they predict the weather? The answer, I would argue, is not that cosmologists are so smart, but that the earlier universe is much simpler than the weather!
--Alan H. Guth, on Condensation of the Primordial Soup, in The Inflationary Universe, p. 89

I used to be fond of amusing my friends and colleagues who were trained as physicists by asserting that they were able to give the appearance of being more serious scientists than computer scientists because they'd grabbed the easy problem first. Not only that, they've got a worked example in front of them to examine. And they had a head start. I was amused yesterday to find this passage from Guth that lent evidence to this cherished, long-held suspicion…


Stefan Lauterer weighs in with some thoughts on the connection between this and Austrian politics here.

God Save the King

|
George III George III

Given that the terms of the current United States Constitution remain in force and are duly honored, and barring calamity or disgrace, the reign of His Imperial Majesty George III will come to an end, with the Coronation of his successor, whomever he or she may be, exactly three years from today, on 20 January 2009, at 12:00 EST, 11:00 CST.

I'll leave it to the reader to decide whether this is good news or bad news.

That's right, this is our third ruler named George. His father was our second. The father of our country was the first. Our last ruler under British authority was also called George III. His poll numbers weren't the greatest either. What goes around...

It may seem odd that I notice this date every year, but it has a way of being a personally auspicious occasion. Witness, for instance, this post. We reckon time by the reigns of our regents, and since the days of Franklin II, this has been our official ceremonial day of transition. Of course, I'd pretty much beaten this topic to death last year too...

Guten Tag

|

As part of a effort to try to figure out what this "tagging" craze is about, I've created a Technorati Profile. Let's see if I regret it.

It seems likely that I'll need to upgrade Movable Type to really put this stuff through its paces, and thereby begin to form an informed opinion, but that will have to wait. As ace, recovering System Administrator Thomas Jay Peckish II always says: "Don't mess with it if you don't have time to break it..." or something a lot like that.

Now, an MT upgrade could well allow Catfish to allow comments too. Hmmm…

In the meantime, at least my bilingual pun drew a chuckle from a prominent member of the Pan-Teutonic Tech-Journalistic Community...


So, anyhow, here goes:


So, here's what Technorati coughs up for TJP2. I'm still working on getting the hang of how to get these things to work:

Posts that contain Thomas Jay Peckish II per day for the last 30 days.
Technorati Chart
Get your own chart!

Tom Lehrer on Originality

|

It has long been my largely unrealized intention that an examination of the changing nature of originality in the twenty-first century, in an age of sampling and search engines, on a planet of seven billion souls, be an underlying, recurring, unifying theme of Catfish in the Memepool. My recent AJAX post is a case in point.

Paul Saylor

So, it is in this spirit that I'm going to indulge myself in a bit of personal nostalgia. Our peripatetic (but by no means itinerant) IBEAM Project Principal Investigator, Paul Saylor, made a scheduled stop at the Siebel Center as part of his winter tour last week, and was able, after an impromptu meeting, to offer me a ride home.

Paul is afflicted, thankfully, to a lesser degree than yours truly, with a weakness for the occasional dram (or is it a snifter?) of purple prose, and is, at times, well, a fellow big-word-using guy. It should suffice to say we are co-enablers when we get together.

It so happens that Paul had a CD by satirist and mathematician Tom Lehrer in the player in his rented van at the time. It engendered a veritably Proustian onslaught of rapturous recollections.

Tom Lehrer

Graeme Cree has described Lehrer rather well: "If you've never heard him, he's very similar to Mark Russell, except that he's funny."

As it happens, my dad was a big fan of Lehrer's records when I was growing up. I think he got them through a record club. We used to sit around the living room and listen them on our Motorola console stereo with him back during the reigns of John V and Lyndon I. I was just in elementary school in those days, and most (but not quite all) of the sociopolitical allusions were doubtless lost on me at the time. Nonetheless, my siblings and I somehow found them infectiously hysterical anyway, and I still remember them vividly (well, better than I have any right to be able to expect to be able to, anyway).

Still, I'd completely forgotten that Lehrer had written one tune in which he actually incorporated the names of all 102 of the known elements in the periodic table at the time, but there it was, and the conversation somehow turned to Lobachevsky. Lobachevsky, as Paul knew better than I, was the "father" of the hyperbolic strain of Non-Eulcidan geometry. The conversation quickly turned to intellectual paternity in general, even as the CD player turned to Lehrer's commentary on it.

It seems certain that I hand not heard this tune in forty years, long before I became a ivory tower hired-hand. But, suffice to say it sounded more relevant today than ever. Rather than comment any further on it myself, I urge the reader, should he or she be so inclined, to pursue the following primary sources: The lyrics are here. An MP3 can be found here.

In a similar vein, Lehrer's scathingly brilliant Werner Von Braun can be taken as trenchant, if not still timely, commentary on the compromises that are sometimes necessary to fund one's research.

Once the rockets go up...


Original thought is like original sin: both happened before you were born to people you could not have possibly met.
Fran Lebowitz

I don't have ideas. Ideas have me.
Thomas Jay Peckish II

And then I write
By morning, night,
And afternoon,
And pretty soon
My name in Dnepropetrovsk is cursed,
When he finds out I published first!
--Tom Lehrer, Lobachevsky

A footnote: Among the things I've always hoped to feature in Catfish in the Memepool were amusing tales of the sheer futility of the pursuit of original thought, especially in light of the fact that search engines have rendered it trivial to disabuse one's self of such notions. Its great sport. This is not to say that such occurrences are not original in the sense that they were independently conceived, just that such conceptions are more often than not unique. It's as if the memepool itself is ripe with certain notions, and we are merely channeling it. Channel Catfish…

Today's example: Here's a three-year old occurrence of the term meme-slinger I'd secretly, vainly hoped I might have minted in that AJAX post last week. Hackneyed though it may be, it still fit its subject to a tee…

--BF, just another Memepool Medium…

La Rochefoucauld on Humility

|

Humility is the worst form of conceit.
--François Duc de La Rochefoucauld

Before Coffee

|

Evidently, you may often be in worse shape during the first few minutes after waking up than you might have been when you retired the previous evening.

An amusing item from CNN this morning: "For a short period, at least, the effects of sleep inertia may be as bad as or worse than being legally drunk," said researcher Kenneth Wright of the University of Colorado at Boulder.

Evidently, parts of the cortex do not rouse as quickly as other parts of the brain, hence a potentially (quite literally) groggy degree of impairment. This explains, in part, why I've managed over the years to make every conceivable mistake one can think of getting the coffee maker started... ...from forgetting the coffee, the water, the filter, the grinder, right through to the "on" switch ...before those higher cortical functions had woken up and kicked in...

What's next, holding the sandman accountable to dram shop laws?

What's New Here is that Nothing is New Here

|

What's new here is that nothing is new here.

I used this phrase nine years ago to open an obscure spasm of pomposity that opened the Pattern Languages of Program Design 3 book to describe the patterns movement itself. But, in the spirit of that piece, I'm going to shamelessly recycle it here, because it fits Ajax, that trendy, breakout postmodern school of web application design, to a tee.

The fascinating thing about Ajax is that it is an amalgam of existing technologies that all date back to the twentieth century. It's what the Web 2.0 crowd might call a mash-up. Only the name is new.

Jesse James Garrett

"Ajax" is short for "Asynchronous JavaScript + XML". This moniker (not the technology itself) is the brainchild of a meme-slinger who calls himself Jesse James Garrett, a handle more redolent of saddle soap than household cleaner. Garrett rides for a high-end Bay Area Buzz Boutique calling itself Adaptive Path. Garrett makes no intellectual paternity claims for the ideas proper, only for the name and the description. His web essay, Ajax: A New Approach to Web Applications cites several know uses for Ajax, and lists some defining characteristic of this style of architecture. In short, his essay is really quite pattern-like, though I don't think he claims as much. He'd certainly be entitled to do so. In any event, Garrett's essay, by conferring a name on this otherwise ineffable architectural notion, has put both Ajax and "Ajax" (to say nothing of Garrett himself) on the map.

Sun, for its part, is cautious about embracing the Ajax handle, but is not coy about this school of design itself.

Indeed, it's not clear that anyone claims to have actually invented Ajax. Instead, ad hoc designs using these technologies, such as Google Maps, Flickr, and the like, have appeared and incrementally grown more elaborate, and more refined right under everyone's noses for the last couple of years. Such is the face of innovation in the 21st century.

Now, Michael Mahemoff has exhibited no compunction in calling a pattern a pattern. Ralph Johnson pointed out this website a few weeks ago for a forthcoming book on Ajax Patterns. It is tastefully rendered, and quite engaging. I commend it to the reader's attention.

if nothing else, Mahemoff's site has encouraged me to take a harder look at MediaWiki as a pattern cultivation tool (though I've yet to do so.)

A few thoughts on Ajax:

It should go without saying that like so much of "architecture" in the web services realm, Ajax is a Worse-is-Better poster child.

Ajax applications typically shift control of an application back from the serve to the client side using a client side "engine" written in Java script. This engine communicates asynchronously with the server using XML. The server side could be written using nearly anything, but typically is written in a scripting language like PHP, Python, Perl, or Ruby.

Ajax, it would appear, has as it basis the groundbreaking architectural premise that a local rendering engine that buffer's communication with remote servers can provide a more satisfying, more responsive interactive experience to the user than can websites without one. (There I go with that tone that may strike readers as a touch sarcastic. I assure you that I don't have a sarcastic bone in my body.)

Under the hood, Ajax is an unspoken triumph for object-technology. JavaScript, PHP, Python, even Perl: all OO.

Why XML? For one thing, as always, XML can effortlessly traverse that semi-permeable membrane, that blood-brain barrier, Port 80, and hence walk through firewalls that would impede other vectors for virtual matter.

Why Javascript? Why did applets fail, and JavaScript win? Why now? It would seem that Ajax is (also) a poster-child for Moore's Law, and rolling obsolescence. Sometime around the turn of the century, 1GHz machines were all the rage, and now, the trailing edge of this Moore's Law curve has reached this point. The Ajax phenomenon is driven by the trailing edge of Moore's Law. That is to say, one can pretty much assume everyone has at least a 1GHz machine, and Windows XP or equivalent OS. Furthermore, the browser wars have essentially assured us that the vast majority of users have Javascript on the client side.

Code that would have performed unacceptably under scripting languages like JavaScript, or PHP, or Python for that matter three years ago, will run just fine now. Finally, we are spending some of our Moore's Law dividend fruitfully on something other than GUI eyewash.

In 2006, we can assume that script code that would have taken a DLL ten years ago, or a JIT'er five years ago, will run fine as-is. We can assume that the typical user buys in at broadband, and that bloated XML packets will not clog his or her plumbing. We can assume that a browser that runs JavaScript is at least in the user's back pocket. We can assume graphics horsepower that would have dropped jaws during the Clinton administration. We can assume that a 60Mb IE RAM footprint will draw only yawns. We can presume that machines that run at mere Megahertz clock rates are headed back into the closet.

Of course, the same reasoning applies more or less to just about any "LAMP-based" design.


James Governor concurs that Garrett's is a pattern naming coup here. [Michael's Ajax Patterns Tag]

Carver Mead on the Dark Age of Theoretical Physics

|
Carver Mead

I came across this utterly fascinating, four-year-old interview with Carver Mead in a weblog calling itself Laputan Logic, of all things. The "dark age" he refers to is the last seventy years...

I last came across Mead at the very first International Conference on Neural Networks in San Diego in 1988. His iconoclastic embrace of neural networks, which were then themselves just emerging from a twenty-year "dark age" brought on by their having been declared heresy at the hands of orthodox AI Perceptron critics like Minsky and his ilk, had impressed me at the time...

Freedom from Choice

|

In ancient Rome
There was a Poem
About a Dog
Who found two Bones
He picked at One
He licked the Other
He went in Circles
He dropped Dead
--Devo, Freedom of Choice

I stumbled across an interesting discussion in from Ruby-land through a link on Martin Fowler's website. At least I thought I did, I can't find the reference now. No matter I suppose.

It’s an intriguing, but somewhat iconoclastic idea from David Heinemeier Hansson, by way of meme consolidator Tim Case, to the effect that the notion that a framework be an ultra-flexible jack-of-all-trades has run its course. The claim is that frameworks that employ fixed conventions in lieu of elaborate configuration mechanisms are easier to learn and use, at least in the most typical and common cases. A framework should be really really good at one thing. It should do one thing, and do it well.

At first blush, this would seem at odds with conventional / customary / traditional framework development lore. Nonetheless, I find the idea quite compelling, given the right circumstances…

My first thought is that it is a sign of a healthy, mature ecosystem that the carrying capacity for frameworks that do a single thing well exists. Code that does one thing right can be easier to read, and easier to extend (using code), that code that straddles a range of requirements. There is an element of neoteny, of reverting to a less mature form in this. This is what a green fields framework often looks like too, at first.

Normally, over time, as new requirements emerge, the framework grows, to accommodate a range of requirements. The code to accommodate this variety, this diversity, is refactored as the framework grows, the commonalities rise, as if in some code chromatographic centrifuge, to the upper levels of the class hierarchy, and out into distinct components, and yes, out into the data, and into databases and configuration files.

The prize: flexibility, market share, and libraries of redeployable abstractions. The price: inevitable complexity, and a steeper learning curve.

Reversion to convention marks a break with such evolutionary trends, with midlife growth. It is tempting to speculate that such breaks are inevitability generational. That drawing-back-to-leap entails a fresh draft, a new generation, a new codebase. Hence, I suspect, the phenomenon discussed here is not warmed over YAGNI (You are not going to need it); not a response to premature generalization, but a late, mature reaction to a rising tide, and a mature understanding of where flexibility is needed in a given domain, and where it is superfluous.

Neoteny is a "back to the future" reaction, in some ways, but not a "worse is better" reflex.

An analogy drawn from the realm of stadia in the United States came (once again) to mind. During the sixties, multipurpose facilities that could accommodate the needs of several sports were constructed. They met those of all of them adequately, but met none of them well. Is a Swiss Army Knife ever really better that the right tool for the right job? Or is it just easier to afford and to carry?

During the nineties (and beyond) these cookie-cutter concrete white elephants were razed, and replaced with single-purpose facilities better suited to just baseball, or just football. Even adjusted for inflation, these replacements were considerably more expensive than the stadia they replaced. But a bigger, more affluent population, craving the thrill of vicarious victory enough to support skyboxes and three-figure seat prices, was able to support this extravagance.

Could it be, that in a red-shift, expanding universe, the growth of the internet itself, and of web application demand, is such that we now have niches for single-purpose frameworks that might only have been filled by less satisfactory general purpose code even five years ago? There is a slightly decadent, postmodern redolence about all this.

Is there any way that conventional frameworks might exhibit this same level of convenience? Perhaps, if their elements are engineered to WORK OUT OF THE BOX. By exhibiting, generating, and maintaining reasonable defaults, programmers might provide the same kind of 80% / 20% Pareto's Law hands-free convenience to the bulk of their clients, while still being able to cater to more exotic tastes as well.

Now, to be fair, one of the factors at play here is that (post-)modern scripting languages like Ruby are easier to change than relatively hidebound type-pecked tongues such as C++ and (alas, now) Java. I'm recalling Kent Beck's observation that were coding to become infinitely fast, we wouldn't need to worry very much about reuse. The fast-on-their-feet scripting cultures of Amazon and Google lend some credence to this world view, it would seem…

Freedom of Choice
is What you Got
Freedom from Choice
is What you Want
--Devo, Freedom of Choice

The Least Understood Thing in Computing

|

Journalist Mariann Unterluggauer has latched onto this challenge question from OOPSLA 2005. Here's the question, with my reply:

Q: What is the least understood thing in computing that if only it were understood, everything would change?
A: That's easy: Reflection...

In a truly just universe, dogs would live as long as people do...
--Thomas Jay Peckish II

OOPSLA 1989 in New Orleans

|

Doctor Dobb’s Journal stalwart Michael Swaine has some recollections of his last time in New Orleans that resonate with mine...

Indeed, Swaine’s post triggered a number of memories. One was a tale I related during our OOPSLA XX retrospective, but forgot to post here of an epic OOPSLA IV paper airplane contest at the New Orleans Hyatt. The Hyatt chain used to like to distinguish its hotels with daring feats of architectural legerdemain in their central atria, and the building in New Orleans provided the ideal setting for this contest. This contest was ultimately won with a breathtaking twenty-nine story corkscrew spiral into a ground-floor fountain by a entry crafted by Bjorn Freeman-Benson. An audacious display of atrial flutter. Memories of this site came back to me during the Katrina coverage.

In the spirit of free association, that Freeman-Benson recollection also triggered another Proustian recollection of good food, Bjorn's Bacchanalian gout-fest at OOPSLA '98.


Ironically, I became aware of Swaine's piece through an utterly unwarranted pot shot taken by some unctuous coprophagic who evidently treats the internet as his personal scratching post. This sort of puerile ad hominem invective is the kind of thing that give 'blogging, and yes, even sarcasm itself, a bad name. A side effect of totally disposable email addresses and weblog accounts is that they offer malcontents like this one anonymous access to single-use sniper’s nests…

The Nexus of Guts and Glitz

|

Count on Martin Fowler, that technosexual trendsetter at the tony House of Thoughtworks to stir up the season’s most colorful and provocative design dustups… …Okay, I’ll stop… …but here’ s the controversy…


Martin has of late fallen under the spell of Ruby, a dynamic postmodern scripting language billed as a pragmatic amalgam of Smalltalk and Java and what-have-you. Smalltalk’s soul in Java’s clothing, with a dash of Python. I have been hearing a lot of good things about Ruby.

Anyway, many proponents of Ruby, it would seem, espouse what they call Humane Interface design. A humane interface places a premium on programmer convenience, and may be quite a bit larger than the Minimal Interface necessary to expose an abstraction’s basic functionality. The humane approach provides a more ornate, more verbose vocabulary to the programmer, as opposed the smaller, more austere, more Spartan, ostensibly more simple minimalist interface. Joey deVilla offers a gonzo follow-up take on this controversy here.

Their poster child example is a method, "last" that returns the final element of a collection. In Ruby, (and Smalltalk, and …) a method to do just this is provided. Java interface designers are cast as the Spartans in this tale, providing only a basic getter. To retrieve the last element of a collection, something akin to a.get(a.size()-1) must be executed.

Is the Marie Antoinette vs. Wal-Mart? Loincloths? Baroque and rococo vs. Frank Lloyd Wright and the modernists?

At first blush, this would seem any easy call. My Smalltalk roots (among other things) are likely showing when I say I see no harm in a larger, more expressive vocabulary.

And there I might leave it, if this did not raise an even more interesting issue, which is: What if they are both right? How is that for equivocation?

Now the reader need not fear, for I still intend to cast my lot on the side of the humane, and not the stingy, though when the argument is cast in such terms, it is hard not to feel a tad manipulated, and after all, smaller can be simpler, I suppose... To be anti-humane is to be in favor of what? Euthanizing kittens?

Why can't we provide capable expressive, human-friendly abstraction that are themselves built around minimal cores?

The motivation for this is the need for what I call a Core or, better yet, a Nexus, that is a single, central, and yes, minimal subset of the public repertoire of an object through which all definitive, authoritative message traffic, both external and internal must pass.

In Smalltalk, programmers were traditionally rather casual about which methods were private, or fundamental, and which were written to ride atop this rock-bottom level vocabulary. Protocol organization helped to convey this to some degree, but such conventions as there were were frequently honored primarily in the breach.

Don’t get me wrong. I’m not arguing that these conventions be formalized and enforced (at least not yet; not here), rather, I’m arguing that this kind of "once and only once" is a guarantee that programmers want to ensure.

Why? So we can wrap the one place that gets and sets things, for instance. I want to know, for example, that any getter on a collection bottoms out at a single, definitive call to something like get().

So, indulge me for a minute. One way to do this might be…

Problem: you want to ensure that all references to an objects internal resources are made through a fixed, restricted set of methods.

Solution: refactor all the methods in this core, this nexus, into a separate component. Construct an entourage of wrappers (of various sorts) that employ the broader, more extensive vocabulary, and forward those in the minimal subset to this core; this nexus.

The use of a separate component guarantees that all the humane embellishments provided to the outside world must go through the minimal argot supplied by the core. This design also permits pluggable alternative implementations, such as, for instance, a sparse array implementation, to be plugged in in place of the standard cores.

Such as design is layered in the strict, traditional sense that many so-called layered designs are not. Like an onion.

Alternative designs involving inheritance using a private core with protected accessors are possible where efficiency concerns are at a premium, and runtime plug-in substitution seems unnecessary. Schemes employing interface inheritance are possible to envision too.

This was the defacto solution to this problem seen in a number of vintage Smalltalk classes. Indeed, such internal layering has been suggested as a “smell” that indicates that a new component need be culled from a class via refactoring.

So you can have a simple guts, and flashy, interchangeable skins. You can almost have your cake and eat it too. Marie Antoinette would be pleased. The filigree, the utility methods, are in the Decorators, while the core, the essence, is in the decorated cores.

That there be a nexus can be thought of as a design principle, its embodiment in recurring designs makes it a candidate for patternhood. Let’s see, we need two miracles for beatification, and two more for canonization

There is more that a hint of Handle / Body here, among other things. A scoop of Class Adapter? A full dress treatment of this seat-of-the-pants, inchoate proto-pattern notion might address these issues.

The piper is paid, as with so many patterns, at Creation Time, Provisioning Time, when the structural edifice that drives the computation is constructed, when the web of objects is woven. But that is a tale for another post...


Here’s why I’m partial to the somewhat obscure word “nexus”, over “core”, for this intent. While the more familiar “core” conveys the centrality, the primacy in this intent, it doesn’t capture the dynamic, causal interconnectedness of this intent as precisely as does “nexus”. I’ve been looking and listening for a long time for a term that better gets across the idea that a method or object be at a definitive, authoritative chokepoint or bottleneck, at a pass at which functionality could be “headed-off”, and this might be it. And no, I haven’t read very much by Henry Miller. From M-W:

nexus
Etymology: Latin, from nectere to bind

  1. CONNECTION, LINK; also, a causal link
  2. a connected group or series
  3. CENTER, FOCUS

All politics is local.
--Thomas P. "Tip" O'Neill

All software engineering is politics...
--Thomas Jay Peckish II

John Vlissides

|

John succumbed to brain cancer on Thanksgiving Day, 24 November 2005. He was only forty-four. I will miss him a lot. Many of us will. We are holding something of a dry, virtual Irish Wake for John on Ward’s Wiki. I've posted some of this material over there, too. As of 12/9/05, that WikiWake page had been seen by in excess of 16,000 visitors.


The Gang-of-Four celebrated the tenth anniversary of the publication of 'Design Patterns' last year at OOPSLA 2004. Three of them, John (sporting the propeller), Erich (wielding the knife) and Ralph are shown here preparing to eat their words. John was the OOPSLA 2004 Conference Chair, and had made the trip to Vancouver at the price, we later learned, of having had to forego chemotherapy for a week. John is shown still in costume for his role as "Jimmy the Freshman" in "Dating Design Patterns", a skit that I had warned him might seriously undermine the dignity of the entire conference. John replied "What dignity?". For good or ill, this lesson has stuck with me. John had self-effacing sense of humor to go with his genuinely contagious intellect, a rare combination indeed...



One of my favorite memories of John is, of course, of the time we put him on trial for crimes against computer science. I’d wondered whether anyone would go along with this pretext, but John thought it was a wonderful idea for an OOPSLA panel. A clip of John’s plea in this case can be found here.

Another is from Vancouver Aquarium Event at OOPSLA 2004 when John, the Conference Chair, took time out from servicing the usual throng of dignitaries waiting to kiss his ring to chat with a couple of our new students. One of them, Spiros Xanthos, is from Greece, and was amazed and delighted that John took several minutes to chat with him about his ancestors and background in fluent Greek. Spiros will never forget it. I won’t either.

Photos ©2004 by Munawar Hafiz, Spiros Xanthos, and Brian Foote

Microsoft Seeks to Acquire Weapons of Mass Computation

|

In a defiant keynote address delivered to a stunned audience at the Supercomputing 2005 Conference in Seattle, Microsoft Chairman William "Bill" Gates vowed today to acquire the technology to produce weapons of mass computation as quickly as possible. Microsoft’s program posses a provocative challenge to existing supercomputing powers such as IBM, Sun, and Cray.

This technology has heretofore been available only to an exclusive club comprising only the most technically advanced powers. That Microsoft, considered by some in the supercomputing elite as a rogue player, now has made the development of this technology a priority is raising considerable alarm.

Chairman Gates

Researchers at the University of Illinois at Urbana-Champaign’s Software Architecture group expressed skepticism that Microsoft could develop the powerful refactoring technology required to transform it’s raw business software into the highly enriched form necessary for high-performance computation. "It takes years to cultivate the powerful high-performance "codes" necessary to pose a serious threat. Without this [refactoring] technology, they are at least seven years away", said Thomas Jay Peckish II, of UIUC. "We’re they able to somehow acquire this technology from an outside source it, they could develop a weapon’s grade potential in as little as two years."

A key element of Microsoft’s alleged program is a black project know only as XBox, which threatens to put weapon’s grade supercomputing technology in the hands of any rogue adolescent anywhere on Earth. Microsoft claims this suitcase-sized device has no dual-use potential, and is intended only to pacify children.

Some scoff at this potential threat. This is a Business Intelligence failure of monumental proportions, suggested one analyst.

Gates did acknowledge that Microsoft is working on advanced cluster technology, the same technology that has been denounced by some human rights watchdogs as dangerous in the hands anyone but the most highly trained software technology experts. Gates disclosed that Microsoft has been developing these weapons under its Windows Cluster 2003 Program. He defended Microsoft’s work in this area, pointing out that competitors have been developing and deploying such technology for years.

Microsoft has launched a charm offensive to counteract the negative publicity it has been receiving as a result of these developments. They’ve booked the Experience Music Project Facility for a concert for an exclusive group of supercomputing dignitaries this evening. The mysterious EMP facility, it might be pointed out, is rumored to have been surreptitiously funded by reclusive Microsoft billionaire Paul Allen.

The official libretto for Gates's address can be found here. Their official strategy can be found here.


Photo ©2005 by Kathleen Ricker

Photran in the News

|

Click here to see the full article.

Oh, and any similarities between the piece above and this earlier Thomas Jay Peckish II interview are almost completely coincidental.

Then there is this Photran sighting in Ward Cunningham and Bjorn Freeman-Benson's 'blog about efforts to broaden the reach of the Eclipse CDT. Our collective efforts drew this plaudit from Bjorn: "I dream of an idyllic future where all Eclipse projects are as open and transparent and cooperative as CDT/Photran/PTP in our quest to create great frameworks." Aw shucks...


See Photran in action at the Supercomputing 2005 Conference, at both the Fortran Company and Los Alamos National Labs booths.

The Co-optation of Collective Nouns

|

We were discussing how it sometimes seems that Computer Scientists have co-opted every reasonably abstract collective noun in (at least) the English language for uses as a technical term. The conversation turned to whether there were any left to exploit in the name of enlarging our arcane argots. Munawar Hafiz picks up the play-by-play here...

Thomas Jay Peckish II on Scholarly Discourse

|

Look, this is the twenty-first century. I think by now everyone knows exactly what it is that they are expected to do if they can't take a joke.
--Thomas Jay Peckish II

I Have Nothing to Declare But My Genius

|

I Have Nothing to Declare but My Genius

With mainstream language design mired in ennui and retreating into formalism, the field has been effectively ceded to a ragtag, de-facto coalition of old-school dynamic stalwarts, scripting language designers, and ad-hoc domain specific API architects. A generation of research in this area can be distilled down into three overarching ideas, the rest is filigree.

This talk will explore these ideas, examine how and why these currents are converging, and show why the large scale, dispersed, heterogeneous, polyglot world of 21st century computing demands nothing less than this degree of commitment to dynamism.


Brian Foote has been programming professionally since the dawn of the Carter Administration, mostly in the service of academic researchers of various stripes. His association with the academy has enabled him to dabble extensively in research. His interests include objects, programming, programming language design, reflection, metalevel architecture, patterns, and software devolution. His exposure to Smalltalk during his impressionable formative years indelibly shaped his attitudes towards software architecture and design. Brian is one of five people to have attended every OOPSLA conference to-date. He is the author of a forthcoming self-help volume entitled “Late Binding as a Philosophy of Life”.

I get the same sense of security knowing that my program is statically type-safe as I do knowing that my seat cushion can be used as a flotation device.
--Donald Bradley Roberts, author of the award winning autobiography Outsourced to Indiana, during Q&A...

Devolution in the Air

|

Over the years, one of of the my favorite OOPSLA pastimes has been attempting to discern the Zeitgeist. What memes are moving, as the marketing 'droids might say. This time around, several distinctive themes emerged. I'll discuss the most vivid of them here. I'll talk about the others, Web Services, the Reflection and Metalevel Architecture Revival, and Refactoring Coming of Age, under separate cover.

The first, and most prominent / evident was Software Devolution.

By this I mean an overdue discussion of the death of quality, the embrace of failure, the acceptance of uncertainty, our exhausted capitulation in the face of complexity, the realization that the programme of the close-world formalist is mocked by reality.

Acknowledging devolution means acknowledging that not only are things worse than we've dared to admit, they are getting worse, and will continue to do so, at an ever accelerating pace. We are entering a worse-is-better world of sweatshops and generative robo-code, where the craftsmen must inevitably retreat to their redoubts in boutiques and curio shops.

Acknowledging devolution means abandoning our fetish for correctness, and learning what to do when (not if) something goes wrong.

Devolution was a theme that impinged from so many directions this year that it was impossible to ignore it. Software Devolution is something of an umbrella under which I am lumping a number of disparate trends. Perhaps the notion will seem more clear once I've cited some of the developments that made this theme seem palpable.

The most glaring evidence of this theme could be seen in Martin Rinard's Breakthrough Ideas presentation. Rather than cling to the notion that every error can even be caught, let alone avoided, Rinard deals statistically with consequences and ensuing carnage entailed in just "eating" them. The approach would seem to have more than a little in common with what the genetic programming people are doing. I need to look at his work more closely to see if this is so.

Embracing the reality of programmer fallibility and failure was a theme of Mary Beth Rosson's The End of Users keynote. She observed that something like ninety percent of all spreadsheets have errors, and that we are in something of a state of denial of the potential consequences of this reality.

Agile methodologists have been promoting the primacy of bottom-up, feedback intensive code and test based design as an alternative to the top-down foresight fetish crowd's traditional ideas. Martin Fowler's Finding Good Design keynote went beyond even this, and offered more than a nod in the direction of whether high-minded design ideals were honored primarily in the breach in practice, and questioned whether the very idea of design would retain its relevance.

For a moment, we all dared to ponder the question of whether craft in design is anything more than gilded filigree, soon to be as anachronistic as a hand-crafted circuit board.

My own Breakthrough Ideas triptych (previewed exclusively here a few weeks back) further reinforced the notion that the gap between what we practice and what we preach is large, and is growing larger. In Praise of Cut and Paste sought to "out" an ubiquitous practice among framework designers and, well, everyone else, that has been regarded as something of a dirty little secret by practitioners, while being scorned by high road methodologists and academics alike.

Big Bucket of Glue suggested, among other things, that integration isn't pretty, that it is often quick and dirty, that essential complexity is here to stay, and that some part of the system must bear the structural stigmata associated with wrangling the rest of the system into a coherent whole. It can be seen as a potential integration layer sequel to our hoary spasm of pomposity Big Ball of Mud.

The End-to-End Principle in Programming Language Design suggested that mainstream languages such as Java focus too closely on minutiae like protection and type checking at the micro level while neglecting any support for the overarching end to end of real, honest to God runtime facilities such as validators, to, well, who knows? Features designed badly at the language level must often be reinvented a level up in a dynamic or adaptive object model layer in order to properly accommodate the needs of any end to end domain specific languages that might emerge. One example of where this phenomenon can be seen the architectural eyesore that the services layer is becoming. It is bad, and getting worse by the minute.

Devolution can be seen in the enthusiastically received Scrapheap Challenge workshop, where participants dumpster dive scraps from the web as fast as they can to solve programming problems.

There was something decidedly devolutionary in Grady Booch’s overdue exhortation to cast models aside, and in his candid admission that no one reads code anyway.

The winners of our Sudoko exercise in the Extravagaria III: Hunting Creativity workshop used twenty-first century scrapheap techniques (they Googled the problem), mocking the attempts of the organizers to demonstrate genetic crossover using the other two groups who'd treated the task as relatively solitary chores.

The notion of "Software Devolution" is drawn from the colorful hatchet job James Noble did on my Biography for the Sashimi vs. the Purple Robots panel. If the shoe fits. It is a notion that fits wonderfully under the aegis of the Post-Modern School of Programming founded by Noble and fellow traveler Robert Biddle at the inaugural Onward! a few years back. We are All Devo indeed.

Among the mantras of this movement are paeans to the centrality of The Program as the essential focus of computer science. Code is seen not only as the source of choice for interesting problems to study, but as the remedy of choice for addressing them. We should address problems with code with code, like real computer scientists, and not with closed form analysis, like mere mathematicians.

Implicit in this is the hope that our discipline is finally becoming mature enough to confidently address indigenous subject matter with indigenous tools and ideas, rather than seeing ourselves as the outcast spawn of some tawdry, long forgotten one-night stand involving the mathematics and physics departments.

The primacy of code, and of runtime mechanisms as a condign recognition of the intricacy and fallibility of code was a central theme of my own closing address to the Dynamic Language Symposium. More of that elsewhere, soon, I hope.

Devolution can be seen in the decline in the impulse towards Linguistic Imperialism, the cooling of the language wars, the increasing irrelevance of Utopian Linguistic Monocultures, and the grudging acceptance that ours is a heterogeneous polyglot world, where applications are increasingly expected to be able to cooperate.

A devolutionary cast can be seen as well in the impulse to use generated code in place of code crafted by human beings. Is generation a symptom, a code smell, signaling the inadequacy of our languages and tools, or is it a harbinger of things to come, the wave of the future, a sign that the John Henrys with their TTL drivin’ keyboards will ultimately be vanquished by these generative steam drills.

Indeed, Richard Gabriel is suggesting that the ultrascale volumes of code that our futures will demand can only be supplied by an automated process that relies on increasing greater degrees of abstraction. This prophet of a grim Worse is Better world may find himself once again the reluctant head of yet another vanguard.

Devolution has two somewhat conflicting connotations, both of which, in the right context, in the right light, fit this discussion to a tee. Devolution suggests de-evolution, revanchism, neoteny, and regression, a descent towards something worse than what we have now. Not a good thing. Devolution also connotes decentralization, a surrender to local control, a process of increasing federation, a spinning-off of constituent parts, as seen in the establishment of a Scottish Parliament, or the refactoring of the Soviet Union into Russia and friends. Think of a process of ball-of-mud componentization, or an annealing process that lets local clusters emerge. Not necessarily retrograde, not necessarily a bad thing at all.

Devolution could be seen as well in the conference organization itself, where satellite symposia offered an alternative to the "take my ball and leave" secession of the Aspects and Agile movements. The adjacent RubyConf, and embedded Wiki and Dynamic Languages events brought fresh plankton to what could have otherwise been a stagnating meme pool, and may point the way to a more federated future for long-in-the-tooth conferences like OOPSLA.

Is devolution a natural consequence of growth? Of maturity? Of riding an exponential? Of Variety and Diversity? Fratricde ebbs because there is more room, and a more diverse herd, self-sustaining communities calve from the central glacier, and set out on their own…

Bastards! Bastards! You're All Bastards!

|

My final official duty of this year’s OOPSLA was to serve on Onward!’s Yoshimi vs. the Pink Robots panel. I was asked by panel moderator James Noble to assume the guise of a grizzled, curmudgeonly veteran hacker. Something of a stretch, to be sure :-), but I figured I’d be up to it.

The panel takes its name from a song by The Flaming Lips. James opened the panel by showing the video for this number. It’s actually pretty catchy. You can find it by clicking the album cover to the right. It was likely the intention of the panel’s framers that the beleaguered Yoshimi was to be cast a surrogate for the users, and that the Pink Robots were to be associated with us inscrutable hackers. I’d rather hoped that this question be left open, and that the audience be allowed to see things the other way. In hindsight, it’s not clear it was even raised, let along settled.

I’d found as many soda pop cans as I could to decorate my spot at the dais. I donned my trusty old engineer’s cap, primarily to get the bright lights out of my eyes, though the thought that it fit the character didn’t hurt.

I don’t remember much about my opening position statement, except what’s below. What I do know is that I’d been told that the ACM was going to finally start recording talk and panel videos this year with an eye towards putting them into the Digital Library. What, I thought, about those occasions where one has made a complete jackass of one’s self on a panel, and had wanted to crawl off into a corner to die? What then?

Then I thought about the performance OOPSLA 2004 Conference Chair John Vlissides gave as the (literally) propeller-headed “Jimmy the Freshman” in OOPSLA 2004’s sporadically amusing but occasionally execrable “Dating Design Patterns” skit.

John had asked me to help him cast this skit a few weeks before. I’d cast it without reading it, out of fear for the worst. I’d read it shortly before rehearsals began, and my fears were not fully allayed. This skit, I had warned him, had the potential to substantially undermine the very dignity not merely of everyone involved, but indeed, of the entire conference. John replied: “What dignity?”

It was in this spirit that I resolved to put such concerns as I might have had on my part to rest once and for all / for good.

In the spirit of OOPSLA 2005’s focus on creativity and the humanities, as established by the stirring keynote address of former poet-laureate Robert Haas earlier in the week, I elected to recite an original piece that Don Roberts and I had put together, based on the work of one of our country's most celebrated contemporary lyricists.

The original idea had come to me, as so many ideas do, earlier that morning, in the shower. Cleanliness is next to Godliness, and Hygiene has served me over the years as generous, albeit fickle, muse. This, however, was one of the most horrific shower visions I'd ever had the displeasure of contemplating. An acid hallucination gone terribly awry. Like something out of Hitchcock, it was a flashback of James’s over the top introduction of Mary Beth Rosson’s talk, only hellishly different. Indeed, it was the end of a fateful downward spiral that had begun, as Eugene Wallingford has noted, the day before.

Panel moderator James Noble's outsized neo-pompous HMS Pinafore histrionics and desiccated antipodean wit are utterly inimitable. But I took a stab at channeling 'im anyway. My re-enactment of my surreal low-culture vision from hell went like this:

I've been around forever
And I wrote the very first code
I put behavior and data together
I am hacker (sic)
And I write the code

I write the code that makes the shareholders smile
I write the code that the users defile
I write the code that makes the testers cry
I write the code
I write the code

The Fountainhead is on my short list of all-time favorite movies, although, I must confess, part of the pleasure I take in it is a partially (but only partially) ironic appreciation of its unrelentingly self-absorbed dialog. It’s great. Objectivism indeed. That said, Rand’s characterization of Roark’s total passion for his work, and his utter disregard for what society thinks of it, one way or the other, fits many in our vanishing indigenous programming culture to an uncanny degree.

I don't build in order to have clients.
I have clients in order to build.
--Architect Howard Roark, in The Fountainhead, by Ayn Rand

An enduring source of frustration among programmers is the degree to which users have no conception of the the glory, the majesty, the grandeur, of living in the code. Of living among, and crafting these magnificent artifacts. The medieval artisans who crafted the great cathedrals of Europe, is has been said, would often take care to craft even that which could never bee seen from the ground with the same care as that which could, because they knew God could see it. This alas, is often inevitably the lot of much of the craftsmanship that goes into the code. But we put it there anyway. And the users have no idea.

This being OOPSLA XX, I was in something of a reflective frame of mind. I started my professional programming career on 20 January 1977, the Day Jimmy Carter was inaugurated, or James VI by my American Regents reckoning. I worked in fairly large research group (about thirty folks in all), with a dozen person technical staff. We worked for a guy who was the spitting image of the pointy haired boss in Dilbert, only with a 170 IQ.

I have a confession to make. In those days, when programmers got together and spoke among themselves, which was fairly frequently, because no one else would talk to us, when we’d talk about users at all, it would be to talk about what #$%^&%$ morons users were. What’s more, we were not alone. Furthermore, I have it on some good authority, that in some circles, this perception continues to exist, among some programmers, even to this day.

Users, we were sure, didn’t know what they wanted. Who did? Why we did!

Who were these users desecrating our cathedrals? Who were these money changers? Chase them from our temples!


The Agile insurgency is increasing viewed as an orthodox movement. A lot of the process guys have traded their keyboards for cufflinks. Waterfall has been effectively vanquished, though it lingers like a winter cough. If I had a beef, it would be with anyone, it would be with the managerial caste, not my users.

At one point, I shamelessly recycled one of my vintage tale about raw materials for software, caffeine and sugar, being cheap and abundant, whereas labor was anything but. I then observed that were the sugar and coffee exporting countries ever to get into cahoots, they could do to the American software industry what OPEC did to the overall economy during the seventies, which is to say, cripple it with an embargo on its vital raw materials.


People come to panels for red meat, for conflict, for entertainment. The scholarly may opt for high-fiber technical material tracks with names like "Type Theory IX", or spicy, exotic mind candy alternatives as are otherwise found in Onward!, but by and large, people come to panels hoping to see the upper-middle brow equivalent of a Claymation celebrity death match.

And so, I fear in hindsight that many found our panel to be a tepid, desultory love-fest. And people just don’t seem to get too excited watching a love-fest, at least so long as the participants remain fully clothed. Who, outside of a few members of the diplomatic corps perhaps, enjoys watching people agree?

For me, the point where I broke character was when legendary waterfall apologist Larry Constantine asked us to be serious for a moment, and I fell for it. Rather than maintaining my shop-steward for the hackers, Commando vs. Infantry persona, I tried instead to be reasonable. Yawn.

Mr. Inimitable ended the panel with a (fortunately nearly unintelligible) video of a salty exchange from someone else’s nightmare, fellow Kiwi Peter Jackson, if I am not mistaken. James then closed this one with one his trademark tumescent tweedy tirades, a heartfelt tribute to someone special.

And it will be coming soon to a Digital Library near you. May God have mercy on our souls.

John Vlissides Photo ©2004 by Munawar Hafiz

Martin!

|

I (almost) had the opportunity to introduce Martin Fowler's (superb) talk on Finding Good Design at OOPSLA 2005 this week. Fortunately, an alert functionary in the ACM's Office of Protocol, correctly having observed that my name was nowhere to be found in the Conference Peerage, was able to heroically and single-handedly avert what could have been an appalling affront to the conference's prestige.

Eugene Wallingford has done his usual masterful job providing the play-by-play for the talk itself. I might inject some color commentary once my own OOPSLA brain-dump has progressed a little further, but in the mean time, a few folks asked for the libretto for what became the scripted part of Ralph Johnson's intro. Here it is. Ralph did a terrific job paring it down. I'm continually amazed by what he can do with only arrow and delete keys to improve a piece.


It is fitting that we’ve convened in a place called Fashion Valley to talk about design. For in the realm of High Technology, just as in the realm of High Fashion, Design is a central concern.

And, In the glamorous and exotic world of object-oriented world of object-oriented software style, of code couture, if you will, the very best designers, the doyens of design, are known, as in the fashion world, by a single name: Kent, Ward, Ralph, Rebecca, and … Martin.

Martin's is a life is filled with glamorous models; his sketches of smashingly attired anorexic stick figures are transformed overnight, in factories in the Far East, into the season's hottest products.

Whether you commission designer code or buy it off the rack… …chances are you’ve had the opportunity to admire Martin’s work.

This season, when some trade rag paparazzi breathless ask: Who did your code? The answer the A-List Coder longs to give is … Martin.


Martin is, as well, the master of the Total Code Makeover. He is the Father of Modern Code Cosmetology.

Martin is a gifted distiller, a distiller of memes. He scours the hinterlands, patiently hand selecting only the finest raw materials. Martin lets them age, as if in an oak barrel. He takes ideas rough, fresh, impetuous and raw and ages them until they are mellifluous, smooth, soothing. and finally, palatable.


And he is, as I’m fond of saying, a pretty good writer for an Englishman…

He is the lead author of UML Dispelled, er, Distilled, still the volume of choice for those looking for a relatively painless introduction to this cartoon cult. Not least among this volume's virtues, it has often been said, is its brevity.

His seminal work on Analysis Pattern sets him apart from the mere scavengers that stalk our field.

His landmark volume on Refactoring took an obscure technology cultivated in the cornfields of rural Illinois, and turned it into a household word.

He’s got a new book out as well, Enterprise Application Patterns. I think it is about Star Trek, but I’m not sure.

Martin is the man who brought back basic black with his Martin Fowler Signature Line for Addison-Wesley.

Technical fads rise and fall like hem lines. But At the edge of the runway on the banks of the Refactoring Rubicon one designer stands alone. So, here to preview his fall collection is the fabulous Martin! Martin Fowler:

The Aristocrats of Brigadoon

|

It was 1986, the space shuttle was grounded, a lame duck second-term Tory was watching his poll numbers erode, and I found myself heading off to OOPSLA.

Some things never change.

Nineteen years later, we find ourselves convening for the twentieth time. This is OOPSLA XX. (Next year will mark the twentieth anniversary of OOPSLA, back where it all began, in Portland, but that event will, nonetheless, be OOPSLA XXI. We number a lot of thing starting with zero in our line of work, after all.

However you reckon it, the task of commemorating this auspicious occasion had fallen to the five stoic, steadfast, reliable souls who’d managed to attend every OOPSLA to-date. A distinguished lot, present company excluded, of course. We, along with a handful of indispensable fellow travelers (Richard Gabriel, Ken Bauer, Linda Rising, Laura Weiner, and Jeff McKenna), constituted the unofficial OOPSLA 2005 Backward! committee.

We'd wrestled sporadically over the format for this event over the last year. I'd originally conceived of it the morning after an evening of moderate carousing in Vancouver last year as an Irish Wake. The Idea would have been that it were being held at sometime in the future. Anyone with a story could come up to tell it. Libation would, of course, be abundant. It would be the kind of event that would finally end in the bar at two o’clock in the morning.

Shopworn stereotypes aside, the Irish Wake is one of the most dignified and effective retrospective rituals mankind has ever devised. I know. As per her wishes, I’d helped my family to conduct one for my own mother a few years back.

However an Alert FunctionarySM in the ACM's Office of Protocol deemed such an enterprise as being in potentially questionable taste, so off we went trolling for other formats: a nursing home in the years 2025, a twelve-step meeting for object addicts, the list went on.

By the afternoon of day before, we’d still not settled on final format for our plenary event the following evening. We convened an emergency lunch meeting of the three non-professors on the perfect attendance list, and professional retrospective organizer extraordinaire (and Backward! committee member) Linda Rising. We decided to run our retrospective as … a retrospective.

We nodded our heads in satisfaction with our plan, as perfect attendee Rebecca Wirfs-Brock produced a six dollar bill from her wallet bearing an ad for art house film with which she was quite smitten named The Aristocrats. The film is built around different renditions of what is billed as the world’s funniest, or at least filthiest, joke. Rebecca told me the joke on the way out. I laughed on-and-off for over twenty minutes. Though I said nothing at the time, I knew then and there that our intrepid little band of OOPSLA perfect attendees finally had a name.


Our retrospective itself was preceded by a sumptuous, outrageously decadent dessert spread sponsored by Sun Microsystems, to commemorate (only) the tenth anniversary of the Java programming language. It was like something out of Charlie and the Chocolate Factory. A persistent rumor had it that Sun had shelled out $20,000 for six hundred helpings. Suffice to say there was enough molten chocolate on hand to have dipped every attendee there up to his neck in the stuff.

The bridge from the reception to the retrospective was to have been provided by designated Java Oompa Loompa (note the OOs) James Gosling, but he proved unable to attend. We were, however, as a dividend of the Backward! committee’s video production efforts, to display a clip of Gosling’s OOPSLA 1996 talk, The Feel of Java that Don Roberts had carefully selected for this very occasion.

With Gosling sidelined, the duty of holding up the Java Standard fell (figuratively, this time) to his designated stunt double: Steele. Guy Steele. It is customary that a stunt double be less handsome, less erudite, and more athletic that his corresponding leading man. I regret that I must inform you that Steele (who is depicted here vividly indicating Java’s age using the fingers on both hands) fell short on all three counts.

I’d noted as well that Steele had delivered what was unquestionably the cleverest talk I’ve ever heard in my life, Growing a Language at OOPSLA ’98 in Vancouver. As part of our Backward! commemoration, we’d embarked on the process of transferring some of the OOPSLA video archives to DVD late this summer, with the hope of setting up a Wayback/Time Machine space in San Diego. We used the video of Steele’s talk to test the equipment, and it attracted quite a crowd. Though we had about fifty other vintage events to show, Steele’s talk was the only one we exhibited. Other ‘bloggers have cited it as among the most impressive things they saw this year at OOPSLA. I could have sold a hundred of ‘em.

The knowledge that one is about to speak induces a kind of mental tunnel vision, or information triage, that makes concentrating on the speaker before you more difficult. I don’t recall that Steele said anything he hasn’t said before about Java, other than there were unspecified things they’d do differently now.

We opened the retrospective proper with our five perfect attendees, The Aristocrats (left to right), Ralph Johnson, Ed Gerringer, Allen Wirfs-Brock, Rebecca Wirfs-Brock, and your humble correspondent, fielding a few softballs. I’d noted that not only had Allen and Rebecca attended every OOPSLA, but that they had been married for nearly thirty years. Any bets as to whether OOPSLA, let alone Java, will make it that far?

I’d introduced the proceedings brandishing a bottle of Clos du Bois (get it?) Merlot, and vowed that once we five were down to two, we’d crack open that bottle and drink it. I wish I could remember where that cliché came from. I think it was a bottle of Bordeaux, and a fighter squadron, in the original tale.

Once the retrospective began, it fell to Linda Rising, Mary Lynn Manns, and fellow lifer Allen Wirfs-Brock to save the day. Allen came armed with a veritable litany of who was here when questions that managed to get some of the older folks in the crowd a pretty good workout, what with repetitive standing and sitting. Allen and Linda subsequently widened the panel to anyone who’d been at OOPSLA ’86 in Portland. That produced a satisfactory quorum of the village elders.


Q: What kept me coming back?

A: The free booze.

A: OOPSLA, said I, was an intellectual Brigadoon, a place you could return to every year, and pick up conversations in mid-sentence. A place like a cocktail party on the Bizzaro World, where you could glibly discuss topics like multimethod dispatch, and be surrounded by the other thousand people on Earth who thought that that was fascinating.

There was a steady stream of questions from the floor. One somehow involved the idea of removing the OOs from OOPSLA, and just re-branding the conference as Programming Languages and Systems. I quipped that were we to banish the OOs from OOPSLA, Rik SmOOdy and I would have to move to Serbia. I’m not sure whether anybody got it.

There was a query as to our most embarrassing OOPSLA moment. I recalled with horror the reception that Al Gore’s science advisor was given at the after dinner speaker at the last OOPSLA banquet in Washington, DC in 1993. Rebecca grabbed the baton and recalled how noisemakers distributed during one of the panels, in combination with wine distributed during the meal, lead to this genuinely appalling breach of etiquette.

I fondly recalled, at one point, Alan Kay’s banquet presentation on the Vivarium project at the very first OOPSLA. I repined as to how he’d managed to gore every oxen in the house, and being struck that one could actually do that at a research conference. For good or ill, my life was changed.

I recalled as well, as I often do, how he’d observed, as he so often did, that Good ideas don’t always scale, which prompted Henry Lieberman, the next day, to inquire So what do we do, just scale the bad ones?

Someone lobbed a slow ball down the middle for us at one point, asking us what things would be like down the road. Having been spending my time in the High Performance Computing world of late, I’m convinced that things seven or so years from now will be quite a bit more different from now than now is from seven years ago. With Moore’s Law exhausted, and a multicore breakout in the works, and PS3s and their ilk poised to bring supercomputer power to every teenager on the planet, we’ll be faced with the challenge of coming up with a programming model. MPI meets Actors meets Darwin meets Worse-is-Better. How will we squander this bounty?


After a while, I recalled the mix of deference and fascination, mingled with a dash of pity and boredom with which I’d have greeted such a gathering of elders nineteen years ago, and wondered what the folks in our audience, few of whom had bailed out in the midst of this, were thinking. Regardless, I was really enjoying myself, at least, as can be seen in the picture below depicting fellow OOPSLA gadfly Dave Ungar wistfully waxing eloquent over I can’t remember what as I gaze on in rapt attention.

In an elegiac moment, Ungar also recalled the year that we discovered that a Sarcasm Birds-of-a-Feather session was inherently impossible to organize if you tried to get the right people to come to it.

There were moments where what we were doing felt a tad indulgent. I recalled my youthful garage band sessions, which were way more fun to perform than they were to listen to, and thought, well, if that’s what we’re doing, then what the hell, we deserve it. As the retrospective wound down, I felt oddly, uncharacteristically sanguine about it all. It’s hard to deny that we have made a difference over the last nineteen years.

What with the dessert spread and all, this affair seemed more akin to a Jewish Wedding than an Irish Wake. We got insulin shock, alright, but nothing to wash it down. But this event, in the end, was what it needed to be, and about as much fun as it could have been, at least without the liquor…

Photos ©2005 by Munawar Hafiz

The Smell of Toner in the Morning

|

I love the smell of toner in the morning.
It smells like
... tenure
--Thomas Jay Peckish II, on the alternative to perishing, with apologies to Robert Duvall...

Inside the Hacker's Studio

|

A number of us at the CS Department at UIUC were able to end our afternoon today, at 1700 CDT, by watching a live (condign / flawless / transparent) webcast of the 2004 A. M. Turing Award Lecture from SIGCOMM in Philadelphia. The page for the webcast stated that "Ironically, this will be the first ACM Turing Lecture that is webcast live." I'm at something of a loss to explain why this is ironic. For those of us who were at OOPSLA 2004, it would be our second consecutive realtime Turing presentation.

The webcast was lead in with an ACM Logo accompanied by organ music that began to remind me of a hockey arena. I was waiting for the Canadian national anthem. Then it gradually dawned on me that the piece being played was a decidedly languid rendition of “Thus Spake Zarathustra” did little to diminish this effect. It turns out that the University of Pennsylvania's Irvine Auditorium, in which the lecture was to be delivered, is home to a 1.1e04 pipe pipe organ (see picture).

The prize was awarded in June to Vint Cerf and Bob Kahn for their pioneering work on Internet protocols. They elected to deliver their Turing "lecture" at the ACM venue of their choice: SIGCOMM.

The lecture was entitled: Assessing the Internet: Lessons Learned, Strategies for Evolution, and Future Possibilities.

I use the term "lecture" advisedly, because this dynamic duo of the datagram chose not to attempt a tag team lecture at all, but resorted instead to that quotidian staple of twenty-first century life, the talk show format.

The effect, given the stage set, and the gray-bearded, distinguished but phlegmatic, slightly diffident demeanor of moderator Lyman Chapin was nothing if not a probably unintentional echo of James Lipton’s “Inside the Actor’s Studio”.

The effect was in stark contrast to Alan Kay's California Casual high-tech presentation of a year ago, (as well as with the "IP on Anything" tee shirt Cerf claimed to have sported during the eighties). Kahn and Cerf dressed like pall bearers, decidely old-school (perhaps literally), and the faux-faculty club set showcased the shines on their shoes. The pair had evidently invested at least a little of their $50,000 shares of the prize money in wardrobe enhancement. Chapin began by patiently unzipping a leather folder and removing his paper notes. Cerf and Kahn sat with cheat sheets on their laps. For the second year in a row, no Microsoft prosthetics were in view. Indeed, no visuals of any kind were in use here.

I’ve seen this set-piece mock interview format attempted before, with mixed results. At worse, it can seem stiff and more than a little contrived. Fortunately, once they settled into things, this format seemed less and less obtrusive in this case.

Indeed, after a few minutes, given the big screen, the lecture room full of computer types, and the heady, but not excessively clinical subject matter, I started to get a bona fide conference buzz, and even began to take a few notes. Hence, this post. It’s a tad disorganized, which I ascribe in somewhat equal parts to my selective culling, and the desultory conversational format itself. The webcast will be out there on the web, of course (and it is altogether fitting and proper that it should be so, as they say in Pennsylvania), so if you’re curious as to what was actually said, by all means chase it down yourself.

Kahn opened the metaphorical anteing up with the observation that the service economy being build atop his brainchild was a like a “cafeteria in cyberspace”. Very biological, very Base-4 (Bio=Base 4, CS=Base 2) ATCG. Timely stuff…

I reached for my notepad in earnest when they started to talk about layering, and how layering was, it seemed, honored as often in the breach as by the Hoyle. I’d been looking for ammunition for a Layering as Golden Calf screed, and what better place to find it than a Turing rap. Kahn talked of layering as an implementation strategy, and one of ‘em observed that for efficiency’s sake, a more intimate design can be accommodated as well.

Then, they drifted into end-to-end allusions that are evidently orthodox shorthand before a SIGCOMM crowd. I've blathered on about the sheer brilliance of the end-to-end argument as recently as last week, and hence won't dwell on it it here. The End-to-End notion casts the internet's transport facilities themselves as a substrate, a medium, that does not pre-judge, confine, or constraint what applications can be at the Edge of the Internet.

One of ‘em (story of their lives, I’ll bet) observed that we are in a race to get those who know why some of this stuff is the way it is to say so and record this information before they are gone and no one knows at all. This is the same actuarial time bomb we are seeing with our Fortran refactoring work. Actually it is the first of several parallels I noticed.

The second was one of the evening’s recurring themes: the difficulty of even incremental evolutionary change in the face of the ossifying architectural fait accompli that the Internet has become. “Creeping incrementalism” was the best we can do, if that, it was lamented. Darwin would be utterly unsurprised to hear this… Duct tape is forever, it was more or less observed, with resignation…

Everyone committed to the internet protocols, it was said at one point, but didn’t actually use them.

Cerf (I think) extolled the virtues of a logical architecture that allows federation. (Hmmm, what year did “federation” become a buzzword?)

Cerf likened the basic internet protocols to a linear algebraic set of basis vectors, from which arbitrary vectors could be composed. I found myself thinking that as with the Von Neumann architecture, a general, blank-check mechanism for bit transport, as with bit transformation, had proven those who say general solutions never work wrong for at least this second time.

At one point, it was asked, that, given that the laureates couldn’t recognize that they were changing the world, how would we know which, among the ideas drifting through the memepool now, would have the same kind of impact. Now, I’d think, the answer is as it always has been. We’ll deploy an army of the unwitting to have them all, and let the devil, (or Darwin), take the hindmost, as always.

Cerf observed that if one wanted to design a voice network, building IP first, and then running voice over it would be the last thing one would do. But the bottom feeders are doing it. That’s what biology does, it works with what it has. Herb Simon satisfices, Gabriel and Worse-is-Better

There was less brainstorming as to the future than the billing would have had you believe. The most interesting gambit here was into the same turf Rick Rashid tried to mine at OOPSLA last fall regarding keeping “it all” around. To hear Kahn tell it, information will come into being like churn in the rabid quantum foam, most annihilating itself before ever amounting to much, some being judged worthy of enduring long enough to be subject to at least a modest amount of additional consideration…

Yet another recurring theme was networking's return to its wireless roots. The notion of an ethernet began with wireless in Hawaii. A world without wires now promises to reduce the number of remotes for which we spend half our time hunting, promised the laureates.

In contrast with 2003 Turing Laureate Alan Kay, who, at times, seems to have the uncanny ability to channel Don Rickles, and at times appears to have as his goal to leave no ox in the room ungored, attempts at humor here were few and far between. Their parting sound bite was something of an exception to this: “if it is really important, probably no one is in charge”…

What were the lessons learned? What are the strategies for evolution? Let's see, layers are good as a logical ideal, but are often ignored where the bytes hit the information highway. They could easily have riffed on patterns vs. implementation, but this memeplex seems to have spared this crowd. They seemed decidedly pessimistic about the prospects for anything but incremental evolution in infrastructural areas where the annealing process has cooled for the perhaps the last time, and tertiary constraints hamstring further evolution. They are more optimistic that there is always room at "the edge" for innovation, that the end-to-end frontier remains as open as ever.

To summarize:

  • Evolution: Tough problem
  • Layering: Honored in the breach
  • Future: Who knows?

Well, okay, after having literally slept on it for a few hours, there were a couple of somewhat forward looking notions that have come back to mind. One was Cerf's discussions of the challenges JPL encountered extending the internet to Mars. At the point where the planets are the furthest apart, this entails a forty minute round trip through the luminiferous ether. What's more, orbiting platforms and rotating planets conspire to obscure the targets for hours at a time. Such highly dispersed, and sporadically available nodes required considerable modifications to the stock design, it was said.

Another thing I didn't know, being from outside the COMM world and all, was that Kahn has had a longtime interest in object mobility. Not having pursued this, I don't know if he means the same thing by this that people in the object-oriented works used to, but if he did, this is one of those object-have-failed tales we could have milked more a couple of years ago. We never got "objects floating in a sea of computation", or the "animal kingdom" model. We got computation rooted to platforms, with data plying the ether, which is more of a "vegetable kingdom" model instead. For all sorts of reaons, security not being the least among them, this may have been, in hindsight, a more prudent (though less exciting) way to have gone...

A recurring theme was security. Cerf observed, to my surprise, that even in 1975, security work was going on in parallel with that on the public internet, but the security work was (and evidently remains) classified. The authors acknowledged that they'd never pondered subjects like the socio-economics of spam when they were building this thing. They recall the outrage engendered by the first email advertisement. I recalled what an obvious, unthinkable abuse of this honor-system infrastructure such things seemed like then, as they, in an elegiac moment, recalled the same.


Cerfing USA: Another memorable issue raised was America's inexplicable desire to unilaterally surrender her basic research capacity in Computer Science on the altar of budget cuts, particularly at DARPA, which had patiently stocked the internet punch bowl for a generation, a fact often conveniently forgotten by the free marketeers who hawk the internet as a triumph of the private sector. Without DARPA's high-RISC agenda / imperative, Dave Patterson (the ACM president) observed, neither ACM nor Stanford would have a president right now.

It's interesting how different communties have different cultures and characters, and how these characters were affected by their genesis. Objects were Scandiavian Design meets PARC / California. The Supercomputing Community are Oppenheimer's grandchildren, seeded by DOD and DOE. The Internet pioneers lived in a house that DARPA built.

The Turing Award has been called the Nobel Prize in Computer Science, in the same sense, one must presume, that a Daytime Emmy Award could be thought of as a Nobel Prize in Soap Opera.
--Thomas Jay Peckish II, on an ususual strain of Stockholm Syndrome...

Crimson Crux offers more of a straight play-by-play that complements my color commentary. They evidently thought it was funnier than I did. I guess Kay is a tough act to follow.
While the post at motz compliments my post...

Thomas Jay Peckish II on Coaching

|

Beware of any enterprise that employs a coach.
--Thomas Jay Peckish II

In Praise of Cut 'n' Paste

|

“Cut ‘n’ Paste”, the practice of creating a new software component or application by making a source copy of an existing body of code and “beating on it” mercilessly until it meets some new set of requirements, is often treated with disdain and contempt by the traditional software engineering community and (post-)modern object-oriented methodologists alike. Despite this, the ubiquity and enduring popularity of this approach begs the question: What are these people doing right?

Evidence suggests that cut ‘n’ paste is a nearly essential, and nearly universal, practice when new framework applications are constructed, be they for GUI code, Eclipse plug-ins, or what have you. Adaptations to complex applications such as compilers often demand an incremental, test-as-you-go approach as well.

The advantages to this approach, naturally, are the complements of those associated with factoring out duplication. A copy provides a safe sandbox off to the side of a vital development stream. Changes made to copies cannot disrupt production code, and like duplicate genes, copies can evolve new functionality without jeopardizing existing functionality in the original. Mere copies can avoid, for a time, the intricacies associated with engineering away duplicate functionality.

Indeed, expedient code copying has long been observed to be characteristic of an early, exploratory phase in the evolution of object-oriented components and systems, but its virtual indispensability to framework developers has been less widely acknowledged.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

Big Bucket of Glue

|
Fishbowl Room

Back in 1994, a small group of undergraduates toiling in a round, windowless room at the National Center of Computing Applications at the University of Illinois at Urbana-Champaign produced what was certainly the decade’s, and perhaps the century’s most revolutionary application: Mosaic. It’s praises have by-and-large been duly sung, but one of its lesser known, and most remarkable attributes was its architecture: it is was what I call a "Big Bucket of Glue". The Mosaic application actually contained very little new code. It was, instead, constructed of a thin veneer of C adhesive code that bound together a rag-tag collection of existing applications. It was a harbinger of things to come.

With the increasing popularity of scripting languages with names beginning with letters like “P”, this style / school of design has become one of our current era’s most frequently deployed systems level architectures. Drawing on an increasingly broad, if not rich legacy of existing applications and components of all sizes, shapes and varieties, architects increasing slather on the glue, and ship these "Big Buckets of Glue" while their competitors are still inking high-road cartoons on their whiteboards.

While the Big Ball of Mud has remained the design of choice for application developers, the "Big Bucket of Glue" is increasingly the weapon of choice for system’s level integrators. Indeed, the wildly popular Eclipse platform can be seen as a collection of black-box Java components bound together with reflective XML glue.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

The End-to-End Principle and Programming Language Design

|

Earlier this year, I finally came across one of the greatest “classic” papers I’d never read: “End-to-End Arguments in System Design” by Saltzer, Reed, and Clark. The end-to-end argument was developed in the realm of internet protocol design. Succinctly put (and this format allows for no alternative) it argues that facilities, such as error checking, which one might be tempted to place at the lower levels of a system or network, might actually be redundant, and therefore useless at the lower levels, when they must be included in the upper levels of the system as well.

We argue that this argument applies as well to programming language design as it does to networking. For instance, facilities that some languages provide for security, protection, synchronization, namespace management, or type checking must often be re-implemented in applications programs in a variety of different ways, many at odds with the manner in which these facilities were provided in these underlying languages. Such duplication raises the question of why these now redundant facilities need be present in these programming languages at all.

This argument suggests a simpler, more dynamic approach to programming language design, based on an end-to-end analysis of the kinds of facilities users really use, may be better suited to the demands of our clustered, networked, threaded multi-core 21st century world.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

Thomas Jay Peckish II on Travel

|

I always ask for a middle seat when I travel. It's such a great way to meet people...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Photran

|

NCSA: So, tell us about Photran…

TJP2: My pleasure. Photran is a plug-in for the Eclipse IDE that provides support for Fortran development.

NCSA: …and Eclipse is?

TJP2: Yes. Eclipse is an open-source platform for building IDEs that was originally developed at IBM. It’s a descendent of their VisualAge for Java product. That product was originally written in Smalltalk. As the Java juggernaut picked up steam, IBM felt compelled to re-write it in Java. They subsequently renamed this product Eclipse.

NCSA: And made it all open source?

TJP2: Yes, they “open-sourced” the entire codebase. This struck some as a bold gambit at the time, but Eclipse has turned into the finest IDE on “the market” for Java development. It’s pretty much brought about a mass extinction among competing IDEs. How do you compete with free, after all?

NCSA: So Eclipse is a free IBM product?

TJP2: Not anymore. It’s still free, of course, but IBM spun the Eclipse effort off to an autonomous non-profit entity, the Eclipse Foundation, so as to not have it be seen as in competition with other vendors. It’s ironic though, IBM has been doing a better job of support Java than Sun itself in some respects. I wish they’d co-operate more. I wouldn’t mind seeing IBM acquire Sun, truth be told :-) At this point, they seem like a good match. But I’m a programmer, not an investment banker, so take this with a grain of salt.

NCSA: Agreed. Um, …a “plug-in”? What’s that mean? It sounds so convenient.

TJP2: It is. Actually, all Eclipse is is a collection of plug-ins. Plug-ins are medium grained, relatively autonomous Java components. They are woven together using a layer of XML glue, using a relatively modest collection of high-level integration conventions. This style of embedding more coarsely grained black-box components using mortar like XML (or Python, or Perl) is decidedly post-modern – Actually, Mosaic was one of the first high-profile exemplars of this style, if you ask me, though their “glue layer” was a thin coat of sloppy C code that bound together a hodge-podge of existing utilities. The rest is history, as you know.

NCSA: …Ahem. plug-ins?

TJP2: So anyway, Eclipse is nothing more than a constellation of hundreds and hundreds of plug-ins, flying in close formation (to mix metaphors). Indeed, IBM’s popular WebSphere product is nothing more than a large collection of plug-ins that run on top of Eclipse. IBM has made quite a lucrative business out of selling services for WebSphere. It’s as if GM were giving away cars, and making its money by selling gasoline and providing mechanics. But I digress.

In any case, this architecture means that anyone who wants to write their own plug-ins will see them integrated into Eclipse with all the fit, finish and flair of the existing plug-ins. After all, Eclipse itself is nothing but plug-ins, and reflective glue. And since it is open-source, you have lots of worked examples in front of you, and can use the source for existing plug-ins as the basis for writing your own.

NCSA: …and that’s how you built your Photran plug-in?

TJP2: Yes. Let me get back to your original question. Photran is a Fortran plug-in (or, to be precise, collection of plug-ins) for Eclipse. Like the rest of Eclipse, it is itself written in Java. We built it by taking another set of plug-ins, the CDT (C Development Toolkit), and then hacked away at it. Our ultimate goal is to provide facilities for Fortran programmers that meet the same standards as those that Eclipse is providing for Java programmers. Right now, we provide CVS repository management, Fortran code editing with syntax highlighting, powerful search-and-replace facilities, and code outlining. But what we really want to do is be able to refactor Fortran as easily, or more easily, as you can now refactor Java using Eclipse.

NCSA: “Refactor”? What on Earth is refactoring? I’ve never heard of it.

TJP2: Our party line is that a refactoring is a “behavior preserving program transformation”. That sounds pretty clinical, doesn’t it? By “behavior preserving” we mean that it is a change that doesn’t change the way the program works.

NCSA: So what's the use in make a change to a program if it doesn’t change the way it works? That sounds like a waste of time.

TJP2: I demur. For example, you might discover that it would be easier to discern the intent of a program were somehow, as if by magic, all the occurrences of a variable, say “K”, were replaced with the name “SUM”.

NCSA: Couldn’t you do that with any editor?

TJP2: You could try, but depending upon how your program was written, you’d have to tread carefully, because any number of variables might be named “K”, and you’d only really want to change one specific incarnation of “K”.

NCSA: So a refactoring tool has to be smarter than an editor?

TJP2: Exactly. A refactoring tool knows about the structure, syntax, and semantics of its target language, and can guarantee that only occurrence of the specific copy of “K” you’d selected is refactored. This is the kind of thing that distinguishes simple code editing from refactoring: our substitution of “K” with “SUM” can be made as a first-class program transformation.

NCSA: So you can guarantee that you won’t screw your code up?

TJP2: Yup. That’s the beauty of refactoring. That’s where the “program transformation” part of “behavior preserving program transformation” comes in. We can bring some fancy computer science programming language theory to bear on the problem and show that our transformations do what they are supposed to do, only what they are supposed to do, and don’t break anything else in the process. This takes a tremendous burden off the programmer. It’s an amazing amenity.

NCSA: Well, renaming variables is nice, but…

TJP2: Yeah, another example, one of my favorites, is what the Java folks call the “Extract Method” refactoring. We’ll call it something like “Extract Procedure” in Fortran. This refactoring allows you to select a code passage in your source program, and in one fell swoop, convert that code into a free-standing method or subroutine, replacing it and any other occurrence of that code fragment with properly constructed invocations of the new routine. Your jaw drops the first time you see it in action. So, back to your earlier question: neither of these manipulations changes the way the code works one whit. But they make it easier to read, and thereby potentially easier to change. The computer itself doesn’t really care about these changes, but programmers who have to work with the code certainly do.

NCSA: So, are refactorings mainly cosmetic manipulations?

TJP2: You might think so in the case of giving variables new names. It must sound like high-tech copy editing to you. In the case of extracting routines, though, the changes are more than skin deep. You are improving the code’s structure. Moving duplicated, difficult to read code into one place at once makes the code easier to maintain, easier to understand, and easier to reuse. The structure of the entire application becomes more modular, as redundancy subsides, and autonomous modules, routines and data structures emerge. It feels a bit like rehabilitating a run-down house, or gentrifying a downtrodden neighborhood.

NCSA: All the software buzz-junkies are high on the likes of Python, Java, and even XML these days. Why Fortran? It sounds so retro; so old-school…

TJP2: We became interested in Fortran when it became to impinge upon our consciousness again from two directions at once. On one hand, we were given the opportunity by NASA to try to take what we’d learned over the years about object-oriented software engineering, frameworks, and architecture to a large high-performance Fortran framework for simulating Gamma Ray Bursts in Type 1a Supernovae. This framework, IBEAM, was written primarily in Fortran. Actually, one of its principal authors is at NCSA now: Prof. Paul Ricker. Maybe you know him.

NCSA: Um, I might. And on this other hand?

TJP2: Yes, at around the same time, DARPA and IBM became interested in ways of improving the productivity of programmers in high-performance computing by an order-of-magnitude, under the aegis of their PERCS program. And, as your readers are surely aware, Fortran still maintains quite the presence in the high-performance arena.

NCSA: And you think refactoring can really improve the performance of Fortran programmers this dramatically?

TJP2: Of all the technologies in the program, I believe refactoring has then potential to produce a larger immediate benefit than any of the others. Indeed, I think full-featured refactoring tools can have a greater impact on Fortran programs than they have for Java or Smalltalk for a number of reasons. For one thing, Fortran is a more complex language than either. More bookkeeping needs to be done to keep declarations consistent than in some of the newer languages. And, Fortran has gone through three of four major transformations over the years. There is a lot of Fortran code still mired in the Fortran 66 “GOTOs considered necessary” era. Refactoring tools are ideal for modernizing this kind of code. Fortran 77 code uses arrays for nearly every kind of abstraction, modern data structures weren’t introduced until Fortran 90. Finally, Fortran 2003 will be adding support for objects. Object-oriented transformations play a central role in Java refactoring tools. We’re looking forward to refactoring Fortran to objects one day not to far in the distant future.

We recently did a presentation where we took a small piece of vintage Fortran code, a “dowdy dusty deck”, and performed what we called a “Total Code Makeover” on it. Incrementally, one step at a time, we brought this program into the seventies, then the nineties, and then in to the realm of tomorrow’s object-oriented Fortran code.

NCSA: So you had to learn Fortran?

TJP2: Not at all. I’m an old Fortran hand. I wrote my first Fortran program on punch cards back during the Nixon administration, right across the street from here at DCL. That was before they added the second addition, the one that looks like a minimum security cellblock. I spent a number of years doing scientific programming in Fortran for a group that was trying to read minds with brainwaves over at the Psychology Dept. They never got that far, but they were well-funded. Once of my greatest frustrations there was that none of the purportedly more modern programming languages that became available at the time were as well-suited to scientific programming as the Fortran 66 descendents we were using. Still, I envied those who were able to program in fancier, frillier languages like Pascal, C, and then C++. Nonetheless, no other language dealt with arrays as well, or as efficiently as Fortran. That’s still pretty much the case. And, in the mean time, Fortran has evolved to match the feature sets of many of its successors.

NCSA: Well, there are some who’d pay a small fortune for a tool like the one your building, but yours is free, right?

TJP2: That’s right. Lock-stock-and-barrel / Hook-line-and-sinker. You can find our tool at http://www.photran.org. We’d be delighted to hear from any of your readers who’d be interesting in testing and using our tool. And they’re welcome to contribute too.

NCSA: Well, this sounds like fascinating work. Thanks you for your time.

TJP2: And thank you. That URL again is: http://www.photran.org...

Backward! Ho

|

I am, God help me, one of five souls who will, should we all arrive intact, have attended all twenty OOPSLA Conferences. The others are Ralph Johnson, Rebecca Wirfs-Brock, Allen Wirfs-Brock, and Ed Gehringer. We are putting together an observance of this auspicious occassion, called "Backward!" that will be held on Tue. 18 October 2005. It is expected that another slightly less auspicous, but nevertheless noteworthy occassion, the Tenth Anniversary of the introduction of the Java programming language, will be observed at this very same event...

A Gift to be Simple

|

Thomas Jay Peckish II was asked to write the following biography for Ralph Johnson for the forthcoming Pattern Languages of Program Design 5 Book. Peckish really was in Louisiana at the time, on a fine Sunday morning...


Ralph Johnson was born in the Panama Canal Zone, the son of a missionary doctor. He grew up to be one of the object-oriented community's best known, and most effective evangelists.

During the '80s as an early, and often lone, voice in the software engineering wilderness, he was instrumental in launching a Smalltalk revival in the academic community. His early missives on object-oriented reuse and framework design are still read today.

In 1994, he collaborated with three other equally gifted, and inspired, evangelists to produce an enduring testament to the power of the object-oriented community's collective wisdom: Design Patterns: Elements of Reusable Object-Oriented Software.

Like his father before him, Ralph, too, is a doctor, having received his PhD in Computer Science from Cornell University in 1985. It was not enough that his book provided a roadmap, an inspirational vision, for code redemption. Dr. Johnson also set about the task of providing the instruments, the tools to help ailing code to get better. The first practical refactoring tools, and the underlying doctrine to support them, were first promulgated by Ralph and his disciples during the early and mid '90s.

Ralph lives in Champaign, Illinois with his wife Faith, his children Joy, Grace, and Caleb, and their dog, Shirley. He works at the University of Illinois at Urbana-Champaign.

--Deacon Thomas Jay Peckish II
Nicholson Rd. Church of Polymorphism, Baton Rouge, LA

Thomas Jay Peckish II on Modern Life

|

Are they real schizophrenics, or are they just wearing a Bluetooth headset? When people are walking down the street talking to themselves, who can tell anymore?
--Thomas Jay Peckish II

'Roids in Stockholm?

|

If it had been disclosed that Albert Einstein had been using some sort of mental performance enhancing substance, would people have demanded that he return his Nobel Prize?
--Thomas Jay Peckish II

Refactoring and the Closing of the Frontier

|

On the 20th of September, 2004, Fortran, the first, and thereby the oldest, high-level programming turned fifty. Most people regard computer programming as a relatively new avocation, but the reality is that this industry can now boast of a heritage of over half a century of code.

I use the term "heritage" advisedly. The more customary term is "legacy". That term, is of course laden with negative connotations. And indeed, in the case of most of this code, most see little worth boasting about. The sheer burden of this accumulating legacy, however, is finally, belatedly, beginning to alter the way we think about software development, both in the academy, and in industry.

Like some of you, I can of age in what might be called the “green fields” era of software development. Systems were built from the ground up. It wasn’t unusual for a single individual to write ever line of code that ran an application, even a system more or less from first principles.

Large systems too were built in relative isolation from first principles by teams both large and small that wielded what might be thought of as homebrew materials and handmade tools.

Green Fields Today, the green fields a gone; the frontier is closed. In Illinois, only a few thousand acres of virgin prairie remain. Today’s developers are confronted by construction sites than have seen extensive prior development. Instead of green fields, they must master broken field running, avoiding, or otherwise coming to terms with existing obstacles. Some sites are so devastated as to be eligible for Superfund status...

Peckish's Laws of Memetics

|

A Good Idea doesn’t care who has it.
--Peckish’s First Law of Memetics

A Good Idea doesn’t care who has it first.
--First Corollary to the First Law

Some people, on the other hand, do care about both, passionately.
--Third Law

Most people don’t care where it came from, so long as they are spared the effort of having the idea themselves.
--Second Law

Ideas want as many people as possible to have them, or at least harbor or play host to them. Other people’s ideas want other people to have them instead of your ideas.
--Blood in the Memepool / Memepool Predation

Happy 196th Birthday Charles Darwin

|

A program is more like a steam engine that a building. More like the immune system than an outhouse, or a skyscraper. A system is more like a city than a doghouse, or, for than matter, an ocean liner.

Organs have multiple functions for the same reasons towns due. It’s literally natural for them to do so.

Only planned towns have a single function. Company towns are dreary places to live. Do I live in one?

What is the analog to sexual selection in our area: feature-itis perhaps?

Jellyfish in Space

|

Jellyfish in Space Does software have a shape? Cope asked this years ago…

Software and Speciation; Allopatry…

A jelly fish in space: If only software could be written on the space shuttle, in the weightless void.

Most programs have primitive shapes, they are infophages, a tube around a gut, a python… A stream…

We’re running a chop shop for code, a van conversion outfit, a limo conversion shop.

Where are Ferrari, Porsche, Earle? We are shade tree mechanics, not designers. They reused ideas. Lots of ‘em…

The Imperial Presidency

|
1George IGeorge Washington
2John IJohn Adams
3Thomas IThomas Jefferson
4James IJames Madison
5James IIJames Monroe
6John IIJohn Quincy Adams
7Andrew IAndrew Jackson
8Martin IMartin Van Buren
9William IWilliam Henry Harrison
10John IIIJohn Tyler
11James IIIJames Knox Polk
12Zachary IZachary Taylor
13Millard IMillard Filmore
14Franklin IFranklin Pierce
15James IVJames Buchanan
16Abraham IAbraham Lincoln
17Andrew IIAndrew Johnson
18Ulysses IUlysses Simpson Grant
19Rutherford IRutherford Birchard Hayes
20James VJames Abram Garfield
21Chester IChester Alan Arthur
22Stephen IStephen Grover Cleveland
23Benjamin IBenjamin Harrison
24Stephen IStephen Grover Cleveland
25William IIWilliam McKinnley
26Theodore ITheodore Roosevelt
27William IIIWilliam Howard Taft
28Thomas IIThomas Woodrow Wilson
29Warren IWarren Gamaliel Harding
30John IVJohn Calvin Coolidge
31Herbert IHerbert Clark Hoover
32Franklin IIFranklin Delano Roosevelt
33Harry IHarry S. Truman
34Dwight IDwight David Eisenhower
35John VJohn Fitzgerald Kennedy
36Lyndon ILyndon Baines Johnson
37Richard IRichard Milhous Nixon
38Gerald IGerald Rudolph Ford
39James VIJames Earl Carter, Jr.
40Ronald IRonald Wilson Reagan
41George IIGeorge Herbert Walker Bush
42William IVWilliam Jefferson Clinton
43George IIIGeorge Walker Bush

Some ruminations on history, and on our American Regents, on the occasion of the second Coronation of His Imperial Majesty George III.

In 1789, our first president under our current constitution, George I, effectively succeeded British king George III, of the House of Hanover, as America’s supreme authority. Britain's , of course, saw his legacy tarnished when he allowed his military become entangled in a stubborn insurgency in a distant part of the empire that didn’t quite turn out the way he had planned. There have been two more homegrown Georges, now, since then. We’ve effectively come full circle.

George III

Reckoning time in terms of the reigns of one’s country’s regents is a time-honoured Anglo-Saxon tradition, I’m told, and one I’ve informally observed without thinking about it myself over the years. "That technology was already considered obsolete during the Nixon Administration", would be the kind of thing I’d find myself saying.

Lately, I’ve become amused by the thought of naming our Heads of State in the same traditional manner as Popes and Kings, using a single Christian Name, and a Roman Numeral. The results of doing so to America’s forty-two regents are shown in the table to the right. Doing so gives one pause, and causes one to ponder the considerable imperial trappings of the American presidency.

George I

We have witnessed no fewer than five true cases of dynastic succession, accounting for fully ten of forty-three reigns. It is difficult indeed to fathom how such numbers could have arisen by chance, or even through merit.

Our first dynasty, the House of Adams, saw the son of John I, John II retake the throne in 1825.

The second, the House of Harrison, witnessed the ascension of Benjamin I, the grandson of William I in 1889.

In 1893, the Cleveland Restoration saw Stephen I reclaim the throne himself from Benjamin I, whom had in turn taken it from him.

In 1933, the inauguration of Franklin II, a cousin of Theodore I returned the House of Roosevelt to power. Interestingly, even though Franklin II and Theodore I themselves were fifth cousins, Franklin II’s consort, Anna Eleanor, was herself a Roosevelt, and indeed, was the niece of Theodore I. The Hapsburgs, and Europe, held no monopoly on aristocratic inbreeding, it would seem.

Martin I was of purely Dutch ancestry. He and his wife Spoke Dutch at home. Martin I and Theodore I were third cousins twice removed.

The ghastly murder of the youthful, urbane and widely admired Irishman John V in 1963 brought Lyndon I to the throne, but this reestablished no Johnson dynasty, for he was of no relation whatsoever to Andrew II. The House of Johnson is a false dynasty.

Indeed Andrew II.and Lyndon I are among only a relative handful of those who have occupied the throne whom are not at least distant cousins to at least some of the others who’ve sat upon it. The other American Commoners: Andrew I, James III, Chester I, William III, Dwight I, John V, James VI, Ronald I, and William IV. James VI is related, however, to genuine indigenous American Royalty: Elvis Presley.

George II

Finally, the first Coronation of George III, the son of George II, and the scion of the House of Bush, in 2001, consummated America’s first father-son dynastic succession since the restoration of the Adams Family. Barbara Pierce Bush, the consort of George II, and mother to George III, is herself a distant cousin of Franklin I.

George III

Our coronations are traditionally the occasions where we put aside the rancor and division that accompany our often contentious imperial ascension process, and today we unite behind, and swear our allegiance to George III, he having prevailed over both a challenger (the would-be Albert I), and an usurper (an aspiring John VI) to lay claim to his crown.

Were we more like say, the United Kingdom of Great Britain and Northern Ireland, we’d further festoon his title with such honourifics as Monarch of the Forty-Eight Contiguous United States of America and Alaska and Hawaii, Defender of the Faith, and Emperor of Mesopotamia, but we Americans are an egalitarian lot, and tend to eschew such airs and pretensions.


Despite the fact that the United States is nominally a constitutional republic, and not a monarchy, eight of America’s forty-two regents have, tragically, and ironically, nonetheless (inadvertently, one must presume) enjoyed the imperial prerogative that a King (all have been male) may serve for life. Four, William I, Zachary I, Warren I, and Franklin II (our longest serving regent), died on the throne of natural causes.

The Old Brown Jug

We have, sadly, witnessed four regicides in the course of our brief history. Abraham I, James V, William II, and John V, all saw their reigns brought to an end by assassin’s bullets. In 1981, Ronald I was shot and severely wounded, and nearly followed suit, but for timely medical attention. Indeed, historians believe that both James V and William II could have survived their wounds given better medical care.

Gerald I, and Harry I both survived assassination attempts unscathed while on the throne. Franklin II survived an assassination attempt unharmed during the interregnum prior to his coronation. Theodore I was shot, but survived during his Bull Moose campaign to restore the House of Roosevelt in 1912, a battle that split the Tories between him and William III, thereby paving the way for the eventual ascension of the scholarly pacifist Thomas II.

There are many who believe that only assassin’s bullets and scandal thwarted the dynastic ambitions of the House of Kennedy and the eventual elevation of John IV’s siblings Robert I, and/or perhaps even Edward I to the throne. The untimely death of Kennedy Crown Prince, and paparazzi favorite, John Jr. in 1999 further diminished the family’s dynastic potential.

Amendment XXII to the constitution effectively limited the reign of any given individual to no more than ten years. Even before this, reigns were customarily short, especially by comparison with European standards, in keeping with the precedent set by George I. For example, the reign of Queen Victoria spanned those of fully eighteen American regimes, from Martin I, through William II. Indeed, Franklin II was widely excoriated for breaking George I’s precedent, and his breach thereof helped lead to the passage of the twenty-second amendment.

Spiro I

One regent, Richard I, was forced to abdicate in 1974. Alas, not for love. His successor, Gerald I, thereupon became America’s first utterly unelected Head of State, having been appointed, not elected to the rank of Vice-President of the Realm, after the heir apparent who would have been Spiro I was forced to abdicate in disgrace, restoring at last the sacred principle of rule by Divine Right.


God Save the King

O Lord our God arise,
Scatter his enemies
And make them fall;
Confound their politics,
Frustrate their knavish tricks,
On Thee our hopes we fix,
God save us all!

© 2005 by The Laputan Press, Ltd.

In keeping with the spirit of Catfish in the Memepool, I’ve located another ‘blog where huge swaths of this notion had emerged quite independently in an at times uncannily similar manner. I’m grateful to this site’s author for his superior research into the Christian names for Stephen I, Thomas II, and John IV. Here is another hit. Here is a fascinating rundown on the ancestry of the presidents from Burke's Peerage.

A Trophy Case for Memes

| | Comments (1)
Bookcase: a trophy case for memes.
--Thomas Jay Peckish II

Construction Sites are Always Muddy

| | Comments (1)

Construction sites are always muddy. Kitchens are always messy, at least while meals are being prepared.

People want assembly to be antiseptic, and free. It ain't. It takes time, and skill, to fit materials to the site, and the task, and craft them into an integrated whole. People don't want to live or work in prefab trailer park modules. They want real homes, real stores, real offices.

I've been re-reading some of Christopher Alexander's work, and remain skeptical that either good buildings or good code can be seamlessly, effortlessly conjoured up out of Lego blocks.

Thomas Jay Peckish II on Deadlines

| | Comments (3)

Deadlines, unfortunately, are effective catalysts for converting potential energy into kinetic energy, albeit inefficiently.
--Thomas Jay Peckish II

A Pattern Language: Crib Notes

|

I stumbled across, in the course of my customary World Wide Web Woolgathering this afternoon, upon these crib notes for all 253 of the patterns in Christopher Alexander's A Pattern Language...


More woolgathering: A City is Not a Tree, by Christopher Alexander. I'd never seen it until today, but it covers some of the same turf we'd attempted to cover in our paean to Piecemeal Growth a few years back. Alexander's treatment is, of course, considerably more elegant and comprehensive that ours. (Seriously, there is no comparison.)


One of the overarching themes of Catfish in the Memepool has always been intended to be the futility of the pursuit of classical originality in the twenty-first century. Catfish are, after all, the quintessential bottom feeders. So I checked, and discovered that A-List techie meme arbitrageur Clay Shirkey (a fellow whose compilations I enjoy, but am evidently behind on) had already raided this tomb. I learned this, in turn, here. I chased down Clay's citation, only to find him, in essence, briefly lamenting the same thing before embarking on his discourse on the content of this Johnson Administration Era (1965) gem. (This paper will be forty years old in May.)


A City is not a Tree (Alternate Source)

My Favorite Movies

|

Nobody asked, but I gather this is something of a weblogging right-of-passage. In any case, I knew I'd started this list somewhere, and figured this is as good a place as any to keep it

  1. Dr. Strangelove
  2. The King of Comedy
  3. The Naked Gun
  4. 2001: A Space Odyssey
  5. The Fountainhead
  6. Duck Soup
  7. The Godfather II
  8. The Meaning of Life
  9. The Seven Samurai
  10. Groundhog Day

A few honorable mentions, in no particular order:

  • Carrie
  • Goodfellas
  • The Maltese Falcon
  • As Good as it Gets
  • Citizen Kane
  • The Birds
  • The Godfather
  • You Can't Take It with You
  • Adventures in Babysitting
  • National Lampoon's Vacation
  • The Missouri Breaks
  • Annie Hall
  • Donnie Darko
  • The Wizard of Oz
  • Brazil
  • Planes, Trains, and Automobiles
  • Patton
  • Bad Santa
  • The Producers
  • U-571
  • Contact
  • 8 1/2
  • Apollo 13
  • Dead Ringers
  • Drugstore Cowboy
  • Gettysburg
  • The Right Stuff
  • Naked Lunch
  • Star Trek II: The Wrath of Khan
  • The Bridge on the River Kwai
  • Amadeus
  • Dead Man
  • Blazing Saddles
  • The Color of Money
  • Galaxy Quest
  • The Silence of the Lambs
  • The Jerk

I'll undoutedly think of more. Ranking these is reminiscent of any peer reviewed process / process involving grading or ranking : broadly accurate, but fickle at the margins...

The More Things Change

|

Our patterns reading group here at UIUC has been looking at a collection of patterns on Testing Automation by Gerard Meszaros. Today, several of the students who usually attend these workshops are absent, because they are home in bed instead, following marathon efforts to turn in machine problems for their operating systems course. Gerard Meszaros in Vancouver

I’d been looking in on their progress for the last few days with the sort of avuncular amusement typically reserved for watching young bucks nurse their first hangovers. Having waited until the last forty-eight hours or so before their deadlines to finish, sleepless nights and a mad dash to the finish line were all too inevitably in their immediate futures.

Amazingly, this ritual has changed little in almost thirty years. I recall, perhaps with more pride than fondness, ultimately prevailing over almost identical assignments. In my case it was during the last days of the Ford Administration, in the old Digital Computer Laboratory across the street. These pups work in the fancy new Siebel Center for Computer Science, and even from home. Then, they were virtual memory system simulations. Today, they were file system simulations. The more things change…

If anything, the target programming languages today are worse. Pascal, despite, or more to the point because, of its limitations, exposed few pointer- and destructor- hell pitfalls than does C++. The debuggers and programming environments have improved, but less dramatically than some might think.

And yet, there was one major, glaring difference between then and now. And that is the use of test cases, and automated testing. Students now are provided with a set of tests, that, when passed, indicate that the machine problem is complete. Students are encouraged to write their own unit tests as well.

In thirty years, this is the one innovation that has changed this biannual ritual for the better. The amazing this is that it took no particular technical breakthrough to enable this to happen. We could have systematically written unit tests thirty years ago, had we thought of it.

I’d guess that automated testing cut at least a day off of the student's pain and suffering time for this machine problem (to say nothing of that for the graders).

The more things change … the more important it is to test them…

--BF, in a retrospective, though not particularly nostalgic mood…


Photograph (C) 2004, The Laputan Press, Ltd.

Moderation, Levity, and Writer's Workshops

|

In nuclear engineering, a moderator is a medium that reduces the velocity of fast neutrons, thereby turning them into thermal neutrons capable of sustaining a chain reaction.
--The Free Dictionary

I couldn't have described the moderator's role better myself.

Danny Dig and I recently moderated a writer's workshop for a set of patterns written for Ralph Johnson's graduate software engineering course. We opened the workshop with the quip above.

Levity is, of course, an end in itself. But moreover, it serves several additional functions. It relaxed the authors, in this case, first timers all, and, more importantly helped to melt down any "stature gaps" that may exist among participants. Its very introduction sets a more informal tone, and offers the expectation that any attempts at posturing and pretense will be similarly dealt with.

Whether you are a student whose advisor wrote the book on patterns, an academic shopping his or her work before the best-known luminaries in his field, or a domain expert trotting out his or her first serious attempt at writing since high school, a writers workshop can be a genuinely intimidating experience.

A certain degree of irreverence is a great equalizer. I shudder to think of the alternative.

I'm mentioning this because disciples of Richard Gabriel's more aggressive, more didadic writer's workshop moderation style have made his approach all-the-rage on the patterns circuit of late.

The Death of Socrates

Gabriel often turns the usually perfunctory pattern summary section of his writer's workshops into a quest for "the heart of the pattern". I can tell when a moderator has been drinking Gabriel's Socratic hemlock when he or she begins by demanding that I rip the pattern's beating heart from its chest and hold it high above the altar for all to see. Dick, by dint of meticulous preparation, experience, and raw animal magnetism can pull off the high priest pose; I'm not sure it's the best persona for most of the rest of us.

I've seen a variety of workshop moderation styles work. In a workshop where everyone is prepared, the moderator need do little more than direct traffic, the didactic functions being spread among elders and well-prepared rookies alike. Thoughtful color commentary is easier to come up with when you aren't calling the game.

It's possible to "teach" from any chair in the room, not just the moderators, moreover, not all of us ought to presume to be in the education business.

I like what Ralph has said about Dick's example having given us all license to do it our OWN ways. That's the example we should be emulating. We can't all Be Like Dick, though surely we can learn from him, but most of us could still do a better job of being ourselves.

There are a lot of ways to run a workshop that work. Moderation in all things is a virtue...

--BF, ...humor included. (drawn from a mailto:members@hillside.net submission...)

Thomas Jay Peckish II on the Rigors of Travel

|

Anytime your hotel room rate is lower than your rental car rate, you are in trouble...
--Thomas Jay Peckish II

Brian's Grandma on the Perils of Collaboration

|

He'd stir the pot once, and then act as if he'd made the whole stew.
--Grandma Mulligan, Brian's gray-haired grandmother from the County Armagh

Transparent Aluminum

| | Comments (1)

This year's OOPSLA "Big Event" was held at the Vancouver Aquarium. I was here in 1998, when much of the facility was under renovation. At the reception, I had the opportunity, for the first time to go downstairs and gaze into the Beluga whale tank. These animals are a simple gorgeous sight to behold. I found myself laying on my back and gazing up into the water. I was a ineffably sublime experence.

Still, I found myself, somewhat to my horror, uttering the phrase "Transparent Aluminum", in an oblique reference to a plot element drawn from the fourth Star Trek movie. I'm not sure what was more frightening, that I dredged this up in the first place, or that every single person in the room knew exactly what I was talking about...


Hey, this place has the coolest screen savers I've ever seen.
--Thomas Jay Peckish II, at the Vancouver Aquarium


Photographs (C) 2004 by Munawar Hafiz and Spiros Xanthos

Outsourcing and the Race to the Bottom

| | Comments (2)

We tried the experiment whereby you drive down the cost of labor to nothing in the United States during the antebellum period, and that didn’t work out very well, did it?

--Thomas Jay Peckish II

A Hail of Bullets

|

If you needed any additional evidence that Microsoft is taking security more seriously at OOPSLA this year, you need look no further than the two Korean destroyers docked next to the conference center.

Rumor has it that should any of the sizable Microsoft contingent come under hostile fire, these vessels could be used to quicky evacutate said contingent to Seattle.


Powerpoint is one of the most leathal weapons ever devised. You can be cut down in a hail of bullets before you ever know what hit you. Your slides can be siezed, and turned around so as to fire on your own troops.
--Thomas Jay Peckish II

Powerpoint is one of the most effect anti-meme agents in our arsenal.
--Thomas Jay Peckish II


I didn't know Microsoft had a Navy.
--Donald Bradley Roberts

In the Shadow of the Moon

|

No OOPSLA XIX Zeitgeist compendium can ignore the momentium that the Eclipse community continues to exhibit this year. A packed reception on Monday night put an impressive array of contributions on display, notable both for their breadth and depth. Eclipse is moving into what can only be called a Nation Building phase...

It's a simply gorgeous day in Vancouver, and their is some hope that a total eclipse of the moon will be visible later this evening. I knew IBM had a lot of clout...

What a Bunch of Clowns

|

A nod of some sort to the "two cultures" of art and technology has become obligatory at OOPSLA over the last few years. An OOPSLA 2004 Panel chaired by Jim Haungs on whether software design is math or science or arts or crafts revisited the enduring theme of similes for software development (among other things). The four panelists shown to the left, from left to right, are Richard P. Gabriel, Martin Fowler, Steve McConnell, and Ralph Johnson. Shown to the right is late addition Robert Biddle. Photo of Robert Biddle

Two newbies I know later dubbed this panel as the single most impressive thing they'd seen at OOPSLA. I found it pleasant, and at times thought provoking (and I am not one who is easily provoked to thought), though I found myself at the disadvantage of being already familiar with the likely positions of most of the panelists.

Ralph took the eminently sensible position, as is his custom, that software development is, above all, engineering, and gave an engaging presentation on the travails of nineteenth and twentieth century bridge engineering based on the work of Henry Petroski. In the early days of railroading, railroad bridges were as prone to failure as software is now, frequently with more lethal results.

Biddle mined the same fertile post-modern vein that has served him and his antipodean sidekick James Noble so well on the Onward! circuit over the last three years. My recollections of his presentation have melded into a conflated kaleidoscope of notions and reconstructed memories like "the death of orthodoxy" and "making do in a post-precision heterogeneous polyglot playground of a world". I'm pretty sure Robert didn't quite say any of these things, but they are in the spirit of what he said, which was in the spirit of the Zeitgeist he was trying to summon out of the humanities. In this respect, he may been the panelist most true to the panel's theme. I recall some mention of nihilism and certain French academicians. All and all, the sensibility was a generation beyond the outmoded technotopianism that our own villiage elders still hew to, and was in considerably better touch with life in the trenches.

McConnell, predictably, hawked his more troublesome notion of software construction. My main beef with the construction metaphor is that it perpetuates an enduring confusion between software design and software product fabrication. Software design has much more in common with the process of deciding on the layout of a house than it does with the process of merely driving the nails at the site. We are more like the people who design cars than the people who assemble them. The analog to auto assembly for us is disk replication. Despite this fact, the industry has exhibited a persistent desire to treat software development as an essentially blue collar activity. Metaphors like McConnell's do little to dispel this harmful perception.

It's customary to conclude such discussions with the observation that no metaphor is perfect, and that a programmer is, after all, just a programmer, as the agile folk are fond if saying. This discussion was no different. "Programming is like nothing else" opined programmer cum poet Richard P. Gabriel.


I had been content, as of late, to leave this issue there, but the panelists had managed to re-convince me instead that metaphor was more important that ever. Metaphor matters. As I pondered their positions, I was struck by a metaphor drawn from the arts: We're all a bunch of clowns.

So, "What a bunch of clowns!", I exclaimed. Not just the panelists, all of us. Programming is like ... comedy.

Another software simile was born.

For instance, APL programmers and comedians share an affinity for pithy one liners. Take this one for instance: What poetry has in common with code is that no one ever reads it.

Doing either well demands creativity, and a mix of improvisation and scripting skill. Comedians test, iterate and polish their material until it executes perfectly.

Fred Brooks, after all, is said to have found that there is a factor of twenty difference between the best and the worst comedians...


I'd missed most of Dick's position, alas, and hard a hard time recalling what Martin had said, at first. Then I remembered that he'd offered yet another software simile: programmers are like lawyers. I'm pretty sure I shopped this around at a panel a couple of years ago. I liked Martin's treatment, though he could have played up the domain expertise angle more. I've posted my 2002 notes here.

This reference also had the effect of reminding me of one of Martin's previous forays into the realm of object-oriented jurisprudence at the Show Trial of the Gang of Four back in Denver during 1999. Martin can be scene in the solicitor's wig, third from the left. He'd painstakingly supervised the trimmng of the solicitor's wigs beforehand, so as to ensure they were shorter than the presiding judge's, and thereby maintain the dignity of the court.


Gabriel et al. Photograph (C) 2004 by Munawar Hafiz

Some subsequent comments on POMO and Biddle from Ian Clysdale...

O-O Canada

|

Guess Who? We've asked about 30 people the question: "Who is the Prime Minister of Canada?" For fairness, we've been excluding Canadian nationals from our sample. So far, one Dutchman, a New Zealander, and two Yanks have come up the the correct answer. (I'll withhold it for now, I may ask you later), but if you are reading this, you no doubt have the technical means to quickly find the answer yourself. Does Google spell death for trivia questions?


For the very first time, the majority of OOPSLA's attendees have come from outside the United States (51% to 49%). I would be tempting, but glib, to hypothesize that this is a consequence of what we Yanks call outsourcing. Hell, we’re even holding the conference itself “abroad”.

Don Roberts came up with the following quips on his way through Canadian Customs:
Customs Official: Are you bringing in the products of any endangered species?
DBR: I've got 3 gigabytes of Smalltalk code.

Customs Official: What is the purpose of your vistit to Canada?
DBR: To get a flu shot.
DBR: To seek political asylum.
DBR: To obtain inexpensive pharmaceutical drugs.

As to the last point, I’ve noticed that several of the younger guys around here were packing tissue paper, cut-rate editions of some of the same trade books we pay full price for in The States. I found myself reminded of the global economics of the pharmaceutical industry, where full retail drug prices in The States underwrite research, as well as cut rate prices elsewhere.


I was reminded of this haunting little ditty by one of my very favorite Canadians, Neil Young, as I contemplated this all:

Global manufacturing,
hands across the sea
The hotel filled with dealers,
everything was free
Before the competition,
ahead of all the rest
The product was presented,
it clearly was the best
The power link was ruptured,
the hotel shook and rolled
The old Trans Am
just bounced around
and took another road
--Neil Percival Young, Trans Am

My Dog Ate My Keynote

| | Comments (1)

A couple of people have asked me whether I was planning to post anything substantial about OOPSLA 2004. To them I say patience, patience, red meat and fiber take longer to digest than do frilly pastries. For openers, here are a few thoughts on the OOPSLA 2004 Keynote Address.

I apologize in advance for the verbosity of what follows. This is a raw core dump of sorts. Making it taut will take more thought. I’m afraid I’m prone to occasional bouts of logorrhea after traveling abroad.


Microsoft has a checkered past with respect to participation in the broader research community. For too many years, Microsoft was conspicuous only by its absence at OOPSLA. This low profile once prompted one wag to quip that "Listening to Microsoft talk about innovation is like listening to a scavenger talk about hunting."

Hence, its been satisfying over the last several years, dating from around the turn of the century or so, to see the strides Microsoft has made towards the goal of turning this around. They are cranking out more books and papers than ever these days, and their people are getting out more. The acquisition of high-profile free-agents like Ward Cunningham has added more muscle to a lineup that had traditionally been able to boast of a strong bench, but of few long ball hitters.

It was for these reasons, and others, that I was excited at the prospect of hearing from Microsoft's homegrown Research Czar, Rick Rashid.

At this point, I must turn to my notes. Ahem, here they are:


Dr. Richard F. Rashid; Founder and Head of Microsoft Research; a CMU alumnus, who'd worked on Mach; a guy who'd gotten a few bits under his fingernails in his day. Indeed, he observed that current users of Apple’s OS X may still be packing a few lines of his original kernel code in their rigs. I knew nothing of Rick’s background until this morning, and his stock was rising fast (in my book, at least).

The talk was seemingly cobbled together from two strikingly distinct sources. The first part of the talk opened with amusing eyewash, recycled from the likes of COMDEX Conferences gone by.

The future, Rashid predicted, would be about the data. Hey, not a bad hook. His images reinforced an emerging sense that that long delayed digital convergence that the digerati have been braying about for the last few years may finally be upon us at last.

Now, what they’ve been predicting is a cornucopia, an age of resource abundance, a horn of plenty. Petaflops galore. Scores of cores on every desktop 3D horsepower that rivals Pixars. Bandwidth too cheap to meter. The difference these days is that we can finally see it coming. Yes, he’s there too, the rise of the GPU, multicore processors, the whole shebang.

Now, Rashid is talking about heady stuff: Black box flight recorders for humans. The lawyers will love this. We yanks will need to set to work to fix the fourth amendment for anything like this to work.

Hmmm. I guess Planetary Scale is a buzz phrase these days. Will we be able to consult realtime satellite photos to see if there are fresh parking tickets on the windshields of our cars?

Terra Scale / Galactic Scale. Hmmm, 1999 Turing Laureate Jim Gray is talking about Galactic Scale computing. Impressive. Has any mere marketing department ever exhibited megalomania of this magnitude?

http://skyserver.stss.org || http://GPGPU.com || http://www.iova.net || http://skyquery.net

I recalled the climax of Arthur Clarke’s 2010: Something Wonderful is About to Happen. It feels as if Moore’s Law has been treading water of late, expending calories on a phase transition, as if melting ice, rather than generating predictable increases in raw heat. It feels as if, after a period of relative stagnation, things are about to change. It feels exciting. 2010 culminated with a new sun in the sky alongside the old. Jupiter transformed through fusion. The sky was yellow and the sun was blue. I wonder what color our new sun will really turn out to be. But the timeframe is starting to sound about right.

Next, Rashid dug his steam shovel into the ubiquitous computing vein. Smart Personal Object Technology, the Ministry of Software calls it. They have a tiny CLR for everyday gadgets. Neat.

We’ve been digging into sensor nets, control systems, and MPI-worthy clusters at home, and his tales reinforced our hope that this ore dug from this vein will yield more than base metal one of these days.

Yup, he had me up until right about here.


It was at this point that Rashid’s talk took its first ominous turn toward the worse. For one thing, I began to dawn on me that there hadn’t been anything very meaty, very original, in his presentation up until this point. I felt as if in a Mexican Restaurant, filling up on chips, and wondering when the main course would arrive.

The larger, more serious problem was that his focus had changed abruptly from fuzzy lens ink blot fantasies to what Microsoft calls “Software Factories”.

More copies of “Software Factories” left OOPSLA 2004 in the hands of attendees than any other book in OOPSLA history. Given the healthy attendance, the numbers for SF must have easily eclipsed those posted by the Beck/Gamma Eclipse book IBM bought us all last year. This ploy, in turn, obliterated Gamma’s own record, set in 1994, by the GoF book release’s “reading frenzy” in Portland. Of course, the 1994 books were actually sold, whereas these were comps.

Not that I’m complaining or anything. What Irishman minds hearing the words “On the House”? Why look a gift-horse in the mouth, even if he isn’t the fastest pony on the track? But I digress…

Now, as luck would have it, our Software Architecture Group at the University of Illinois at Urbana-Champaign has conducted a series of writers workshops a few months ago that examined a fair bit of this material. As I recall, we had some substantial reservations about where this effort was heading.

For one thing, the notion of “Software Factories” is way off the mark. Something less grandiose; more intimate; might have worked better. I can’t recall the alternatives we came up with (borrowing “weaver” from the AOP crowd might have been one suggestion). I’ll poll our contingent later in the week.

Our more serious reservation is that we think this “programme” is far too ambitious, far too grandiose, to bear substantial fruit over the short haul outside of a handful of set-piece, niche domains.

Proponents would likely counter with “you’ve got to start somewhere.” I suppose … but …

Nooooo, is this Model Driven Development again? For the love of God, noooooo. A proper rant on the excesses of MDA/MDD advocates is beyond the scope of this screed. The upshot: this stuff is being hyped way way to prematurely.


The presentation turned next to Visual Studio 2005. VS05 will evidently include tools for developing domain-specific languages. This sounds like a worthwhile direction, but wasn’t all that easy to tell how this will work.

VS05 will support building programs using diagrams as well as code, and, mirable dictu, refactoring too.

It began to dawn, somewhere in the sluggish recesses of my shopworn mind, that this all was beginning to sound like a response to Eclipse and Websphere.. Let’s see, we’ll have domain-specific plugins, multiple language support, tools for turning code into pretty pictures, and vice versa, refactoring support, an utterly shameless Java nock-off. There is even something named “Corona” in there somewhere. Get it?

Like U.S. Grant, Microsoft is fighting its customary unrelenting war of attrition. Siege tactics. Lastest with the Mostest, as Nathan Bedford Forest might have said (instead).

And, that’s all fine as far as it goes. I use Visual Studio from time to time, and I like it well enough. A commercial alternative to open-source tools like Eclipse is a healthy thing, in my estimation.

Indeed, I heard a lot of people complain that the VS2005 roll-out announcement reeked of crass commercialism. I simply can’t see the problem. I mean, God help us should someone show up at OOPSLA with software for sale. Doing a roll-out at OOPSLA strikes me more as a gesture of respect than of disdain. It’s no wonder exhibitors are so scarce these days.

No, the problem I had with this part of the talk, other than what I’ve prattled on about already, is that he delegated about half of his keynote to an underling. Sure, the Year 2525 stuff and the roll-out were fine, and a fellow like Rashid surely leads a busy life.

Nonetheless, I felt like we were served left-overs, carrion, and I craved something more meaty, and more fresh. It seemed as if Rick had left his A-Game at home in Seattle. I wanted to run out to try to find Rick Rashid’s dog, to see if I could cajole him into coughing up the talk I wanted to hear instead...

--BF, who reserves the right to revise and extend his remarks.
--BF, who has leaned on alimentary metaphors perhaps more than a person should over the course of a blog post…


If you don’t have the courage to say what you think, there isn’t much use in thinking it, is there?
--Thomas Jay Peckish II


Hey, I just noticed the Visual Studio 2005 Beta DVD in my OOPSLA totebag. Thanks guys, I'll give it a look..,

The Death of Deletion

| | Comments (2)

OOPSLA XIX Memewatch (Installment #1)

The internet never forgets. The prospect of a parrot who siits on you shoulder should cause us to seriously think about refactoring the Fourth Amendment.

Like others here, I've been tinkering with Google's Desktop indexing tool. It's powerful, even wonderful, but rubs your nose in just how hard it is becoming to make things go away.

This is a lesson that ought to have been made clear to me a few OOPSLA's ago when I was party to accidentally exposing the URL's a series of purportedly anonymous reviews to the all-seeing eyes of the Google bots. Once anything leaks out of the bottle, its next to impossible to get it back in.

Still, I've been realizing I use my harddrives as if they were worm drives. An embarassment of storage riches is but one prong in the advance of this age of abundance...


Sure I could just Google it, but I like to listen to the way Grandpa tells it...
--Thomas Jay Peckish II

Is "Croquet" Coyly Eponymous?

| | Comments (4)

Alan Kay has had what, by anybody's standards, would have to be called a good year. He recently bagged the Draper and Kyoto Prizes, and is poised to deliver his Turing Award lecture tomorrow night. His praises have been duly and extensively sung elsewhere; let it suffice to say that he has more than ample laurels upon which to rest, should he have so desired.

At the frightful risk of appearing to indulge in "lèse-majesté", I must sheepishly concede that I have, on a few occasions, described Kay as the Orson Welles of Object-Oriented Programming. I'm not completely sure why this comparision came to mind, but genius, pure preternatural genius, was surely a factor. And, like Welles, Kay's best-known, most monumental achievements came at a remarkably young age. Then too, one can, if one squints just the right way, discern a certain pyhsical resemblance between the two.

Unlike Welles, Kay has not taken the luxury of resting his laurels until both had gone to seed. Instead, there's a good chance that he'll be demonstrating Croquet, a remarkably collaborative enviroment that foreshadows what can be done with the coming cornicopia of cycles, bandwidth, and graphical power.

It usually takes a few days to discern OOPSLA's Zeitgeist, if any, but this time its evident already that the buzz junkies will have more than the usual methodone to amuse them...

--BF, who valiantly resisted the tempation to entitle this posting "Citizen Kay"...

The Hajj

|

Given the vagaries a the lunar calendar, this must be at least the second time that OOPSLA has occured during Ramadan. (Yes, it's a Google question of some sort, I know, I know.) In was in this spirit that we set out on our nineteen annual pilgrimage to OOPSLA XIX, in Vancouver, BC.

This is OOPSLA's third time in Vancouver, and our fourth or fifth time in Canada, depending on how one scores Minneapolis. Our air/land journey from Urbana consumed 16:14, besting James Noble's travel time from New Zealand by at least two hours.

OOPSLA 2004 Wiki page for Thomas Jay Peckish II.

"Hundredth" Birthdays

| | Comments (1)

Notorious Gang-of-Four book author Ralph Johnson turned 100 today, were "100" reckoned in Radix 7.

It occured to me that "hundredth" birthdays, whatever the base, do an interesting job of dividing life into epochs: 4 (base 2), 9 (base 3), 16 (base 4), 25 (base 5), 36 (base 6), 64 (base 8), 81 (base 9), and, hence all the way up to that coveted Willard Scott show appearance... ...and maybe even 121...

A sort of Passages for New Math veterans...

Rosy Scenarios

| | Comments (1)

I came across a post by Ralph Johnson the other day about an ambitious new project being undertaken by legendary object-oriented methodologist Grady Booch. Here are a few thoughts about this enterprise, in no particular order:

This is a noble, eminently worthwhile, and potentially even monumental undertaking.


This will demand pattern mining on an industrial scale not heretofore seen. IBM is poised to become, in effect, the Peabody Coal Company of Pattern Mining. Properly executing such a programme will take a cadre of specialists with an unusual mix of analysis skills, domain expertise, organizational accumen, and programming knowledge. Oh, and a rich command of the patterns and sofware architecture literature as well. I have no idea whether Big Blue has an underemployed legion of such talent awaiting remobilization. Is this a New Deal-style WPA for pattern miners?


Kudos to Booch for recognizing the seminal role played by Bruce Anderson's groundbreaking architectural handbook workshops at OOPSLA during the early '90s in laying afoundation for the Gang-of-Four's subsequent efforts, and ultimately, this work itself.


Booch may find himself in a position to confirm or refute a conjecture that Joe Yoder and I made a few years ago to the effect that the mostly widely deployed high-level architecture out there, despite widespread claims to the contrary, is, in fact, the BIG BALL OF MUD. To do so, however, might require an impolitic degree of candor, as well as a degree of pick and shovel work beyond the envisioned scope of this effort. Alas, the path of least resistance will likely be to simply parrot each system's high-level brochures.


There is a danger here of allowing this handbook to turn into a coffee table book; of producing an Architectural Digest; of pumping out self-serving, mutually congratulatory puff pieces, rather than objective depictions of how the portrayed systems are really put together. It's easy to imagine an unholy alliance between consultant and client that extols the fictional virtues of set-piece paper palaces, rather than the hard fought victories won out in the trenches. My hope is that in their search for "inner beauty", the authors will strive to see beyond the two-dimensional cartoons and into intricacy and richness of the code itself.

Brain Surgery

|

Our web server for the NASA IBEAM Project, http://brain.cs.uiuc.edu, underwent surgery yesterday for an acute respiratory problem, the complications of which included high fever and loss of consciousness. The procedure went smoothly, though more loss of blood than expected was encountered (alas, on the part of the surgeon) than expected. Brian and Brain are resting comforatble, and a complete recovery is expected for both.

The procedure, I'm pleased to report, was neither "brain surgery" nor "rocket science".

Anyway, our server was crashing due to a faulty cooling fan. I rather suspected something of the sort when it would lock up and refuse to do anything, only to return to its old self after being powered down for a few minutes. Still, there was no obvious fan problem to be seen once the covers came off.

Howerver, the BIOS Hardware status page told the take quite vividly. I could see the fan speed for the CPU0 drop from 5400 RPM down to 500, and then to zero, while the CPU temperature rose to nearly 212 F. A smoking gun; a nearly toasted Athlon.


I mention this only because it reinforced something I've been thinking while building test cases of late: why can't more software components work this way? I want code that does more of this kind runtime validation and status reporting in more of the objects I build and use.

Now, this is surely not a new idea; just one I'm personally becoming quite sold on / smitten with of late. Why can't more of these kinds of monitoring and instrumentation facitlites be built into more of our components? As with motherboards, is this a by-product of technical maturity?

The Bottom Feeders

|

After a longer than usual absence from cultivating this space, I had the distinct displeasure of having to remove over 100 postings from some of the most sleazy, repugnant bottom feeders around. In the unlikely event that anyone else stumbled across any of the vile bilge I had to dredge through, my apologies...

Thomas Jay Peckish II on Equivocation

|

Equivocation is an art...
--Thomas Jay Peckish II

Thomas Jay Peckish II on XML

|

Never has so much been promised by so many for so little...
--Thomas Jay Peckish II, channeling Winston S. Churchill...

Thomas Jay Peckish II on Code Clutter

|

That production code is littered / cluttered with "error handling" or "exception" code speaks volumes about the state of contemporary programming language design...
--Thomas Jay Peckish II

Brian's Grandma on the Hazzards of Collaboration

|

He stirred the pot once and then acted as if he'd cooked the whole stew...
--Brian's Grey-haired Irish Grandma Mulligian

Thomas Jay Peckish II on Canadian Folklore

|

Anyone can walk on water if it is cold enough.
--Thomas Jay Peckish II, reciting an "old" Canadian Proverb...

Thomas Jay Peckish II on Software Evolution

|

It is said that a programmer who dies at the keyboard will be greeted in paradise by seventy-two versions, his for all eternity...
--Thomas Jay Peckish II

Bottoms Up

|

Thomas Jay Peckish II on Mission Statements

|

If you need a mission statement, you are not really on a mission...
--Thomas Jay Peckish II

Big Dumb Boosters

|
CNN.com - Russia to build new spacecraft - Feb. 17, 2004

Start with something that works. And is cheap. This is so clearly the answer to the ISS dilemma that only a quaint, sentimental attachment to American jobs and the industrial base could cloud the call... Export tech jobs? Not America...

The Bark of the Beagle

|
Today is the 195th anniversary of the births of two of the 19th century's most remarkable characters: Abraham Lincoln, and Charles Darwin...

Thomas Jay Peckish II on Sartorial Splendor

|

There seems to be this mentality in the business world whereby an extravagant wardrobe is regarded as a more than adequate substitute for twenty or thirty additional IQ points...
--Thomas Jay Peckish II

UIUC in the News

|

Where have the Ph.Ds gone? - The Times of India

An interesting take on international scholarship from the Times of India that mentions UIUC. I guess I'm part of the problem any way I cut it...

Prions Store State?

|

Prion proteins may store memories: Study hints at vital job for two-faced proteins.

Hmm, I meant to follow up on this one, but don't recall how...

O'Reiley on Scripting

|

Scripting Languages seem to be on the vanguard of programming language design and/or evolution these days. leaving more traditional, more academic languages, (and more traditional academics) in the dust. Much more should be said about this. For the moment, I just want to remember where I found this: O'Reilly Network: Why Scripting Languages Matter [May. 14, 2003] and this: O'Reilly Network: The Crafty Turk [Jul. 21, 2003]

--BF, wishing all my bottom-feeding friends a Happy 2004...

PS, I also bookmarked this nugget 'o wisdom from Timmy Boy too, thought I don't recall why: O'Reilly Network: Refolding the Instructions [Apr. 09, 2003]. Probably because it seemed consonant with Christopher Alexander's thinly-veiled Zen allusions...

Pattern Refactoring

|

A number of us have put off following up on a fascinating, and
surprisingly productive OOPSLA Workshop from back in 2000, in
Minnesota.

Workshops -- Monday

Pattern Refactoring

I should dredge up my notes from this confab and post 'em...

5 September 2003
Friday
Death Valley Days #2

Recall that Ronald Reagan was one of the hosts of Death Valley Days…

An UP Observation: We are remoras on the Gang of Four barracuda. Only the GOF out-takes seem to have stuck:

EXTENSION OBJECT
EDITOR
TYPE OBJECT

NULL OBJECT
MVC/DOC VIEW

Three of these came from the Smalltalk world.

While there was some talk about the POSA patterns, they didn’t seem to make their way into the discussion all that much.

The test of a pattern is whether it really does

Do a GOF Talmud Page, to go with the GOF Thoughts shrine. Include Proxy Revisited, Null Object, Extension, Serializer, Type Object, Editor, etc.

The two observations above are from my 1997 notes. The following list is from the OOPSLA 2000 Workshop on Pattern Refactoring.

GoF Outtakes

1. Null Object
2. Abstract Class
3. Interface Class
4. Boilerplate Class
5. Type Object
6. Reifaction/Objectify
7. Serializer
8. Extension Object
9. Product-Trader
10. Bureaucracy
11. Role / Extension
12. Property
13. Whole Value
14. Abstract Object
15. Curried Object
16. Factory Object
17. Natural Object
18. Tools and Materials
19. Layer Object
20. MVC
21. Master-Slave
22. Publish-Observer
23. Presenter
24. Multiple Representations

Interpreter -
Abstract Factory -
Factory Method - -
Template Method - -
Decorator - - -

Iterator broadened to Streams

Services
Provides Information
Structures
Coordination
Controlss
Interfaces

Problematic

Proxy
Wrapper
Façade Adapter Decorator Bridge Proxy

Double Dispatch
Delegation
Abstract Class

Terraspermia

|

U.S. News: Colin Pillinger, space scientist: Gambling big on life on Mars (12/29/03)

Who is to say that Earth hasn't contaminated Mars with its own meteor ejecta?

This article contends just this...

The Holocene Extinction

|
We are in the midst of the greatest mass extinction since the demise of the dinosaurs, and The Kill-Off describes whom (yes whom) is to blame, and why this culling differs qualitatively from those that have preceded it...

MVC Gentrification

| | Comments (1)

There's been a thread in comp.object about refactoring to MVC. The intent is to tame a purported Swing UI monstrosity, and instead to move towards MVC by-the-Hoyle.

Hmm. I'd have scored Swing as being well within the broad outlines of MVCs intent penumbra, if not umbra, already.

The broader, more interesting question is why the Swing solution is regarded as a Frankenstein. Those components mesh better than most I've seen. Swing is a modern, third-generation (nth?) design / architecture. If programmers regard it as hopelessly Byzantine, what hope is there left? What's the problem with Swing? Is it so broad that its hard to learn? This could be so. My experience with it has been the learning curve is something well short of gentle. Issues like layout intrude far to early for my taste. Few components work out of the box. Is it capriciously arbitrary? Is it that the elements integrate in something short of a "seamless" fashion? They do seem to demand arbitrary trowel work, and more mortar, than one would expect of a framework that aspires to being the substrate for pre-fab solutions.

Is the problem that Swing had to be rolled out essentially finished? It had to emerge full-grown. Many species bear young that have to fend for themselves. Few that engage in the quality side of the quality vs. quantity trade-off abandon them. Yet, being bound to your mistakes as soon as you publish an API really really does constrain evolution. It's team players vs. defectors, as always, once again. How do we avoid the lumbering pageant of slow, coarse grained growth / expansion / dominance and extinction?

The picture to the right is of Tryve Reenskaug, who built the first implementation of MVC at Xerox PARC during the early '80s. (The picture was taken by yours truly at JAOO 2003, in Aarhus, Denmark last September.) mvc.jpg Danny Dig, of UIUC's DCS, gave a nice presentation on the history of this pattern complex / compound pattern / architecture on the same day that Ralph Johnson braved the Big Ball of Mud quagmire. He accurately chronciled the trend towards closer coupling between Views and Controllers, and the ascendance of Mediator objects that buffer the relationships between Views and Domain objects.

The more intimate relationships between Views and Controllers has been driven in part by the absorption of input event generation facilities into the operating system, and its attendant low-level I/O facilities. The more refined divisions of labor among Views, Domain Objects, and the intervening Model / Adapter / Mediator / Mediaptors has been driven in part by the desire for GUI independence, and in part by the rise of automatic GUI code generation tools. Given this, designers are forced to foist their components on the world, ready or not. They must be treated as mature, full-grown artifacts before they are refined in the crucible of full-scale deployment.

JAOO2003logo_250x60.gif

Thomas Jay Peckish II on Post-Modernism

|

There are answers. There is no answer.
--Thomas Jay Peckish II, in a Post-Modern Mood...

Fancy Continental Ideas

|

I'm as distrustful of and unreceptive to fancy continental scientific ideas, such as Pasteur's germ theory, as the next American. Thus, you can imagine my chagrin when, after being surrounded by people with a nasty respiratory ailment for most of the last week, I woke up with a seemingly identical ailment today myself.

Louis Pasteur I must reluctanlty concede that this Frenchman may have been on to something with these pathogenic contagion notions of his. I suppose, all and all, that this is a less unsettling explanation that divine retribution. In any case, I find myself with no voice. Except this one.

Heaven help us were ideas subject to this manner of contagion...

Good Judgement Comes From Experience

|

Good judgement comes from experience Experience comes from bad judgement --The Murphy's Law Calendar (circa 1987)

This epigram is an old favorite of ours, and evidently quite a few others. I tried tracking it down, and came up with a gaggle of purported attributions, going back as far as Mark Twain. I'd like to believe the Twain attribution, but I've yet to find a solid citation for its source. The quip appears without attribution in a number of places, leading me to wonder if anyone really knows where it came from...

The remark has been variously attributed to:
twain.jpg
Barry Le Patner
Jim Horning
Fred Brooks
General Bolivar Buckner
Rita Mae Brown
Will Rogers
Buster Bunny
Bob Packwood
Mickey Mouse
Texas Bix
Anonymous
Cousin Woodman
Mark Lacas
Arthur Jones
DC Stultz
Evan Hardin
Robert Kennedy
Lazarus Long
An Australian Aviation Magazine
Mark Twain

If you want people to always say "As Thomas Jay Peckish always says" before they say something, then Thomas Jay Peckish has to always say it...
--Thomas Jay Peckish II

Johnson Braves the Mire

|

I had the distinct priviledge this afternoon of hearing Ralph Johnson (yes that Ralph Johnson) present our hoary chestnut, Big Ball of Mud to his Software Engineering seminar. The mere prospect of this caused me to start reflecting on it...

spaghetti-medium.jpg I still find myself haunted by Kent Beck's critique that this masterpiece of equivocation ought instead to have had the "courage of its convictions".

I've become increasingly receptive to this perspective over the years. Is there something about the metaphors we use to descibe software that blinds us to its fundamental nature? Is that untidy tangle we dismiss as anomalous really part and parcel of building this stuff?

The set of systems that can feasibly be built at all is strickly larger than those that can be built elegantly. For many tasks, and for many teams, this architectural style may be the only possible match.

We made a point of saying, and so it is oft said, that this paper should not be seen as an endorsement of Big Balls of Mud. Indeed, we made it clear that we were, by no means, recommending these kinds of designs. At the same time, we resisted considerable pressure to utterly repudiate this architecture, for a variety reasons.

For one thing, tangled legacy systems leave programmers no choice but to cope as well as they can. Infantry-style teams and processes insure system made in the team's image. Some problem domains may pose requirements so inherently muddled that must inevitably be mirrored in any possible solution.

While I still can't say I recommend this approach, I'm convinced that it was high time that someone try to describe and explain it. This architecture may as well be placed honestly and openly on-the-table, since its spectre looms large over its more respectable alternatives.

Noble et al. have nominated this work as perhaps one of Computer Science's first post-modern works. I'm quite sanguine about this characterization. I realized during Ralph's lecture that a legitimate descontruction of our argument, that is to say, a characterization of our unstated posture, might be that small teams of skilled chraftsmen can beat an underskilled human wave approach every time. Were we really advocating a world made in our (presumed) image?

And, this Slashdot nugget on role fragmentation suggests yet another possible perspective on this multi-faceted issue. (And, yes, it feels rather pointless to echo a Slashdot post in one's own weblog, but what the hell...)

Ralph observed at one point that Big Balls of Mud are what you get when you throw an army of Visual Basic programmers at a problem, and further, that that's just what you ought to expect to get. It's yet another corrolary to Conway's Law. Given that you've elected to employ a large number of modestly talented "infantry level" coders, a haphazzard hodge-podge is what you should properly expect.

Now, back to Beck's challenge. Kent made this remark, I've recently realized, back when his ideas about Extreme Programming were taking shape. XP would ultimately relegate concerns about design aesthetics to a secondary, or even tertiary position in its pantheon. You Are Not Going to Need It demanded that design flourishes be eschewed in lieu of immediate, established requirements. It is a defiantly utilitarian process that ultimately came to scoff at the petty egotistical inclinations of designers towards generality, extensibility, and elegance. Indeed, it gently mocks these inclinations as soft of wasteful hubris. Looking back, it seems that Kent had begun to see the Sirens of Elegance, of High Road Architecture, as of the major obstacles on the road to a more dependable software development process.

Outlook Mystery Hex

|

Have you ever been mystified, err, well, let's be candid, annoyed by Outlook's hexadecimal failure codes. This site has the low-down on 'em.

Now as to the enduring mystery of why I'm still using Outlook...

Software that Doesn't Stink

|

I came across some fresh speculation about the enduring mystery of why so much of the software we build is so bad. This discourse at Better Living Through Software entitled Software that Doesn't Stink links the discussions instigators before adding a good size chunk of supporting commentary.

The notion that programmers who been around for a while develop a tolerace for a certain degree of "code clutter" rang true for me. What's more, I don't see this as only as a possible abdication of concern for the system's design integrity, but possibly also as a necessary means of holding conflicting, centrifugal forces at bay. Big Ball Of Mud speculates that different programmers differ in their capacity and willingness to cope with such clutter. The Selfish Class raised the possibility that inscrutable code may, ironically, resist change better than more readable code.

The observation that there is an appaling amount of waste in many organizations rings true, up to a point. There are a lot of forces at play here, and no single factor will be able to account for it all.

It seems like many organizations assume they need much larger teams, with their attendant support, than they really do. They employ an "infantry model" to staff their projects, when a "commando team" model might be sufficient, as well as more effective...

Joshua speculates that the software industry attracts a certain sort of idealist; persons enamored with the seemingly unliited maleability of this stuff we call software, and captivated by the sheer power that command of such stuff brings with it. One of this most exhilarating thing about programming is that, with enough effort, one can master the intricacies of what is "under the hood" all the way down to the silicon.

Or, one could. During the the '70s and, again, with the advent of the microprocessor, a single individual could master vast swaths of all the code that ran on their machines. These John Henry programmers could single-handledly design, code, and test quite substantial applications. Making all their design decisions inside their own heads kept communication overhead to an absolute minimum.

Are the most accomplished soloists less adept at ensemble work? Are commando coders hamstrung when co-ordinated co-operation is called far? Did those scurillous calumnies about the purportedly poor social skills of the cream of our indigenous hacker culture have any truth to them what-so-ever?

In any case, how surprising might it be were people who were trainted to be Crackerjack solo coders are surprised that collaborative work moves, by comparison, at a stately, even glacial pace?

Joshua observes that coders seem to do what they are good at doing; what they know how to do; regardless, it would seem, of whether doting on these dimensions for improvement is really a good use of their time. You get hand-coded inner loops that exhibit near theoretical peak performance, along with business logic that, at times, seems oblivious to task at hand...

He offer two additional pathologies, competition among programmers to excel at say, optimization, at the expense of master the intricacies of the domain. This sounds plausible, craftsmen of every stripe engage in this sort of one-upsmanship. I'm reminded of a story about the plasterers who stuccoed my house (which I will try to find).

The other is designing for extensibility. This too has, at times, had a certain cache among hackers. Therein lies a tale...

Boil Order

|

Champaign-Urbana was placed under a boil order yesterday after a power failure, followed by the failure of a backup generator allowed water pressure to fall below 20 pounds per square inch.

For some reason, I woke up thinking about outsourcing. Hmm, decrepit infrastructure, low-wage workworce, maybe we are downscale enough now to get back into the game...

Welcome to Tralfamadore

|

One of my sources for material for this weblog will be a collection of research diaries I've been keeping on paper since the mid-'80s, and electronically since 1993. As a result, entries might appear from time that will predate not only MovableType, but even the Web itself. This weblog may, in a sense, seem "unstuck in time" like Vonnegut's protagonist, Billy Pilgrim, in Slaughterhouse Five.

In general, I will reserve the right to revise correct, and extend such remarks (as they say of Congressional Record Entries), but will refrain from shameless, wanton revisionism in those (exceedingly) rare cases where an issue regarding intellectual paternity might concievably arise.

Bird is the Word

|

After sitting on my hands for over a year as to whether to switch on Catfish in the Memepool , I've decided to mark this Thanksgiving by remanding this turkey to its fate. I pledge that I will strive to ensure that it is never too dry or too filling, and sincerely hope will not put you too sleep. No desiccated desultory soporifics for me. No sir.

--BF, slipping into that familiar biannual tryptophan coma...

Thomas Jay Peckish II on Self-Deprication

|

A major problem with self-deprecating humor is that most people are more than content to simply take one at one’s word.
--Thomas Jay Peckish II

Gabriel a Saint?

|

A number of us (at least two I know of), undertook the task of preparing a poem (in our native languages) to commemorate poet and aspiring auto-hagiographer Dick Gabriel's Hillside Meeting Halloween birthday.

My contribution is a "Sought Poem", a poem composed using a Google search for three selected terms, and cut and paste. Dick explained how to these sorts of poems are written to Ralph and me at the meeting. It's hard to do well, but easy to do badly...

--BF


GABRIEL IS A SAINT?

The fictional devil played by Gabriel
The other clique members are female except for budding chef Gabriel,
a black who falls for Flan
Members are to distribute to trick-or-treaters on Halloween
I am possessed by the Archangel Gabriel," she bellowed
I just remembered that if this satanic group exists ...

Gabriel Catholic School emblem optional 
tobacco, drugs, or displays of violence, satanic symbols or
programs and topics
Dental Health
Halloween safety
Nutrition ...

Gabriel Ash: The Messengers from Hell
Does a Satanic Cult Rule the World? 
Bali Halloween
Lindenberger informed Council that the satanic church
participates in human or animal sacrifices on Halloween ...

Gabriel, President of South Brevard Habitat 
autumnal, Ray Bradburyesque season of Halloween, we thought ...
Were they satanic monks, who invited ?

Constantine used Gabriel, with or without his endorsement
Who joins a Satanic killer for a series of Halloween-night murders?

For Sale or Trade: Used William Shatner Halloween mask ...
"to be" statements by 'Allah' or 'Gabriel' to Mohammed
that were part of this satanic feast of 
Halloween, which like all the holidays, came from paganism, but  for
... One Hundred Years of Solitude, by Gabriel

I'll take Coolest Place To Go For Halloween for 200
98-99: the life of the martyr Gabriel of Bialystok
Yet this was no Halloween joke
From drugs, Ramirez had a passion for the mock-satanic music of ?
from his parents' home in Whittier, near the San Gabriel freeway
he is approached by the holy archangel Gabriel: "Cease being ..."

Children are acustomed to celebrating Halloween, and you 
to behave in a childish fashion (without the liberation of libation) was
Halloween.
... Alright all you tobacco chawin?, satanic, hillbilly punks

Gabriel - The planetary archangel in charge of the moon, a genius of ?
Gabriel returns to avenge he and his brothers ....
... to silence the author after his Satanic Verses was published ...

Lest it not be obvious, the three terms searched for to assemble this work were "Gabriel", "Satanic", and "Halloween". (I was fishing for more Rushdie than I netted, truth be told.) In other words, I used the result of running this query on the day the poem was assembled. The results will almost certainly have changed if you run it again....


Copyright (C) 2003 -- Brian Foote, The Laputan Press, Ltd.

A Meme Mausoleum

|

I’m haunted by ghosts of stillborn brainchildren.

I need to exorcise them and bury them, and what better place to bury them than in a weblog. A weblog is like a graveyard for memes. A meme mausoleum. They at least deserve a decent, dignified burial. Every now and then, someone close to comes to visit and maybe leaves a few flowers. But most of the time they lie forgotten. May they rest in peace.

Happy Halloween...

--BF, in a pensive, slightly lugubrious frame of mind...

Thomas Jay Peckish II on 'Blogging

|

Don't worry about what you say, nobody's going to read it anyway...
--Thomas Jay Peckish II, on 'blogging...

There are what? Thirty million 'blogs on the web? …each in its own way, a desperate cry for help…
--Thomas Jay Peckish II, ditto...

The Second Most Self-Indulgent Thing a Person Can Do

| | Comments (1)

Blogging is the second most self-indulgent thing a person can do. Think of Paul Reubens, only in an empty theater.
--Thomas Jay Peckish II


It is not a bad idea to get in the habit of writing down one's thoughts. It saves one having to bother anyone else with them.
--Isabel Colegate

Writing is not necessarily something to be ashamed of, but do it in private and wash your hands afterwards.
--Robert Heinlein (1907 - 1988)

Read over your compositions, and wherever you meet with a passage which you think is particularly fine, strike it out.
--Samuel Johnson (1709 - 1784), from Boswell's Life of Johnson

Your manuscript is both good and original, but the part that is good is not original and the part that is original is not good.
--Samuel Johnson (1709 - 1784) (attributed)

Don't think of retiring from the world until the world will be sorry that you retire. I hate a fellow whom pride or cowardice or laziness drives into a corner, and who does nothing when he is there but sit and growl. Let him come out as I do, and bark.
--Samuel Johnson, English author, critic, & lexicographer (1709 - 1784)

Learning to Compromise

|

On the way to OOPSLA 2003, I found myself reflecting on how the design of any system beyond a certain size is inherently about making compromises. Perfection in any design effort involving trade-offs along a multitude of design dimensions, many of which are impossible to quantify, and some of which are intrinsically subjective, becomes not only impossible to achieve, but nearly meaningless, or at least profoundly impractical, to even contemplate. Any good design is an orgy of compromises.

Much of my thinking along these lines was shaped by reading Henry Petroski's work. There are other tentacles that reach all over the place. I'll try to find some.

My thought, though was this: If compromise is going to be an essential part of any practicing programmer's work, why are we so fixated on inculcating a passion for perfection in students, and so bad at teaching them to be good compromisers?

To be sure, there are realms where quality is measurable, and perfection can be pursued. Algorithm optimization and code succinctness come to mind. These skills can be taught, and better still, evaluated. This may be one reason we teach them first. Are we good at tempering the pursuit of these qualities with the judgement to effectively trade them off? Or can only experience teach this?

Anaheim's Etymology

|

I'm in Anaheim for OOPSLA 2003. Forgive my pidgin Deutsch, but I've found myself thinking about the lingusitic hybrid that names my destination. It's a peculiar locution. The suffix "-heim" in German mean "home", and is usually, I think, associated with something bigger than a "-dorf" (village, I think), but smaller than a "-stadt". Then again, size is relative, I suppose. The Ana is the same Santa Ana (Saint Anne) that gave the winds that are whipping those incredible brush fires down there their names. The marriage of the German -suffix with the Mex-American saints seems oddly charming. Only in Die Vereinigen Staaten...

Some of the long-in-the-tooth hotels sport what was supposed to pass for a Bavarian theme three or four decades ago. Like the name itself, this motif contrasts a little uncomfortably with the omnipresent palm trees. And like all of the Post War construction in Southern California, much of it hasn't aged all that well...

Virtual Zeal

|

http://physicsweb.org/article/news/7/7/13 An article on how a few zealots (fixed opinions) seeded / secreted in a population can turn it in a certain direction. This phenomenon, combined with the virtual intimacy of mass media, can have a disproportionately influencial impact on a population. Recall the immediacy of virtual disaster: TV kidnappings, sniper shootings, and terrorist atrocities engender a visceral sense of peril that goes way beyond the objective threat they pose. If we've seen carnage, we don't bother to calculate the odds. By a similar token, we regard our immediate friends and aquantances as more credible than "talking heads". A virtual zealot who buys in at "buddy" could wield considerable influence. Meld this with the virtual tribal zeal of sporting affiliation, and you've got a potentially decisive combination...

Roll On Columbia

| | Comments (0)

I've back-dated this post to Sat., 1 Feb. 2003, now that I've removed my (somewhat obscure) tribute to Space Shutle Columbia and its crew from my homepage. It was/is an MP3 of Woody Guthrie's oddly pertinent Roll On Columbia.
--BF, who should probably post his recollections of that fateful morning as well...

ROLL ON COLUMBIA
by Woody Guthrie
(tune: Good Night Irene)

Roll on, Columbia, roll on
Roll on, Columbia, roll on
Your power is turning our darkness to dawn
So roll on, Columbia, roll on

Green Douglas firs where the waters cut through
Down her wild mountains and canyons she flew
Canadian Northwest to the oceans so blue
Roll on Columbia, roll on

Other great rivers add power to you
Yakima, Snake, and the Klickitat, too
Sandy Willamette and Hood River too
So roll on, Columbia, roll on

Tom Jefferson's vision would not let him rest
An empire he saw in the Pacific Northwest
Sent Lewis and Clark and they did the rest
So roll on, Columbia, roll on

It's there on your banks that we fought many a fight
Sheridan's boys in the blockhouse that night
They saw us in death but never in flight
So roll on Columbia, roll on

At Bonneville now there are ships in the locks
The waters have risen and cleared all the rocks
Shiploads of plenty will steam past the docks
So roll on, Columbia, roll on

And on up the river is Grand Coulee Dam
The mightiest thing ever built by a man
To run the great factories and water the land
So roll on, Columbia, roll on

These mighty men labored by day and by night
Matching their strength 'gainst the river's wild flight
Through rapids and falls, they won the hard fight
So roll on, Columbia, roll on

Christmas Eve Inagural

|

This was my inaugural MoveableType entry, back on Chistmas Eve of 2002. I've retained the candid, mirror-image webcam picture that may or may not have been taken while I was working on bring MovableType online that day.

Buzzkill at the EMP

|

The OOPSLA 2002 gala event was held at the Experience Music Project Museum. I'd been looking forward to it for months.

We’d all timed our drugs (such as they are these days, a dangerous mix of caffeine and Merlot) so as to have them kick/we’d peak in just as we got to Paul Allen’s Hendrix Mausoleum at the base of the Space Syringe, ‘er Needle.

I was quite amazed by the lengths to which the folks at the EMP went to make our rock and roll experience as authentic as possible. Indeed, some of the most disagreeable aspects of said experience were uncannily reenacted in meticulous detail.

We were promised full access to the building for as long as we needed it when we were shown it last year. Indeed, we were told that our booking was the inaugural deal for EMP’s use for this sort of event.

Instead, our attendees were greeted at the doors by a phalanx of beefy bouncers who could have been flown in from the Meadowlands, and herded to the back doors for a vivid taste of that quintessential cheap seats experience.

Indeed, many were told not to enter the building at all if they wanted food. They were directed instead to a waterlogged plastic rain tent across busy Denny Way, where a platoon of off-duty Seattle cops sat complacently, evidently just in case any rowdy hackers revolted at their treatement and rioted.

There were portapotties, waterlogged tents with drenched dancefloors. These rugs were best cut in galoshes.

The reason for all of this was MTV’s Paul Allen/Bill and Melinda Gates benefit, replete with stars like the Dave Mathews band, J. Lo, and God knows what rap acts.

We got black curtains and velvet ropes. The young and hip and beautiful were ushered past like royalty, while guards glowered at middle aged techies as if each was a potential gatecrasher.

Heaven forbid that a beer gut, bald spot, or PhD recipient might appear on MTV, or that an actual techie might show up at Paul Allen's building for a Gates Foundation sponsored event...

Programmers are Like Attorneys

|

Programmers are like attorneys. They know a lot about the law, but don’t know much about their client’s domain. They learn new domains every time they take a new case. Over time, they may cultivate specialties, as they develop more expertise in a particular area.

Still, their attitude is “Have Law, Will Travel” (talk about dating yourself).

People think that a good lawyer can litigate anything, or that a good programmer can hack anything. Both statements could not be further from the truth. You'd not want to hire a probate lawyer to defend against a drug charge, nor a union pension fund disbursement programmer to write a realtime data acquisition system.

It takes years to master the law, but mere mastery of the law is often not enough. One must also know as much about the domain being litigated as a denizen of that domain.

Like lawyers, we spend years acquiring arcane expertise in realms like programming languages, and optimization techniques. Once we hang out our shingles and begin to practice our trade, business rules, medical details, or even rocket science must become our stocks in trade as well.

Like lawyers, what programmers do is often misunderstood, and both professions have found themselves the targets of derision, even contempt. Garbage Collection guru Henry Baker once likened the role lawyers play in modern society to that of the samurai in ancient Japan. No one really liked having either around, he said, but if the other guys had theirs, you had to have yours, and whoever had the most, or the best, would probably prevail.

Another attribute that programmers once shared with the legal profession was decent compensation. Sigh. And a modicum of prestige. Sigh. Some of the last of the secular priesthoods.

Both engage in a level of face-to-face interaction with their customers that resist attempts at outsourcing. The work products of both exhibit a custom, one-of-a-kind character.

Both adhere to rigid dress codes, and work irregular hours.

A Programming Language Parable

|

A programming languages parable from Shelly Powers, by way of Mariann Unterluggauer...

Thomas Jay Peckish II on Visual Acuity

|

There is none so blind as he who cannot see.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Programming Language Design

|

No programming language construct held out so much promise, yet failed more spectacularly, than the Comment Statement...
--Thomas Jay Peckish II

The Death of Irony

|

The apoplectic pundits have spent the last two weeks decreeing the death of irony. And then this. I can' t tell you how much the Highjackers in Hell piece has done to bolster my spirits. Such a people as can produce humor such as this can never be vanquished.

Hybrid Vigor Revisited

|

The below is an impromptu rant. Post-bubble stray thoughts, a elegaic lamentation on the demise of America's unique, imperiled, indigenous hacker culture, in search of polish…

The Vision Thing: Hybrid Vigor Revisited

Programmers are concerned about the cultivation of software. What do we have in common with Farm Aid? It’s that for us, cultivating software is a way of life. I remember asking, only half in jest, why not save the programmers as well as the farmers. It was not a promising time to be in the bit cultivation business. The specter of Japanese software factories and fifth-generation job killers loomed. Ugly stereotypes had driven us from the breeding pool. And yet, there is a beauty in what we do, and in where we do it, and in, well, that way of life. Consumers don’t always see it when they sit down at their dinner tables, but its there, the caring. It’s there for us too, sometimes.

There are sweatshops as smelly as Carolina Hog Factory Farms. There are truck patches, and vanity vineyards, and vast corporate expanses the size of several counties. There is Hooterville, and the Provinces, and the Dacha Plot and the family farm of yore.

And then there is the product. Organic carrots, genetically modified soybeans, dairy cattle, corn by the bushel… Herbs, spices, fodder, and staples, and treats. These places we live are like that too.

Then there is the community. A dying way of life. A way of life is always dying, as others are being born. The cloud of dust metamorphosizes.

Some are vessels of conservatism. Some are buzz junkies. Some are novelty vampires. Some are producers. Some are selectors, consumers, cullers, rewarders, nurturers, customers, supporters…

The noble rustic as a metaphor: it’s entrenched. Just look back at Toefler.

The epic tale of Lewis and Clark: we really do make their arduous journey in hours. I’ve flown from St. Louis to Seattle. The progress we’ve made since the industrial revolution is astonishing indeed. It continues. Unabated. Indeed, it is accelerating.

The web, the thicket, the mélange, the beast, the Leviathan, is becoming more dense, more nuanced, more intricate. It sprouts fruit never seen right before our eyes, and begs us to taste them, and to name them, and to describe them. This is what we do.

The figs and the wasps: programmers and languages and their code. Only RPG programmers can allow RPG programs to change. The symbiosis is beautiful. The figs get sperm that can fly. The wasps get an abundant chow line, tailored just for them. Life is good.



Hillside: the National Geographic of Code. The Architectural Digest of Bits. Look at What We Have Done!


The Power of Patterns: We’re a bundle of four billion year old information. Did atoms learn? Are they themselves a record of the stability of the unlikely? A nice idea. You may not get there very often, but once you get there, you can stay there.

--BF, Back Down on the Farm

Software Doesn't Rot, nor Does it Heal

|

Software doesn't break, nor does it heal. Buildings can be attacked by termites and rodents and rot, but the only vermin that attack software are programmers.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Thinking "Outside of the Box"

|

Thinking "Outside of the Box" is quite decidedly "Inside the Box" these days...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Teleonomy

|

Your dog's DNA doesn't know its making a dog...
--Thomas Jay Peckish II, on Teleonomy

Thomas Jay Peckish II on the Cartoon Cult

|

A flaccid cabal of cartoon worshipers, drooling over UML centerfolds...
--Thomas Jay Peckish II, at OOPSLA 2000

UML: A form of pornography favored by project managers... Porn for Project Managers...
--Thomas Jay Peckish II

Thomas Jay Peckish II on the Currency of the New Millenium

|

If information is the currency of the new millennium, then we’re all churning the float…
--Thomas Jay Peckish II

Live James Burke Scraps from OOPSLA '99

|

77 Tutorials
25 Workshops

30 of 152 papers
2136 or so people...



James Burke from Oxford, alas...

Excruciatingly boring... He opens with a joke about a millipede...

Knowledge manufacturing, a.k.a. innovation...

Oh no, not The Box...

Carburetor: perfume spray, gasoline... A Frenchman...

A paean to serendipity and bisociation...

Descarte and reductionism... A world of noodlers. Specialization vs. holistic hippies.

Planning the Hunt: delegation of labor, hierarchy, standard mammoth catching practice.

Flint and language to convey skill. A precise linear sequence, he claims...

More than one meaning in more than one context... Break the reductionist/specialized rules (yawn).

Why does he call reductionists noodlers?

Looms and putting people out of work...

Riots and change in the apparel chain...

Linen rags are free. You can make paper...

Since 1991, the Americans have been able to turn their first stringers from building bombs to building toys. I has turned out to matter, it seems. No one expected this. Not even us. Cold war demobilization has given us a windfall technology dividend...

Graduate vocabulary 12,000 418,424 words in English

He praises reductionism as he belittles it. Cheap talk about creativity is really a fig leaf for mobilizing the masses of dullards to step into line with enthusiasm. Mr.Smith goes to Oxford. His is a soothingly egalitarian message, so much so that I don't trust it.

Standards and information scarcity: he is going to claim that intelligence is not scarce. He claims there were only a few niches for clever folk to act like wizards. He is going to claim this is changing.

Novel juxtaposition: it can be more plentiful...

Even Burke is hanging out his red light. A Knowledge Web. Form being more important than content...

He beats on one and one is there...

Jim Burke's Everybody Gets a Trophy Day

Foreseeing patterns of innovation... Weave a few patterns...

He's an optimist... We went to the moon... Several times...

Thomas Jay Peckish II on Top-Down Design

|

Top-down, Waterfall design is the technical equivalent of Scientific Creationism.
--Thomas Jay Peckish II

Peckish's Corollary to Linus's Law

|

Given enough fingers, all programs are brittle…
--Thomas Jay Peckish II

Eric Raymond's legedary open source screed, The Cathedral and the Bazaar, cites Linus's Law as: "Given enough eyeballs, all bugs are shallow"...

Peter Hatch on Marketing

|

If you spend 15 million dollars a month on marketing, you can sell dead dogs.
--Peter Hatch

Thomas Jay Peckish II on Team Size

|

The horrible truth: productivity is inversely proportional to team size.
--Peckish's First Law of Software Engineering

I think it has something to do with communication overhead. It may be most pronounced at 10**2. After that, inter-group firewalls intervene… To save Peckish's Law, you need to define team size as the actually number of people with whom you must coordinate/communicate.

Communication and decision-making dominate, I'm afraid. Negotiation rules the day. As team size increases, it becomes increasingly more useful not that you do the hard stuff cleverly, but that you do the easy stuff adequately/reliably…

My favorite team size is 10**0. Beyond that, it's all politics
--Thomas Jay Peckish II, on Team Size...

Thomas Jay Peckish on the Tragedy of the Commons

|

Millions await he or she whom can make the mediocre feel u>special...
--Thomas Jay Peckish II

Ellington on Bebop

|

Playing bop is like playing Scrabble with all the vowel missing.
--Duke Ellington, born 29 April 1899

Thomas Jay Peckish II on Relational Database Rows

|

As far as I am concerned, RDBMS rows are just objects that don't know how to behave...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Neural Networks

|

Neural Nets will eventually bring about true AI, but contemporary rule-based agents rely on distillations of our intelligence, and not their own...
--Thomas Jay Peckish II

A Trivial, Nearly Clerical Exercise

|

Those of you who are old enough to remember the era of 16-bit to 32-bit code conversion, especially in the Microsoft world, will recall that on the surface, it seemed like a trivial, nearly clerical exercise. In its own way, it seemed every bit as ridiculous as the Y2K problem. Yet, for many of the same reasons, it was an expensive and tedious chore…

Thomas Jay Peckish II on Creation 1.0

|

Programming is about sculpting memory in the same sense that Genesis was about throwing a few quarks together...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Chaos and Predictability

|

People are more complicated that the weather...
--Thomas Jay Peckish II

The Wright Stuff

|

Mechanization best serves mediocrity.
--Frank Lloyd Wright

Less is only more where more is no good.
--Frank Lloyd Wright

An architect's most useful tools are an eraser at the drafting board, and a wrecking bar at the site
--Frank Lloyd Wright

A doctor can bury his mistakes, but an architect can only advise his clients to plant vines.
--Frank Lloyd Wright

Space. The continual becoming: invisible fountain from which all rhythms flow and to which they must pass. Beyond time or infinity.
--Frank Lloyd Wright

I have been black and blue in some spot, somewhere, almost all my life from too intimate contacts with my own furniture." (1931)
--Frank Lloyd Wright

"Move the chair" -- Wright's response to a client who phoned him to complain of rain leaking through the roof of the house onto the dining table.
--Frank Lloyd Wright

I never design a building before I've seen the site and met the people who will be using it.
--Frank Lloyd Wright

Early in life, I had to choose between honest arrogance and hypocritical humility. I chose honest arrogance and have seen no occasion to change.
--Frank Lloyd Wright

Mud Made the Monkey, Memes Made the Man

|

Mud made the monkey, memes made the man...
--Thomas Jay Peckish II

Mud made Monkeys. Memes made Men. In the sense that the meme pool infuses us with a "spirit" of sorts, we are indeed unique among all creation.

The Logistics of Complexity

|

We can create complexity faster than we can communicate it. We're way out in front of our logistics train...
--Thomas Jay Peckish II

Cleveland on Current Events

|

I don't believe the American people want a gelding in the White House.
--Grover Cleveland

John Stuart Mill on Patterns

|

There is no reason that all human existence should be constructed on some one or some small number of patterns. If a person possesses any tolerable amount of common sense and experience, his own mode of laying out his existence is the best, not because it is the best in itself, but because it is his own mode. Human beings are not like sheep; and even sheep are not undistinguishably alike.
---John Stuart Mill

Bertand Russell Tidbits

|

Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.
--Bertrand Russell

An individual human existence should be like a river, small at first, narrowly confined within its banks, and rushing passionately past boulders and over waterfalls. Gradually the river grows wider, the banks recede, the waters flow more quietly, and in the end, without any visible break, they become merged in the sea, and painlessly lose their individual being. The man who, in his old age, can see his life in this way, will not suffer from the fear of death, since the things he cares for will continue... I should wish to die while still at work, knowing that others will carry on what I can no longer do, and content in the thought that what was possible has been done.
--Bertrand Russell

I Have Nothing to Declare But My Genius

|

Oscar Wilde on Strong Type Checking

Wilde, when, visiting America for the first time, was asked upon arriving at the New York Customs House if he had anything to declare, and is said to have replied: I have nothing to declare except my genius .
-–Oscar Fingal O’Flahertie Wills Wilde (1854-1900)

Wilde, is, of course, one Ireland's most gifted minters of colorful epigrams...

Keith Richards on Creativity

|

The Stones’ songs came spontaneously like an inspiration at a séance. The tunes arrived ‘en masse’ as if the Stones as songwriters were only a willing and open medium.
--Keith Richards, on Creativity, Rolling Stone, 5 May 1977, p. 51

Thomas Jay Peckish II on Open Source

|

Give away a thousand lines of source code to your competitor, and you may ruin your busininess. Give away a million lines, and you may ruin his...
--Thomas Jay Peckish II

Of Components and Analogies

|

On "components": Run-time instances, to me, are the correct analogues for physical "components."
--BF?

If this is the case, then shouldn't the call against prefab components be a call for prototype-based programming? Languages like Self where each instance is separately tailorable? Or, should this comparison between architecture and software make us suspicious of interdisciplinary comparisons in general?
--Somebody

Analogies, architectural or linguistic or otherwise, are helpful, but only up to a point. When used properly, they lend support and familiarity to our descriptions of our arcane, ephemeral coalitions and constellations of bits. If you push any of them too far, you can break them. It's easy to get sucked into the analogies, particularly since all we really have are puddles of ones and zeroes at the bottom. Yet, good analogies, and good names, make it possible to talk about what we build. A dataflow application built around reusable streaming components may remind us of the Pompidou Museum, as its form emerges from around those elements. As with a well-engineered locomotive, our assessment of its QWANness may revolve as much around how well it does its job, as the does around the aesthetics or craftsmanship of either the program that engenders it, or the process and objects that emerge when it is run.

For many kinds of programs, analogies like chefs following recipes, troops following orders, orchestras following scores, or troupes of actors following scripts all reflect the dynamic nature of the program/process relationship better that our building analogies. Indeed, Von Neumann's brother claims he got the idea for the stored-program computer from reading Bach's the Art of the Fugue. Might our cult embrace Paul Prudhome, Sun-Tzu, Bach, or the Bard as it has Alexander?
--BF

Controlling the Emergent Entity

|

At OOPSLA '97, Gregor Kiczales et al. discussed, among other things, an idea he referred to as Aspect-Oriented Programming, or AOP. They employed a faux conversational format, which at times seemed forced and a little contrived. The work struck me as potentially interesting, but premature. At least the level of fanfare exhibited for something as preliminary as this seemed unwarranted. He spoke of the difficulty of remodularizing to control the emergent entity. This in, turn, prompted the following quip:

If we can't remodularize to control the emergent entity, then what can we do, repolarize the main deflector dish to emit a tachyon pulse?
--Thomas Jay Peckish II

Thomas Jay Peckish II does Myers-Briggs

|
EI: 3 out of 10
Extrovert+----+----+----+----+----+----+----+----+----+----+Introvert
                        |
                       30%
SN: 15 out of 20
Sensation+----+----+----+----+----+----+----+----+----+----+iNtuition
                                              |
                                             75%
TF: 8 out of 20
Thinking +----+----+----+----+----+----+----+----+----+----+Feeling
                             |
                            40%
JP: 13 out of 20
Judging  +----+----+----+----+----+----+----+----+----+----+Perceiving
                                         |
                                        65%
Your Jungian Personality type is ENTP

Today's Hygienic Reverie

|

You can't build a pyramid (as in Giza, Pharaohs, etc.) using a late-bound methodology. You'd get a haphazard heap of rubble. Some tasks require planning. Some tasks are plannable. Which is the superset of the other?

The Big Abacus

| | Comments (1)

How can we worry about changing the world when 70% of us are building the big abacus that the man uses to count his money.
--Thomas Jay Peckish II. observing that business applications constitute most of the software market, and that rising to Christopher Alexander's challenge to change the world is not an easy thing to do...

Talking About What Works

|

By not talking talking about what works, Computer Scientists have ignored not only a broader audience, but a rich vein of raw material as well.
--BF, after traveling to Dayton for his first patterns course...

Mass-Producted Individuality

|

You know, the meme pool manipulates individuals. Are we it’s servants just as the phenotype is the survival machine of the gene? What I want to get at is the myth of individual originality… I’m increasingly becoming a believer in collective intelligence. Keeping an oar in the idea river is essentially to maintaining a healthy intellect.

Is this notion sour grapes on the part of the mediocre? Perhaps so… The idea of getting recognition for ideas like these drips with irony, which make them an amusing furrow to plow…

The Phantom Tollbooths

|

When will the tollbooths on the infobahn appear? My brother-in-law thinks it’s television, and that that’s how it will develop. I still think we need some pay-per-view channels, or some of us will have no means of “trading bits for pieces”… Fifty quatleus on the Earthling. What do you give away? Something cheap, one would think…

However, everything in the realm of bits is essentially expensive to develop, and very cheap to “produce” and disseminate. The marginal cost of additional copies is low, like seats on an airplane, or in a movie theatre, or viewers of a television broadcast…

Will netcasting channels be artificially made to be a precious resource? Certainly there are people who’d benefit from this.

There is some merit in the broadcasting analogy here… The movie studios and television networks have been in the business of charging for information for a long time…

We really will need verifiable identities on the net soon. People do know this… Dertzusos recognized on C-SPAN that anonymity is optional, if that’s the way we want it…

The Social Life of Documents

|

Ralph Johnson: Wow! I just read "The Social Life of Documents" by John Seely Brown and Paul Duguid at http://www.firstmonday.dk/issues/issue1/documents/index.html You might have to "login" first at http://www.firstmonday.dk

Boundary objects: things that connect one community to another; denziens of the interstitial space between communities. They ply the area between these communities.

Control: Getting people in other communities to speak your language.

Aphorisms for System Administrators

| | Comments (1)

If you don’t have a backup, you might as well delete it now.
--Thomas Jay Peckish II

Don't touch anything you unless you’ve got time to break it.
--Thomas Jay Peckish II

Software never heals.
--Thomas Jay Peckish II

If it ain’t been tested, it doesn’t work.
--Thomas Jay Peckish II

Baby Steps.
--Thomas Jay Peckish II

First, do no harm.
--Thomas Jay Peckish II

Do the best you can do, not the best you could do.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Java

|

These guys are making all the right compromises...
--Thomas Jay Peckish II, upon the occasion of Java's incorporation of inner classes, a flawed, but probably adequate substitute / excuse for closures...

Thomas Jay Peckish II on Programmers

|

Programmers are the handmaidens of change...
--Thomas Jay Peckish II

Pattern / Not a Pattern

|

Can you tell which of these are not official Gang ‘o’ Four™ Patterns? (from a hyper-caffeinated airplane ride):

  1. Accomodator
  2. Mutilator
  3. Wrapper
  4. Prognosticator
  5. Bill of Goods
  6. Walker
  7. Manifest
  8. Template Factory
  9. Chain of Custody
  10. Mutator
  11. Concrete Factory
  12. Accessor
  13. Chain of Misery
  14. Coordinator
  15. Trojan Horse
  16. Reactor
  17. Collaborator
  18. Callback Function
  19. Masquerade
  20. Abstract Class
  21. Collector
  22. Parasite
  23. Interloper
  24. Subject
  25. Forwarder
  26. Infiltrator
  27. Marshall
  28. Exterminator
  29. Mortician
  30. Bazaar
  31. Unified Method
  32. Component
  33. Registry
  34. Delegator

Listening to a really great guitar player play acoustic is like watching Michael Jordan play baseball...
--Thomas Jay Peckish II, on the merits of the electric guitar...

The Nature of the Site

|

An axiom: the solution to every problem is contained within itself. Its plan, form and character are determined by the nature of the site.
--Frank Lloyd Wright

The Fractal Model

|

The Fractal Model: What points do we have to make?

Reusable objects are the result of an evolutionary process that is quite distinct from that that produces traditional software.

Reusable objects result from a three-phase iterative process that unfolds throughout the system, at all levels, throughout the lifecycle, within and beyond individual applications. These phases are: prototyping, exploration, and consolidation.

This perspective is builds on earlier lifecycle perspectives, particularly Boehm's Spiral Model, but is unique because it recognizes that the lifecycles of individual classes and frameworks are distinct from the applications that spawn them.

This process has characteristics in common with natural evolutionary processes.

Contemporary OOA&D bears a much closer resemblance to traditional approaches than it does to this process.

An organization that wishes to produces reusable objects must be willing to deploy technical and managerial talent in a quite unconventional way. Front-loaded, waterfall-based approaches discourage evolution.

The disciplined reuse of object-oriented components, abstract classes, and frameworks stands in stark contrast to the casual reuse of conventional libraries and program skeletons.

Objects evolve as a result of successive refactorings. Languages differ in their suitability for refactoring, and better tools are needed for it.

Structure emerges as objects evolve. There is typically a progression from a casual "white-box" inheritance-based organization to a more mature and refined "black-box" component-based structure. Not all objects complete this journey.


An obvious but important observation: For any given problem, the optimal solution is not the general solution. This is not to say that general solutions that reveal themselves only as experience with multiple reapplications is gained are not much closer to optimal than initial conjectures.

Solutions based upon superficial analysis will hew closely to the surface structure of the problem. (For instance, recursive descent vs. LR(k) approaches).

Would a story about the landmarks in the problem and solution spaces diverging as the solution space becomes populated with more interesting objects be helpful?

There is more than an incidental correspondence between the expansionary phase and the high temperature phases in simulated annealing.


The observation that the result of our evolutionary process, may, in the end, shed most of its object-oriented baggage should support, and not undermine our tale...

The Raw Materials for Software

|

The raw materials for software, caffeine and sugar, are quite inexpensive. Labor costs, however, are quite another matter.
--Thomas Jay Peckish II

Indeed, it has long concerned me that the coffee and sugar exporting nations, were they so inclined, could do to the American software industry what OPEC did to the overall economy with its crude oil embargo during the early seventies.

A Good Example

|

Mark Twain and Friends Few things are harder to put up with than the annoyance of a good example.
--Mark Twain

Pattern Refactoring

|
Here's how my refactoring of the creational
patterns looks:

	Factory (*?)
		In-House*
			Do-It-Yourself (explicit new/constructor call)*
				(might be called "kiretsu")
			Subordinate (Factory Method) delegate to a dept., etc.
		Outsourcing*
			Simple Outside Supplier (the component indirection)*
				Matched Sets (current Abstract Factory)
				Builder

	Manufacturing Strategies (*?)
		Crafting/Construction (normal new:/construction)*
		Knockoff (clone a Prototype)
			Fully Stocked (comes equipped with hard to *
				recompute information like fonts)
		Inventory (pull one off the shelf)*
		Recycling (reuse a good-as-new one off the shelf)*
		UniqueObjects*
			Unbounded (symbols)
			Bounded (page table entries)
			Singeltons (metaclass)

Issues marked with (*) are not adequately addressed in the current
chapter.  More factoring could probably be done, and there
are probably more items one could think off too.

Note that the CREATIONAL PATTERNS address manufacturing/factory concerns.
The AGGREGATION patterns might concern outsourcing services...

Thomas Jay Peckish II on Necessity

|

A good sign that a programming language feature is necessary is when a lot of people go to a good deal of trouble to revinvent it in cumbersome ways on top of existing languages...
--Thomas Jay Peckish II

OOPSLA '86 Reflections

| | Comments (1)

OOPSLA 1986 Zeitgeist: Objects are good for: Nice User Interfaces / Disributed Processing


An irony: OOP does a much better job of allowing one to solve "Pascal-ish" problems than does Pascal.

People like "readable" papers. (People evidently thought these were "readable")...

Distribution of library materials is important. Someone called Click Art the only successful attempt so far at distributing a library of anything...


Randy Smith's (XEROX) Alternate Reality Kit was perhaps the single most impressive thing I saw at OOPSLA '86.

The Most Impressive List:

  • Danny Bobrow
  • Henry Lieberman
  • Peter Deutsch
  • Alan Borning

I was taken with Bobrow's notion of Linguistic Imperialism.

Both Kristen Nygaard and Alan Kay gave good talks.

Peter Deutch observed that it is necessary for us to borrow from the graphic arts (where have I heard this before). This was the other impressive thing.

Mark Sherman (CMU-ITC) gave a convincing testimonial for MacApp.

Other notions propounded: OOP isn't important; OO Evnironments are.

Parallelism / Concurrency was underrepresented.


It's one thing to rearrange things, but a new idea, that's Christmas.
--Bob Weir

Further, it is impossible to hoarde knowledge. Don't be afraid to be wrong now and then, because you will be anyway. The alternative is that there is no correction in the loop.

Trust thy judgement, for thou art stuck with it in any case, and it is more comfortable to do so.
--Thomas Jay Peckish II


Best Exchange:

Kay: Good ideas don't always scale well...

Lieberman: So what do we do? Just scale the bad ones?


Tim O'Shea is quite funny.

A lesson from OOPSLA: The "big boys" skim nearly everything, and read only things in their specialty...


Software Maintenance: People percieve maintainers sort of as software busboys; cleaning up after the designer and analyst have eaten. Academic work in this area seems to have been retarded by the fact that people seem reluctant to become the world's most famous busboy...
--Thomas Jay Peckish II

On Learning Smalltalk-80

|

A Fundamental Observation: there will be no substitute for just plain knowing how everything works. Once we get to that point, the rest will be simple.

It may be the case that it is necessary to write bad programs before one can write good ones...

"Teams" and Protocols in Smalltalk-80

|

One starts to consider the effect of analyzing groups of cooperating objects, such as the collection hierarchy, or the MVC stuff, relative to outside objects.

Such groups could be:

  • interactively defined
  • informal
  • dynamic

This gets at the problem that work is done by informal "teams" of objects that taken together constitute a holon or discrete whole, and present a coherent subsect of their total protocol ot the world.

Protocols could be formalized as objects distinct from other Organizations in the system.

The Languid Pace of Nineteenth Century Correspondence

|

One of the things that attracted me to the idea of using a weblog for technical discourse, as compared with a news group or mailing list, is that the pressure to concoct an immediate, near-realtime contribution to a discussion is nowhere near as acute. Oh, sure the expectation that a reply would be warranted is still there, but somehow it feels more manageable. Correspondence can take on the same less hurried, more languid pace of correspondence among pre-electronic men-and-women-of-letters, if you will. "Sir Percival, I received your missive of 24 September 1854 with alacrity and delight, and hastened to my inkwell to craft a worthy retort…". Or some Merchant Ivory sort of response like that.

I'm afraid that despite having over twenty years of USENET and Internet history under my belt, I have remained, for the most part, something of an electronic wallflower. A lurker. A spectator. Pity that. Perhaps.

There is something comforting about not pushing one's opinions on people. The fact that they must be sought out, pulled, makes one feel less inhibited about make them (quasi-?, semi-?) public. In terms of pure exhibitionism, posting to a newsgroup feels a bit like nailing one's theses to the door of the castle church sometimes. 'Blogging feels more like sitting at home on the couch with the shades up and the curtains open, secure in the knowledge that no one is watching anyway…

Weblogs are little like scrapbooks too. As much so as diaries…

Of course, the one problem with a languid pace of correspondence is that it is easy to put off one's reply. Paul Graham will write a nice piece on procrastination about one hundred and fifty-one years from now…


Procrastination is what has made me everything that I ain't…
--Sir Thomas Jay Peckish the Elder

Find recent content on the main index or look in the archives to find all content.

Tag Cloud

Pages

November 2009

Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

Brian's Links

Homepages

Diarists

Brian Marick
Martin Fowler
Ralph Johnson (That's Completely Bogus!)
Dave Thomas (The Pragmatist)
Glenn Vanderberg
Patrick Logan
Lambda the Ultimate
Joshua Allen (Better Living Through Software)
Mariann Unterluggauer (Motz)
James O. Coplien
Eugene Wallingford
Blaine Buxton
Nickieben Bourbaki
Travis Griggs
Ivan Moore
Mike Mikinkovich
Superboy & Ward
Rebecca Wirfs-Brock
Nat Pryce
Tim Ottinger
Forrest Chang
Gregor Hohpe
Sam Gentile
Robert Hanson
Chad Fowler
Jonathan Edwards
James Robertson
Bruce Eckel
Andrew Stopford
Tully Monster
Grady Booch
Dave's Ramblings
ShiningRay
Solveig Haugland
Dave Hoover
But Uncle Bob
Doug Schaefer
Smallthought
Ted Leung
blog.talbot.ws
The Farm
Ian Clysdale (Random)
Gilad Bracha
Keith Devens
Urbana-Champaign Techophiles
Stefan Lauterer (Tinytalk)
Planet Python
Chris Koenig
Peter Lindberg (Tesugen)
Jason Yip
Sean McGrath
Jeff Erickson (Ernie's 3D Pancakes)
Steve Freeman (Mock Turtle Soup)
hakank (komplexitetemergens)
Deciduous Ponderings
Take One Onion
Project.ioi.st
Ken Schreiner
Hen so.com
Michael Mahemoff (Software as She's Developed)
Tootruthy
Champaign Media Watch
Jason E. Sweat's Weblog (PHP, etc.)
Raymond Lewallen (Code Better)
Keith Ray
Raymond Chen (The Old New Thing)
Neil Gafter
Joe Walnes
Ivan Moore
LD/dazza (Lost in La Manche)
Scott Rosenberg (Wordyard)
Dave Stagner (Sit down and shut up!)
Walter Korman (Lemurware)
Munawar Hafiz (The space between)
Rafael de F. Ferreira (Rafael Rambling)
Mike Hostetler (Where Are The Wise Men)
Jordan Magazine
Andriy Solovey (Software Creation)
Mike Griffiths (Ideas and essays on code development)
Ashish Shiraj (Ashish Kumar -- Software Test Engineer)
Nathaniel T. Schutta (Just a thought...)
Lynn Cherny (Ghostweather R&D Blog)
Dominique Boucher (The Scheme Way)

Powered by Movable Type 4.21-en