Pat at VSLive

Yesterday, Pat did at keynote at VSLive San Fransicso. He talked about Metropolis (of course). Good to see architectural content making it’s way into mainstream developer events. It even got picked up by InfoWorld. I’m not sure how architect == “Microsoft exec”, but it’s great coverage none the less.

Pat will be speaking at TechEd in May. In addition to his Metropolis overview, he has two session drilling further into the parallels between applications and buildings as well as between manufactured goods and structured data.

You can see a slightly older version of Pat’s Metropolis overview on Architecture Center. Downloadable versions are coming soon.

Custom Modeling Languages

It sure has been quiet around here. I spent last week on the road in Washington DC and Orlando at the federal and eastern region architect forums. Since my parents live in DC, Julie and Patrick came too. Nine days on the road with the family is hard, but it was worth it. Lots of fun, including Patrick’s first hockey game (even though the officiating was awful).

I spent a lot of time with customers talking about SOA and architecture frameworks. The frameworks talks were most interesting given Microsoft’s view on modeling languages in general, Whidbey’s design tools and our work on domain-specific models for distributed applications. To me, the most interesting thing is not the modeling tools shipping in the box with Whidbey, rather the modeling infrastructure. Accepting the idea of domain specific modeling means accepting that there are a vast number of different modeling languages – more than Microsoft could ever create on our own. In his solution architecture strategy series presentation, Keith Short talked about the need for a designer infrastructure and tool extensibility. He also confirmed that the Whidbey modeling tools are themselves built on a general modeling engine and framework. This modeling infrastructure enables the definition of new meta-models, extensions to existing meta-models and transforms between meta-models. It also has a synchronization engine for keeping artifacts at different levels of abstraction in sync (e.g. updating the model updates the code and visa versa). I’m not sure how much of this infrastructure will surface publicly in Whidbey, but Keith specifically said the modeling engine is a “piece of work that, over time, we hope to be able to offer both to our partners and customers so that you can build [modeling] tools yourself.”

This idea of building domain-specific modeling languages and tools feels pretty powerful to me. Besides the ones included in Whidbey (and the the previously discussed service-oriented language) what other languages would you like to see / use / design?

Spinning the Unthinkable

My parents (avid Caps fans and season ticket holders – at least for now) pointed me to the “Owner’s Corner” on the official Washington Capitals homepage where the owner attempts to explain without “spin” the moves that he has taken over the past month. It may not be obvious from my original post on the subject, but I agree with most of his deals. Jagr wasn’t worth the money, Lang and Nylander were recent free agents and I hear Gonchar wanted to leave. Most of all, they just weren’t getting it done. I agree with Ted when he writes that he’s “not committed to … a $50-million payroll for a team that is last in its division.” Especially when the division in question is the worst in the league. Tampa Bay might be good, but the reason are in the race for the President’s Trophy is because they get to play the other four teams in this wretched division the most. (Of the six teams under .500 in the Eastern Conference, four are from the Southwest Conference. That’s every team except Tampa Bay)

