Steve Fenton is a three-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.

Books by Steve Fenton

Pro TypeScript Second EditionWeb Operations Dashboards, Monitoring, and Alerting by Steve FentonExploring Octopus Deploy by Steve FentonCranked by Steve Fenton

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.

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,Continue reading "The Int Betweeners (or… An Extension Method for Numbers)"
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 theContinue reading "Check CSS Support in CSS Using @supports Rules"
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 theContinue reading "Getting Started: Microsoft Edge Tools for VS Code"
Creating a Goal Template in Google Analytics v3 Posted in: Analytics - This is a tip for how to manage lots of Google Analytics accounts using version 3. Goals are a pain to set up when you manage hundreds of accounts, so here is a quick way to do it using Goal Template URLs in Google. Google Analytics version 4 is on the way, but I haveContinue reading "Creating a Goal Template in Google Analytics v3"
Strings Contain Empty Strings Posted in: Programming - This is just one of those philosophical moments in programming where one small details can have a big impact. In C# / .NET you will find that when you ask if a string contains an empty string (string.Empty), the answer is yes. This may seem logically surprising so it is worth bearing in mind shouldContinue reading "Strings Contain Empty Strings"
Here Maps Scroll Wheel Temporary Fix Posted in: Programming - As my grandma used to say, “there’s only one thing worse than a scroll-linked positioning effect and that’s not being able to scroll at all”. So, with this in mind I have written a temporary fix for the issue in the latest version of HERE Maps that prevents users from scrolling past the map withContinue reading "Here Maps Scroll Wheel Temporary Fix"
Using Sibling Selectors to Style the Element Before the Match Posted in: Programming - The original question for the below answer was wanting to hide a link when a button that’s next to the link has a “selected” class. This is interesting because this requires a sibling selector, but sibling selectors in CSS are a bit funky… with a sibling selector, the target element is always _subsequent_. That meansContinue reading "Using Sibling Selectors to Style the Element Before the Match"
Calculating Coronavirus Timings with Excel Posted in: Opinion - Following on from my article on working with public coronavirus data where I calculated the original peak in the UK to have been an estimated 50,000 cases per day (not the recorded 6,000 cases per day)… the most common follow up questions (aside from predictions on what will happen next) are about timings. What isContinue reading "Calculating Coronavirus Timings with Excel"
Microsoft Teams – Ask Questions with Polly Posted in: Office - Microsoft Teams has a growing collection of apps that can be used to enhance your calls and chats. One of these is Polly, which lets you run highly configurable polls within your chats. Installing Polly To install Polly, click on the triple-dot menu in any chat, search for “polly”, and select result for Polly inContinue reading "Microsoft Teams – Ask Questions with Polly"
AJAX Request Interceptor Posted in: Programming - This is a little funky script to intercept AJAX requests and raise a simple custom event for everything else in your app to listen to. To use this, you just need to listen for a custom event named `AjaxDetected`. The method, url, and any data is passed in the event detail. document.body.addEventListener('AjaxDetected', function (e) {Continue reading "AJAX Request Interceptor"