Rants, rambles, news and notes from another geek

Visual Studio Ultimate Event – Atlanta GA Feb 2 2010

Next month I will keynoting the Visual Studio Ultimate Event in Atlanta. Here’s the description from the event site:

The Ultimate Event: Visual Studio 2010 & Team Foundation Server 2010
Feb 02,2010 @ 8:30am
Microsoft Alpharetta Office

Microsoft Visual Studio 2010 is a landmark release of the premier development toolset for Windows, Web and Cloud development. Join us for a comprehensive overview of Visual Studio 2010 and Team Foundation Server 2010. Microsoft has made significant investments to and improvements of Modeling and Testing/QA tools in Visual Studio. Team Foundation Server is the Application Lifecycle Management (ALM) core of Team System and we’ll present enhancements in version control, reporting, project management and build management. Spend a day with us to learn how to take software development to next level with Visual Studio 2010.

More information and registration can be found at the link above.

I will also be making a few stops for some local stuff:

Atlanta Visual Studio User Group
Feb 01, 2010 @ 6:30pm
Microsoft Alpharetta Offices

Nerd Dinner: Architecture Blather with Peter Provost
Feb 02, 2010 @ 6:30pm
5 Seasons Brewery at the Prado

If you are in the Atlanta area, I hope to see you there!

Music Top 10 From 2009

It was a good year of music for me, marked by some great new metal albums from some of my Scandinavian favorites, and also a return to some of the prog- and jam-rock sounds from my younger years. The order is hardest to softest, musically.

Lamb of God - Wrath

I’ll start with one of the heaviest records on my list and one that certainly got a pretty heavy rotation on my Zune and while at work. Out of Richmond VA, LoG runs that interesting line between death metal and thrash, but with a seriously good groove hiding in all the noise and growling.

Wrath is Lamb of God’s sixth album.

Mastodon - Crack the Skye

Mastodon are often classified as progressive metal or sometimes stoner metal. I’ve been listening to them on and off for years, probably starting back in the late 90s when I was really into Kyuss (predecessor to QotSA). There 2009 album Crack the Skye dragged me back to their fold. Heavy and melodic at the same time, it has more of a consistent feel to it from start to finish that much of their previous work.

Crack the Skye is Mastodon’s fourth studio album and will certainly stay in my rotation throughout 2010.

Scar Symmetry - Dark Matter Dimensions

Holographic Universe, the third album from Sweden’s Scar Symmetry, was easily one of the best metal albums of 2008, and when I heard that they’d replaced their singer from that album with two people I was afraid it wouldn’t work out. But the new singers, Robert Karlsson and Lars Palmqvist hit the sound right on the nail. Often classified as melodic death metal, Scar Symmetry has fast guitars and a nice mix of clean signing and deep growls. Their late 2009 release titled Dark Matter Dimensions is still in my playlist.

Dark Matter Dimensions is Scar Symmetry’s fourth studio album.

Amorphis - Skyforger

Finland’s Amorphis started out the late 80s as a death metal act but as they’ve evolved it has become more progressive or folk metal. It still has some of the growls of death metal but with a much more melodic and structured sound as well. Amorphis pulls a lot of their lyrical content from the Kalevala, a book and epic poem of Finnish folklore, and this album stays true to that with a set of songs all told from the perspective of the character Ilmarinen

Skyforger is Amorphis’s ninth studio album.

Isis - Wavering Radiant

Founded in Boston, but now hailing from Los Angeles, Isis is often called sludge metal of post-metal. Long, acoustically dense songs characterize their sound it sometimes makes you think of bands like Pink Floyd while at other times you think you’re listening to a European death metal band. All-in-all it is great stuff, even if it does take a bit of getting used to.

Wavering Radiant is Isis’s fifth studio album.

Katatonia - Night is the New Day

Katatonia is another Swedish metal favorite. Characterized by doom and gloom lyrics, and a sound that varies from death metal to a more progressive sound. Occasionally reminiscent of Opeth’s sound, their 2009 release continues the mellowing of their music while still keeping the same great sound.

