Sunday, September 21, 2014

Pushing the Octopus South...

On Thursday last (18th Sept), I was privileged to take my OctopusDeploy talk on the road again at Developer South Coast in Southampton.

I'd been having trouble the previous evening with the VMs I used at ChesterDevs, and had not been able to access them, so I took a gamble and instead of demonstrating Octopus on a prepared rig, started from scratch installing the server and tentacle onto new VMs.

Even that wasn't enough difficulty for the Demo Gods, clearly, as both my Macbook and the WindowsVM on it rebooted during the talk, and my Mifi dropped its signal out to the point that I had to borrow connectivity from a kind member of the audience at the break.

But in spite of all these problems, I managed to get through the demo and show that you can actually get Octopus up and deploying from scratch within about an hour.

All the resources for the talk, including the slide-deck, sample solution, etc can be found here:

I've got to thank John McLoughlin for inviting me to talk - my company Landmark Information Group ( for supporting me as I share our experiences, and to the @devsouthcoast audience for their patience and enthusiasm.

Monday, September 15, 2014

Monday Quickie - Using IIS Application Initialization for keeping ASP.Net Apps alive.

This came about from trying (and failing) to remember that one liner for registering components with IIS for correct teardown.
I finally came across the article by Rick Strahl that I'd been looking for, which covers everything:

Use IIS Application Initialization 
for keeping ASP.NET Apps alive


Thursday, September 11, 2014

Thursday Quickie - Which of my packages does my code use?

I had the problem today of wanting to see what versions of my private packages were being used by a specific branch of my codebase.

The solution is a very small powershell script that parses packages.config files and finds the unique dependency packages who's name matches 'MyNamespace'.

Get-ChildItem -recurse -include "packages.config" |  
select-string -pattern "MyNamespace" |
%{ $data = $_ -match 'id="([\w\d.]*)" version="([\d.])*"';    write-output $matches[0] } | 
sort | select -uniq

Quick and simple.

Sunday, August 31, 2014

On the road once again.

As the autumn draws in, I'm on the road again and am privileged to have been asked to speak at the following developer community events:

See you all there!

Tuesday, July 01, 2014

Tuesday Quickie - Transforming App.Config

Another aide-memoire...

By default, app.config files are NOT transformed in the same way as web.config files.

But there's a fix... involving editing the project file (sigh).

Gunnar Peipmann covers the process in detail here:

Thursday, March 06, 2014

Pushing the Octopus to Chester

Last night I was up in Chester presenting my "Introduction to OctopusDeploy" talk to the ChesterDevs group - my first real user group presentation (as opposed to DDD or in-work ones).

The audience was attentive, asked good questions and were enthusiastic about what OctopusDeploy could bring, so I think it went very well in spite of some technical issues - having to use my MiFi for internet connectivity wasn't ideal and meant I couldn't demonstrate a build pushing to MyGet. 

The post-event chat in the pub was excellent and engaging too - continuing the discussion of how good process can help with delivering better software.

All the resources for the talk, including the slide-deck, sample solution, etc can be found here:

I've got to than Fran Hoey for inviting me to talk - my company Landmark Information Group ( for letting me take a day out of the office to share our experiences, and to the ChesterDevs audience for their patience and enthusiasm.

Thursday, February 13, 2014

NuGet.TfsBuild v1.1 Released

Late last night I released NuGet.TfsBuild v1.1 to

This is a minor update - but brings an extra feature into the tooling - the ability to configure the HTTP Proxy that NuGet uses when restoring packages.

If you've not heard of NuGet.TfsBuild before, it's a little NuGet package that helps you use a private, password-protected NuGet repository for you internal dependencies and specifically when using cloud TFS build services. 

You can read all about it's creation and use here.

We've now been using it on our on-premise build servers so that we don't have to manually configure our private NuGet package source on each server manually - but there was a problem.

Our build servers are on-premise, and are protected behind firewalls, so need NuGet configured to use a specific HTTP Proxy. The good news is that NuGet.exe already supports this, so it was just a small change to the MSBuild targets file to add this into NuGet.TfsBuild.

You enable and configure this feature by using the following extra MSBuild switch:
If your proxy requires a specific user, then add

For bonus points, I also fixed that irritating warning that the tooling would generate when it tried to remove the package source before re-adding it - so your builds will now be cleaner.