Login
Register
2007

Saturday, December 22, 2007, posted by @ 9:21 PM
Last Blog Of The Year
As a number of you have reported via email, the Handbook site is still acting funky since its rehosting: login/registration redirects you to the wrong place, some resources are missing, and in general it just behaves tentatively.

Sincerely apologies for the inconvenience: my sysadmin (me) has been thoroughly scolded. His people have reported to my people that he'll have things thriving again after the first of the year.

Quote of the day:

New Year's eve is like every other night; there is no pause in the march of the universe, no breathless moment of silence among created things that the passage of another twelve months may be noted; and yet no man has quite the same thoughts this evening that come with the coming of darkness on other nights.
Hamilton Mabie


Tuesday, November 27, 2007, posted by @ 10:59 AM
The Life Of A Sysadmin
Two weeks ago, on the 12th of November, I began a process that I though was relatively simple: move my network from one block of IP addresses on an old T1 to a different block of addresses on a new T1.

Silly me. Simple indeed.

I won't mention the name of my circuit provider, but let us just say that it took about 10 days for them to make the DNS changes: one day to properly change the forward records (they got only one of them right, seven of them wrong, they fouled up the reverse mappings, and they forgot the MX record for mail forwarding ) and the remaining nine days to fix the mistakes they made. In the midst of all that - since I was dead in the water anyway - I upgraded my server (a Mac server running Mac OS X Server) to Leopard and that required some fiddling, since Apache and Tomcat were new, less forgiving versions. Anyway, late last night, the planets aligned and I'm back on the grid.

Why the heck don't I outsource my hosting? The basic reason is that I never want to get so far away from the underpinnings of this technology that I lose touch with the gnarly bits that contribute to the friction of computing, friction that is part of the daily life of those in the trenches who keep our systems alive. The software stuff that we deal with is complex enough; the hardware stuff that's at the bottom of the stack has its own complexity and every time it makes itself known, I'm humbled that this stuff works at all, and I admire its resilience in the face of such fragility.

So apologies for any inconvenience that my site being down may have caused you.

Quote of the day:

How many sysadmins does it take to change a light bulb? The bulb was working before. What did you do to break it?
Sysadmin Humor


Wednesday, November 14, 2007, posted by @ 8:19 AM
Unbuilding Cities
Unbuilding Cities is a delightful new book by Anique Hommels, in which the author provides a case study for three urban renovation projects. As she observes in the book, "Despite the fact that cities are considered to be dynamic and flexible spaces - never finished but always under construction - it is very difficult to change existing urban structures; they become fixed, obdurate, securely anchored in their own histories as well as in the histories of their surroundings."

Change the word "cities" to "software" and her observation still holds true.

Quote of the day:

So long as a person is capable of self-renewal, they are a living being.
Henri Frederick Amiel


Sunday, November 4, 2007, posted by @ 8:24 AM
Algorithmic Morality
Robert Cringely's latest column makes for some very interesting reading. In it, he scolds companies that confuse "algorithmic efficiency with moral, ethical, or even business correctness" and then goes on to observe that "sometimes good algorithms do bad things." Cringely also observes that "since algorithms can't be held responsible like the person who wrote or authorized the use of the algorithm ought to be" it is offensive for a company to shroud its accountability in the defense that the algorithm made me do it.

Algorithms are morally neutral. How algorithms are created and applied is a very human - and therefore - very moral - issue.

Quote of the day:

The ancient Romans had a tradition: whenever one of their engineers constructed an arch, as the capstone was hoisted into place, the engineer assumed accountability for his work in the most profound way possible: he stood under the arch.
Michael Armstrong


Thursday, October 25, 2007, posted by @ 8:27 PM
Morality Redux
My interview with Charles Cooper continues to have life, and the dialog continues with Joyce Carpenter of Computerworld.

Quote of the day:

Morality is not really the doctrine of how to make ourselves happy but of how we are to be worthy of happiness.
Immanuel Kant


Tuesday, October 23, 2007, posted by @ 1:29 PM
Debating The Morality Behind Software Development
Last week, while in San Francisco, I was interviewed by Charles Cooper regarding morality and software development. We had a wonderfully lively discussion; I so very appreciate Charles' interest in the subject. While some of the comments posted in reaction to the interview accused him of being belligerent, I never saw it that way: this is an important and little-discussed subject, and Charles asked me some good, hard questions. Thank you, Charles.

Not surprisingly, reaction to my interview was polarized; this is an emotional topic. That being said, this reader did grok my point.

Quote of the day:

Reverence for life affords me my fundamental principle of morality, namely that good consists in maintaining, assisting, and enhancing life, and that to destroy, to harm, or to hinder life is evil.
Albert Schweitzer


Sunday, October 7, 2007, posted by @ 3:00 PM
NUMB3RS, Crime, And The UML
Earlier this year, I'd blogged about the February 23, 2007 episode of the CBS series NUMB3RS. In that episode, titled One Hour, Charlie (the genius mathematician) solves a crime using the Unified Modeling Language. You have to watch it to understand how he did so, but suffice it to say that the solution hinges on the use of a state machine.

Out of the blue, I received an email from Darcy Jouan, husband of Christina Davis, a senior vice president at CBS. In a wonderful random act of kindness, Darcy and Christine just sent me a copy of the script, signed by all the cast members. I still have my nanosecond given to me by Grace Murray Hopper, I've even been written in as a character in a murder mystery, but this script is definitely is at the top of my memorabilia. Thank you, Darcy and Christine.