Night is the New Day is Katatonia’s eighth studio album.

Them Crooked Vultures - Them Crooked Vultures

Next we drop into the non-metal section of my list with something I certainly didn’t expect: a musical collaboration between bassist John Paul Jones (Led Zeppelin), drummer Dave Grohl (Nirvana, Foo Fighers, Probot and more), and guitarist/vocalist Josh Homme (mastermind behind Kyuss, QotSA and the Desert Sessions).

Both Grohl and Homme are masters of the hook rock song and this album doesn’t let you down. It may not be the best album of 2009 but it is a great listen and something everyone should give a turn on the player.

Steven Wilson - Insurgentes

Plain and simple, Steven Wilson is a genius. Founder of the amazing prog-rock band Porcupine Tree and producer of the monumental Blackwater Park by Opeth, Steven has his hands on released his first full length Insurgentes in 2009. A must have for prog-rock fans.

Phish - Joy

Phish is a band I’ve been into since college and my love for their sound didn’t die when they went on indefinite hiatus in 2004. For me their albums were always good, but the love I had for them will always be rooted in their live performances. Joy followed up Phish’s 2009 return to the stage with an excellent album produced by Steve Lillywhite, who also produced the band’s 1996 album Billy Breathes. The album has a pure Phish sound that is a delight to listen to (even my wife likes it). The only downside for me was that I didn’t get to see them on tour this year when they returned to Red Rocks Amphitheatre. But at least I have the bootlegs of the show!

Joy is Phish’s fourteenth studio album.

E-603 - Torn Up

Now this one is probably going to surprise people who don’t realize that when I say I like everything I really mean it. E-603 is the stage name of Ethan Ward, a mash-up artist from New Hampshire. His sound is much like that popularized by Girl Talk (aka Greg Gillis) in that it is almost entire composed of samples from other artists work. But unlike more traditional two- or three-song mashups like those produces by Wax Audio (e.g. Whole Lotta Sabbath), E-603 and Girl Talk make whole new songs out of dozens of pieces. It is a lot of fun to listen to and will keep you constantly guessing as you hear something and say, “Wait a minute… I know that sample!”

Torn Up is E-603’s second album and is available for free download from his site.

Call for Papers – the Architecture Journal


The Architecture Journal has just announce their call for papers for the 23rd issue, which just happens to be focusing on Architecture Modeling and its role in the broader SDLC.

If you’ve got something interesting you want to share, I encourage you to submit a paper idea and we’ll take a look. I’m helping review the submissions, so make it good! :)

More Info: http://msdn.microsoft.com/en-us/architecture/bb219087.aspx

20 Jährigen Maurfall

This week I was in Berlin presenting four sessions at TechEd Europe. This is a beautiful city and it was a great event.

We were very fortunate to be here for the 20th anniversary celebration of the falling of the Berlin Wall and I thought I’d share some pics. Don Smith got a bunch more using his much better camera and we also got some video of it actually coming down, but these are all I have here with me tonight.

As you may be able to tell it was pouring down rain for the 2+ hours we waited for it all to happen, but the people were fun, there was music and speeches (in German) and best of all… Glühwein!

Extending Visual Studio 2010 UML Designers – Part 1: Getting Started

This is the first in a series of blog posts to show how the new UML Modeling capabilities in Visual Studio 2010 Ultimate can be extended. Later articles will expand on the examples shown here and show more advanced extensibility.


In Visual Studio 2010 Ultimate we have introduced a set of new UML 2.1.2 modeling capabilities. We include designers for producing five UML diagram types:

  • Class Diagram
  • Sequence Diagram
  • Component Diagram
  • Use Case Diagram
  • Activity Diagram

