Categories
Alpine
Alpine.js
ASP.NET
ASP.NET Core
Blog
C#
Clearing the smoke
DaisyUI
Docker
EasyNMT
Email Newsletter
Entity Framework
FluentEmail
Freelancing
GitHub Actions
Google Auth
Grafana
Hangfire
Highlight.js
HTMX
IHostedService
ImageSharp
Interviewing
introduction
Javascript
Legacy Code
Logging
Markdown
Mermaid
Microsoft
Moq
Nuget
OpenSearch
PagingTagHelper
Polly
Postgres
Prometheus
Random
Razor
Resume
RSS
Seq
Serilog
TagHelper
Tailwind
Umami
Unit Testing
WebAPI
xUnit
Using A Hybrid Approach To Blogging
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...
Saturday, 14 September 2024 00:30
//10 minute read
Simple 'Donut Hole' Caching with HTMX
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...
Thursday, 12 September 2024 16:00
//4 minute read
Umami.Net and Bot Detection
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...
Thursday, 12 September 2024 14:50
//8 minute read
Using Umami Data for Website Stats
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....
Thursday, 05 September 2024 23:45
//10 minute read
Unit Testing Umami.Net - Testing Umami Data Without Using Moq
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...
Wednesday, 04 September 2024 20:30
//7 minute read