And now, everybody reading this, please direct your television/TIVO/browser to CBS and watch every show for the next 168 hours and support every one of their advertisers.

Please note, however, that my statement above does not necessarily constitute an endorsement of CBS by IBM, but rather is my personal opinion and hence does not reflect that of anyone else, living or dead or yet to be conceived, living in this or any other time-space continuum. :-)

Quote of the day:

Deeds of kindness are equal in weight to all the commandments.
The Talmud


Thursday, September 27, 2007, posted by @ 6:06 AM
Mayo Clinic
I'm back from the Mayo Clinic where I underwent another round of tests: full blood work, an echocardiogram,, and a cranial MRI. The good news is that, a little more than a year after my open heart surgery to repair the aneurysm in my ascending aorta, I have a brain. Oh, and my blood chemistry is still pure as the driven snow, my aortic graft is in fine shape, and my heart is doing well.

While in the area, I had a couple of customer meetings and also gave a talk at the University of Minnesota, which fellow blogger and ubergeek Wade Olson talked about here.

Quote of the day:

I used to be Snow White but then I drifted.
Mae West


Friday, September 21, 2007, posted by @ 5:34 PM
Randy Pausch
As noted in Slashdot, Randy Pausch offers his last lecture. Randy, a professor at CMU is the creator of Alice.

Randy is terminally ill; his lecture is a brilliant and touching presentation.

Quote of the day:

We found that when we targeted Alice as a storytelling vehicle, girls were three times as likely to be engaged and motivated to write computer software, as opposed to just moving 3-D characters around.
Randy Pausch


Thursday, September 20, 2007, posted by @ 3:39 PM
Brian Lyons
I'm late in posting this due to my travel to Europe, but by now many of you have heard of the untimely death of Brian Lyons, CEO and CTO of Number Six. I've posted a tribute to Brian here.

Quote of the day:

The day which we fear as our last is but the birthday of eternity.
Seneca


Wednesday, September 19, 2007, posted by @ 9:38 AM
Fred Brooks
Between the end of August and the middle of November, I'll be home only about 8 days (and thus my blogging will be sporadic). I'm just back from several weeks in Europe, where among other things I keynoted the Rational Software Development Conference for the UK and Brazil (the later of which I presented from London via Second Life). I also conducted a few customer visits as well as continued my Handbook archeological dig of the Jubilee line of the London Underground. The folks with the LU have been most gracious in opening their doors to me, and for this I thank them heartily.

The highlight of my trip was the day i spent with Fred Brooks. Fred is living near Cambridge, on sabbatical from the University of North Carolina at Chapel Hill in order to work on his next book, tentatively titled The Design of Design. I visited Fred on behalf of the Computer History Museum as part of their oral history series. Together with Gardner Hendire as videographer, I've conducted three such histories for the Museum and am planning on doing several more for the software side of things.

Fred is an incredibly engaging human. His technical story has been told many times, but I was delighted to draw from him his personal side: how he got his first Macintosh (directly from Steve Jobs), his witness of the final meeting between Eisenhower and Churchill, his stories of many other computer pioneers (Fred reports that he still has his nanosecond from Grace Murray Hopper), how he became a Christian. Fred's wife, Nancy, was a most gracious host. One of Fred's daughters and her husband were there as well, together with a few of their children who know Fred simply as "grandfather." Fred, by the way, is teaching them Latin.

Quote of the day:

There is no silver bullet.
Fred Brooks


Thursday, August 23, 2007, posted by @ 9:46 PM
It's Alive!
The Handbook site has been down the past few days. I'd installed the latest security patch which sadly broke Tomcat but otherwise left the surrounding elements on my server intact. All my usual tricks failed and even multiple calls to Apple support had them scratching their heads. In the end, I rolled back to an earlier version of Tomcat and lo! life is good once again.

Apologies for the outage. Given that sysadim is just one of many hats I wear and given that I had lots of other hats I had to wear the past few days, the site sat moribund for about 48 hours. That annoyed that $%@#(*# out of me but it is a natural consequence of eating my own dog food: it keeps me humble and it keeps me close to the metal, but I can't always be on top of it.

Quote of the day:

Administration is hours of boredom interrupted by moments of sheer panic.
Freshmeat


Monday, August 20, 2007, posted by @ 12:12 AM
Distributed Work
I'll be in London in a few weeks but need to give a presentation in Brazil at the same time, so I'll be leveraging Second Life and Skype again to be in multiple places at once. Ain't technology great; it's certainly a force multiplier for me.

Quote of the day:

Technology made large populations possible; large populations now make technology indispensable.
Joseph Wood Krutch


Wednesday, August 8, 2007, posted by @ 9:26 AM
In The Studio
Much of my work life seems to follow a pattern of punctuated equilibrium: there are periods of relative calm and stability, but then times of state-changing chaos (although it seems that the periods of relative calm are getting shorter and shorter in time). At this moment, I'm in one such disruptive place, as I'm in the process of pumping out several vcasts and podcasts. I just finished the remote taping of a 45 minute panel for a forthcoming event (then I had to digitize the video and ftp it...do you have any idea how long it takes to ftp a 10 gig file to a slow server?). I also just recorded a teaser for the UK IBM Rational Software Development Conference and before the end of the week I have two more 20 minute videos to record and edit.

