2016 - A Retrospective

Published on 03 January 2017

What a year it has been!

Looking back on 2016 it has been full of personal high and lows, but all in all, it has been a great year, for lots of reasons. This post is a very brief recap, in no particular order, of some of the highlights.

Baby Park #2

Early on in 2016, Lynn and I were very happy to announce the impedding arrival of our second child. Baby Park #2 is due on February 16th. Yes, that is only just over 6 weeks away! We are trying to tell ourselves that we are ready for the arrival, but I am not sure if we are. The last couple of days have been about getting things ready, making the cot, the moses basket, etc, but still loads to do. Alivia is getting more and more excited about being a big sister, which is great to see, so definitely some fun times ahead here.

GitHub Contributions

After taking part in Hacktoberfest and 24 Pull Requests in 2015, I had a renewed vigour for contributing to the Open Source Community, and this continued through the whole of 2016. Which can be seen in the chart below:

2016 GitHub Contributions

NOTE: The eagle eyed amongst you might notice a prolonged break at the end of June. That was when I was on holiday in Portugal for my sister's wedding.

Yes, I think I do have a sort of addiction, but it has been great fun.

I have continued to contribute to the projects that I have a passion for, including:

As well as helping out on other projects, where and when I can. I can honestly say that I have learnt a lot through the contributions that I have been making, and I am looking forward to continuing the contributions through into this year.

A quick recap of the years events from a Cake perspective can be seen here.


In 2016 I was lucky enough to be invited onto a number of podcasts to discuss Cake, the C# Build Automation system which I am a maintainer of. These were:

I have been a long time listener to all of these shows (with the exception of Cynical Developer which has really only just started, but is now on my playlist), and to get invited to talk on them was a huge privelege. Thank you!

I was particularly necessary and excited about going on the .Net Rocks show, due to the fact that it was an in person interview with Carl and Richard while I was at NDC Oslo. I had also just came off stage from doing my presentation.


In terms of speaking engagements, this year was by far by busiest. With the arrival of our daughter Alivia a few years ago, I sort of stepped back from submitting talks to Developer Conferences, but this year that changed...

I did talks at:

The stand out of the above has to be NDC Oslo. This is quite simply an amazing conference and I have been lucky enough to attend it for the last 3 years. It was also the most nerve wracking one, as it was the largest audience that I have ever presented to. Happy to say that I made it through, and the feedback that I received was remarkably positive, so I am very happy with how the talks went.

A huge thank you to all the Conference Organisers for these events!

Hacktoberfest and 24 Pull Requests

In the same way as I did in 2015, I participated in both Hacktoberfest and 24 Pull Reuqests in 2016.

For those of you that don't know, Hacktoberfest is an online event ran by DigitalOcean. The idea is simple, in the month of October, submit 4 or more Pull Requests to a project on GitHub. Simples! If you do this, you get an awesome t-shirt, as well as some swag, and of course, some bragging rights and internet points.


24 Pull Requests is similar, with the exception being that the target is 24 Pull Requests, and it is in the month of December. Unfortunately, there isn't any swag associated with this particular contest, but I wouldn't let that put you off taking part. This year, I was a little bit late in getting all my Pull Requests in, working right up until the last day. In 2015, I was able to make 40 Pull Requests and complete in plenty of time. Going to have to pull my socks up in 2017!

Stack Overflow Contributions

I have been an on/off user of Stack Overflow since joining in 2011. Mainly as a consumer of answers, it is an invaluable resource. In 2016 though, I made a concerted effort to try to provide answers to questions rather than simply use the existing answers. This was mainly due to my increased involvement in the Open Source projects that I work on. As a result, I have seen an significant increase in my Stack Overflow reputation this year:

Stack Overflow Reputation

And having just logged in just now, I have just seen that I am now in the following:

Stack Overflow Reputation Top 14% overall

To date, my top answer on Stack Overflow is:

Where is the Chocolatey installation path

and my top question is:

How to use Visual Studio Code as Default Editor for Git

Since I have been using Stack Overflow more and more, I have started to see some of the issues that I have heard people talking about on places like Twitter. i.e. people getting into arguments, questions getting quickly marked down, and deleted/removed, etc. There is definitely an element of this, but I still think that the benefits far outweigh the negatives.

