Polly is a critical part of any .NET developer's toolkit. It is a library that allows you to define policies for handling exceptions and retries in your application. In this article, we will explore...
I've blogged many times about how I use Markdown to create my blog posts; I really like this approach but it has one major drawback - it means I have to do a complete Docker build cycle to update a...
Donut hole caching can be a useful technique where you want to cache certain elements of a page but not all. However it can be tricky to implement. In this post I will show you how to implement a...
So I've posted a LOT in the past on using Umami for analytics in a self-hosted environment and even published the Umami.Net Nuget pacakge. However I was having an issue where I wanted to track users...
One of my projects since starting this blog is an almost obsessive wish to track how many users look at my website. To do this I use Umami and have a BUNCH of posts around using and setting up Umami....
In the previous part of this series where I tested Umami.Net tracking methods
The Problem
In the previous part I used Moq to give me a Mock<HttpMessageHandler> and return the handler used in...
I'm a relative noob using Moq (yes I'm aware of the controversies) and I was trying to test a new service I'm adding to Umami.Net, UmamiData. This is a service this allows me to pull data from my...
One of the MANY LinkedIn aspects which bugs me is the 'how to interview developers' posts. There's a TON of them and they're in 3 camps:
The 'How would you move Mount Fuji?' approach with logic...
In the previous article, we discussed how to test the UmamiClient using xUnit and Moq. In this article, we will discuss how to test the UmamiBackgroundSender class. The UmamiBackgroundSender is a bit...
This is just a quick post to update everyone on the status of this blog. I started it a little over a month ago and decided to commit to at least one post a day for the first month.
So far I've posted...
Now I have the Umami.Net package out there I of course want to ensure it all works as expected. To do this the best way is to somewhat comprehensively test all the methods and classes. This is where...
In the previous part I showed you how to set up self hosting for Seq using ASP.NET Core . Now that we have it set up it's time to use more of it's features to allow for more complete logging & tracing...
In the previous part in this series, I set up the database for the comments system. In this post, I'll cover how saving the comments are managed client side and in ASP.NET Core.
Add New...
I use Mermaid.js to create the dope diagrams you see in a few posts. Like the one below.
However something that annoyed me is that it wasn't reactive to switching themes (dark/light) and there seemed...
Seq is an application which lets you view and analyse logs. It's a great tool for debugging and monitoring your application. In this post I'll cover how I set up Seq to log my ASP.NET Core...
Now I have the Umami client; I need to package it up and make it available as a Nuget package. This is a pretty simple process but there are a few things to be aware of.
Creating the Nuget...
In an earlier post I sketched out how a Tracking Client for Umami in C# could work.
Well I've finally had a chance to test it extensively and improve it's operation (yes ANOTHER...
One of the key aspects of a blogging site like this is a comments system. So, I decided to build one. This is the first part of a series of posts on how to build a comments system. In this post, I...
In this post I'll be starting adding Unit Testing for this site. This won't be a full tutorial on Unit Testing, but rather a series of posts on how I'm adding Unit Testing to this site.
In this post I...
In previous articles, we have discussed the importance of translation in the context of web applications. We have also explored the use of the EasyNMT library to perform translations in an ASP.NET...