Monday, April 09, 2007

People Are Smart In Different Ways

I learned that there were different ways to be smart long before I met Mark Uris. Mark had an M.B.A. and a background as a buyer for a major retail chain, when for some reason he decided to follow a different career path and become a software developer. He was not the best software developer I'd ever met. In fact, he pretty much sucked at it. I'm sure he knew it, too.

But the great thing about information technology is that it exploits a broad range of skill sets like nobody's business. Mark was no exception. When he went into management and ended up with responsibility for purchasing everything from individual disk drives to entire server farms, he really came into his own. There was no one as good as he was at dealing with vendors, negotiating prices, and somehow keeping everyone on both sides of the table happy. Well, for sure, our upper management was happier than our vendors, but even the vendors didn't have too much to complain about. Mark understood the principle of Win-Win. He also managed his group of system administrators with skill, good goofy humor, and humanity.

Mark may have had some notoriety because of his father, Leon Uris, author of Exodus and other epic novels. But to me, Mark was just the guy down the hall that knew where the spare parts were, who knew who would fix my workstation (and more importantly, when), the guy who saved the organization a ton of money while getting us engineers some really cool hardware, and who could be counted on for the latest bad joke.

Mark Jay Uris died of cancer on March 29th at age 56. He was survived by his wife, two daughters, and four siblings. He was a reliable friend and a valued colleague.

When you're young, you live with this misconception that not only are you immortal, but so are your friends. It comes as a shock when you discover for the first time that this isn't the case. It doesn't get any easier the older you get.

I am already missing him.

Sunday, April 01, 2007

Implications of Memory Models (or Lack of Them) for Java, C, and C++ Developers

I'll be giving a talk on Implications of Memory Models (or Lack of Them) for Java, C, and C++ Developers at Avaya Inc. at 120th and Pecos in Westminster, Colorado, on Thursday, April 5, from 1500 to 1600, in the auditorium.

(Chip Overclock) will discuss why the Double Checked Locking Pattern, which he used to implement lazy singetons in several commercial products, doesn’t work reliably on modern processors. He will describe how he constructed an object in C++ on a single-core hyperthreaded processor only to find upon using that object that its virtual table apparently hadn’t been initialized. Modern microprocessors implement memory models such that what you may think is happening maybe isn’t happening when you think it is. Wackiness ensues. More restrictive approaches to multi-threaded design are necessary, even on single-core processors.

It's not open to the public, but the slides (which I updated yesterday, for those of you that can attend) are available on the Digital Aggregates web site here.