In addition, we also have tools for analyzing, documenting and validating your architecture. The Layer Diagram can be used to define the large layered components on your solution, map them to real code elements and later validate that your as-built system conforms to what you planned. If you have existing systems you want to investigate and understand better, we have the Architecture Explorer and a set of Dependency Graphs that you can create to see how the parts come together.

As we were building our new capabilities, we realized that people would need to be able to add new capabilities to the diagrams and models we’re including in the box. You may, for example, want to add a command for refactoring the model to the menu that appears when you right click on on a shape on the Class Diagram. Or perhaps you want to be able to drag-and-drop something onto a diagram and have it create new model elements based on the source of the drag. Or maybe your enterprise has guidelines about what makes a model “valid” and want to code those validation constraints into the tool so you know when you have deviated.

We can support all of those scenarios using very simple extensibility mechanisms that are present in Visual Studio 2010 Ultimate.

Before You Begin

This series of articles assumes you already have Visual Studio 2010 Beta 2 Ultimate installed on your system. To make our lives a lot easier we will also be using the Visual Studio 2010 Beta 2 SDK to get our projects started, installed and debugged.

In case you are missing any of those, you can find links to all of the downloads on the Visual Studio 2010 and .NET Framework Beta 2 Landing Page.

Creating Your First Extension Project

Visual Studio 2010 uses the Managed Extensibility Framework for lightweight extensibility and we were eager adopters of that when we created our own extensibility hooks. What this means is that to create a new UML Designer extension, you create a new VSIX Project (a VSIX is just a ZIP file that tells Visual Studio how to install the extension…see What is a VSIX? for more information) and then add a simple little MEF component to it. Easy pie. So let’s get started…

Creating the VSIX Project

Before we can get into the extension itself, we need to get our project set-up correctly.

  1. Create a new C# VSIX Project (you can do VB if you want but my code here is in C#). File New Project Visual C# Extensibility VSIX Project.
  2. Add references to the following .NET Assemblies: * Microsoft.VisualStudio.Modeling.Sdk.10.0 * Microsoft.VisualStudio.Uml.Extensions * Microsoft.VisualStudio.Uml.Interfaces * System.ComponentModel.Composition
  3. Open source.extension.vsixmanifest in the editor. (If it opens in an XML editor, close it and choose View Designer from the file context menu).
  4. Fill in the Name, Author, and Description sections.
  5. Set “Supported VS Editions” to Visual Studio Ultimate.
  6. Save all open files and close them.
  7. Delete the file VSIXProject.cs from the project

VSSDK Beta 2 Bug Workarounds

Unfortunately there are a couple of bugs in the current VSSDK Beta 2 that we have to work around. I’ve been told they will be fixed in an update release but until then, let me take you through the project cleanup required to make this work:

Step 1 - Tweak the .csproj file

  1. Right click on your project and choose “Unload Project”.
  2. Right click again on your project and choose “Edit Yourprojectname.csproj”
  3. In the topmost property group, look for the XML tag . It will be set to false. Change it to true.
  4. Save the .csproj file and reload it into Visual Studio.

Step 2 - Tweak the .vsixmanifest file

  1. Right click on the file “source.extension.vsixmanifest” and choose View Code
  2. At the bottom of the file in the section called add the following line. (Yes, those vertical bars are important.)
  1. Save and close the file.

Say “Hello World!”

Now let’s make this thing fly. We won’t get into any complicated UML or model manipulation in this article. Instead we will just add a new menu item to the context menu of the UML Class Designer. When clicked, the menu item will say Hello World.

  1. Add a Project Reference to System.Windows.Forms (a simple way to get a MessageBox).
  2. Add a new class named HelloWorldCommandExtension.cs to the project
  3. Have your new class implement the ICommandExtension interface and add the following attributes to your class (you will need to add the required using directives):

  1. Delete the body of the QueryStatus method
  2. Replace the Text property implementation as shown here:
public string Text


    get { return "Hello World!"; }

  1. Replace the Execute method as follows:
public void Execute(IMenuCommand command)


    System.Windows.Forms.MessageBox.Show("Hello World!");


