Morning Coffee 6

“The paper sure loves to talk about
Selling out
Some of us never get the chance”
Stick Around by Mr. Jones and the Previous

  • Didn’t see that coming. I guess the Buckeyes didn’t either. Congrats to the Gators. That makes at least three championships in a row won by the underdog. For all the complaining about the BCS, it’s hard to argue they got the champion wrong this year. However, with the exception of the Fiesta Bowl, the BCS games weren’t very good this year.
  • There’s a video of the new Xbox 360 IPTV service up on 10. I realize it’s a demo and we’re nearly a year away from release, but I’m not impressed. Xbox 360 Fanboy pointed to a blogger who got a deeper look at the service at Microsoft’s CE booth. Frankly, it doesn’t look or sound like it’s much different than standard cable service (though I like the sound of 35Mbps bandwidth at my house). I realize familiarity is good, but do we really have to lock ourselves into the existing TV paradigm?
  • I got roped into a webcast today on Optimizing Application Platform Infrastructure. It’s at 11am Pacific time. Stop by and say hi.
  • My colleague Dale has a rant about Service Oriented Assholes. His definition: “Any person or team that pontificates on Service-Oriented Architecture (SOA) without considering the realities of implementing SOA in a real business environment with real suppliers, customers, and products. These people are great at designing something on a white board or on paper, but couldn’t produce a real workable production ready system if their life depended on it.” Sort of a more specific (and vulgar) version of Joel’s “Architecture Astronauts“. How many SOA-holes do you know?

Morning Coffee 5

I can feel it coming in the air tonight, oh Lord
I’ve been waiting for this moment, all my life, oh Lord
Can you feel it coming in the air tonight, oh Lord, oh Lord
In The Air Tonight by Phil Collins
Covered by Nonpoint on the Miami Vice Soundtrack

  • It was a tough weekend in the Pierson house. For several hours on Saturday, we thought we were going to have to put our dog D’art down. My wife has the details, but the good news is that he had spine trauma, but nothing broken and he seems to be back on his way to his old self.
  • I grew up in Northern Virginia, so I’m a long time member of the Dallas Cowboy Hater’s Club. So watching them snatch defeat from the jaws of victory against my adopted Seahawks was sweet.
  • Last night, Bill Gates kicked off CES with the usual assortment of product news and announcements. The biggest news, in my opinion anyway, is IPTV support for Xbox 360. (Did you know MSFT has a TV product division?) Details are fairly scarce at this point, but I’m hoping this allows for independent broadcasters to directly reach consumers, much like blogs have done for independent writers. Can I use IPTV to launch my own TV channel? Imagine the possibilities. I’d like a Washington Capitals channel, so I can watch post game highlights on my big screen TV rather than on my computer. A Rooster Teeth channel would also be nice.
  • No coding this past weekend, though I did reinstall XNA Game Studio Express on my recently paved dev partition. I tried playing Lego Star Wars II with my son over the weekend and he’s still having trouble learning how to use the controller. I was thinking I might try making some simple “games” to help him learn.

Morning Coffee 4

