But it works on my PC!

The random thoughts of Richard Fennell on technology and software development

Scale out TFS2010 issues and fixes

One of our clients has been working on a nice scale out implementation of TFS2010 (migrating from an existing TFS2005). They are using AT load balancing, failover SQL cluster and Search Server Express to unify search. As you might expect this has been a interesting learning experience for all.

You can find out about some of the problems they have had and their solutions are http://www.rancidswan.com/?cat=19

Once more with feeling…watching yourself on video

I have been meaning to watch back the video taken of my recent presentation for a while. This weekend I have had the chance to sample the highlights! In the past I have always found it hard to watch myself on recordings, though after the initial cringe this time it was not too bad. I must be getting used to the critical process.

So what have I learnt

  • I say ‘err’ to ‘err’ much ‘err’
  • I move my hands about much like Magnus Pike, a childhood 1970/80s TV popular science reference as seen in this Thomas Dolby video and this Mitchell and Web sketch, for those not old enough to remember. I don’t think it is too irritating do you? But to carry it off fully I do need madder hair.
  • I tend to wander about the stage, I know it is consider good presenting practice not to talk and walk at the same time. But does this actually get on the audiences nerves? It certainly does me when watching when I jump up and down during a demo. I think I know why I am doing it, I heard about an idea from NLP for presenting/teaching to always deliver specific types of information from the same physical location e.g. funny anecdote by the windows, summary points by the lectern etc. The idea is it subconsciously primes the audience what to expect and how to treat it e.g. oh here he is by the lectern I must remember this as it is important. I guess I need to just be a bit more sparing in the application of this technique.
  • I still use too many slides, I especially need to focus on less bullet pointed ones. When presenting at the BCS recently the projector broke 5 minutes into my session and I did the rest of the session without slides (that the audience could see). All I missed was a couple of images of Scrum and Kanban (and wild hand waving an pointing at a white wall got me round the problems). I the feedback I got was good. However a key factor was I could see my bullet pointed slides on my laptop. I realised the slides are my speaker notes. So next time I intend to try very few audience slides but have a stack much like my normal one running on PowerPoint on my phone. Lets see how that works.
  • …..Oh and I have a Birmingham accent, someone could have mentioned it!

I would heartily recommend anyone presenting to have a look at videos of your sessions, even if they are just ones taken with a camcorder or phone from the back of the room. You may be surprised how you appear, sessions often look very different to the audience as opposed to how you felt it went from the stage.

If you want to checkout my performances just search for ‘Fennell’ on conference media sites:


Software Craftsmanship 2010

The Software Craftsmanship 2010 conference has been announced and is open for registration. The last Software Craftsmanship conference was one of the most useful events I have ever attended, so this years should be well worth attending, even though it has gone from being a free event to having a small charge.

As a bonus it is at Bletchley Park, in itself worth a trip.

Get in quick spaces are very limited.

All Leds flashing on a Netgear GS108 Switch

I came back form holiday to find a Netgear GS108 switch with all it leds flashing and it passing no data. This is exactly the same symptoms as this post. My fix did not involve the use of a soldering iron as detailed in the post, I just swapped the PSU and it started working fine. I have seen this before, the PSU shows it’s age before the device itself. Good job I have a big box of misc PSU from devices down the years

Update 22 July 2010: I spoke too soon, came in today to the same problem. Time to swap the capacitors

Running SPDisposeCheck as part of a 2010 CI Build

SPDisposeCheck is a great tool for SharePoint developers to make sure that they are disposing of resources correctly. The problem is it is a bit slow to run, a problem as this will mean developers will tend not to run it as often as they should. A good solution to the problem is to run it as part of the continuous integration process. There is are posts on how to do this via unit tests and as a MSBuild task, but I wanted to use a TFS 2010 style build. Turns out this is reasonably straight forward without the need to write a custom activity.

  • I created a build template based on the Default one.
  • After the compile and before the test step I added a InvokeProcess activity


  • I set the InvokeProcess properties as shown below, the edited settings are
    • Arguments: String.Format(“””{0}””””, outputDirectory) (remember you need the enclosing “ if your path could have spaces in it)
    • Filename: To the location of the SPDisposeCheck.exe file
    • Result: A previously created build variable of type Int32



  • This is done with a simple if check. If there are any errors found I write a build error message and set the TestStatus to failed. You might choose to set the build status to fail or any other flag you wish. The potential problem with my solution is that the TestStatus value could be reset by the tests that follow in the build process, but for a basic example of using the tool this is fine.