Testing Your Extension

The nice thing about using the VSIX project template is that is sets everything up for debugging and testing for you using the Visual Studio Experimental hive. To run your extension without debugging, press Ctrl+F5. To run with debugging enabled, just press F5.

One the Experimental Hive is up and running, create a new Modeling Project, add a new Class diagram, and right click on the surface. You should see your “Hello World!” menu item and choosing it should display the message box. Voila!

Next Steps

In the next part of this series, I will show you how to create new model elements in the Model Store and display them on the diagram surface. Subsequent articles will explore other diagram types and more complex scenarios including creating a full VSPackage.

Visual Studio 2010 and .NET 4.0 Beta 2 LIVE on MSDN

VS-2010-dotNet4-LogoThis morning we released to MSDN the Beta 2 release of Visual Studio 2010 and .NET Framework 4.0 to MSDN. See Soma’s blog post for the official bits.

There is so much good stuff coming in Beta 2 it is hard to keep track of it all. Over in the Arch Tooling team where I work, we’ve done a ton of work on increasing the performance of the UML, Layer and Architecture designers we’ve made. We have also added a BUNCH of new and cool MEF-based extensibility hooks into our designers so customers can add new and interesting features that we may not have thought of.

We’ve been dogfooding this release (client and server) internally for quite a while now and I have to say I really like it. It feels good, it looks good and it does what I want to do.

Probably the biggest thing people will talk about initially, however is the new SKU changes we’re making in 2010. I remember way back before I joined Microsoft I criticized the “role-based” SKU system as not actually aligning with how real teams get work done. As Brian Harry explains on his SKU changes post, we’ve fixed that by adopting a SKU system very similar to that used by Windows and Office:

  • Microsoft Visual Studio 2010 Ultimate with MSDN: the comprehensive suite of application lifecycle management tools for software teams to ensure quality results from design to deployment.
  • Microsoft Visual Studio 2010 Premium with MSDN: a complete toolset for developers to deliver scalable, high quality applications.
  • Microsoft Visual Studio 2010 Professional with MSDN: the essential tool for professional development tasks to assist developers in implementing their ideas easily.

As you can see this is a much cleaner SKU model and we’re excited to see how customers respond.

This Beta 2 release is available on MSDN subscriber downloads NOW and will be generally available on Wednesday October 21. .NET Framework Beta 2 will be released in English, Japanese, German and Arabic. VS Beta 2 will be released in English, Japanese, and German.

There have also been a bunch of updates recently to the Microsoft Developer Network (MSDN) website. A serious design update and ton of new social networking features should help people get the information they need faster than ever. Scott Hanselman blogged about it last week.

We all hope you try this release out and give us tons of feedback on how it works for you and your business.

Edit: Added link to Brian Harry’s SKU post and some descriptive content about the SKUs.

New Gaming PC Build-out – Final Results

Close up of the case and internals It has been all done for a little over a week, and I love it. As I said in my last post, I decided, for the first time in almost 20 years, to build a machine from scratch for my home-office. I spent a bunch of time chatting with friends at work and who I play World of Warcraft with, and I think I ended up with a pretty kicking kit.

The order came in 5 shipments, which had me a bit freaked out that 4 would arrive and the CPU would be a day late stuck in Kansas, but that didn’t happen. The whole thing arrived on time, and in one big pile of boxes. In addition to the order I described last time, I also ordered another Dell E228WFP to go with the one I already had.

Construction of the machine was painless. Far more painless than I thought it would be. I was a bit worried about screwing it up, so I went pretty slowly. Opened each box, looked at what was there, set the instructions aside, etc.

The case is pretty big. It has four fans, including a big 200mm one in the top. You’d think it would be loud, and I guess it is louder than my laptop was, but I don’t find it distracting.

First thing to go in was the motherboard. I decided to put the mobo in before installing the CPU and memory and probably would do it that way next time too. Brad Wilson suggested doing the CPU and RAM on my desk to make it easier, but I figured moving that sucker around all loaded up would suck.

