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
Polly
Postgres
Prometheus
Razor
Resume
RSS
Seq
Serilog
Tailwind
Umami
Unit Testing
WebAPI
xUnit
A Copy Button For Highlight.js
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
Custom Config Section Extensions
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
A Newsletter Subscription Service Part 2 - Refactoring the Services (and a little Hangfire)
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
A Newsletter Subscription Service Pt. 1 - Requirements and Subscription Page
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
Querying Postgres Data in Grafana
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