May 2007 Archives

CIMG0466 This morning we had a power cut which killed a particular tricky upgrade mid-way through trashing the machine I was attempting it on.  Luckily the machine in question was a VM Ware image and I had recent taken a backup snap-shot so I only lost a few hours work.

When the power returned I went out to the (now infamous) garage to switch on the machine I have running out there that acts as a VPN Gateway, TFS Proxy (the world's smallest) and Build Mirror which allows my network to seamlessly be part of the main Teamprise network. 

However it would not boot.  Being the technical minded English guy that I am, I unplugged the computer, went back inside and made myself a cup of tea in the hope that it would magically fix itself.

When I returned, I discovered that usually foolproof trick of simply ignoring the problem had let me down and it was going to be much messier than that.  I brought the machine into my office, opened it up and instantly saw the problem - a set of rather sick looking capacitors on my motherboard.

At this point, I figured I was just going to have to get a new machine.  Having recently got a fancy new workstation, I was not looking forward to breaking this news to my boss.  I hopped onto the Internet to see what the cheapest machine I could get was when I discovered that this was a reasonably well known problem with my Dell SX270 motherboard, and better yet Dell was doing an out-of-warranty repair program to fix them.

I gave Dell a call fully expecting to get the brush off, but after about 5 minutes talking to 3 people around the globe, I got through to a chap who has arranged for an engineer to come to the office tomorrow and replace the motherboard - free of charge.

This is a much abused and unloved machine that has been running more-or-less 24 hours a day since I bought it several years ago. Just as it was about to go to the great landfill in the sky, it sounds like it is going to get a new lease of life.  Sounds to good to be true - I'll let you know how the appointment with the Dell Engineer goes tomorrow.

Anyone who has spent time on the inside of the Microsoft LAN knows that they have a ton of great internal tools and utilities that never make it into the outside world.  One of those ones that did is Microsoft LogParser.  It gives you a universal querying capability to log files, active directory, event log data, the registry etc using a SQL like syntax.  It was initially created to look at IIS log files, and is lighteningly quick.  If you want to know more about Microsoft Log Parser 2.2 then go take a look at the website, download it and take a read of the installed help documentation.  You can tell something is powerful when Mike Gunderloy hosts a website ( giving people tips and tricks around it :-)

LogParser is able to output into all sorts of things, text files, charts or even HTML reports.  Personally I normally like to output into a CSV file so that I can load the data up into Excel and play a bit more with it there.

So, here are a few examples for queries against the IIS logs for my Team Foundation Server application tier (I run these from a copy of the IIS logs I have in my current directory):-

Which client versions have been accessing TFS and who was using them from where?

"c:\Program Files\Log Parser 2.2\LogParser.exe" -I:IISW3C "select cs(User-Agent),cs-username,c-ip,MAX(date) INTO out.csv FROM *.log WHERE cs-username IS NOT NULL GROUP BY cs(User-Agent),cs-username,c-ip ORDER BY cs(User-Agent)" -o:csv

We had a bad bug before Teamprise 1.1.1 and recently we've been aware that some companies have older versions of Teamprise still lying around.  If you are one of these companies, then I urge you to upgrade immediately.  You can use the query above and then look for Teamprise+1.0.0 or Teamprise+1.1.0 to find the folks who are using older versions and on what machines.

Who is using Teamprise to talk to my TFS instance?

What about if you want check who is using Teamprise to talk to TFS.  If you have purchased licenses then you can ask Teamprise support for administrative access to our activation server but another way that includes folks running on evaluation licenses is to check your IIS logs:-

"c:\Program Files\Log Parser 2.2\LogParser.exe" -I:IISW3C "SELECT DISTINCT username USING TO_LOWERCASE(cs-username) AS username FROM *.log WHERE cs-username IS NOT NULL AND cs(User-Agent) LIKE 'Teamprise%'"

As you can see, LogParser is a great tool that has a lot of flexibility to offer.  If you enable additional IIS logging you would also be able to get information about bandwidth usage for TFS per user etc.  While the learning curve for LogParser is pretty steep, I would encourage you to install it and have a play so that you have it in your arsenal next time you need it.

Moon and Venus On Saturday night I took a look out my kitchen window and was met with this view of the Moon and Venus.  I took a quick snap-shot with my very basic Casio Exilim 1050, but I'm sure you'll be able to find many more professional photos around the internet by now.

IMTC Registration Open!

If the recent announcements about Silverlight have your interest and you can get to Dublin on June 7th this year then I would urge you to take a look at this years Irish community conference IMTC.  It used to be called INDC but they had to drop the "D" because there is sooo much more to the event than just developer stuff.

Folks who went to the event last year will remember the highlight of the event were the talks and hand-on sessions with Scott Guthrie.  This year, I suspect the highlight will be the Silverlight sessions from Tim Sneath - group manager for Silverlight and WPF.

These conferences are ran by the combined Microsoft Techology user groups of Ireland and are a great opportunity to catch up on what it going on, have great talks from world class presenters and chat with your fellow techies - which is always the best bit.  The conferences are always very personal.  The event is being organised by the community for the community, but they have managed to attract some generous sponsors which means they have managed to keep the costs down to only €50 per person.

If you can make it to Dublin I would strongly encourage you to go.  You'd be hard pressed to get such great content in one place along with the chance to interact with the presenters.

When: June 7th, 9am till late (It's an Irish event after all...)
Where: Cineworld complex , Dublin
Cost: 50 euros (to help cover costs).

With 18 sessions from amazing speakers, this is one event that you will not want to miss. They are covering everything from the new Silverlight and Expression products (very exciting!) to WCF, Biztalk, SQL Server, Longhorn Server, Security, Mobile technologies, Card Space and even Game Development with the XNA framework with some robotics thrown in as well.

Book now before it is sold out.


| 1 Comment

Recently I had the pleasure of chatting with Carl Franklin and Richard Campbell about Source Control and Continuous Integration - this was recorded for DotNetRocks and the show is now available for you to enjoy.

As Eric has mentioned, I've been a fan of DNR for a while.  In fact, back in November 2004 when I used to burn the shows onto CD (in fact it was 2-CD's per episode back then), Carl mentioned that he was going to start making the show available as a "podcast" and it was because of this that I ended up purchasing my first iPod.

Having been a long time listener it was really interesting to see how well organised the recording sessions are, and also how well edited it is afterwards.  I've always thought that the PWOP podcasts have great sound quality, but only after being present during the actual recording do I understand all the tweaking that they do to take out fluffs / people overlapping when they talk etc (interupting people as they talk is a really annoying habit of mine).  Thanks again to Carl and Richard for having me on the show and to Eric for getting me invited - I hope that people find it moderately interesting.

Recent Teamprise Announcements

I've just got back into the office after a week and a bit on vacation and was pleased to see a few announcements have been made while I was off sunning myself.

  1. We will be making our Java API for TFS available for license later in the year
  2. We released 2.1.2 of Teamprise Client Suite

The Java API thing just makes sense.  We've always had our API as a seperate component (which we call "Core") and this is very discrete from the UI and CLC clients.  Making this available to others will hopefully be a good thing and increase the number of Team Foundation Server enabled products in the maket place.

Version 2.1.2 of the client suite is a minor maintanence release in response to customer feedback we had recieved.  It ranges from the cosmetic (changing the example URL label when running with a CodePlex license key), to some bug fixes to the odd feature we have slipped in (a version of the getcs command based on that available in the Microsoft powertoy).  For full details on what is in the 2.1.2 release then take a look at the release notes.

Help in Orcas tf.exe

Screenshot of the new tf.exe helpAhh, in Beta 1 of the Team Explorer client, if you type "tf" in a Visual Studio command prompt, you get back help in the console, rather than a window popping up taking you to the MSDN help.  To get the old behaviour you can type "tf msdn".  Sweet.  I suspect this is the first of many small changes in Orcas that I'm really going to like.

I wasn't at SD West this year, however I'd heard that Brian Harry was going to be doing an interesting keynote.  Jack Vaughan has recently published some of his "take-aways" from Brian's presentation and it certainly looks like there was some good stuff in it.  My favorite quote is:-

“In version 1.0, I took all my paths and sorted them. Unfortunately, if I was to access all of the files in a folder, I end up seeking dramatically more because of interleaving in all of the subtrees. We went back to looking at what order we want the data to be on the disk to give us a geometric pattern as to how to optimize the data on the platter. When I look across all of the operations, the one change resulted in a 10X improvement. Sometimes you have to drop the relational model and look at what is happening at the disk level.”

Now, here at Teamprise we have to worry about some low level stuff from time to time, but it's because of quotes like that, that I enjoy working with the TFS Team.  Not that I even particularly understand what Brian is referring to here, I just get confidence that the team are worrying about stuff that I don't want to.  It also takes me back to my time as a PL/1 developer when to even compile a bit of code you had to have a decent understanding of the IBM 3390 disk geometry to be able to write the JCL to compile your bit of code...

Because of my job, I have the pleasure of talking with many of the people behind TFS, and everytime I do it always inspires me with confidence.  I am also very grateful that Microsoft are dogfooding TFS.  Looking at our own dogfood server (i.e. the one that we use to manage the Teamprise development - not one of the ones we use as a test TFS instance) we have 146,016 local versions currently and we have one main Team Project called, unsuprisingly "Teamprise".  Contrast that with Microsoft's DevDiv dogfood server who currently have over 500,000,000 rows in their local versions table and over 300 Team Projects.

Anyway, at the time Brian promised to blog the contents of his talk, and I hope he does that.  It sounds like there was a lot of useful data-points and stuff that would be good to be able to think over for a while.


Creative Commons License
This blog is licensed under a Creative Commons License.