The mobo has tons of ports (USB, eSATA and more) on the back and came with a little panel that slides into a slot on the case to expose all the ports. That was nice and simple. Motherboard slid right in, crewed it down and moved on to the next step.

I bought a 750W power supply. Some would say that is too big, but the graphics card claimed that I needed a minimum 550W supply and the motherboard/CPU wanted 140W so I didn’t want to come up short. It came in a velvet bag like a bottle of Crown Royale, which made my laugh. Tons of connectors on it, which is great. Dropped right in, no issues. On to the next step.

I was a bit concerned about getting the CPU in there right. I’d heard stories of people breaking off pins, or breaking the lockdown clamps and crap like that. I guess going slowly was on my side though… it dropped right in. The only issue I had was getting the heatsink clamp to grab on both sides. I had to push A LOT harder than I expected. I was a bit nervous pushing that hard and had a friend on the phone saying, “Don’t worry man, I’ve done dozens of those and never broken one. Just push on it.” Haha… he was right. In it went.

After that it was smooth sailing. RAM went in next. Who knew RAM came with heat dissipation fins these days? Wow. Video card after that. Man that’s a big sucker. Takes two slots on the case, has its own big ol’ fan and two external power connectors.

Hard disk, DVD came last, then got into routing power and data cables. All in all it came together quite nicely I think and I would happily do it again. I do expect I’ll upgrade this next year to a double graphics setup. Since I’m using nVidia it will be SLI based which means I probably have to buy another mobo. That is the only downside to the sweet bundle deal I got. I’ll also add another 4GB RAM sometime later this year to bring me up to 8GB.

I’m running Windows7 RTM x64 which I love. Best operating system Microsoft has ever produced IMHO. WoW screams on this machine, pulling appx 75-100 fps with most of the graphics sliders turned way, way up. Here is the final setup on my desk showing the two monitors and my work laptop.

Desk showing new machine and monitors

I’m using Synergy to share my mouse and keyboard onto the laptop which effectively makes it like a third monitor without having to actually hook it up that way. (More coming on Synergy in a follow-up post.)

New Gaming PC Build-out – the Order

[![Antec900](/images/blog/WindowsLiveWriter/NewGamingPCBuildoutTheOrder/48A48C17/Antec900thumb.jpg)](/images/blog/WindowsLiveWriter/NewGamingPCBuildoutTheOrder/1EA48DEF/Antec900.jpg) I’ve been a gamer for a few years now, mostly playing World of Warcraft but also occasionally spending time on other games. I’ve never actually owned a good gaming machine, however. I’ve always played on a laptop, mostly using and external monitor, keyboard and mouse.

For a few months I’ve been considering building out a new machine from scratch. It was a bit intimidating given how long it has been since I’ve played in this space, but with the help of a few friends who know this stuff, I think I picked out a pretty good setup.

I went off to NewEgg.com and started picking parts. They’ve got lots of combo deals, reviews and spec information so they really are a great place to do this from. I also used Tom’s Hardware Guide to compare important things like CPUs and Video chipsets.

When I finally clicked BUY last night, here’s what I had decided on:

I would have liked to get a 10,000 rpm drive but I got a sweet deal on a CPU/HDD/Mobo bundle and went with it for now. I’ll also probably add 4GB RAM later to bring it up to 8GB total.

Also, I’m not really one for the glowy blue case thing, but the airflow on that case and the great reviews it gets sold me.

We’ll see… I’ll post more once I start putting it together.

Two Weeks as a Caregiver

The last two weeks have been… interesting. Last month my wife Emily was diagnosed with very early breast cancer. It is simply amazing what modern imaging can find. The tumor was just a smudge on the images. A biopsy found something that was less than 1mm in side and had to get sent to Vanderbilt for diagnosis. The diagnosis was micro-invasive ductal carcinoma in her left breast.

