Steve Fenton


Steve Fenton is a four-time Microsoft MVP for developer technologies. He’s a Software Punk, an author, a programming-architect, a pragmatist/abstractionist, and a generalising-generalist. His day job spans the worlds of Product Management, Data and Analytics, Support, and Software Development. These are brought together in the DITE Cycle. Like many of you, he’s too busy to remember all of this stuff, so he writes it all down here.

Steve studied Psychology at OSC, and Anarchy in the UK: A History of Punk from 1976-1978 at the University of Reading.

A Note From Steve

The primary audience for the writing found herein is me. It’s super-easy to forget stuff if you don’t write it down, as I did the second time I had to fix a really tricky certificate problem in .NET. If only I had written down the answer, I could have saved hours of irritating replays of all the same steps I had used to find the problem in the first instance. My goal in life is to start a punk revolution in software development. I am also secretly S. M. Fenton the author of The Vanishing Room.

Recent Thoughts

You can review my full archive of thoughts, but the most recent entries are listed below.

How to get Accurate Element Width as a Floating Point Number Posted in: Programming - This is going to be a quick one, as I’m writing this down so future me doesn’t have to set fire to several hours of debugging. I’ll explain more background after I give you the answer. If you find you are getting the wrong answer for element sizes, you are probably using this, where elem […]
Counting a Non-Generic IEnumerable Posted in: Programming - You rarely come across them in 2021, but there is such a thing as a non-generic IEnumerable. They exist in System.Collections rather than System.Collections.Generic. Since .NET 2 pretty much everyone is full-on using generics as they are the best thing since curly-braces… but occasionally you find one and even more rarely you need to count […]
Uptime Checker Mythbusting Posted in: Automation - Whether you use Pingdom, UpDn, Datadog, or some other platform to test if your website is up and running, you will need to keep in mind some common traps that are waiting to ensnare the unsuspecting. The idea behind an uptime checker is that it will visit your site frequently and report whether it managed […]
How to Debug Google Analytics v4 (GA4) Posted in: Analytics - Sometimes you need to see what’s going on under the hood of your analytics tracking. Google Analytics v4 (GA4) provides a simple way to debug your configuration either at the property level, or per-event. The DebugView Screen The DebugView can be found in your Google Analytics v4 property, at the bottom of the menu. One […]
How to Create Important Messages in Teams Posted in: Other - Sometimes you have something super-important to communicate in Microsoft Teams, so you need to be able to send an important message. But how do you create an important message in Teams? All you need to do is use CTRL + SHIFT + i in the compose textarea. This will elevate your message to an important […]
Pretty Output from JSON.stringify Posted in: Programming - We all like to log stuff out sometimes and it would be nice if it were as readable as possible when we do. If you are using JSON.stringify to drop out some values and are tired of getting a long line of text, here’s a simple way to get pretty printed output without adding any […]
Duplication vs Coupling Posted in: Programming - There is a generally understood principle of programming that says if you remove duplication, you introduce coupling. For example, you have two classes that have similar code, so you create a function that they both call. Now the two classes are coupled to the function. You make one thing better, but something else gets worse. […]
The Int Betweeners (or… An Extension Method for Numbers) Posted in: Programming - It is pretty common to need to test a number is between two other numbers. You can do it with an if (number > a && number < b) if-statement, but it is nice when code reads out loud. Now you can read that if-statement out loud if you want to sound like a robot, […]
Check CSS Support in CSS Using @supports Rules Posted in: Programming - For many years, Can I Use? has been the go-to place to find out whether a browser supports a certain feature, like CSS aspect-ratio. However, what do you do when you need to add some additional styling if the browser doesn’t support a feature? Well, in an almost paradoxical way – you can use the […]
Getting Started: Microsoft Edge Tools for VS Code Posted in: Programming - There’s a really neat extension for VS Code that allows you to run Microsoft Edge browser tools. You can use this in conjunction with your own project, or even as stand-alone. It uses browser automation behind the scenes, so it does depend on you having Microsoft Edge installed on your machine. You can add the […]