It is still annoying though when you spend a lot of time on an answer and then you get nothing back from the original author!

On the plus side, you can get access to some funny hats!!

Stack Overflow Profile

TeamCity Plugin Contest

This year, I was asked to be a judge in the annual TeamCity Plugin Contest, which was indeed an honour and a privelege. The contest website can be seen here.

Along with the TeamCity Development Team, Wesley Higbee, Jeffrey Palermo and myself were asked to judge 26 different plugins, scoring them on:

  • Usefulness
  • Creativity and Elegance
  • Completeness
  • Code quality and documentation

TeamCity Coding Contest Judges

I wasn't able to offer much in terms of judging Code Quality, as I have never done any Kotlin programming (although it is on my list of things to look at), but I was able to score the plugins in the other areas. In all honesty, this was a lot of fun (although it did take quite a while to go through them all). There were some amazing entries, and the end results can be seen here. Congratulations to the winners, and well done to everyone who took part!

WinOps Conf 2016

In May I was able to attend the WinOps Conference in London. This is the second time that I have attended this conference, but this time I was there in a more official capacity. Chocolatey was the lanyard sponsor for the event, and I was there to answer any questions that anyone had on Chocolatey.

Chocolatey Lanyard Sponsor

I was able to hang out on the Puppet booth, and to hand out some of the new Chocolatey Icon stickers which were released this year.

I was also able to grab some time with Jeffrey Snover to discuss some of the newer features that have been coming out recently in Chocolatey.

WinOps 2016 Chocolatey Jeffrey Snover

NOTE: Image taken from Official WinOps Twitter Feed here.

The videos from this event can be seen on Channel 9 here.

Microsoft Band Saga

Anyone who follows me on Twitter will be aware that I have had a number of ongoing problems with my Microsoft Band 2. I genuinely, really like this device, it does everything that I need, and more, however, it keeps breaking!

Microsoft Band strap split

This year, I have had to return the device twice for the same problem, in the exact same location. In December, the same thing happened again. This time around though, after hearing that there are no plans for Microsoft to continue with the device, I have requested a refund from Microsoft, rather than a replacement. I haven't yet heard whether this is going to go through or not, but I am hopeful. A courier is picking up the device on the 4th January, so I should find out soon whether it will go through. The next question is obviously what to replace it with?


I am very happy to announce that Microsoft have indeed refunded me for the Microsoft Band. Now I just need to decide on what device to go with next.

Aberdeen Developers

Although I have taken a step backwards recently, through the help of @nyami, I am very happy to say that Aberdeen Developers .Net User Group is still going strong. I was able to help out this year with a couple of the events, but lots of credit has to go to Doug for keeping it going!

This year the group hosted 8 events:

The stand out event is the one that I did obviously the aptly named ScotNetRocks tour! This featured the amazing Carl Franklin and Richard Campbell from the .Net Rocks podcast. This event was done in conjunction with the guys from Scottish Developers and saw Carl and Richard visit Glasgow, Edinburgh, as well as Aberdeen. The tour was a fantastic success, and the feedback that we got was amazing! Once again, a huge thanks for the sponsors of the event, Codify, Evoke IT and Lockheed Martin without whom the event couldn't have happened!

ScotNetRocks Tour Aberdeen

Converted Blog to Wyam

For a very long time, this blog has suffered from a lack of updates. The main excuse for this was that the workflow for creating a post (in my opinion) was significantly jarring, so although from time to time I had ideas for creating posts, this simply didn't happen. This is now set to change though. In December I converted this blog to use Wyam as the underlying blog engine, and in addition to switching to using Markdown Monster, the workflow is far smoother. This is mainly down to the plugins that Markdown Monster comes with, namely:

  • Snagit Screen Capture
  • Paste Code as Gist
  • Save Image to Azure Blob Storage

which means that the process of creating a post, including the images associated with the post, is far more streamlined. This will be the content of another upcoming blog post, so stay tuned for that.

The best thing about Markdown Monster has to be the out of the box for support of Chocolatey. You can simply do:

choco install markdownmonster

and you are off.

Ok, I might be a little biased here, but the fact that an application vendor is directly publishing to Chocolatey.org as a mechanism for distributing their application, is a testimony to how far Chocolatey has come.

