Buckle in because this is going to be a long series! If you've been following along with this blog, you'll know I'm a bit obsessed with finding interesting ways to use LLMs and AI in practical applications. Well, I've got a new project that combines my love of…
In my 8-part "Lawyer GPT" series, I showed you how to build a complete local RAG-based writing assistant using GPU acceleration, local LLMs, and vector databases. It's powerful, private, and runs entirely on your hardware. But let's be honest - not everyone…
One of the challenges I faced while building this blog was how to efficiently include external markdown content without manually copying and pasting it everywhere. I wanted to fetch README files from my GitHub repositories, include documentation from other…
So, as my current contract is soon ending and I need to keep working due to that pesky 'eating stuff' habit I have I'm doing one of my periodic skills updates. This here blog was in fact the last time I did this. I learn more quickly and deeply by doing than…
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 Applications. This is not a complete guide to logging;…
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 it. Why? The why is to make it easier to work with configuration.…
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 how to I use Polly to handle retries in this application.…
Small Posts FTW Small but potentially useful solution to a problem I was having. Namely, how to generate a GUID from a string input where the Guid is always valid but unique for any given input string. I needed this for my RSS feed generator where I wanted to…
Well, had a lovely break...now for some code, this will let you 'impersonate' a user - really handy when, for instance, trying to upload a file to a network location...as usual, no idea where I found this, if it was youre, let me know! using System; using…
Another of my fairly simple functions (actually written by a colleague of mine, Jonny Anderson) - this time just a simple way to validate a Guid - in this implementation you pass in a Guid as an 'out' parameter along with the string you want to test - it then…