Morning Doughnuts 1

Introduction

While Harry is out of the office on a well deserved vacation with his family I will be acting as a guest blogger for his website.

My name is Dale Churchward and I have been working at in Microsoft IT as an application architect since June 2006. Prior to coming to MS I worked in operations in both the telecommunications and healthcare industries. As Harry pointed out I tend to be very operations focused. While I love working on new technologies I am keenly interested in how a design will work in production, and try to ensure we have considered support considerations as part of our designs. Each member of our team comes in with a different background. This helps us as we are each strong in different areas. I also write to my own blog which can be found here. In my own blog I tend to write on a wide array of subjects, depending on my mood at the time. While Harry is away though, I will be posting on technology areas I am interested in, and staying true to his morning coffee vision, albeit with a slightly different take.

The Doughnuts

  • The Build Master by Vincent Maraia is an excellent book if you are interested in the build process and how to make it as efficient as possible.
  • We had a great meeting with the Patterns & Practices team the other day. Since I am still new to Microsoft it is still a bit overwhelming to meet the authors of documents you have read and used over the years.
  • I recently have been spending some cycles working with System Center Operations Manager 2007. I believe that it provides some excellent tools to monitor and repair a system plus it’s designed to be service focused.
  • Francis Stokes has produced 6 episodes showing what would happen if heaven was being run like a company named God Inc. There are currently 6 episodes. No matter what your belief or lack thereof in a supreme being the videos are hilarious.
  • I have been spending a lot of time thinking about how heartbeat transactions between multiple services should operate. In the drawing below you can see 3 web services and a monitoring one. In the original design the monitoring service was sending heartbeats out to each of the web services to see if they were available. This seem inefficient to me as we really don’t care if the monitoring service can reach the web service. What we need to know is if any dependent web services are able to connect. In the drawing we have a web service residing in the extranet (Web Service 1) that sends data to a web service in the corporate network (Web Service 2). We really don’t care if the monitoring service can talk with web service 2, but we definitely want to know that web service 1 can get there. Once web service 1 realizes that is can’t connect to 2 we then notify the monitoring system so that the owner of web service 2 can take action. Web service 1 still continues sending heartbeats though so that it is aware of when the second web service becomes available again.

Morning Coffee 19

  • I find Jim Kobielus’ “SOA as 50 square miles of fungus” analogy funny and strangely compelling. The “keep in the dark and feed it shit” jokes practically write themselves. (via Joe McKendrick)
  • Politics 2.0 Rising: The number of Americans who got “most of their information” about the 2006 midterm elections was double the number from the 2002 elections.
  • Do you use external/flash drives? Do you have issues when you try to “Safely Remove Hardware” with said drive? I do, all the time. Apparently, unlocker is the answer. (via Paul Andrew)
  • How come there’s no information about LogToTraceListeners in the WF documentation? As far as I can tell, it’s not in the Windows SDK docs at all and the only reference to it on MSDN is this year-old article and this year-old blog post. I only discovered because someone on the internal WF discussion alias asked about it. I’ve added In my SSB/WF work, I subclassed the built-in SQL persistence service in order to add tracing support. If you’re developing a WF host, you need to turn this on. I find it mind-boggling this isn’t included anywhere in the official WF docs.
  • Nice to see Soma bragging about Software Factories. As he writes, our current solution – consisting of the Guidance Automation Toolkit and the DSL Tools - are really just a first step. I’m just starting to experiment with the Web Service Software Factory (WSSF). Aaron Skonnard introduces both the ASMX and WCF version in his two most recent Service Station articles.
  • Michael.NET makes Programming Promises and Ted Neward swears the Oath of the Conscientious Programmer. Why stop there? How about the Architect’s Affidavit to actually implement the shit we draw on the white board? The Technologist’s Testimony of understanding and belief in all things geeky and gadget? Come on, isn’t this just called “doing your job”? Do we really need to make promises and swear oaths to take it seriously and do it to the best of our abilities?

DevHawk.ColorConsoleTraceListener

As mentioned this morning, I factored the ColorConsoleTraceListener code into a seperate assembly and added config support. It’s pretty simple, but I find it useful. Let me know if you do too.

Download DevHawk.ColorConsoleTraceListener here.

Morning Coffee 16

  • Forgot to say this yesterday, but I’m happy the Colts are in the Super Bowl. Well, I guess I’m more happy that New England isn’t in it. They’ve won it enough lately. I wish the Saints has made it, but at least this way I have no question who to root for on Super Bowl Sunday.
  • My Gamerscore cracked 1000 over the weekend. I got 60 points in Dead Rising and 100 points in NHL 07k0%01%02). I have played ten games + three arcade games for a maximum possible Gamerscore of 10,600 and a Gamerscore “conversion rate” of 10.28%. I wonder how good that is? All the leader boards I’ve seen rate purely on Gamerscore.
  • Speaking of games, Obsidian (of Neverwind Nights fame) is working on an Aliens RPG! Check out this post by Chris Avellone of Obsidian on Game Design Research (via Game Tycoon).
  • Richard Grimes’.NET Instrumentation Workshop rocks. Richard also has extensive workshops on .NET Security and .NET Fusion (aka runtime binding). If they’re as good as the instrumentation workshop, they’re worth a read.
  • In my SSB/WF prototypes, I’ve simply been writing to the console. The lo-tech brute force works okay for a console app, but not at all when I move my code into a shared library. So I decided to bite the bullet now and translate the Console.WriteLine calls into TraceSource calls. My prototype isn’t that big (yet), but it went pretty smooth nonetheless. I currently have three TraceSources in my solution – one for the host, one for my SSB activities & workflow service and one for the persistence engine (I just inherited from SqlWorkflowPersistenceService and added the trace calls). I’m sure in time, I’ll wish I had set up my TraceSources differently, but for now it works.
  • The one feature I lost moving from Console.WriteLine to TraceSources was color support. Since I am creating voluminous tracing data, I used color coding to indicate which part of the application the trace information was coming from. Of course, the OOB ConsoleTraceListener doesn’t have any mechanism to color code the output. I hacked up a ColorConsoleTraceListener in a couple of minutes that worked great. I say “hacked” because my color choosing code is currently hard coded, rather than being stored the config file. If I get the time to change that, I’ll post the code here.
  • While researching ASP.NET’s Membership system, I found this Scott Guthrie post with links to ASP.NET providers for MySql, Oracle and SQLite. I’ve wondered about the lack of a simple file-based ASP.NET role/membership provider and even started hacking together an XML based one. But the availability of a .NET SQLite data provider makes that an interesting option. XML would be human readable, but porting the existing SQL providers to SQLite would probably be easier.
  • Politics 2.0 in action: Talking Points Memo is enouraging you (aka Time Magazine’s Person of the Year) to record your own response to tonight’s State of the Union. Basically record your response via camcorder, webcam or cellphone. Then upload it to YouTube and add it to the TPM SOTU group. With President Bush’s approval rating at all time lows, I’m guessing these videos will be venting some of the pent up hostility towards this administration.