RSSAmplifier

Blog

The Long Walk — RSS

A blog about one man's journey through code… and some pictures of the Peak District

pmichaels.netRSS feed ↗288 posts

Latest posts

Introduction to LM Studio

LM Studio is a desktop app for discovering, downloading, and running open-weight language models on your own machine. Open-weight means the…

Creating a Simple MCP Server in .NET

In my previous post, I covered how to interact with a local LLM from .NET using LM Studio. In this post, I’m going to take that a little…

Programmatic Interaction with a Local LLM in .NET

If you’ve worked with the OpenAI API (I wrote about that here), you’ll know it’s a pretty straightforward process: construct a request, send…

MS Copilot Introduction

LLMs have, at this point, inserted themselves into almost every walk of life. In this post, I’m going to cover Copilot Studio, and how you…

Using Cloudflare to prevent Bot Attacks

Disclaimer: most of the code in this post was written by AI It’s been a constant irritation of mine that my website (https://nosearch.online…

Manually Implementing an Identity Store for Asp.Net Identity

I recently had an Asp.Net application that I needed to add an individual account login to. You can get this for free by simply creating a…

Playing with Kubernetes on your Local Machine

It’s been a while since I started playing with AKS for my book - I’ve used various container solutions in the past, but not spent a whole…

Message Bus Dye Test

In this post, I’d like to discuss the concept of a dye test in a message bus. This concept is applicable to any message bus, but here we’ll…

C# Records

Records were first introduced into .Net in version 5(C# 9). The basic premise was that, whilst classes work well, for some very typical…

Adding Entity Framework to a .Net Project Using MySql with Multiple Databases

I’ve previously written about adding Entity Framework to an existing project. In this post, I’m going to cover specifically adding EF using…

Azure Cosmos - Too Many Requests (429)

If you’ve worked with Cosmos at any level of scale, you’ve probably come across this issue. A good starting point is this article on the…

Using the Azure CLI to query Azure DevOps

In this post, I’m going to cover writing a Powershell script that interrogates Azure DevOps to return projects, repositories, and PRs by…

Using Kudu in Azure to Debug an Azure Function

I’ve written about Kudu previously. Essentially, it allows you to access the deployed version of your app. Sometimes, this can help with…

The Cost of Not Logging

I’ve recently been talking (and blogging) a lot about App Insights for Azure. One of the questions or topics that comes up when I speak…

.Net Aspire - A Brief Introduction

After recently seeing a demo of .Net Aspire, I’ve been playing around with some basics and, I have to say, I’m really impressed. I’m not…

Custom Alerts in Application Insights

In this earlier post I cover creating alerts in App Insights and, previously, here I have covered adding custom metrics. In this post, I’m…

Using ildasm to view IL code

.Net compiles to (and always has compiled to) an intermediate language (IL). This isn’t machine code, and this gets interpreted when it…

Application Insights Alerts

In this post, I’ll cover setting up an alert, the types of alerts that can be configured, and some strategies around what it makes sense to…

Getting Started With MS Graph API

I’ve recently been working on a little project to interact with Outlook calendars, and so I’ve started looking into the MS Graph API. If you…

Dealing with Zip Files in C#

In this post, I’ll cover some of the things that you can do with the System.IO.Compression namespace. We’ll discuss how you can use this…

Add Metrics to Application Insights

In this earlier post I covered adding App Insights to a web application using Open Telemetry. Here, we’ll cover adding metrics to that same…

Validating JSON Against a Schema

JSON is a very forgiving format for transmitting information. It’s rigid in its structure, but there are no rules in terms of the content…

C# Interceptors

Interceptors are a new feature in C# 12. They’re also an extremely interesting feature - they remind me a lot of Weavers. The idea there…

Add Application Insights to a Web Site using the Open Telemetry Client

I’ve recently been playing with the Open Telemetry Client for .Net. In this post, I cover the basics of getting it running inside a .Net…

Don't Deploy on a Friday

I don’t often post controversial opinions, but I’ve recently seen a fair few people espousing the “if you don’t deploy of a Friday then your…

Event Counters - Running Locally

I’ve recently been playing with Event Counters in .Net. These are basically a way to record a set of metrics against a given program. In…

Deploying a Static Web Site Using Azure Storage

In the UK, it’s been a bank holiday weekend, which means that I had a bit of time on my hands. I decided to revisit the idea of creating a…

Introduction to Kusto Query Language

If you want to analyse App Insights logs then it’s very easy to do via the UI. You can click around and get some really interesting stats…

Azure Application Insights - Advanced / Lesser Known Features

In this post, I’m going to cover some slightly lesser known features of App Insights: Funnels, User Flows, and Workbooks. Funnels Using this…

Version Controlling Database Schema

In this post, I’m going to lay out the basis of version control when dealing with databases. Before starting, it’s worth pointing out that…

Service Bus Traffic Test

This post is basically a write up of an experiment. Not sure if you remember chemistry experiments from school - but they never really went…

Azure Service Bus - Runtime Properties

I’ve recently been working on a little project to detect the location and state of service bus messages. One of the things that I needed to…

Running a test from a CSV in Postman

I’ve previously written about running tests from JMeter. However, until this week, I hadn’t realised that Postman could do something…

Using Sqlite as a store for a long running process

Recently, I’ve tried using Open AI to get some data, and it worked quite well; however, one of the issues was the time that it took. For a…

Adding Dependency Injection to a Console App in .Net 7

Like many people, I create a fair number of console apps. Most of the time, they’re two or three lines of code to test an idea out, but…

Using the Open AI API

OpenAI is a well trodden blog and YouTube path - in this post, I’m going to cover the idea of using it to gather information. Let’s say…

Adding a Tooltip to a HTML Dropdown List

I’ve been playing about with some little features of my new site. The specific feature that I was working on was the ability to show any…

Integrate Google Sign-in into an Asp.Net Core 7 Application

My latest (and oldest) project is NoSearch - it’s a curated search engine - that is, it allows you to submit a site (a little like Hacker…

Filtering a drop down list using Javascript with Asp.Net

In this post, I’ll cover creating a filter for an Asp.Net drop down list. Let’s take the following list as an example: What we want to do…

Database Migrations - Methods of Controlling Databases From Source Control

One of the things that’s often overlooked when people talk about CI/CD is the database. In the .Net world, where I live, that’s because, in…

The Service / Repository Pattern

In this post, I want to discuss the Service / Repository Pattern - what it is, why it’s used, and why (IMHO) it can be over-used. What is…

Entity Framework - Select Multiple Tables

I’ve recently been playing with Entity Framework again. When using EF in the past, I’ve always managed to keep the queries relatively…

Entity Framework Error - Entity Type Cannot be Tracked

Entity Framework has a few quirks which, if you’re used to using something like ADO.Net, may be a little confusing. One such quirk is its…

Setting Up Grafana With Azure Service Bus

Like many places, at Magpie, we use a message broker to manage the communication between different parts of the system. The visualisation…

What is an Minimum Viable Product

I’ve recently been presenting a talk at various groups and conferences; the subject of which is software architecture. The main gist of the…

Using Swagger in an Asp.Net App

One of the interesting challenges with Asp.Net MVC when you first start out, is getting the routing right. In this article, we’ll cover a…

Reliability and Uptime

Have you ever seen a tag line that says a piece of software has “Five Nines” of uptime? Have you ever thought about what that means…

Hyper-v failed to restore with error

Today (23rd November 2022), after applying a Windows update, I started a VM that I regularly run for development, and received this error…

Creating Repeatable Test Data with the Bogus NuGet Library

One of the things that has always bothered me about using libraries like AutoFixture and Bogus is that the data they produce is random, and…

Azure Service Bus - SQL Filters

One of the problems that you can encounter (especially) when using the pub/sub model in Service Bus is the issue of noise. The problem…