How the gym made me a better database bloke…..

A blog post about how many reverse bicep curls or Romanian DeadLifts I can do…? As Rob Farley (t | b | w) would succinctly put it — “what the…??”

No it’s not.

But it’s related — if you’ve met me in person you’ll know that I’m tall – 6 foot 3 if I stand properly and generally within about 69 minutes of talking I’ll mention I used to be 130kg. I used to physically hurt as my back was not strong enough to carry that bulk around.

Something had to change.

I changed my eating habits, drinking habits (beer is a treat not a standard these days) and went to the gym.

I love data. More specifically I love numbers. And that was how I started liking the gym. I lift weights and do cardio and I initially record all the numbers associated with each session.

How many kilometers I biked, how much I could bench-press and how many repetitions I could do. And then — how many kgs I could lose.

I lost 16kg in 6 weeks during one period…

…..that was intense but rewarding.

Now as part of lifting weights I wanted to swap body fat for muscle. So I looked at how to build muscle. It involves tearing the muscle, which repairs itself and gets bigger.

Here is a link if you’re interested:

On 11th September this year I celebrated 17 years at Jade Software. 17 years……

Yeah. It has been a pretty cool ride and my career has changed whilst being there – which is one reason why many people stay so long there.

But after 17 years I started to think — how can I grow my technical & management knowledge more?

By tearing my established skills a little.

So I have embarked on tearing my skills, by making myself slightly uncomfortable in the sense of technology & also management (I’m an Operations Manager after all).

I also read a lot of blogs/articles/websites whilst running on a treadmill, whilst hating running on a treadmill. It helps for 2 reasons:

Makes me forget I’m running on a treadmill.

I’m learning stuff.

So over the past 3 weeks I’ve spent most nights putting myself out of my comfort zone.

I’ve installed Team City and help DEV configure it.

I’ve learned heaps about running SQL Server on Docker.

I’ve learned a fair bit about Docker in the process…

I’ve done a lot more in Visual Studio Team Services (VSTS) than I have in the past year.

I’ve found out how brilliant the tools from RedGate (w )are in a DevOps Database deployment pipeline – namely Database Lifecycle Management

This is about extending myself, tearing my brain muscle to make it stronger (metaphorically bigger). To be able to extend how I use the Data Platform offered by Microsoft to:


But I’m not stopping there.

There are other areas coming up that I really want to tear it up in:

Running Kubernetes on Azure

Tuning SQL indexes like a boss (refer Rob Farley..)


Passing SQL exams — my last Microsoft certification was as a MCSE (NT4.0)

Become the guy who helps people migrate from TFS to VSTS

All of the above will benefit me.

Most of the above will benefit the company I work for.

That surely is a good reason to keep going to the gym.




SQL Server 2017 — change the tag for your docker images


SQL Server 2017 is now officially released!

I have been using SQL Server 2017 running on Linux for a while now (blog post pending) and use the official images from:

To get the latest I used to run

docker pull microsoft/mssql-server-linux:latest

However today I noticed that the :latest tag had been removed:


~$ docker pull microsoft/mssql-server-linux:latest
Error response from daemon: manifest for microsoft/mssql-server-linux:latest not found

From the site above I read:

You may notice that the :latest tag has been removed. Please use the new tags going forward – either :2017-GA or :2017-latest.

So to get the latest image I just now run:

docker pull microsoft/mssql-server-linux:2017-latest

To get the Generally Available image:

docker pull microsoft/mssql-server-linux:2017-GA

When I started the container up and connected with SQL Server Management Studio I noticed that the version had jumped up a bit:

Original Image:


GA & Latest:


For now GA and Latest are the same version (kind of makes sense seeing as it was only released today….).

And of course the beauty of all this is that if I need to spin up different SQL Server versions it literally takes seconds to run:

docker start SQLServer-Docker-2017-GA

or when I need to use my old image, stop that one above and spin this back up:

docker start SQLServer-Docker-DEV

Which I imagine would be quite a powerful thing to have in an automated database deployment pipeline….

… with some automated testing going on.

If you are in Seattle in a little over a month please check out my session:

It’ll hopefully show you how to #MakeStuffGo


Want to know what software is running on the VSTS Hosted Agent? Go here….

This is related to my previous post about installing things on my Private-Hosted agent that I use for my VSTS builds.

I have never had any issues using Microsoft’s Hosted Agents — my only issue is that I use up the 240 free build minutes (so utilise my own on-premises agent)

So there is a website that lists all the software that is installed on the machines that run the Hosted VSTS agents and it is here and is updated daily:

It has made me re-think my strategy about my on-premises builds — I have thought about splitting off my SSDT build steps into their own process — running on my agent and the other stuff running in Hosted.

However — one thing I did implement just recently was doing builds in parallel — which took my build from 34 seconds down to 9 seconds.

build in parallel

Now that might just be the tipping point for going back to Hosted VSTS Builds….



When upgrading a Visual Studio project — you need to upgrade your TFS/VSTS Agent

This post is linked to my post about hosting VSTS private agents . I had recently upgraded my Visual Studio environment from 2015 to 2017. I was getting prepared to do a run through of my upcoming PASS Summit DEMOs.

At PASS Summit I’m speaking on “Achieving Continuous Delivery for your Database with SSDT” and I wanted to get the latest/greatest stuff working and I like to do quite a lot of dry runs of my DEMOs to semi-appease the DEMO Gods.

(You can never truly appease the DEMO Gods…..)

Everything was going well, until my first Build in VSTS – which had a weird error and I was not getting any application code built into my artifact package.

##[warning]Visual Studio version ‘15.0’ not found. Falling back to version ‘14.0’.

Hmmm…… now up until this point I had used the Hosted Agent in VSTS/Azure land and builds had succeeded. But because I knew I’d be going lots of builds whilst testing I swapped to an old On-Premises agent.

It would not build the code into the artifact. Essentially there was no artifact.

Oh dear..

So I went onto the server and went to upgrade MSBuild tools (as I don’t need the full blown Visual Studio application). So I downloaded vs_BuildTools.exe from the server and ran it up:


But things didn’t quite go to plan.


So I tried everything, I read that a few people had seen this error before. My biggest issue with it is that it says to check my internet connection.

Ahhhhhh….. that internet connection was the one I used to download it!!.

Basically after hours of trying it I then found that out that MSBuild is packaged up as a Nuget package these days. Nice.

I applied the package to my on-premises server hosting the VSTS agent and voilà — builds are now going through properly and I have an artifact that I can push out to my database and application. Lesson learnt that I should keep all things in synch if I’m upgrading Visual Studio….

…..Or not be so cheap and just use the power of Hosted Agents in VSTS!!

(BTW this is another reason why I really like VSTS over TFS — someone else does the drudgery work associated with upgrades!!)