Ugh. She’s 36.

Because of family history she opted for a double simple mastectomy with reconstruction including the sentinel node on the left side. In the weeks leading up to the surgery, as we prepared emotionally for it all, the most amazing thing happened. Meghan, Em’s sister, organized a huge operation of helpers and friends to do everything from bringing us food to picking up the kids after school. I simply can’t say enough how much we appreciate all the help our amazing friends and family gave us during this time. Thank you thank you thank you.

The surgery was two weeks ago and it went great. Sentinel node came back clear which means it didn’t spread. Woot! We spent the first night in the hospital which is fine, I’ve done that enough times. The hospital has good Wi-Fi so when Em wasn’t awake I goofed off on my laptop playing WoW or something else.

The pain levels Em experienced were a bit more than we had expected, so we had to work a bunch to get the right mix of painkillers to keep her comfortable. After going home, the game continued. As her primary caregiver, I had to figure out how to track and manage all her pills, which was a bit daunting at first. Geek that I am, I eventually came up with a cool Excel printout that I put in the bathroom.

It looked like this (I used it vertically–the time went top-to-bottom):


Nerdy? Yes. Effective? HELL YES! I had alarms set on my phone and on my bedside alarm clock that reminded me every time we had to do something. It was kinda nutty, but for that first week it helped immensely. One thing you don’t want to do after major surgery is fall behind on the pain. It can be almost impossible to catch up without pushing the limits on some of the drugs and it can seriously slow down recuperation if the patient is in major pain.

The other thing we had to do is what they call “strip the drains”. After the surgery, Em had two tubes coming out of her sides that went to little vacuum reservoirs to collect the fluid. Every few hours (at first) I had to drain the reservoirs and wring out the tubes to remove any clots that may have formed. Kinda yucky work, but it needed to happen. She also had a cool little “pain pump” installed that directly sent local anesthetic into the wound site via two little wiry tubes. Once the pain pump ran out, I got the job of removing the wires. I was just a bit startled how much tubing was inside her… almost 8 inches! It was kinda fun pulling them out. Hehe…

Sidenote: When you’re doing the drain stripping, be really REALLY careful to not tug on the tubes or your wife will try to kick you out of the house regardless of how much meds she has on board. You have been warned. :)

As the first week ramped down, the pain got much more under control. We started dropping off the schedule at night and went to a mode on-demand kind of thing. During the day I still tried to stick with it as best I could. The amount of fluid coming out dropped a lot during this time as well, which was good. The doctors has said we wouldn’t have the drains out until we were at less than 25cc in 24 hours. (At first we would get more than 25cc in 3 hours per side!)

During the second week, Em still spent most of her time in bed but was much more able to get up and move around the house. She was on milder pain meds too so she was a lot less loopy which she liked. We still had amazing support coming in daily from our friends and family… food, snacks, toys and kidcare. Another huge shout out to everyone who helped.

Exactly two weeks after the day of surgery we went back in to the plastic surgeon who was doing the reconstruction. Recovery was going well, swelling is low and they decided to take the drains out and add more fluid to the tissue expanders that were implanted during surgery.

“It will feel like when you had your braces tightened as a kid.” Hmmm… not too bad.

BULLSHIT! At least for Emily it was a bit more than that. She had to go back onto Vicodin for two days to get through it, but now she’s back to simpler stuff which makes us both happy.

Looking into the future we can expect them to add more saline to the expanders for a few more weeks (which Em isn’t looking forward to), then a few months to let it all settle down. After that, the expanders come out and in another surgery they replace them with traditional saline implants.

I started back to work today which is both good and bad. Good to be getting back to a sense of normalcy. Bad because I have to catch up on two weeks of shit that happened while I was gone. Oh well… things could be much worse.

In addition to all the thanks I want to heap on all those who helped us during this time, I also was to say loudly how proud I am of Emily. She has been such a trooper through all this and she amazes me every day. Emily I love you more than anything else in the world.