Chocolatey Contributions

As I mentioned above, I have in 2016 continued to contribute to the Chocolatey project. This has included:

However, the stand out for me this year has to be the work involved in the Chocolatey Core Team Packages repository.

In case you haven't heard about this, this repository is a place that houses over 100 Chocolatey Packages, almost all of which are continuously monitored for new application versions every 6 hours, which means that almost as soon as a new application version is available, an associated Chocolatey Package is created and submitted to chocolatey.org, ready for installation on your machines.

Since this repository was created, it has gone through a number of iterations, and intentions, but the most recent work has cemented the intention of this repository. Namely, it is a place that any package maintainer can contribute their package (as long as it fits in with the guidelines) and that package can immediately take advantage of the infrastructure that has already been setup, i.e. AppVeyor Continuous Integration Builds, etc. As a result, a community maintainer can be more effective at maintaining a package, without having to worry about the initial, rather daunting setup, that is necessary for automatic packaging.

This year, with the help of some amazing people:

We have started the process of switching from using ketarin to using AU (which offers much better insights into what is going on with Automatic Packages), as well as pulling in more of the higher priority packages from other maintainers like Rob Reynolds. Pulling in these high priority packages into a central repository, which is being monitored/updated by more people, means that they are more likely to continue to be updated when there are changes to the package, which is overall, a win for everyone!

Cake Contributions

As mentioned above, Cake has had a number of success stories this year, but for me, the stand out one, and the one that I have been most involved in, is the Cake-Contrib Organisation. This organisation is the sister organisation to the Cake-Build organisation and it is intended as a mechanism to ensure the longevity of the addins and modules that the Cake Community creates.

As we all know, open source is perilious in the sense that it relies on people's spare time to help out, and as a result, life can sometimes get in the way. The Cake-Contrib organisation came about after a question was raised about an addin which hadn't been updated in a while, even though some PR's had been raised to correct some known issues. In the end, this was resolved very quickly, but it did raise the question about "what should be done if an addin/module that the Cake community relies on, stops being updated by the original creator?". This topic was discussed in length here, but the upshot was this...

In the event that an addin/module was no longer being supported, and after every effort to contact the original maintainer has been exhausted, we the Cake maintainers wanted an ability to step in to help.

The end result of this was two fold.

We created the cake-contrib user on nuget.org and asked package maintainers to add the cake-contrib user as a co-maintainer of their nuget packages. This would mean that should it be required, a member of the Cake Team could push a new release to the same package id, without the need to create a new package id. This is ideal, as it means that there is non duplication of packages, and therefore no ambiguity of which package is the official one. At the time of writing this post, I am VERY happy to say that 91 of the 102 Cake addins/modules, have added the cake-contrib user as a co-maintainer. I am personally very thankful to the Cake Community for getting behind this effort, as I really do feel that it is the best way to ensure the longevity of the packages that have been created. Thank you!

In addition to the above, we also invited community members to add their repositories to the Cake-Contrib organisation, rather than maintain them in their own personal GitHub repos. This is certainly NOT a requirement, just a suggestion. The main reason to do this is again to easily allow other people to help out on a project, if/when required. Once moved into the organisation, people can easily be added to the associated team within the repo, and start to help out on the project.

The process of adding a repository to the organisation looks like this:

  • repo is transferred into the organisation (let's use Cake.Gem as an example)
  • a team called Cake.Gem is created, and given admin rights to the repo
  • the original maintainer/creator of the package is added to this team
  • AppVeyor Role is created and project created, and team is added to role
  • additional infracture like MyGet and NuGet is setup and configured
  • Coveralls is set up for project

So again, the main thing that is brought to the table here is the setup and maintenance of the additional infrastructure that comes with an Open Source project. By alleviating the burden, we think we can better help the Cake Community. To date, 27 addins/modules have moved to the Cake-Contrib Organisation. I invite anyone else who is interested to reach out to me, and we can discuss moving additional repositories under this organisation.

That's a wrap!

So, all in all, it has been a very busy year! Looking forward into 2017 I hope for more of the same, but with the arrival of Baby Park #2, it might not be quite as busy!

comments powered by Disqus