Posts from 2021
-
2021-12-30 The Books I Read in 2021
2021 was better than 2020. Not great, but better. My Mum was in the hospital so I went up to Canada to visit my family. I had a pretty productive garden, and continued to adjust to working from home. And again, fortunately, my wife and I enjoyed good health.
As this year comes to a close, I want to list all the books I read. I read a few more (I think?) than last year. Some of them I didn’t finish (for reasons I’ll explain below).
Here is the list of them and a brief mention of the effect they had on me.
-
2021-12-18 How to organize service registration with the Microsoft Dependency Injection Container
Sometimes the number of Dependency Injection services registered by your .NET application can grow to a size that means you should start splitting them out into separate pieces. This post discusses ways you may consider doing that.
-
2021-12-17 The Return of the Blog!
I am glad to get the opportunity to write blob posts again. The additional work I have been doing has subsided and I feel I can commit to my weekly post schedule again.
It feels good.
Matt
-
2021-11-07 Recognizing Patterns
I was called in on the weekend to diagnose an issue with an application I wrote. I was very lucky to spot something in the application logs that led to correcting the issue. Recognizing patterns is pretty important in my job.
-
2021-10-03 Exploring Test-Driven Development - Fooling Yourself
Test-Driven Development, is a fascinating topic. Robert C. Martin heralds it as a foundational discipline of software development. Others, aren’t so convinced. Even though I have written my thoughts on this topic once or twice over the years, I was inspired by Martin’s recently released “Clean Craftsmanship” to explore it further. This is the first exploration, focused on how you can fool yourself into thinking your way is better.
-
2021-08-08 Throttling Async Tasks with SemaphoreSlim
Recently we had a situation where we thought we were throttling tasks correctly. Turns out we weren’t.
-
2021-07-03 Blog Update
I’ve missed a few blog posts recently.
-
2021-06-13 DateOnly/TimeOnly Types in .NET 6
In the latest preview of .NET 6.0, two new struct types were introduced:
DateOnly
andTimeOnly
. They fill a gap for use cases long asked for in .NET. -
2021-05-30 Background Polling Tasks Using IHostedService
Often I encounter processing scenarios that require a background tread to process tasks. In .NET application, using the IHostedService can make it easier.
-
2021-05-23 The Humble Architect
Recently I re-read The Mythical Man-Month and one section resonated with me. It described how an architect of a software development system should deal with the people that develop his or her vision. I think it defines The Humble Architect.
-
2021-05-22 The Mythical Man-Month - A Review
Written in 1975, it was 20 years old when I bought my copy of The Mythical Man-Month 25 years ago. What can a book more than 45 years old tell me today? Quite a lot actually.
-
2021-05-09 Using C# Extension Methods
Extension methods in C# are very powerful and I like them a lot. But I have found that I tend to only use them under certain circumstances.
-
2021-05-02 Reusing Object in Unit Tests
Writing unit tests sometimes involves creating complex objects to test with. Reuse these object carefully.
-
2021-04-18 Problem Details with ASP.NET Core
I read this the other day and it made total sense to me:
Source: https://twitter.com/codeopinion/status/1381260308854026247
If there is an existing standard, we should look into using it.
-
2021-04-11 Wicked Problems, Righteous Solutions
I had forgotten how Wicked Problems, Righteous Solutions was way ahead of its time. Let me explain.
-
2021-04-04 Using Application State in ASP.NET Core
“Classic” ASP.NET applications would use the built-in
Application
object to store values that were cached across the entire application. In ASP.NET Core, this was removed. Let’s look at alternatives. -
2021-03-28 Reviewing Programming Pearls, 21 Years Later
Are the principles laid out in the book Programming Pearls still relevant today? Let’s find out.
-
2021-03-21 Software Development Echo Chamber
Sometimes people get caught in an echo chamber, and software developers are no different.
-
2021-03-14 Using Elasticsearch with Docker
Hosting software with Docker is a great way to setup your development environment. Using Docker to host a local instance of Elasticsearch is no different. Here are my notes on how to set things started.
-
2021-03-07 IIS Config Locations
When modifying IIS sometimes i forget where the config files are located. Let’s write them down so I don’t have to hunt for them in the future.
-
2021-02-28 Clarity Over Cleverness
I read a tweet this week that made me think. It was from Seth Juarez, a manager at Microsoft.
Most of our problems in tech stem from our desire to be clever as opposed to simply being clear. Cleverness over clarity is our Achilles heel
-
2021-02-21 Using ASP.NET Core Health Checks
After using a custom health check solution I was curious to see what the new HealthChecks library from Microsoft can offer.
-
2021-02-14 Costs of Unit Testing
Some people question whether unit testing is worth the cost. Others use the cost of unit testing as an excuse to not write the tests.
-
2021-02-07 Changing Default Time-outs for ASP.NET Core
Sometimes you may need to change the default time-outs. I often have to search numerous articles to find the answers. I hope in the future I’ll know to come here for all the details.
-
2021-01-31 The Theory of Agile Refactoring
I feel refactoring my code is one of the best ways to maintain a well-designed, readable codebase. I also think helps the most when you perform the refactorings while you are developing your code, not after.
-
2021-01-24 Avoiding Null Obsession with Maybe in C#
In the previous blog post I wrote about using a Result class. In this post I want to explore a companion called Maybe.
-
2021-01-18 Using Result Classes
Over and over I have found cases where returning a single value from a function is not enough. Enter the Result class.
-
2021-01-09 The Power of the Compose Method Refactoring
The Compose Method Refactoring is one of the more powerful refactorings I use. Let’s explore what it is and why it can make such a difference it your code.
-
2021-01-02 Memory Leaks using Dependency Injection with .NET Core
I inherited a .NET Core application that had a memory leak. I found the source to be the way the application used the Dependency Injection framework. It was something I could have easily done myself so I figured I better write down the details to remind my future self to avoid the same issue.