Morning Coffee 24

  • Congrats to the Colts on winning the ugliest Super Bowl ever. Pouring rain, eight turnovers, missed PAT and field goal and the opening kickoff TD return. Ugly, but fun to watch.
  • Now that we’ve had our first poor-weather Super Bowl, I think it’s time to start rotating through cities that have never gotten it due to expected weather conditions. Obviously, I’d like to see a Super Bowl at Qwest Field. But most of all, I would love to see the Super Bowl played in Green Bay on the “frozen tundra” of Lambeau Field.
  • Was it just me, or did the Super Bowl ads suck this year?
  • There’s a sweet looking pinball game coming to XBLA. I love pinball, so unless it completely stinks I’ll be buying it.
  • I commented on the Windows Live SDK last week, but I missed the Windows Live ID Client SDK alpha release. It looks like you can use this SDK to build desktop applications that use Windows Live ID for authentication. Fairly cool, but does it work with non WL services? (via Dare Obasanjo)
  • I saw this post on the home page of DotNetKicks today. It claims that locating the ASP.NET App_Data directory by calling AppDomain.CurrentDomain.GetData(“DataDirectory”) is a “dirty hack”. I left a comment on the original post, but I wonder if the correct information will ever make it’s way back to DNK?
  • Architecture Comix? Yep, on Skyscrapr, an architect community site run by my old team. Sorta funny, but I’m guessing Scott Adams isn’t worried about the competition yet.

Morning Coffee 23

  • My Binding Across States post made it to the home page of DotNetKicks, so at last six other people liked it. I wonder if I’ll be able to detect and traffic increase from that.
  • I wrote yesterday that I had ordered a PCMCIA Smart Card reader for my laptop. I ordered it around 11:30pm on Wednesday and it arrived yesterday around 2pm.That’s good service! And so much more convenient than the USB smart card reader.
  • I also mentioned yesterday that I had moved my laptop over to Vista. I’m not sure why, but my battery life has gotten significantly better. Maybe it’s because these days I’m primarily using my laptop to remote into my desktop so I’m not exercising the local system much.
  • I was checking out Windows PowerShell Quick Reference from O’Reilly (on Safari) and discovered this PS offers the numeric constants of gb, mb, and kb to represent gigabytes, megabytes, and kilobytes. Example: $downloadTime = (1gb + 250mb) / 120kb. That’s pretty cool.
  • Speaking of PS, I stumbled across PowerSMO! from Dan Sullivan. Instead of building native PS support for SQL administration, PowerSMO! makes it easy to access SMO objects in PS. Instead of having to call new-object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer, you call goGet-SMO\_ManagedComputer. Even more interestingly, PowerSMO! uses metaprograming techniques to generate all the Get_SMO* methods. It iterates over all the SMO types – about 1000 types in total – and generates the associated Get-SMO functions into a temp script file. Once the temp file is created, it can be invoked like any other script. Must noodle on this approach further.

Morning Coffee 22

  • I figured out something to build with PowerShell. Not ready to spill all the beans yet, but I’ve started by building a provider for SQL Server. SQL already has the SQL Management Objects (SMO) library, so I can really focus on how PowerShell works rather than getting too bogged down in the logic of the provider. I’m sure someone else is working on something similar, but my primary goal with building this provider is to understand PowerShell. The codebase itself is a distant second in priority.
  • On the subject of missing LINQ’s, Alex James wants LINQ to Web. A good potential use for the Windows Live Search API.
  • I posted three recent blog posts to DotNetKicks yesterday, but I’ve only collected one additional kick so far (for my Compiling Workflows post). Looking at what does gather kicks, I think I would need to write a more dev focused article if I wanted to make the DNK home page.
  • Don Smith left a comment on my WSSF post where he talked about the developer and the architect perspective. He seemed surprised that I took the developer perspective. To quote David White: “Architect Must Implement”. The customization opportunity in guidance automation is huge, but the value is to the developer first. And while it’s a good start, it doesn’t go very far at automating the development experience. At heart, I guess I’m a developer even though my business card sez Architect (with a capital “A” these days no less).
  • I moved my laptop over to Vista yesterday. My workstation is still on XP, but that’s because I haven’t had time to completely rebuild my dev environment. No Aero support with the
  • I elbowed my way into the TS Gateway pilot at Microsoft and I’m loving it. TS Gateway is a new feature of Longhorn Server that “enables authorized remote users to connect to terminal servers and remote desktops on the corporate network from any Internet-connected device running Remote Desktop Connection 6.0.” So I can quickly and easily remote into my desktop from anywhere without establishing a VPC session. The only annoyance is my USB smart card reader, which is fine in a pinch but a pain to constantly have dangling off my laptop. However, my boss approved a PCMCIA smart card reader so soon that won’t be an issue.

Morning Coffee 21

  • With this post, I will have posted 31 times in January. I doubt I will average a post a day for the rest of the year, but I’ve averaged less than half a post for a day for the past two years.
  • LINQ to whatever is the new hotness. The ADO.NET team blogged about LINQ to DataSet last week. Of course, there’s also LINQ to SQL, LINQ to XML, LINQ to Entities and LINQ to XSD. Am I missing any other LINQ’s? (Would that be the missing LINQ? har har har)
  • Joe McKendrick writes on “rogue” systems in the enterprise. In typical pundit fashion, he doesn’t bother to take a stand on the subject, going so far in this case of having a reader poll rather than offering up his own opinion (wouldn’t want to be wrong, would we?). However, I thought it was interesting that the three poll answers were “No rogue services”, “Sometimes rogue services are OK” and “Why fight it?”. Where’s “Yes, let’s directly empower the users” in that list?
  • I finally got around to installing PowerShell on both my laptop and workstation. I love the concept, but so far I just haven’t had the time to dig into it or found a good problem to solve with it.
  • Windows Live now has it’s own SDK. According to the Windows Live Dev News, the new and updated areas of the unified SDK include Search, Alerts and adCenter. (via DotNetKicks)
  • Speaking of DotNetKicks, is it just me or are a lot of the links submitted by their original authors? Steven Cohn on Service Layer Transparency, Keyvan Nayyeri on How to Write Validators for Custom WF Activities, Mads Kristensen on Universal Data Type Checker just to name three of the top four articles currently on the DNK home page. Seems fishy to blow your own horn like that, but since SNK shares advertising revenue with story submitters, it sorta makes sense.

Morning Coffee 20

  • Jim Gray has been missing at sea since Sunday. My thoughts are with him. (via Werner Vogels)
  • We launched Windows Vista and Office 2007 yesterday. There were parties on campus, but my office is a little off the beaten path, so we didn’t get a party.
  • WF Activity Validation is very cool, but make sure you put your activities into a separate project from your workflows. It took me a few minutes yesterday to figure this out, but the validators are invoked not only for the activities in workflows, but for the actual activity implementation itself. My validation logic is checking to ensure properties are specified and that given activities are or are not inside a transaction scope. Obviously, the activity implementation is invalid according to these rules. Also, you need to remove the Workflow.Targets import from your activity project file, as that is what invokes the activity validation.
  • A quick follow-up to yesterday’s compiling workflows post: WF appears to be fairly short on out of the box functionality, but more than makes up for it with an expansive extensibility model. It makes the learning curve longer, but it’s well worth it the trip.
  • I’m demoing the result of the proof of concept work we’ve done over the last few months today. It’s been a while since I’ve presented to any kind of audience so we’ll see how it goes.