I have the production facilities of a small country here :-) and so technology-wise, I'm covered (I primarily used Apple's Final Cut Pro for editing, BTW), so it's largely a matter of the costs of time. I have no roadies, I have no groupies, I have not even an admin assistant, so I try to clump this studio work such that I'm not constantly bringing up then tearing down cameras and lights and such.

Anyway, I'm not kvetching; this really is a lot of fun,

Quote of the day:

All right, Mr. DeMille, I'm ready for my close up.
Gloria Swanson


Tuesday, August 7, 2007, posted by @ 4:16 PM
Time Flies Like An Arrow
"Time flies" like an arrow (those pesky little bugs, unstuck in time, enjoy the company of arrows); time flies (verb, transitive) like (simile) an arrow. Ah, much better. The value of a well-parsed sentence.

How did it get to be August already? I have been heads down in a number of tasks, not the least of which is research for the Handbook and combatting email fatigue. This week, I've been consumed with producing a number of videos for the forthcoming series of IBM Rational Software Development Conferences being held in various places around the world. I'll be live at the event in the UK, to be held on September 11th through 12th at IBM Bedfont Lakes (come join me if you are in the area).

Quote of the day:

Time flies like a arrow. Fruit flies like a banana.
Groucho Marx


Saturday, July 28, 2007, posted by @ 12:45 AM
Busy Busy Busy
A dear colleague, Karen, emailed me recently, expressing concern that I'd not blogged for over a month. Fear not: I'm still not dead yet but rather just very very busy. My travel schedule is back to (actually above) my pre-surgery levels, and as I look out to the rest of the year, I've got one extended international trip and four major domestic trips already on the books, not to mention the other inevitable random events that tend to pop up. I've been slogging away on a variety of internal activities vis a vis collaboration and architecture, I've conducted several more lectures in Second Life, and I've been pumping out a few vcasts and podcasts. This week, I've retreated to my sanctuary and, surrounded by over 40 books on software architecture, have been slogging through the literature.

Quote of the day:

This is the most magnificent, balmy atmosphere in the world - ought to take dead men out of grave.
Mark Twain


Tuesday, June 19, 2007, posted by @ 5:12 PM
My 15 Minutes Of Fame
I'm back from my latest travels. I was unable to attend the 10th IBM Rational Software Development Conference in person, although I was there virtually. Speaking of which, I appeared in an article in the Wall Street Journal (although it's an older pic.; my avatar currently sports a nice crop of flexihair).

Quote of the day:

Information is alienated experience.
Jaron Lanier


Sunday, June 3, 2007, posted by @ 2:08 PM
Five Hundred Twenty-Five Thousand Six Hundred Minutes
Thursday, May 31st, marked the one year anniversary of my open heart surgery at the Mayo clinic. That morning, one year ago, I was being cut open; that evening, one year ago, I was blogging from the ICU. Now here I am, one year later, fully recovered, far away from the danger of dying from this defect, and actually in much better health primarily because my heart is now operating more efficiently since my aortic valve is back to a normal shape.

Thanks again to all my friends and loved ones who supported me during my recovery. The physical recovery was hard but the emotional and spiritual recovery was harder yet. Happily, that is all behind me now. Life is short, and I have many more moments to enjoy before this part of my journey draws to a close.

Quote of the day:

She said that she usually cried at least once each day not because she was sad but because the world was so beautiful and life was so short.
Brian Andreas


Tuesday, May 29, 2007, posted by @ 8:21 PM
Yahoo
Last week, I spent some time with the folks at Yahoo where, among other things, I gave an open lecture to their engineers.

Quote of the day:

When audiences come to see us authors lecture, it is largely in the hope that we'll be funnier to look at than to read.
Sinclair Lewis


Sunday, May 27, 2007, posted by @ 3:35 PM
Power As A Limiting Factor
The interplay of power and heat have long been limiting factors in the design of chips. Tens of millions of transistors slammed together throw off a lot of heat, and too much heat will destroy the circuits themselves. Reducing the voltage that drives a chip helps, but only to a point because at levels that are too low, noise intrudes making it impossible to reliably distinguish 0 and 1 states. Lots of work goes therefore goes into the use of exotic materials and geometries, making chip design far more than just a problem of logical circuit engineering.

The same problems of power and heat appear to be emerging as limiting factors in the design of large scale web-centric systems. Scaling up or scaling out from a logical perspective involves adding more servers, but again only to a point because tens of thousands of servers will eat prodigious amounts of power and in turn cast off considerable heat. Thus, it's no surprise the Google is building many of its new centers near rivers, where there exists the promise of cheap electricity and relatively free cooling. However, the costs of energy are not that elastic: for small systems, one can largely ignore the power bills, but there comes a threshold one crosses where power and heat at the macro level become part of the systems design problem. Adding a few thousand more servers might seem like the right logical thing to do, but it may be physically and/or economically impractical.

Software developers have gotten away with being sloppy because of the abundance and rate of growth of compute cycles. However, the problems of large numbers start to intrude: just as power and heat become factors in the presence of tens of millions of transistors, power and heat become architectural considerations in the presence of teraflops of computation and petraflops of storage.

Quote of the day:

If you can't stand the heat, get out of the kitchen.
Harry Truman