So it is easy to added a command line tool to the build. The key reason it is so easy is that SPDisposeCheck returns a number that we can use to see if the test passed or failed. hence we did not need to parse any text or XML results file. I wish more tools did this.

BCS EGM results

The BCS has had its EGM today and the results are out. Basically the vote is about 75% in support of the status quo, which I am not surprised by. What I am really pleased to see is that the Trustees withdrew the special resolution the change the number of people to required to call an EGM from 50 people to 2% of the membership.

I really do hope that this whole EGM process has been a warning to the Trustee and board that they must be more open, and help promote and continue the dialog that EGM has created.

Re-awarded as a Visual Studio ALM MVP

I have just found out I have been re-awarded as a Visual Studio ALM MVP for the third year (though it was called Team System the first two times). It is a privilege to get to work with such a great group of people as a have met via the MVP programme.

Using my Typemock TMockRunner Custom Activity for Team Build 2010

[Also see http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2010/08/13/how-to-edit-a-tfs-2010-build-template-when-it-contains-custom-activities.aspx ]

A couple of months ago I wrote and published a custom activity for Team Build 2010 to allow Typemock tests to be run within the build process. Whilst setting up a new build need to use this activity so I though I would see if there was an easier way to use it in a build without all the branch and fuss required for development.

This is what I had to do

  • Get the Zip file what contains all the source and binaries for the custom activity
  • In your Team Project’s Source Control Explorer go to the BuildProcessTemplates folder. You should see (at least) the three standard templates: Default, Upgrade and Lab. Add the TypemockBuildProcessTemplate.xaml template from the \Source\TypemockBuildActivity folder in the zip to the BuildProcessTemplates folder
  • Under the BuildProcessTemplates folder create Custom Activities folder and into this add the TypemockBuildActivity.dll file from the root of the zip
  • Check it all these added files
  • On your Build Controller (login to the build PC and open the Team System Administration console) set its custom assemblies path to point to the folder where the custom activity DLL is stored



    • You can now edit an existing build, or create a new build, to make use of the new template. You should see the new template in the list of templates, if not just use the new template option then browser to find an existing template. It is up to you of you wish to use the original or make a copy
    • As the template takes the same options as the default template it can be used as direct replacement
    • The process template in the zip has parameters set for the custom activity that were correct for the test harness used for development and the source control system it was mean to upload results to. Even for me, working on the same network, these are wrong for my new project. These parameters need to be edited.
    • Usually editing would be be done using the graphical build editing tool in Visual Studio. However as detailed in my original post, getting the custom assembly in a location so that it is correctly registered with Visual Studio involves some messy branching, and if this is not done you get error block in the graphical editor.
    • There is only one way I know how to avoid this and that is to do the editing in a text editor. The parameters that needed editing for me were
      • ProjectCollection – needs to point to the right TPC
      • TestRunnerExecutable – the location of the Typemock TMOCKRunner program as different on a 32bit PC to a 64bit build machine
    • You may need to edit more, but it is easy to see what is wrong if you try a build and look at the build log, all the parameters passed on the command line are listed, as well as any error messages.
    • Once I had completed my edits I checked the edited build template back into TFS
    • I had one further problem and that was MSTEST reported in the log that it could not run due to a missing /Platform parameter. The custom activity did not pass this parameter to MSTEST as in a default 2010 build it is not set. Once I explicitly set this my build (as shown below) it built, tests ran and results were published



  • Hope this post makes adoption of the activity a little easier for you

    Fun presenting last night at BCS

    Thanks to everyone who attended my session last night at the West Yorkshire BCS on Agile and Lean development process. The projector failing after only a few minutes meant I had to adopt a good agile approach to the session. It was nice that so many people came up afterwards to say they enjoyed the lack of PowerPoint.

    This got me thinking, as I enjoyed not having it as well. All I really missed was a couple of slides one that showed a Kanban board and another that diagrammatically showed the Scrum process, I got round the lack of both of these by pointing wildly at the blank projector screen and asking people to imagine. So if I run that session again I think I will just have that pair of slides and lose the rest. I just need to find a nice means to let me see the text slides, which I used as my speaking notes. I have never been a fan of postcard style notes when presenting, too much to drop, and when I tried using my phone in the past it was awkward, but maybe time to try again now my phone has a larger screen.

    If you do want to see the slides you missed they will be going on on the West Yorkshire BCS site ASAP