Workflow systems are everywhere in modern applications - from simple approval processes to complex multi-step automations. While there are excellent commercial solutions like Temporal, Airflow, and...
Wednesday, 15 January 2025 12:00
//
7 minute read
In my previous post I spoke about the difficulties of being a contractor and how sometimes you can be left high and dry when a customer doesn't pay.
This can happen for a few reasons;
They CANNOT pay...
Tuesday, 12 November 2024 06:30
//
11 minute read
As a freelance developer one of the skill-sets you need to learn quickly is how to work on existing codebases effectively. I've been lucky to have built a bunch of from--scratch systems; this is a JOY...
Wednesday, 06 November 2024 22:30
//
17 minute read
Logging is OF COURSE a critical part of applications however I often see it misunderstood / misused in ASP.NET applications. This is part post and part manifesto on how to effectively log in ASP.NET...
Sunday, 27 October 2024 17:00
//
10 minute read
You may noticed my frantic frequency of posts (I was at two a day for a while month!) has slowed down of late so I thought I'd give a quick update.
NOTE: Translation seems to have broken along the...
Saturday, 12 October 2024 14:40
//
2 minute read
In this site I use Hightlight.js to render code snippets client side. I like this as it keeps my server side code clean and simple. However, I wanted to add a copy button to each code snippet so that...
Saturday, 28 September 2024 14:15
//
5 minute read
It seems like everyone has a version of this code, I first came across this approach from Filip W and recently my old colleague Phil Haack has his version.
Just for completion this is how I do...
Friday, 27 September 2024 06:20
//
4 minute read
In part 1 of this series I showed you how I created a new Newsletter Subscription page. In this part I'll cover how I restructured the solution to allow for sharing of Services and Models between the...
Monday, 23 September 2024 10:45
//
7 minute read
While perusing other people's blogs I noticed a lot of them have a subscription service which allows users to sign up to have an email sent to them weekly with the posts from that blog.
I decided to...
Saturday, 21 September 2024 19:06
//
11 minute read
In a previous post I detailed how I added Grafana to my docker-compose to provide insights into performance for this site. As I have Umami on here AND self host the database for that in this post I'l...
Thursday, 19 September 2024 19:30
//
2 minute read
IF YOU'RE LOOKING FOR A DEVELOPER / LEADER PLEASE CONTACT ME
I've been a freelance developer for more than a decade now (since I left Microsoft really). For the most part it's been perfect for me. I...
Thursday, 19 September 2024 18:30
//
2 minute read
Monitoring is an essential part of maintaining the health and performance of your applications. I already have this site monitoring user visits using Umami and exceptions and errors using Seq but now...
Wednesday, 18 September 2024 04:45
//
6 minute read
This is just a quick article as it builds on the others in the full text search series such as the typeahead dropdown and Postgres full text search.
In this post, I will show you how to implement a...
Tuesday, 17 September 2024 17:36
//
9 minute read
In a previous post I showed you how to create a search dropdown using Alpine.js and HTMX then I showed how we could enable Cross-Site Request Forgery protection using the AntiforgeryRequestToken in...
Monday, 16 September 2024 22:30
//
5 minute read
In this site I use HTMX extensively, this is a super easy way to make your site feel more responsive and smoother without having to write a lot of JavaScript.
NOTE: I'm not entirely happy with this...
Sunday, 15 September 2024 06:45
//
8 minute read
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...
Sunday, 15 September 2024 02:20
//
9 minute read
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
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
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
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