Monday, May 21, 2007, posted by @ 6:41 AM
$1 Million By The End Of Middle School
Slashdot is covering this story at VentureBeat about the CEO of a startup named Elementeo. The CEO, by the way, is just 13 years old, and he's more articulate about his work than many people I know who are multiples of his age. I was particularly taken by his business financial goal of making $1 million by the end of business school.

While life (and business) is far more than making obscene piles of money and while I hope that Mr. Samar takes the time to enjoy being a kid and to grow into a rich and balanced life, it is quite uplifting to see his passion for his work.

Quote of the day - actually, three of them, because there are so many good ones germane to this posting:

In America the young are always ready to give to those who are older than themselves the full benefits of their inexperience.
Oscar Wilde

Work as if you were to live a hundred years, pray as if you were to die tomorrow.
Benjamin Franklin

The pursuit of truth and beauty is a sphere of activity in which we are permitted to remain children all our lives.
Albert Einstein


Friday, May 18, 2007, posted by @ 9:01 AM
OOAD Third Edition
At long last, the third edition of Object-Oriented Analysis and Design with Applications is in print.

Robert Maksimchuk, Michael Engle, Bobbi Young, Jim Conallen, and Kelli Houston deserve all the credit. These folks are the authors of this revision, and I am deeply indebted to them for their dedication and fine work over the life of this project. Thanks also go to my long-suffering editors at Addison-Wesley who have exhibited the patience of Job and the encouragement of a varsity pep squad after a round of triple shot espressos. This third edition brings my original work up to date with UML 2.0, but also provides specific guidance for modeling across the lifecycle, team organization, and the fundamentals of the object model.

Quote of the day:

The research rat of the future allows experimentation without manipulation of the real world. This is the cutting edge of modeling technology.
John Spencer


Friday, May 11, 2007, posted by @ 9:34 AM
Microsoft And Virtual Worlds
Offering a fair and balanced point of view, check out this clip from the Microsoft Visual Studio Team System folks.

Quote of the day:

We're meeting in conference room G, but there's still blood in there from the last meeting.
Overheard In New York


Friday, May 11, 2007, posted by @ 8:19 AM
IBM In Second Life
And you thought IBM had no sense of humor. Check out this video.

Quote of the day:

As Hiro approaches the Street, he sees two young couples, probably using their parents' computers for a double date in the Metaverse, climbing down out of Port Zero, which is the local port of entry and monorail stop. He is not seeing real people, of course. This is all a part of the moving illustration drawn by his computer according to the specifications coming down the fiber-optic cable. The people are pieces of software called avatars.
Neal Stephenson


Thursday, May 10, 2007, posted by @ 9:11 AM
Travels
Alas, I've not made the time to blog for several weeks, as I've been traveling extensively. I just returned from New York City, before that I was in the San Francisco bay area, and in a little over a week I'll be back in the bay. I have more requests to travel than I could possibly accommodate in a lifetime, and so it is a very real challenge for me to balance my schedule. On the average I receive two to three requests to travel every day, and I can only say yes to a very few of them. Travel that advances my work on the Handbook comes highest on the list, customer work is up there too (as long as it's for helping a customer materially, for I'm not nor ever will be a sales guy) , and offers to go to new and interesting places get a slightly higher priority as well. Problem is, that's the nature of most of my requests, and so I have to made hard calls daily. Mind you, I'm not complaining - this really is a blessed problem to have - but I know I have to disappoint many who would like me to drop in, and I simply cannot. Speaking of interesting places, I'm currently working to set a time to interview Fred Brooks on behalf of the Computer History Museum and am also trying to sort out my international travel for the year: the UK, India, and China are vying for my attention right now.

Quote of the day:

Perhaps travel cannot prevent bigotry, but by demonstrating that all peoples cry, laugh, eat, worry, and die, it can introduce the idea that if we try and understand each other, we may even become friends.
Maya Angelou


Monday, April 9, 2007, posted by @ 2:21 PM
Godspeed
Charles Simonyi has just docked at the international space station. Charles, among many other things, is the prime mover of Microsoft Word. I've had the pleasure of meeting with Charles in the context of his work at Intentional.

My graduating class at USAFA produced a number of astronauts, including Tom Jones who conducted a number of spacewalks to assemble the very station where Charles will spend his time.

Quote of the day:

For small creatures such as we the vastness is bearable only through love.
Carl Sagan


Monday, April 2, 2007, posted by @ 7:12 AM
Remembrance Of Things Past
Call me Ishmael.

Sorry, wrong literary allusion. Call me strange, then. I absolutely love to read. For me it's pretty much the most fun I can have with my clothes on. Although I know it annoys my friends, I often toss out some random quote or an obscure phrase in the middle of a conversation. One of the genres I love to read include books of quotations, and recently I've been reading Cohen and Major's History of Quotations, a collection that organizes its contents chronologically. There's one passage that took my breath away because it captures what I'm trying to do with the Handbook.

Quote of the day:

I write in the hope of thereby preserving from decay the remembrance of what has been done.
Herodotus


Friday, March 23, 2007, posted by @ 5:06 PM
Better Than Life
I'm a rabid fan of Red Dwarf. I was first introduced to this cult hit, not by the television series, but by the two books by Grant Naylor, Red Dwarf and its sequel Better Than Life. As Wikipedia explains, "BTL is the name of a virtual reality game engineered to pander to the player's most intimate fantasies. ... The danger of the game is that once the user starts to play, the game actually makes them forget they actually started to play, so they believe that they are still in reality."