Recurring 8am Friday meetings are not my style.

  • I’ve been tracking WCF for a long time. Yet, it’s still a dauntingly large topic. Yesterday I spoke to a friend who works in Windows Live who is just beginning to learn about WCF and it’s literally overwhelming him. His reaction reminded me of my early reactions to COM. It feels like no matter how much you learn about WCF, the “pile” of stuff still to learn doesn’t shrink. In contrast, while my initial exposure to the .NET Framework was overwhelming, eventually I got to the point where I felt like I had a good handle on what was in there.
  • With all the configuration settings in WCF, the number of valid combinations is astronomical. While WCF’s configuration based approach is arguably more flexible than a code based approach, it’s also more complex and harder to debug in my experience. Config debugging seems to be an endless cycle of tweaking the config file and running the app to see what the effect is. We need better tools than SvcConfigEditor.
  • Responding to yesterday’s Morning Coffee, Jon Flanders confirmed via email that the built-in SQL WF persistence service “doesn’t recover from faults to the last good persistence point” and that “when a fault happens, the instance closes and…is removed from the persistence database.” Is this the right behavior? I’m thinking it depends on the workflow. More on this later.
  • I’m trying to get my teammates to start using the Beyond Bullet Points approach to the various presentations we build as a team. Interestingly enough, it’s been easier to get my team to adopt an agile development methodology than to adopt the Beyond Bullet Point presentation methodology. I would have expected the opposite.
  • The Caps trounced the Canadiens last night, ending a five game losing streak. I’m not that worried about the losing streak – the Caps have had several players out with the flu. But beating Montreal, who came into the game twelve games above .500, so badly is a good sign. And how about Nycholat? Two goals and four assists in seven games since he was called up from Hershey. Even more impressive, he’s +2 even though the Caps were 2-5 and outscored 24-18 in those seven games while averaging nearly 21 minutes of ice time per game. Here’s hoping Nycholat stays hot.

More WCS Docs Please

I love me some CardSpace, but I sure wish there was better documentation on how to use it, especially from WCF. The current documentation is very conceptual so you really only have the samples to go on, which sucks not to put too fine a point on it.

One example shows how to use WCS with WCF’s wsHttpBinding. However, it turns out you can also use WCS with WCF’s wsFederationHttpBinding. I’ve been experimenting with that binding talking to an STS, and it’s never invoked the WCS UI before. Why does this example invoke WCS? I’m guessing because it doesn’t specify an issuer in the config file, but I’d need to see documentation to be sure.

Also, using the federation binding appears to be the only way to request/demand additional claims beyond the private personal identifier (aka the PPID). If you want the client’s email address, name, address, etc, you need to specify that via the claimTypeRequirements of the binding’s messagesecurity element. But that configuration isn’t valid for the wsHttp binding. Why?

Finally, the two bindings produce different results on the security token. Using wsHttp, you get three claims: RSA Identity, RDA Possess Property and PPID Possess Property. When using wsFederationHttp, you get Hash Possess Property and PPID Possess Property (plus the claims you request). What happened to the RSA claims? If you attempt to add RSA to the claimTypeRequirements, CardSpace throws an error as an invalid request. Again, why? Keith Brown recently wrote about how to use the RSA claim, so it sounds like a valuable piece of information to have. How come the federation binding doesn’t send it?

Morning Coffee 3

I’m living in a tinder box, hosing down the roof
It’s raging all around me, and I still refuse to move
There’s a lesson I’m desperate to learn
And I’m willing to burn
     “Willing To Burn” by Maia Sharp

  • A warm welcome goes out to the 110th congress. Between the Democratic majority in both houses and Republicans looking to distance themselves from President Decider and his abysmal approval ratings, maybe we’ll actually get something accomplished in the next two years.
  • Not as nice as USC trouncing Michigan, but I like seeing Notre Dame on the receiving end of a 41-14 beatdown from LSU in the Sugar Bowl. That’s the 9th consecutive bowl loss for the Irish.
  • Actually started getting some work done yesterday. Today I’m doing some WCF STS work, but yesterday I focused on SSB and WF.
  • I need to better understand WF’s faulting and compensation model. I got sidetracked yesterday when I realized that when a WF instance faults, the built-in SQL persistence service deletes the persisted instance from the database. That doesn’t seem right to me, but I was wrong last time I called out the WF SQL persistence service so I want to do more digging before I open my trap.
  • I dig WF persistence. I wrote a few weeks ago about shipping a WF instance to a developer for debugging. Yesterday, I thought about having a persistence service that kept a history of the WF instance rather than overwriting it. I wonder if that would help with production debugging?
  • Great quote yesterday by my boss, speaking ill of a project that will remain nameless:
    “Basically, they’ve spent the last month building an executive presentation to say we’re screwed”