However, he glosses over so many ugly details but I can’t help but see spin.

  • He refers to Kolzig, Halpern, Witt and Zubrus as “a strong core of veteran leaders”. However, Kolzig and Halpern sat out the last game before the trading deadline – a pretty sure sign they were being shopped around as trade bait. Zubrus has been injured off-and-on. So they are more like “a strong core of veteran players we couldn’t trade”.
  • He explains that Konowalchuk was traded since he would have been an unrestricted free agent at the end of the year. That’s a great reason to trade a player – even the captain. I can see trading the captain as part of a fire sale at the end of a losing season. However, that’s not what happened to Kono – he was traded back in October when the season wasn’t even a month old. He wasn’t traded because he was going to be a free agent. I’m not sure why he was traded, but the rumor mill is that he and then-coach Cassidy didn’t get along. Which brings me to…
  • How come there’s no mention of the utter failure the Bruce Cassidy head coaching experiment was? Cassidy lasted all of a year and a half – getting fired in December of this year. Word is the players didn’t like him (see bullet above). Leonsis has thrown his support behind now-head-coach Hanlon, but he did that before firing Ron Wilson a few years ago (Ron’s now leading the San Jose Sharks to the Pacific Division championship). In the end, all of this talent wasting comes down to be the coach’s fault – and the hiring of that coach is the GM and owner’s fault.
  • Finally, he totally glosses over any explanation of the Bondra trade. For all the other traded players, he detailed the hot young prospects or high draft picks we got in return. For Bondra, he writes of “ensuring” Bondra was “comfortable” on a team with “a legitimate opportunity to win the Cup this year”. The truth is that Bondra was “comfortable” where he was and had no interest in leaving, even for a “legitimate opportunity to win the Cup this year”. Also, while Leonsis is technically correct when he writes that Bondra was in the last year of his contract, the fact is that Bondra’s contract had a team option for another year. Given that his contract wasn’t really ending and that Leonsis acknowledged that they didn’t save a significant amount by trading him (the Caps had paid 70% of his salary already), why would you trade “Mr. Capital”?
  • Even if he couldn’t produce (which he could – he still leads the team in power play goals), Bondra was the perfect mentor for Alexander Semin. Semin is a gifted 19 year old Russian who the Caps picked up in last year’s draft. He’s a little undersized for the NHL at this point, but he sure can skate and shoot. He had a gorgeous rebound goal against Atlanta the other night. The announcer even said something to the effect of “I’ve called his name so much that I thought he’d had 10-15 minutes of ice time so far. Turns out he’s only had seven”. Semin’s story is very similar to Bondra’s, who came over from Slovakia as a 19 year old. Who better to learn about America and the NHL from than a five-time all-star who started out exactly like you did?

Sorry Ted, we can all see you spin. The most depressing part of the Owner’s Corner for me is that you are still the owner and that doesn’t look like it’s changing anytime soon.

Burning Desire

After actually building something for the first time in a while, I spent some time last night researching other stuff I want to write. One of the things I’m thinking about building is a WMA to Audio CD burning program. Of course, WMP9 (and many other programs) does this today. However, there’s one specific feature I need and it doesn’t appear to be one of the more standard ones.

Pretty soon, we’re going to make the Architecture Strategy Series content available for download. For each presentation, we’re going to provide the slides, the full Producer presentation, and a WMA file suitable for burring to CD. We’re even using the Windows Media Time Compression technology to get all the sessions under 80 minutes so they fit on CD. However, when you burn the file, it creates basically one long track, making it difficult to move back and forth within the presentation. I could break it into separate files per track, but that’s a pain. At least with one big file, there’s no chance of getting it out of order.

The Windows Media Format supports named markers. My burning program could build multiple tracks, based on those markers. Other audio players or CD burners would just ignore those markers. That way you get one file to download, but multiple tracks when you burn – the best of both worlds.

However, I have precious little time to dedicate to such a project, primarily as I have higher priority projects to build first. Additionally, I’d have to write it in C++ due to the lack of managed support for the various APIs and SDKs I would need. (Windows Media Format SDK to read audio file and the Image Mastering API to create the audio CD) So I gotta wonder if this capability already exists somewhere? Are there commonly-available tools that can use either named markers or a playlist file to create multiple tracks from on audio file? I’d hate to reinvent the wheel if I didn’t need to.

Pat Helland is Blogging

Pat Helland is the newest member of my team to start a blog. Back in the day, Pat was a co-founder of the Microsoft Transaction Server team. These days, he’s using the Metropolis analogy to help predict and explain the evolution of architecture. You can catch his Metropolis presentation as part of the Architecture Strategy Series). Subscribed plus I’ve added him to my teammate blog OPML file.

In addition to revealing his love of PEZ, Pat’s got a great dissertation on the multiple meanings of the term “service”. One of the issues with SOA is that not everyone agrees on what a “service” is. From what I can tell, the most common definition is “something you build with [insert your favorite vendor]‘s technology”. Having a vendor-independent description seems like a pretty good idea.