Ok, now let's talk about Second Life.

In many ways, SL is BTL. Wander the streets of that virtual world and you will indeed find people who have created a very full alternate reality for themselves. The implications of that fact is far beyond the scope of my expertise, but in the short time I've been inworld, I have encountered people who cannot walk in RL but can fly in SL and thus are made more free, people who have never left their country of origin but now travel the virtual world daily, people who have dreams and fantasies they could never carry out in RL but can do so without material consequence in SL. There is avarice and evil and intrigue to be found in SL - just as it is in RL - but there is also much that is noble and good and genuine and beautiful there as well - also as it is in RL. Is SL and its equivalents a passing fancy? I think not. I have seen the future, and it is virtual.

While preparing for some upcoming work in SL, I soon came across Chuck Hamilton, an IBMer who has been at the center of gravity of much of IBMs presence inworld. I was stunned to learn from Chuck that, late last year, there were only 325 IBM residents of SL but today there are now over 4,000. Today also IBM owns 22 islands in SL, and there are 36 more on order. For IBM, SL is big business, and a purposeful one at that. Chuck - inworld as Longg Weeks and I as Alem Theas - recently gave me a tour of these virtual IBM facilities, and pointed out that they are not just for fun, but have been used for a number of relevant business activities. Chuck highlights some of this work at MeetingsNet and Fast Company. This effort is very much on Sam's agenda, as noted in this report detailing IBM's investment in virtual worlds.

Want to learn more about IBM's work inworld? Read this, this, this, and this. But, don't miss this, this, this, this, and this.

But wait, there's more. Check out here, here, and here. Whew. And you thought IBM was all about pocket protectors and ties.

Quote of the day:

Rimmer: "Do you think it's because the sub-space conduits have locked with the transponder calibrations and caused a major tachyon surge that has overloaded the time matrix?"
Kryten: "Ah, no, sir. I've just been jabbing it too hard."
Red Dwarf


Friday, March 23, 2007, posted by @ 1:22 PM
Excellence In Programming
This week, at SD West, I received the Dr. Dobb's Journal Excellence in Programming Award. Previous winners include Bruce Schneier, Linus Torvalds, James Gosling, Erich Gamma, Guido van Rossum, Jon Bentley, Anders Hejlsberg, P. J. Plauger, and Guy Steele. I am very humbled to be counted in this group.

I wasn't able to attend the awards ceremony in real life, so this part of the awards ceremony was done in Second Life. If you happen to be inworld, I'm Alem Theas, so feel free to im me there.

Quote of the day:

Democritus maintains that there can be no great poet without a spite of madness.
Cicero


Thursday, March 22, 2007, posted by @ 11:25 AM
Software Risks
Peter Neumann moderates the ACM forum on risks to the public in computers and related systems. This forum offers some code-curdling stories that may make you want to run away to a remote island, far, far away from anything with a transistor in it.

In the spirit of Peter's work, one of my blog readers sent me this story about the (non fatal) crash of an F22, a $133+ million dollar loss due to the failure of the flight control system after a brief power hit. If you've never read a military aircraft accident report, this one makes for an interesting bedtime story. This same reader told me of a more recent event, in February of this year, when a squadron of fighters passed over the international date line, an event that, in his words, "hosed the navigation software" and required that they turn around and return to base, following the fuel tanker to guide them (since navigation systems we no longer functioning).

Quote of the day:

Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do.
Chris Mason


Monday, March 19, 2007, posted by @ 11:12 PM
John Backus
Last fall, I had the extreme pleasure of interviewing John Backus on behalf of the Computer History Museum. John was a gracious, engaging, and brilliant man.

I am sad to report that John passed away at his home in Oregon last Saturday.

Quote of the day:

Convention languages are basically high-level, complex versions of the von Neumann computer. Although I refer to conventional languages as "von Neumann languages" to take note of the origin and style, I do not, of course, blame the great mathematician for their complexity. In fact, some might say that I bear some responsbility for that problem.
John Backus


Monday, March 19, 2007, posted by @ 4:33 PM
Identity Crisis
In preparing for my first virtual lecture in Second Life, I've experienced some deep identity issues that will take years of therapy to unravel.

This is a short story, but it takes a long time to tell it, so I'll just give you a short version of the short story. I created a Second Life avatar (call it/him/her/me AM for now). My IBM colleagues in Europe created a shape/skin/clothing package that looks frighteningly like me. I imported the outfit and put it on. AM now projects Grady in the virtual world. So far, so good.

