Having worked on CORBA for quite a number of years, I decided in 2002 that I wanted to explore more advanced and elegant ways of developing distributed applications. The result is Ice (Internet Communications Engine), a new middleware that is more powerful and easier to use than CORBA. Distributed Programming with Ice is a tutorial and reference for this new middleware.
This article was published in Jan 2004 in IEEE Internet Computing; it describes Ice in a few pages and is a quick way to get acquainted with some of its features before delving into the documentation.
This article was published in Feb 2004 in ACM Queue Magazine; it describes how a massively multiplayer online game called Wish uses Ice for its communication needs, and how the scalability requirements of the game influenced the design of Ice.
This article was published in June 2006 in ACM Queue Magazine; it discusses some of the reasons why CORBA ultimately turned out to be a failure.
This article was published in June 2007 in ACM Queue Magazine; it describes the current sad state of API design, suggests how to do better, and outlines cultural changes we need to make in order to get over the API malaise.
This bibliography includes a few other bits and pieces I have written over the years.
Frequently, people ask me how to pronounce my name. Quite a lot of speculation has been circulating around this topic, including musings about the relative "gutturalness" of the Scottish "ch" (as in "Loch") versus the Bavarian "ch" (as in "Kochtopf" ;-) To settle the argument once and for all, I decided to put up a wave file with myself speaking my name. I figured that this would be the definitive answer to how to pronounce my name, seeing (or, more accurately, hearing) that this is how I pronounce it myself.