CodeMash CTF 2019

This past year CodeMash held their annual Capture the Flag competition. With the event wrapping up, I thought it would be a great learning opportunity for everyone to describe each of the challenges and explain the steps I took in order to solve each one. There are fifteen in total…

Read this article

Understanding Azure Deployment Slots

Azure deployment slots are a fantastic feature of Azure App Services. They allow developers to have multiple versions of their application running at the same time with the added bonus of being able to re-route traffic between each instance at the press of a button. They can, however, generate a…

Read this article

The Transformation Priority Premise

Recently I stumbled across a test driven development article that mentioned something I had not heard before. It's a premise that Uncle Bob came up with as a means to order the priority of the transformations you should apply when practicing test driven development. He called it the Transformation Priority…

Read this article

The Rules Pattern (How to Drop Your Guard)

In your travels as a programmer, you will more than likely come across a body of code that looks a little something like the following:public bool CheckSystem(Computer computer) { if (computer.Ghz < 3) { return false; } if (computer.Ram < 4) { return false; } if (computer.DiskSpace < 10) { return…

Read this article

Keep Your Collection Setters Private

When exposing properties of a class, you may find yourself immediately exposing a public getter and a public setter. This is a very common approach, especially in anemic models. However, this approach can be problematic when applied to collections. Allowing consumers of your collection to freely modify the entire collection…

Read this article

Prefer readonly to const

I was recently reading Effective C# by Bill Wagner. In the book, the author makes the statement that we should prefer readonly to constants. I wasn't immediately able to piece together why we should, I mean, what's even the difference between the two? To answer this, let's first discuss how…

Read this article