But wait: the SL servers undergo a major upgrade. Login for AM fails, because of problems in converting my inventory to the new Second Life database. Messages to Second Life support go unanswered for a week and the time for my event rapidly approaches. In desperation, I create a new Second Life avatar (call it/him/her/me AM'). I login as AM', have my IBM friends send me the Grady shape/skin/clothing package a second tim, I import it and put it on: huzzah! for AM' now projects Grady in the virtual world. Clearly the problem lay in the Second Life database conversion mechanisms, over which I have no control.

So, I now "live" in a virtual world in two places: as AM and AM'. To confuse matters more, I created the AM avatar as a male and the AM' avatar as a female (don't ask, that's a really long story that takes a really long time to tell). Ergo, I am both identity- as well as gender-confused in my virtual life. If you encounter my virtual self, you'll see me as either the female AM' (for now) or the male AM (when support finally fixes their conversion bug).

I need to sit down for a moment, my very real world is making my head spin.

Quote of the day:

Virtual Reality: When Reality is not enough.
Michael Crichton


Monday, March 19, 2007, posted by @ 8:37 AM
Patents Gone Wild
Fellow IBMer Jim Conallen pointed me to this report which indicates that the linked list data structure has been patented. A quick search at the USPTO verifies that this claim is real: the abstract for this patent may be found here. The patent was filed on September 26, 2002, the inventor being Ming-Jen Wang of LSI Logic Corporation, and subsequently US Patent 7028023 was granted last year, on April 11th, 2006.

I absolutely respect every company's and individual's right to aggressively pursue the protection of their intellectual property. IMHO, however, this patent seems to me to overreach: patenting something that seems a) patently obvious and b) a manifestation of prior art does not, IMHO, serve the industry at all. Who at the USPTO reviewed and accepted this patent, one wonders?

Quote of the day:

Sell not virtue to purchase wealth, nor liberty to purchase power.
Benjamin Franklin


Thursday, March 15, 2007, posted by @ 4:22 PM
My Virtual Life
In a couple of weeks, my virtual self will be giving a virtual lecture in the virtual world of Second Life. Virtual space will be limited, so register soon at this site.

Quote of the day:

At least I have chicken.
Leeroy Jenkins


Monday, March 12, 2007, posted by @ 8:57 AM
Alice
I'm back from Kentucky. I had a delightful time at SIGCSE, where 1,300 educators were present. There is much going on in this community to commend: the ACM/IEEE Computing Curricula and its recommendations for undergraduate and even K to 12 classes is fascinating reading. Another wonderful development is Alice which seems to really be hitting its stride this year. Alice is an effort of CMU that, in their words, is "a modern programming environment designed to be a student's first exposure to object-oriented programming. It allows students to learn basic computer science while creating animated movies, simple video games, where students control the behavior of 3D objects and characters in a virtual world." Alice offers a very approachable and playful path to programming, using a platform familiar to the emerging generation that furthermore is directed to women as well as men (and the percentage of women in the computer sciences is an embarrassingly low number).

Quote of the day:

Alice laughed, "There's no use trying," she said, "one can't believe impossible things." "I daresay you haven't had much practice," said the Queen. "When I was your age, I always did it for half-an-hour a day. Why, sometimes I've believed as many as six impossible things before breakfast."
Lewis Carroll


Monday, March 5, 2007, posted by @ 9:12 PM
Software Engineering Radio
Markus Voelter recently interviewed me for Software Engineering Radio. Check out SE Radio's archives where you'll find a number of fascinating podcasts.

Quote of the day:

An investigation may take six months. A quick interview, profile, a day.
Diane Sawyer


Monday, March 5, 2007, posted by @ 8:10 AM
Computer Science Education
My next event is SIGCSE in Kentucky, where I'll be giving a keynote titled Read'n, Writ'n, 'Rithmetic...and Code'n. The gap between the technological haves and have-nots is growing and the gap between academia and the industries that create these software-intensive systems continues to be much lamented. The ACM has pioneered recommendations for curricula, and while there is much to praise about these recommendations, that academia/industry gap remains. I'll be offering some observations from industry why that is so (and what might be done about it).

Quote of the day:

Eventually hardware fails; eventually software works.
Michael Hartung


Thursday, March 1, 2007, posted by @ 8:03 PM
NUMB3RS, Crime, And The UML
The CBS series NUMB3RS is a highly rated and very entertaining police drama with a twist: FBI Special Agent Don Eppes (played by Rob Morrow) teams with his brother Charlie (played by David Krumholtz), a genuis who uses his mathematical skills to help solve crimes. The math behind the series is unusually advanced for prime time television, but according to a number of professional mathematicians, often dead on correct and germane to the crime being investigated.

In that light, check out the February 23, 2007 episode, One Hour. Charlie and his graduate student Amita Ramanujan (played by Navi Rawat) determine that the kidnapper's actions are event driven. Amita then suggests that they write a state machine to describe that behavior, and so Charlie states "Right, using Unified Modeling Language."

Duuude...way cool.

Quote of the day:

Mathematics is the language with which God has written the universe.
Galileo Galilei


Sunday, February 18, 2007, posted by @ 9:29 AM
Yahoo, Google, And Microsoft
Here's a wonderful story about one intern's experience working at Yahoo, Google, AND Microsoft.

Quote of the day:

The new company health plan is Google. From now on, employees must use Google to diagnose their own illnesses.
Catbert


Friday, February 16, 2007, posted by @ 11:06 PM
Wiki Patterns
Reader Johan Nagels sent me this fascinating site, offering a variety of patterns and antipatterns for using wikis.

BTW, if you'd like to understand the software behind the Wikipedia and indeed all the projects of the WikiMedia Foundation, check out the MediaWiki.

Quote of the day:

What's the simplest thing that could possibly work?
Ward Cunningham


