Software Engineering categories

An almost seamless transition from Ghost to Hugo

Well, I finally did it. Ghost has been sitting on an older version for a long time, my certs were expiring, and I did something about it. TL;DR; My blog engine and hosting were deteriorating fast, so I moved to GitHub Pages, Hugo, and Static Site Generation, (mostly) without losing or breaking anything. Synopsys Years …

Failed to query available provider packages - Terraform NewRelic Provider :facepalm:

Recently I tried upgrading from Terraform 0.12 to 1.0.1. I think the key here is leaving 0.12. Anyway, there was a breaking change in 0.13 around how providers worked, and we got this cryptic error. (Caveat: I don’t actually know how much of this has to do with a newrelic provider update as well or instead, but …

Kotlin, TeamCity and reflection

I’ve been getting stuck into upskilling in Kotlin. Mostly for TeamCity build automation and trying to produce quality tested code in a space where automation was retrofitted in. Today’s fun little problem was the error message: Runtime error RootProjectId: …

Nullable and notnull Serialisation Properties

The C# 8 feature Nullable has been well received by myself and others into our workflows and has improved code bases immensely. However, there is one niggly workaround that I’m not a fan of, and that is = default!; problem definition // This class is used to serialise/deserialise a payload from a server public …

We are all 10x engineers, but I don't think it means what you think it means

If your reading this blog, and used twitter in the past few days, you have probably already seen this tweet, or some of the replies coming through from the community: 10x engineers Founders if you ever come across this rare breed of engineers, grab them. If you have a 10x engineer as part of your first few engineers, …

Snuffleupagus-Oriented Programming

An impromptu introduction to Snuffleupagus-Oriented Programming (SOP): https://t.co/jPkjPRgqQr — Casey Muratori (@cmuratori) July 21, 2015 Sometimes naming something is the best way to start talking about a topic that lots of people do but don’t realise or haven’t pulled together as a concept. This …

Looking Back on C# 7: Pattern matching

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Pattern …

Looking Back on C#: async and await

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. …

Looking Back on C# 7: refs enhancements

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. We talked …

Looking Back on C# 7: Out variables

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. What are …

Looking Back on C# 7: Local functions

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Lambdas - …

Looking Back on C# 7: throw expressions

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Throwing …

Looking Back on C# 7: More Expression body members

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. We …

Looking Back on C# 6: Expression body members

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Method …

Looking back on C# 6: Initializers

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. …

Looking back on C# 6: String interpolation

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. String …

Looking back on C# 6: Static Imports

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. Another feature that I avoided for a while, but have really starting to use a lot more. using brings a namespace into the scope of the file. This allows us to write …

Looking back on C# 6: nameof expressions

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. This is such a small feature but I use it everywhere. The nameof expression keyword acts like a function, that takes any reference as its argument, and evaluates to the string …

Silverlight 6 with .NetStandard support Announced

Published on April Fools Day, 2019 Microsoft announced today that they are working on Silverlight 6, which is to include .NetStandard support up to at least NetStandard 2.0. Development Manager Loof Lirpa on the Silverlight Development team has confirmed that there is a Silverlight version 6 in the works, and it will …

Looking back on C# 6: Elvis Operator

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. We start with the Elvis Operator from C# 6. The real name is Null Conditional Operator I believe, but I prefer the former. It is always good to first look at what the simplest, common …