Friday, February 16, 2007, posted by @ 9:44 AM
Mashups
Mashups seems to be coming of age, with a goodly amount of innovation going on thanks to the programmable edges exposed at Google, Amazon, eBay, and now even Facebook (plus many others, such as Yahoo Pipes which I mentioned in yesterday's post), edges that are presented in the form of APIs, classic Web services, or toolkits.

The fact that such things exist at all is an interesting evolutionary step in maturation of these system's architectures. Here you've got software-intensive systems each with a considerable user base and each with an incredible amount of very tangible information (e.g. Google's maps and Amazon's book listings) as well as exploitable metainformation (e.g. the online behavior of its users). Making such information available programmatically from a variety of sources creates an opportunity for combining that information in unexpected ways, ways that transcend each individual source but in turn elevate the value of each such site. While there is no question of the cool factor of what can be done, it remains to be seen how the business model for such mashups evolves: can you build an economically-interesting system on interfaces you can't control and that will likely change? will the providers of such interfaces seek compensation for the value of the information being used? are there unforeseen problems of public privacy? Time will tell.

Quote of the day:

You can do anything you set your mind to when you have vision, determination, and an endless supply of expendable labor.
www.despair.com


Thursday, February 15, 2007, posted by @ 8:11 AM
Web Architectural Styles
Roy Fielding's dissertation, Architectural Styles and the Design of Network-Based Software Architectures is a must-read regarding the Representational State Transfer (REST) style. Another must read is Bill Higgin's paper on the topic.

Speaking of architectural styles for the Web, check out Yahoo Pipes, a wonderfully elegant mechanism for, as Yahoo puts it "rewiring the Web."

Quote of the day (also by me):

Sometimes a pipe is just a pipe.
with apologies to the late Dr. Sigmund Freud


Wednesday, February 14, 2007, posted by @ 8:41 AM
I Do Not Like Email And Spam
Just a few minutes ago, the sun broke through the clouds, the birds started singing, and two squirrels put on a happy dance outside my window.

You see, I'd just finished processing all of my email in all of my accounts, personal and professional. I have nothing in my in boxes: nada, zero, 'tis all empty, a veritable void, a staggering emptiness of bits. It feels so freeing to say that.

As I'd blogged about before (July 21, 2005), I detest, loathe, abhor, execrate, abominate, anathematize, disapprove of, am appalled, disgusted, fed up, and disabused by, have disfavor and disaffinity for, shudder at the sight of, and just generally Don't Like email. It's a terribly noisy, inefficient, often inappropriate channel of communication. Yesterday, I had an interesting chat with Carol Jones about collaboration, and she observed that there's a generational thing going on with email: while email may be the obvious medium for my generation, there's a generation after Carol and I who have a) grown up not knowing the Web never existed and b) are used to multiple channels of communication: email PLUS instant messaging PLUS text messaging, not to mention blogs, vlogs, wikis, and all the subtle things that come with social networking sites. The future has a way of blindsiding us in the present, and my take is that the assumptions we make about the centrality of email today will be proven naively wrong in the coming years.

Quote of the day (by me):

I do not like email and spam.
I do not like them, Sam-I-am.
I do not like them on my Linux box.
I do not like them on my Macintosh.
I do not like them when I'm home.
I do not like them on my phone.
I do not like them here or there.
I do not like them anywhere.
I do not like email and spam.
I do not like them, Sam-I-Am.
with apologies to the late Dr. Seuss


Tuesday, February 13, 2007, posted by @ 7:33 AM
Architectural Complexity
An elephant is no more complex than a hummingbird. A finely-crafted mechanical watch is more complex than a one ton granite boulder. The three billion base pairs that comprise the human genome form an artifact of staggering complexity.

Can I meaningfully compare the complexity of the architecture of one software-intensive system to another?

Assuming that one can even calculate the complexity of a system's architecture, what value should you expect in that number? Simply knowing that system A has complexity X versus system B (or a different implementation of A) has complexity Y may be a fascinating curiosity, but then what? Does one try to do something (refactor the architecture) to optimize the value of the metric? Possibly, but the danger, of course, is that one may end up optimizing that number but at no material value to the use or economics of the system, or even worse, at the cost destroying some other important aspect of the system.

An observation, then: I think it's a mistake to devise a complexity measure for a system's architecture. Rather, I think that the only meaningful path is to devise a set of measures for each particular view of a system's architecture. This is a subtle difference, but an important one: one may have a system with a relatively simple logical architecture but a very complex deployment architecture (e.g. a nuclear simulation running on a massively parallel machine) or vice versa (e.g. a face recognition system running on a singe processor). Another related observation: across the spectrum of software-intensive systems, you'll find widely varying architectural styles. It seems to me that each style warrants a particular complexity profile (e.g. the structure of a real time system will look very different than that of a layered, Web-centric enterprise system versus or a rule-based system).

It is relatively easy to devise a naive set of architectural complexity metrics (for example, by trying to adapt coupling and cohesion metrics to components at higher levels of abstraction), but it's not clear to me that there's any particular value in doing so. In these matters, i'm more of an inductive reasoning kind of guy. I'd approach the problem by selecting a pile of architectures (you could limit yourself to one particular architectural style, but then you'd have to be careful about applying that suite to other styles), get my mind around how one "feels" more complex than the other, sort them into groups of relatively equal complexity...then analyze the heck out of them to see if I could discern what distinguishes each group from the others. That, I think, would lead to a more useful set of metrics.

Others (such as here and here) have explored this problem. Personally, I think the most fruitful path of investigation ties architectural complexity to entropy, that is, the measure of the disorganization of a system and/or the size of the state space of the system. Clearly, there's work to be done. I can "feel" that one system or implementation is more or less complex than another, but I can't empirically defend that feeling in many cases.
Quote of the day:

Complexity comes from a large number of parts that interact in a non-simple way.
Herbert Simon


Wednesday, February 7, 2007, posted by @ 5:11 PM
Saving Gas Through Software
A Dutch scientist has suggested a way to improve gas consumption in automobiles.

Quote of the day:

The underlying complexity of a given problem is constant. It can be hidden, but it does not go away. Complexity is conserved by abstractions. In fact, apparent complexity can be increased by abstractions, but the underlying complexity can never be reduced.
Matt Quail


Tuesday, February 6, 2007, posted by @ 8:49 AM
Turing Lecture
I've posted my lecture in the blog artifacts.

Quote of the day:

I believe that in about 50 years time it will be possible to program computers to make them play the imitation game so well that an average interrogator will not have more than 70% chance of making the right identification after five minutes of questioning.
Alan Turing


Monday, February 5, 2007, posted by @ 11:03 AM
Catching Up
I'm back from my work in Europe. My next public event is in early March where I'll be keynoting SIGCSE, the technical symposium on computer science education.

A dear colleague, John Stewart, wrote to say that he attended the funeral for Jean Ichbiah last weekend. Among other things, Jean was the principal author of the Ada programming language. Expressions of sympathy may be donated to the Dana Farber Cancer Institute.

I had the privilege of working with Jean over the years, having been involved with the Ada Joint Program Office at its inception. Furthermore, Rational Software's first commercial product was a software development environment for Ada, running on our own machine, the R1000. Although Ada never reached the critical mass of C++ or Java, it was an important influence upon both of those languages as well as all modern languages. For a time, Ada was the dominant language for military work but also crossed over into the commercial world primarily for safety critical systems such as air traffic control systems and railway switching systems.

Quote of the day:

To the well-organized mind, death is but the next great adventure.
Albus Dumbledore


Tuesday, January 23, 2007, posted by @ 4:08 PM
Webcast Of Turing Lecture
A live webcast of my Turing Lecture has now been scheduled for 6:30 PM GMT (London time) on Thursday, 25 January.


Wednesday, January 10, 2007, posted by @ 11:03 AM
Transparency
Bill Higgins has a nice post about the tension between transparency and abstraction. I absolutely agree with his conclusion, namely, that abstractions are imperfect, and often that when they fail it's hard to reason about the roots of that failure because of the very abstraction itself.

There's a phrase from systems engineering that applies here, the principal of least astonishment. When an abstraction fails, a well-designed one will (hopefully) fail in predictable ways. It's when an abstraction fails and it fails in an unexpected way that we have evidence of a leaky abstraction. Unfortunately, I don't think this kind of behavior is avoidable, although it is the case that tracing down the roots of such failures and then refactoring the stuff at those roots will generally lead to a better separation of concerns. The problem is, in software, we generally never take the time to do that refactoring, and so we occasionally continue to be astonished at the most inopportune times.

Quote of the day:

(On visiting Western Europe for the first time) You have riches and freedom here but I feel no sense of faith or direction. You have so many computers, why don't you use them in the search for love?
Lech Walesa


Tuesday, January 9, 2007, posted by @ 11:18 AM
Architectural Governance
The last few days, I've been involved in a vigorous (internal) discussion about putting the A back in SOA. My experience points to the value of using a system's architecture as a central artifact for governance. Often, governance at an enterprise level is carried out through an architecture board chartered with evolving the enterprise's architecture, including making decisions regarding where to plant services, how to harvest them, how to expose them, and how to promote/use them. This, by the way, is an issue much larger than SOA, in that a service-oriented architecture is likely one of many architectural styles that will be manifest inn an organization. To put it another way, all enterprise architectures are not service-oriented architectures, nor are all service-oriented architectures enterprise architectures

Quote of the day (with kudos to the venerable Joe Marasco for sending this to me):

A traveler visited a city where many stone cutters were working. Approaching several, he asked the same question: "What are you doing?" The first stonecutter he met replied, "I'm cutting stone. It's dull work, but it pays the bills." A second stonecutter responded, "I'm the best stone cutter in the land. Look at the smoothness of this stone, how perfect the edges are." A third pointed to a foundation several yards away, and said, "I'm building a cathedral."


Monday, January 8, 2007, posted by @ 2:51 PM
Buried
In snow that is. The Denver area has been at the receiving end of three consecutive and intensive snow storms; another one is predicted to hit later this week. I have drifts up to five feet deep in parts of my yard and the lake behind me is frozen over completely. It's times like these that I'm most grateful to be able to work out of my home. Telecommuting does have its advantages.

It's also nice to be able to travel again, having fully recovered from my open heart surgery last spring. I have bookings from now through June. My first international trip of the year is coming up in a couple of weeks, where I'll be traveling to London and Manchester to give the Turing Lecture for the British Computer Society on the promise, and limits, and the beauty of software. I'll also be meeting with several customers, academics, and researchers, and will have the time to interview a couple of projects for the Handbook.

Quote of the day:

If you want to build a ship, don't drum up the men to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.
Antoine de Saint-Exupery