﻿<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
	<channel>
		<title>Peter Ritchie's Blog</title>
		<link>http://blog.peterritchie.com/</link>
		<description>Peter Ritchie</description>
		<copyright>2026</copyright>
		<pubDate>Wed, 08 Jul 2026 21:35:24 GMT</pubDate>
		<lastBuildDate>Wed, 08 Jul 2026 21:35:24 GMT</lastBuildDate>
		<item>
			<title>Things That Caught My Attention Last Week - July 6</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-july-06-2026</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-july-06-2026</guid>
			<pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/enterprise-software/governance-and-compliance/how-github-maintains-compliance-for-open-source-dependencies/?utm_source=blog.peterritchie.com"&gt;How GitHub maintains compliance for open source dependencies&lt;/a&gt; by The GitHub Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/6-security-settings-every-github-maintainer-should-enable-this-week/?utm_source=blog.peterritchie.com"&gt;6 security settings every GitHub maintainer should enable this week&lt;/a&gt; by The GitHub Blog&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/addition-by-subtraction-in-software?utm_source=blog.peterritchie.com"&gt;Addition by subtraction in software design&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/06/fastendpoints-validation/?utm_source=blog.peterritchie.com"&gt;Validation in FastEndpoints: Pipelines, Pitfalls, and Patterns&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/exploring-the-dotnet-11-preview-4-closed-class-hierarchies/?utm_source=blog.peterritchie.com"&gt;Closed class hierarchies&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-june-update-track-your-usage-trust-your-tools/?utm_source=blog.peterritchie.com"&gt;Visual Studio June Update - Track Your Usage, Trust Your Tools&lt;/a&gt; by Visual Studio Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/06/30/a-big-week-for-the-critter-stack/?utm_source=blog.peterritchie.com"&gt;A Big Week for the Critter Stack&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/mcp-build-diagnostics-workflows/?utm_source=blog.peterritchie.com"&gt;MCP Beyond the Chat Window: Build Diagnostics in CI&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/5-ef-core-performance-anti-patterns-that-entity-framework-extensions-eliminates/?utm_source=blog.peterritchie.com"&gt;5 EF Core Performance Anti-Patterns That Entity Framework Extensions Eliminates&lt;/a&gt; by Chris Woody Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/add-vs-addrange-in-ef-core-the-performance-myth-you-need-to-stop-repeating/?utm_source=blog.peterritchie.com"&gt;Add vs AddRange in EF Core: The Performance Myth You Need to Stop Repeating&lt;/a&gt; by Chris Woody Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://milanjovanovic.tech/blog/build-your-own-vpn-with-tailscale?utm_source=blog.peterritchie.com"&gt;Build Your Own VPN With Tailscale&lt;/a&gt; by Milan Jovanovic&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/ef-core-useidentitycolumns-33pi?utm_source=blog.peterritchie.com"&gt;EF Core UseIdentityColumns&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

--&gt;
&lt;h2 id="software-design"&gt;Software Design&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/07/06/worse-is-better-json-versus-xml/?utm_source=blog.peterritchie.com"&gt;Worse is better: JSON versus XML&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;!--## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/http-query-is-here/?utm_source=blog.peterritchie.com"&gt;Query Is Here&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/07/04/bringing-legacy-standards-into-the-modern-api-age/?utm_source=blog.peterritchie.com"&gt;Bringing Legacy Standards Into the Modern API Age&lt;/a&gt; by Chris Woody Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/07/05/api-governance-is-75-percent-people-work/?utm_source=blog.peterritchie.com"&gt;API Governance Is 75% People Work&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/upcoming-change-ntlm-removal-in-git-libcurl-impact-to-azure-devops-server-customers/?utm_source=blog.peterritchie.com"&gt;Upcoming Change: NTLM Removal in Git (libcurl)&lt;/a&gt; by Azure DevOps Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-june-2026/?utm_source=blog.peterritchie.com"&gt;Azure SDK Release (June 2026)&lt;/a&gt; by Azure SDK Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/need-a-different-partition-key-in-azure-cosmos-db-pick-the-right-approach/?utm_source=blog.peterritchie.com"&gt;Need a different partition key in Azure Cosmos DB? Pick the right approach&lt;/a&gt; by Azure Cosmos DB Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/see-our-new-azure-cosmos-db-design-patterns/?utm_source=blog.peterritchie.com"&gt;See our new Azure Cosmos DB Design Patterns&lt;/a&gt; by Azure Cosmos DB Blog&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sadukie.com/2026/07/01/the-plight-of-women-in-tech.html?utm_source=blog.peterritchie.com"&gt;The Plight of Women in Tech 20+ Years Later&lt;/a&gt; by Sarah Dutkiewicz&lt;/p&gt;
&lt;!-- ## Windows

## AI

## Online Tools

## Databases

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - June 22</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-22-2026</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-22-2026</guid>
			<pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://marybranscombe.leaflet.pub/3moj3d3hdvc2g?utm_source=blog.peterritchie.com"&gt;What is npm doing to protect the JavaScript ecosystem – and is it enough?&lt;/a&gt; by Sarah Dutkiewicz&lt;/p&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/open-source/maintainers/how-pull-request-limits-are-cutting-down-the-noise/?utm_source=blog.peterritchie.com"&gt;How pull request limits are cutting down the noise&lt;/a&gt; by The GitHub Blog&lt;/p&gt;
&lt;h2 id="domain-driven-design-cqrs"&gt;Domain-Driven Design, CQRS&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.michael-ploed.com/blog/the-anticorruption-layer-contains-it-does-not-cure?utm_source=blog.peterritchie.com"&gt;The Anticorruption Layer Contains, It Does Not Cure&lt;/a&gt; by Michael Plöd&lt;/p&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/event-driven-architecture-mistakes/?utm_source=blog.peterritchie.com"&gt;Stop Blaming Event-Driven Architecture&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/theme-colors-shipped?utm_source=blog.peterritchie.com"&gt;Theme colors, shipped&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/06/19/kafka-support-improvements-in-wolverine-6-13/?utm_source=blog.peterritchie.com"&gt;Kafka Support Improvements in Wolverine 6.13&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/bulkmerge-upsert-in-ef-core-how-to-insert-or-update-without-the-headache/?utm_source=blog.peterritchie.com"&gt;BulkMerge (Upsert) in EF Core: How to Insert-or-Update Without the Headache&lt;/a&gt; by Chris Woody Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/msbuild-binlog-mcp-server/?utm_source=blog.peterritchie.com"&gt;AI-Powered MSBuild Investigation with the Microsoft Binlog MCP Server&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/06/the-case-of-the-empty-deployment/?utm_source=blog.peterritchie.com"&gt;The Case of the Empty IIS Deployment&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tabsoverspaces.com/233972-strongly-typed-generic-object-in-csharp?utm_source=blog.peterritchie.com"&gt;Strongly typed generic object in C#&lt;/a&gt; by Jiří Činčura&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/announcing-strictland-new-contract?utm_source=blog.peterritchie.com"&gt;Announcing Strictland - new contract testing library for message compatibility&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/new-lines-are-more-than-r-and-n.htm?utm_source=blog.peterritchie.com"&gt;New lines are more than \r and \n&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/make-visual-studio-look-the-way-you-want/?utm_source=blog.peterritchie.com"&gt;Make Visual Studio look the way you want&lt;/a&gt; by Visual Studio Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/commitment-to-improvement-2co2?utm_source=blog.peterritchie.com"&gt;Commitment to improvement&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;h2 id="conferences-and-speaking"&gt;Conferences and Speaking&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sadukie.com/2026/06/18/no-excuses-for-manels.html?utm_source=blog.peterritchie.com"&gt;No Excuses for Manels&lt;/a&gt; by Sarah Dutkiewicz&lt;/p&gt;
&lt;!-- ## Domain Driven Design

## DevOps

--&gt;
&lt;h2 id="software-design"&gt;Software Design&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/the-modular-monolith-boundary-i-couldnt-take-back?utm_source=blog.peterritchie.com"&gt;The Modular Monolith Boundary I Couldn't Take Back&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;!--## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/06/19/soundcloud-shows-what-programmatic-api-onboarding-should-look-like/?utm_source=blog.peterritchie.com"&gt;SoundCloud Shows What Programmatic API Onboarding Should Look Like&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/go-faster-with-hey-api/?utm_source=blog.peterritchie.com"&gt;Go Faster with HeyAPI&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/deep-agents-to-plan-act-verify-against-operational-data/?utm_source=blog.peterritchie.com"&gt;How to Use Deep Agents with Azure Cosmos DB&lt;/a&gt; by Azure Cosmos DB Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/retirement-of-azure-devops-issuer-in-workload-identity-federation-service-connections/?utm_source=blog.peterritchie.com"&gt;Retirement of Azure DevOps issuer in Workload identity federation service connections&lt;/a&gt; by Azure DevOps Blog&lt;/p&gt;
&lt;!-- ## Software Development

## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=HF_Cw0_wtlM?utm_source=blog.peterritchie.com"&gt;AI Software Development Is Near-Impossible (video)&lt;/a&gt; by Zoran on C#&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/getting-more-from-each-token-how-copilot-improves-context-handling-and-model-routing/?utm_source=blog.peterritchie.com"&gt;Getting more from each token: How Copilot improves context handling and model routing&lt;/a&gt; by The GitHub Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/approved-by-management?utm_source=blog.peterritchie.com"&gt;Approved by Management #26-01&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;!--## Online Tools

## Databases

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - June 15</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-15</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-15</guid>
			<pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
--&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/you-can-fork-a-package-but-can-you?utm_source=blog.peterritchie.com"&gt;You can fork a package, but can you own it?&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;h2 id="domain-driven-design-cqrs"&gt;Domain-Driven Design, CQRS&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.michael-ploed.com/blog/ghost-ownership-you-own-the-capability-not-the-decision?utm_source=blog.peterritchie.com"&gt;Ghost Ownership: You Own the Capability, Not the Decision&lt;/a&gt; by Michael Plöd&lt;/p&gt;
&lt;!--## Software Architecture

## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-at-microsoft-build-2026/?utm_source=blog.peterritchie.com"&gt;.NET at Microsoft Build 2026: Must watch sessions&lt;/a&gt; by Daniel Roth&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/c-pattern-matching-2mah?utm_source=blog.peterritchie.com"&gt;C# Pattern matching&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/building-dapr-workflows-in-dotnet-with-aspire?utm_source=blog.peterritchie.com"&gt;Building Dapr Workflows in .NET With Aspire&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/new-release-htmxrazor-v2-1-0-advanced-inputs/?utm_source=blog.peterritchie.com"&gt;New Release!! htmxRazor v2.1.0: Advanced Inputs&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/review-pull-requests-without-leaving-visual-studio/?utm_source=blog.peterritchie.com"&gt;Review pull requests without leaving Visual Studio&lt;/a&gt; by Leah Tran&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-5/?utm_source=blog.peterritchie.com"&gt;.NET 11 Preview 5 is now available!&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-june-2026-servicing-updates/?utm_source=blog.peterritchie.com"&gt;.NET and .NET Framework June 2026 servicing releases updates&lt;/a&gt; by Rahul Bhandari (MSFT)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/06/08/result-pattern-or-throwing-exceptions-wolverine-says-neither/?utm_source=blog.peterritchie.com"&gt;Result pattern or throwing exceptions? Wolverine says “neither”&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/new-features-and-roslyn-analyzers-for-meziantou-framework-fullpath.htm?utm_source=blog.peterritchie.com"&gt;New features and Roslyn analyzers for Meziantou.Framework.FullPath&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;h2 id="conferences-and-speaking"&gt;Conferences and Speaking&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://sadukie.com/2026/06/09/first-time-speaker-questions-part-1.html?utm_source=blog.peterritchie.com"&gt;First-Time Speaker Questions, Part 1&lt;/a&gt; by sadukie&lt;/p&gt;
&lt;!-- ## Domain Driven Design

## DevOps
--&gt;
&lt;h2 id="software-design"&gt;Software Design&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/solving-the-god-object-problem-with-shared-identity/?utm_source=blog.peterritchie.com"&gt;Solving the 'God Object' Problem with Shared Identity&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/06/14/the-architecture-behind-10000-api-providers/?utm_source=blog.peterritchie.com"&gt;The Architecture Behind 10,000 API Providers&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/06/12/api-value-exchange/?utm_source=blog.peterritchie.com"&gt;API Value Exchange&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/enterprise-live-migrations/?utm_source=blog.peterritchie.com"&gt;Enterprise Live Migrations: Moving from Azure DevOps Repo to GitHub with minimal disruption&lt;/a&gt; by Soo Stahl&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/june-patches-for-azure-devops-server-5/?utm_source=blog.peterritchie.com"&gt;June Patches for Azure DevOps Server&lt;/a&gt; by Gloridel Morales&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/copilot-autofix-for-github-advanced-security-for-azure-devops/?utm_source=blog.peterritchie.com"&gt;Copilot Autofix for GitHub Advanced Security for Azure DevOps&lt;/a&gt; by Laura Jiang&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/the-ship-of-theseus-and-behavior?utm_source=blog.peterritchie.com"&gt;The Ship of Theseus and behavior drift&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/how-we-made-github-copilot-cli-more-selective-about-delegation/?utm_source=blog.peterritchie.com"&gt;How we made GitHub Copilot CLI more selective about delegation&lt;/a&gt; by Pingping Lin, Yu Hu&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/github-availability-report-may-2026/?utm_source=blog.peterritchie.com"&gt;GitHub availability report: May 2026&lt;/a&gt; by Jakub Oleksy&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/making-secret-scanning-more-trustworthy-reducing-false-positives-at-scale/?utm_source=blog.peterritchie.com"&gt;Making secret scanning more trustworthy: Reducing false positives at scale&lt;/a&gt; by Mariko Wakabayashi&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/give-github-copilot-cli-real-code-intelligence-with-language-servers/?utm_source=blog.peterritchie.com"&gt;Give GitHub Copilot CLI real code intelligence with language servers&lt;/a&gt; by Bruno Borges&lt;/p&gt;
&lt;p&gt;&lt;a href="https://agilepainrelief.com/blog/gen-ai-wont-speed-up-your-scrum-events-and-shouldnt/?utm_source=blog.peterritchie.com"&gt;GenAI Won't Speed Up Your Scrum Events (and Shouldn't)&lt;/a&gt; by&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/build-2026/?utm_source=blog.peterritchie.com"&gt;Microsoft Build 2026 recap&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/ai-splits-the-market?utm_source=blog.peterritchie.com"&gt;AI Splits the Market&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/from-one-off-prompts-to-workflows-how-to-use-custom-agents-in-github-copilot-cli/?utm_source=blog.peterritchie.com"&gt;From one-off prompts to workflows: How to use custom agents in GitHub Copilot CLI&lt;/a&gt; by Jacklyn Carroll&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/copilot-code-reviews-for-azure-repos/?utm_source=blog.peterritchie.com"&gt;Copilot Code Reviews for Azure Repos&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud
--&gt;
&lt;h2 id="computing"&gt;Computing&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/keycon-2026/?utm_source=blog.peterritchie.com"&gt;KeyCon 2026 recap&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;!--## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - June 7</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-7</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-june-7</guid>
			<pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
## Open-source

## Domain-Driven Design, CQRS
--&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/modular-monolith-boundaries/?utm_source=blog.peterritchie.com"&gt;Modular Monolith Boundaries Done Wrong&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://antondevtips.com/blog/40-lessons-i-learned-in-12-years-as-a-dotnet-developer?utm_source=blog.peterritchie.com"&gt;40 Lessons I Learned in 12 Years as a .NET Developer&lt;/a&gt; by Anton Martyniuk&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/improving-csharp-memory-safety/?utm_source=blog.peterritchie.com"&gt;Improving C# Memory Safety&lt;/a&gt; by Richard Lander&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dotnetfoundation.org/board-elections/candidates?utm_source=blog.peterritchie.com"&gt;2026 Board Election Candidates&lt;/a&gt; by .NET Foundation&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/new-features-and-roslyn-analyzers-for-meziantou-framework-fullpath.htm?utm_source=blog.peterritchie.com"&gt;New features and Roslyn analyzers for Meziantou.Framework.FullPath&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/c14-the-field-keyword-4i5j?utm_source=blog.peterritchie.com"&gt;C#14 The field keyword&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/06/04/the-codebase-is-the-prompt-wolverine-vertical-slices-and-ai-assisted-development/?utm_source=blog.peterritchie.com"&gt;The Codebase Is the Prompt: Wolverine, Vertical Slices, and AI-Assisted Development&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/whats-coming-next-in-visual-studio-our-microsoft-build-2026-announcements/?utm_source=blog.peterritchie.com"&gt;What's Coming Next in Visual Studio: Our Microsoft Build 2026 Announcements&lt;/a&gt; by Mads Kristensen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/pagination-in-entity-framework-core-why-skip-take-falls-apart-on-hot-tables/?utm_source=blog.peterritchie.com"&gt;Pagination in Entity Framework Core: Why Skip/Take Falls Apart on Hot Tables&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/union-types-are-finally-coming-to-csharp?utm_source=blog.peterritchie.com"&gt;Union Types Are Finally Coming to C#&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/doing-more-with-github-copilot/?utm_source=blog.peterritchie.com"&gt;Doing More with GitHub Copilot as a .NET Developer&lt;/a&gt; by Wendy Breiding (SHE/HER)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-may-update-plan-review-refine/?utm_source=blog.peterritchie.com"&gt;Visual Studio May Update – Plan, Review, Refine&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/05/25/higher-performance-dynamic-consistency-boundary-development-with-marten-9-0/?utm_source=blog.peterritchie.com"&gt;Higher Performance Dynamic Consistency Boundary Development with Marten 9.0&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps
--&gt;
&lt;h2 id="software-design"&gt;Software Design&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/dry-is-the-most-misunderstood-rule-in-programming?utm_source=blog.peterritchie.com"&gt;DRY Is the Most Misunderstood Rule in Programming&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/05/roll-for-architecture/?utm_source=blog.peterritchie.com"&gt;Roll for Architecture: What D&amp;amp;D Taught Me About Software Design&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;!--## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/all-devtools-die/?utm_source=blog.peterritchie.com"&gt;All Devtools Die&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/azure-devops-and-github-journeying-into-the-ai-era/?utm_source=blog.peterritchie.com"&gt;Azure DevOps and GitHub: Journeying into the AI Era&lt;/a&gt; by Rajesh Ramamurthy&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/introducing-azure-functions-skills-ai-era-workspace/?utm_source=blog.peterritchie.com"&gt;Introducing azure-functions-skills: An AI-Era Workspace for Azure Functions (Preview)&lt;/a&gt; by Tsuyoshi Ushio&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-migration-assistant-rdbms-to-nosql-public-preview/?utm_source=blog.peterritchie.com"&gt;Azure Cosmos DB Migration Assistant for RDBMS to NoSQL&lt;/a&gt; by Sergiy Smyrnov&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/announcing-general-availability-of-the-azure-cosmos-db-vnext-emulator/?utm_source=blog.peterritchie.com"&gt;Announcing General availability of the Azure Cosmos DB vNext emulator&lt;/a&gt; by Abhishek Gupta&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/how-microsoft-is-migrating-repositories-to-github/?utm_source=blog.peterritchie.com"&gt;How Microsoft is migrating repositories to GitHub&lt;/a&gt; by Poonam Gupta&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.newardassociates.com/blog/2026/titit-llms-and-internet.html?utm_source=blog.peterritchie.com"&gt;Things I Think I Think... The New Internet Era&lt;/a&gt; by Ted Neward&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/stop-joining-tables-in-your-modular-monolith/?utm_source=blog.peterritchie.com"&gt;Stop Joining Tables In Your “Modular” Monolith&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://open.substack.com/pub/vasudhaprabhala/p/the-10x-ai-delusion-and-the-real?utm_source=blog.peterritchie.com"&gt;The 10x AI Delusion &amp;amp; The Real Bottlenecks&lt;/a&gt; by Vasudha Prabhala&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.searchenginejournal.com/ai-literacy-is-not-prompt-literacy-ann-handley-says-its-judgment-literacy/577322/?utm_source=blog.peterritchie.com"&gt;AI Literacy Is Not Prompt Literacy. Ann Handley Says It's Judgment Literacy&lt;/a&gt; by Greg Jarboe&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/the-agent-always-cost-this-much?utm_source=blog.peterritchie.com"&gt;The agent always cost this much&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.newardassociates.com/blog/2026/rnd-whichlang.html?utm_source=blog.peterritchie.com"&gt;Research: &amp;quot;What's the Default Language of an LLM?&amp;quot;&lt;/a&gt; by Ted Neward&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/product-news/github-copilot-app-the-agent-native-desktop-experience/?utm_source=blog.peterritchie.com"&gt;GitHub Copilot app: The agent-native desktop experience&lt;/a&gt; by Mario Rodriguez&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools
--&gt;
&lt;h2 id="databases"&gt;Databases&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/how-soon-is-now-in-postgresql?utm_source=blog.peterritchie.com"&gt;How soon is now in PostgreSQL?&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;!--
## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - May 17</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-may-17</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-may-17</guid>
			<pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/?utm_source=blog.peterritchie.com"&gt;Raising the bar: Quality, shared responsibility, and the future of GitHub's bug bounty program&lt;/a&gt; by Jarom Brown&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/github-availability-report-april-2026/?utm_source=blog.peterritchie.com"&gt;GitHub availability report: April 2026&lt;/a&gt; by Jakub Oleksy&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
--&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/on-mashing-up-modelling-techniques?utm_source=blog.peterritchie.com"&gt;On mashing up modelling techniques for fun and profit&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/?utm_source=blog.peterritchie.com"&gt;From latency to instant: Modernizing GitHub Issues navigation performance&lt;/a&gt; by Alexander Lelidis&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/why-sagas-feel-broken/?utm_source=blog.peterritchie.com"&gt;Why Sagas Feel Broken&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/nuget-package-pruning-in-dotnet-10/?utm_source=blog.peterritchie.com"&gt;NuGet Package Pruning: Cleaner Dependencies and Actionable Vulnerability Reports&lt;/a&gt; by Nikolche Kolev&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/blazor-how-to-set-a-base-component-for-all-razor-components-using-viewstart-razo.htm?utm_medium=social&amp;amp;utm_source=syndication?utm_source=blog.peterritchie.com"&gt;Blazor - How to set a base component for all Razor components&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/asp-net-core-bootstrap-toast-570?utm_source=blog.peterritchie.com"&gt;ASP .NET Core Bootstrap toast&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/when-your-use-case-half-succeeds-designing-for-partial-failure-in-dotnet?utm_source=blog.peterritchie.com"&gt;When Your Use Case Half-Succeeds: Designing for Partial Failure in .NET&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/exploring-the-dotnet-11-preview-1-running-background-tasks-in-blazor-with-web-workers/?utm_source=blog.peterritchie.com"&gt;Running background tasks in Blazor with Web Workers&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;h2 id="conferences-and-speaking"&gt;Conferences and Speaking&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/conferences/2026/05/stir-trek-2026/?utm_source=blog.peterritchie.com"&gt;Stir Trek 2026 - When Logs Tell the Whole Story&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/vslive-microsoft-ai-hackathon-2026-send-your-team-home-with-working-code/?utm_source=blog.peterritchie.com"&gt;VSLive! Microsoft AI Hackathon 2026: Send Your Team Home With Working Code&lt;/a&gt; by Jim Harrer&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/?utm_source=blog.peterritchie.com"&gt;Process API Improvements in .NET 11&lt;/a&gt; by Adam Sitnik&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/05/13/critter-stack-2026-releases-are-underway/?utm_source=blog.peterritchie.com"&gt;Critter Stack 2026 Releases are Underway&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-maui-moves-to-coreclr-in-dotnet-11/?utm_source=blog.peterritchie.com"&gt;.NET MAUI Moves to CoreCLR in .NET 11&lt;/a&gt; by David Ortinau&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/agent-skills-in-visual-studio/?utm_source=blog.peterritchie.com"&gt;Agent Skills in Visual Studio: Teach Copilot How Your Team Works&lt;/a&gt; by Simona Liao&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/?utm_source=blog.peterritchie.com"&gt;.NET 11 Preview 4 is now available!&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2026-servicing-updates/?utm_source=blog.peterritchie.com"&gt;.NET and .NET Framework May 2026 servicing releases updates&lt;/a&gt; by Rahul Bhandari (MSFT)&lt;/p&gt;
&lt;!-- ## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/blog/fastifys-openapi-plugins-which-are-best/?utm_source=blog.peterritchie.com"&gt;Which of Fastify's many OpenAPI plugins are the best?&lt;/a&gt; by Phil Sturgeon&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/exponential-backoff-circuit-breaker-azure-functions/?utm_source=blog.peterritchie.com"&gt;Exponential backoff and circuit breaker for Service Bus-triggered Azure Functions&lt;/a&gt; by Swapnil Nagar&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/may-patches-for-azure-devops-server-3/?utm_source=blog.peterritchie.com"&gt;May Patches for Azure DevOps Server&lt;/a&gt; by Gloridel Morales&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/from-beta-to-stable-announcing-the-azure-sdk-for-rust-ga/?utm_source=blog.peterritchie.com"&gt;From beta to stable: Announcing the Azure SDK for Rust 🎉🦀&lt;/a&gt; by Ronnie Geraghty&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/product-news/take-your-local-github-sessions-anywhere/?utm_source=blog.peterritchie.com"&gt;Take your local GitHub sessions anywhere&lt;/a&gt; by Candy Ho, Ellie Bennett&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/?utm_source=blog.peterritchie.com"&gt;GitHub Copilot individual plans: Introducing flex allotments in Pro and Pro+, and a new Max plan&lt;/a&gt; by Joe Binder&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/?utm_source=blog.peterritchie.com"&gt;Dungeons &amp;amp; Desktops: Building a procedurally generated roguelike with GitHub Copilot CLI&lt;/a&gt; by Lee Reilly&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - May 10</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-may-10</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-may-10</guid>
			<pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/?utm_source=blog.peterritchie.com"&gt;GitHub for Beginners: Getting started with OSS contributions&lt;/a&gt; by Kedasha Kerr&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
--&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/dont-overestimate-domain-expertise?utm_source=blog.peterritchie.com"&gt;Don't overestimate domain expertise&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/debugging-event-driven-systems-5-problems-teams-create/?utm_source=blog.peterritchie.com"&gt;Debugging Event-Driven Systems: 5 Problems Teams Create&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/propagating-opentelemetry-context-in-dotnet.htm?utm_medium=social&amp;amp;utm_source=syndication?utm_source=blog.peterritchie.com"&gt;Propagating OpenTelemetry context in .NET&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/api-versioning-should-be-your-last-resort?utm_source=blog.peterritchie.com"&gt;API Versioning Should Be Your Last Resort&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.wildermuth.com/2026/05/07/pluralsight-course-updates/?utm_source=blog.peterritchie.com"&gt;I've Been Busy Updating My Pluralsight Courses&lt;/a&gt; by Shawn Wildemuth&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/05/05/wolverine-middleware-and-some-random-observations/?utm_source=blog.peterritchie.com"&gt;Wolverine Middleware and Some Random Observations&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/blog/2026/05/11/83-of-the-fortune-100-have-a-developer-or-api-portal/?utm_source=blog.peterritchie.com"&gt;83 of the Fortune 100 Have a Developer or API Portal&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-curity-least-privilege-ai-agents/?utm_source=blog.peterritchie.com"&gt;Least privilege AI agents: A new azd template from Curity and Microsoft&lt;/a&gt; by Kristen Womack&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/scalable-ai-with-azure-cosmos-db-bringing-generative-ai-to-enterprise-scale-with-super-insight-by-avasoft/?utm_source=blog.peterritchie.com"&gt;Generative AI in Document Processing with Azure&lt;/a&gt; by Manish Sharma&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-shell-public-preview-ai-mcp-cli/?utm_source=blog.peterritchie.com"&gt;Azure Cosmos DB Shell Public Preview: AI-Powered CLI&lt;/a&gt; by Sajeetharan Sinnathurai&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/?utm_source=blog.peterritchie.com"&gt;Why age assurance laws matter for developers&lt;/a&gt; by Margaret Tucker&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/what-we-lost-the-last-time-code-got-cheap?utm_source=blog.peterritchie.com"&gt;What We Lost the Last Time Code Got Cheap&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/the-cost-of-always-having-the-answer?utm_source=blog.peterritchie.com"&gt;The cost of always having the answer&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.newardassociates.com/blog/2026/titit-agents-as-ides.html?utm_source=blog.peterritchie.com"&gt;Things I Think I Think... about Coding Agents and IDEs&lt;/a&gt; by Ted Neward&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/improving-token-efficiency-in-github-agentic-workflows/?utm_source=blog.peterritchie.com"&gt;Improving token efficiency in GitHub Agentic Workflows&lt;/a&gt; by Landon Cox, Mara Kiefer&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/generative-ai/agent-pull-requests-are-everywhere-heres-how-to-review-them/?utm_source=blog.peterritchie.com"&gt;Agent pull requests are everywhere. Here's how to review them.&lt;/a&gt; by Andrea Griffiths&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=blog.peterritchie.com"&gt;Copilot Studio gets faster with .NET 10 on WebAssembly&lt;/a&gt; by Daniel Roth&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/blog/2026/05/07/seeing-mcp/?utm_source=blog.peterritchie.com"&gt;Seeing MCP&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/generative-ai/validating-agentic-behavior-when-correct-isnt-deterministic/?utm_source=blog.peterritchie.com"&gt;Validating agentic behavior when “correct” isn’t deterministic&lt;/a&gt; by Gaurav Mittal, Reshabh Kumar Sharma&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - April 26</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-26</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-26</guid>
			<pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

## Open-source

## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://karoxi.dev/blog/kafka_not_an_event_store?utm_source=blog.peterritchie.com"&gt;Kafka Is Not An Event Store&lt;/a&gt; by karoxi&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/just-use-postgres-as-a-queue/?utm_source=blog.peterritchie.com"&gt;Just Use Postgres as a Queue?&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## GitHib

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/resharper-made-vs-code-a-real-option-for-my-net-work/?utm_source=blog.peterritchie.com"&gt;ReSharper Made VS Code a Real Option for My .NET Work&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/display-project-attribute-c-319d?utm_source=blog.peterritchie.com"&gt;Display project Attribute (C#)&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/whats-new-for-dotnet-in-ubuntu-2604/?utm_source=blog.peterritchie.com"&gt;What's new for .NET in Ubuntu 26.04&lt;/a&gt; by Richard Lander&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/04/give-dotnet-its-props/?utm_source=blog.peterritchie.com"&gt;Give .NET Its Props - Central Package Management&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/22/like-vertical-slice-architecture-meet-wolverine-http/?utm_source=blog.peterritchie.com"&gt;Like Vertical Slice Architecture? Meet Wolverine.Http!&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-10-0-7-oob-security-update/?utm_source=blog.peterritchie.com"&gt;.NET 10.0.7 Out-of-Band Security Update&lt;/a&gt; by Rahul Bhandari (MSFT)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/21/ef-core-is-better-with-wolverine/?utm_source=blog.peterritchie.com"&gt;EF Core is Better with Wolverine – The Shade Tree Developer&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/removingbyte-array-allocations-in-dotnet-framework-using-readonlyspan-t/?utm_source=blog.peterritchie.com"&gt;Removing byte[] allocations in .NET Framework using ReadOnlySpan&lt;T&gt;&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/20/customizing-the-wolverine-code-generation-model/?utm_source=blog.peterritchie.com"&gt;Customizing the Wolverine Code Generation Model – The Shade Tree Developer&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

 --&gt;
&lt;h2 id="project-managementadministration"&gt;Project Management/Administration&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://agilepainrelief.com/blog/product-management-and-genai/?utm_source=blog.peterritchie.com"&gt;Product Management with GenAI: What Changes and What Doesn't&lt;/a&gt; by Mark Levison&lt;/p&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/blog/2026/04/24/with-api-knowledge-comes-great-power/?utm_source=blog.peterritchie.com"&gt;With API Knowledge Comes Great Power&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/?utm_source=blog.peterritchie.com"&gt;Azure MCP Server now available as an MCP Bundle (.mcpb)&lt;/a&gt; by Victor Colin Amador&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/axios-npm-supply-chain-compromise-guidance-for-azure-pipelines-customers/?utm_source=blog.peterritchie.com"&gt;Axios npm Supply Chain Compromise – Guidance for Azure Pipelines Customers&lt;/a&gt; by Josef Sin&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/?utm_source=blog.peterritchie.com"&gt;Write azd hooks in Python, JavaScript, TypeScript, or .NET&lt;/a&gt; by Kristen Womack&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/7-tips-to-optimize-azure-cosmos-db-costs-for-ai-and-agentic-workloads/?utm_source=blog.peterritchie.com"&gt;7 tips to optimize Azure Cosmos DB costs for AI and agentic workloads&lt;/a&gt; by Michal Toiba&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/optimizing-git-policy-management-at-scale/?utm_source=blog.peterritchie.com"&gt;Optimizing Git policy management at scale&lt;/a&gt; by Azat Galiev&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-april-2026/?utm_source=blog.peterritchie.com"&gt;Azure SDK Release (April 2026)&lt;/a&gt; by Ronnie Geraghty&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/general-availability-dynamic-data-masking-for-azure-cosmos-db/?utm_source=blog.peterritchie.com"&gt;General Availability: Dynamic Data Masking for Azure Cosmos DB&lt;/a&gt; by Sudhanshu Khera&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/azure-devops-mcp-server-april-update/?utm_source=blog.peterritchie.com"&gt;Azure DevOps MCP Server April Update&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/the-test-pyramid-is-a-lie-and-what-i-do-instead?utm_source=blog.peterritchie.com"&gt;The Test Pyramid Is a Lie (and What I Do Instead)&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/open-source/git/highlights-from-git-2-54/?utm_source=blog.peterritchie.com"&gt;Highlights from Git 2.54&lt;/a&gt; by Taylor Blau&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.forbes.com/sites/jasonwingard/2026/04/23/vibe-coding-will-break-your-company/?utm_source=blog.peterritchie.com"&gt;Vibe Coding Will Break Your Company&lt;/a&gt; by Dr. Jason Wingard&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/the-ai-great-leap-forward-a-warning?utm_source=blog.peterritchie.com"&gt;The AI Great Leap Forward (a warning)&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/vibing-harness-and-ooda-loop?utm_source=blog.peterritchie.com"&gt;Vibing, Harness and OODA loop&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/setting-up-claude-code-agent-teams-with-wsl2-and-tmux-on-windows/?utm_source=blog.peterritchie.com"&gt;Setting Up Claude Code Agent Teams With Wsl2 and Tmux on Windows&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.josephguadagno.net/2026/04/20/are-we-the-parents-in-the-ai-agent-relationship?utm_source=blog.peterritchie.com"&gt;Are we the parents in the AI Agent relationship? The drama continues&lt;/a&gt; by Joseph Guadagno&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/?utm_source=blog.peterritchie.com"&gt;GitHub Copilot meets Azure Developer CLI: AI-assisted project setup and error troubleshooting&lt;/a&gt; by Kristen Womack&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/changes-to-github-copilot-individual-plans/?utm_source=blog.peterritchie.com"&gt;Changes to GitHub Copilot Individual plans&lt;/a&gt; by Joe Binder&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - April 19</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-19</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-19</guid>
			<pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/application-security/how-exposed-is-your-code-find-out-in-minutes-for-free/?utm_source=blog.peterritchie.com"&gt;How exposed is your code? Find out in minutes—for free&lt;/a&gt; by Dorothy Pearce, Eric Tooley&lt;/p&gt;
&lt;!-- ## Open-source

## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/yoda-principle-for-better-integrations?utm_source=blog.peterritchie.com"&gt;Yoda Principle for better integrations&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/evaluating-cron-and-rrule-expressions-in-dotnet.htm?utm_source=blog.peterritchie.com"&gt;Evaluating CRON and RRule expressions in .NET&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/why-i-switched-to-primary-constructors-for-di-in-csharp?utm_source=blog.peterritchie.com"&gt;Why I Switched to Primary Constructors for DI in C#&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;h2 id="githib"&gt;GitHib&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/bringing-more-transparency-to-githubs-status-page/?utm_source=blog.peterritchie.com"&gt;Bringing more transparency to GitHub’s status page&lt;/a&gt; by Jakub Oleksy&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/its-time-for-a-visual-studio-upgrade?utm_source=blog.peterritchie.com"&gt;It's Time for a Visual Studio Upgrade&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.josephguadagno.net/2024/07/13/docker-volume-location-on-windows?utm_source=blog.peterritchie.com"&gt;Docker Volume Location on Windows&lt;/a&gt; by Joseph Guadagno&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/from-ai-to-net-20-vs-live-las-vegas-sessions-you-can-watch-now/?utm_source=blog.peterritchie.com"&gt;From AI to .NET: 20 VS Live! Las Vegas Sessions You Can Watch Now&lt;/a&gt; by Jim Harrer&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/pin-clustering-in-dotnet-maui-maps/?utm_source=blog.peterritchie.com"&gt;Pin Clustering in .NET MAUI Maps&lt;/a&gt; by David Ortinau&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/15/critter-stack-sample-projects-and-our-curated-ai-skills/?utm_source=blog.peterritchie.com"&gt;Critter Stack Sample Projects and Our Curated AI Skills&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/stop-hunting-bugs-meet-the-new-visual-studio-debugger-agent/?utm_source=blog.peterritchie.com"&gt;Stop Hunting Bugs: Meet the New Visual Studio Debugger Agent Workflow&lt;/a&gt; by Harshada Hole&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-3/?utm_source=blog.peterritchie.com"&gt;.NET 11 Preview 3 is now available!&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/htmxrazor-v2-0-0-platform-and-dx/?utm_source=blog.peterritchie.com"&gt;htmxRazor v2.0.0: Platform and DX&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/suppressing-roslyn-analyzer-warnings-programmatically-using-diagnosticsuppressor.htm?utm_source=blog.peterritchie.com"&gt;Suppressing Roslyn Analyzer Warnings Programmatically using DiagnosticSuppressor&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/how-do-you-paywall-an-api/?utm_source=blog.peterritchie.com"&gt;How DO you Paywall an API?&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/04/16/an-api-consumer-interoperability-mindset/?utm_source=blog.peterritchie.com"&gt;An API Consumer Interoperability Mindset&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/one-click-security-scanning-and-org-wide-alert-triage-come-to-advanced-security/?utm_source=blog.peterritchie.com"&gt;One-click security scanning and org-wide alert triage come to Advanced Security&lt;/a&gt; by Laura Jiang&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/?utm_source=blog.peterritchie.com"&gt;Stop juggling package managers—just run &lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; by Kristen Womack&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260415-00/?p=112235?utm_source=blog.peterritchie.com"&gt;Why is there a long delay between a thread exiting and the Wait­For­Single­Object returning?&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/testing-needs-a-seam-not-an-interface/?utm_source=blog.peterritchie.com"&gt;Testing Needs a Seam, Not an Interface&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/how-software-developers-fail/?utm_source=blog.peterritchie.com"&gt;How Software Developers Fail&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/optimizing-ai-agents-with-progressive-disclosure/?utm_source=blog.peterritchie.com"&gt;Optimizing AI Agents with Progressive Disclosure&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/?utm_source=blog.peterritchie.com"&gt;Azure MCP tools now ship built into Visual Studio 2022 — no extension required&lt;/a&gt; by Yun Jung Choi&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/running-ai-agents-with-customized-templates-in-docker-sandbox/?utm_source=blog.peterritchie.com"&gt;Running AI agents with customized templates using docker sandbox&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/a-useful-definition-at-the-right?utm_source=blog.peterritchie.com"&gt;A useful definition at the right time&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - April 12</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-12</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-12</guid>
			<pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

## Open-source

## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/passive-aggresive-event?utm_source=blog.peterritchie.com"&gt;Anti-patterns in event modelling - Passive-Aggressive Events&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/why-clean-code-is-killing-your-velocity/?utm_source=blog.peterritchie.com"&gt;Why &amp;quot;Clean Code&amp;quot; is Killing Your Velocity&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/csharp-15-union-types/?utm_source=blog.peterritchie.com"&gt;Explore union types in C# 15&lt;/a&gt; by Bill Wagner&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/suppressing-roslyn-analyzer-warnings-programmatically-using-diagnosticsuppressor.htm?utm_source=blog.peterritchie.com"&gt;Suppressing Roslyn Analyzer Warnings Programmatically using DiagnosticSuppressor&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/12/the-fastest-possible-http-queries-with-marten/?utm_source=blog.peterritchie.com"&gt;The Fastest Possible HTTP Queries with Marten&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/implementing-the-saga-pattern-with-wolverine?utm_source=blog.peterritchie.com"&gt;Implementing the Saga Pattern With Wolverine&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/04/ef-migrations-best-practices/?utm_source=blog.peterritchie.com"&gt;EF Core Migrations Best Practices&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/how-to-delete-and-update-millions-of-rows-in-ef-core-without-loading-a-single-entity/?utm_source=blog.peterritchie.com"&gt;How to Delete and Update Millions of Rows in EF Core Without Loading a Single Entity&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/aspnet-core-2-3-end-of-support/?utm_source=blog.peterritchie.com"&gt;ASP.NET Core 2.3 end of support announcement&lt;/a&gt; by Daniel Roth&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/?utm_source=blog.peterritchie.com"&gt;Take full control of your floating windows in Visual Studio&lt;/a&gt; by Mads Kristensen&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/04/08/you-see-a-spec-i-see-a-common-language-and-a-common-understanding/?utm_source=blog.peterritchie.com"&gt;You See a Spec, I See a Common Language, and a Common Understanding&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/?utm_source=blog.peterritchie.com"&gt;Announcing Azure MCP Server 2.0 Stable Release for Self-Hosted Agentic Cloud Automation&lt;/a&gt; by Sandeep Sen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/scalable-ai-with-azure-cosmos-db-tredence-intelligent-document-processing-idp-march-2026/?utm_source=blog.peterritchie.com"&gt;Scalable AI with Azure Cosmos DB: Tredence Intelligent Document Processing (IDP)&lt;/a&gt; by Manish Sharma&lt;/p&gt;
&lt;!--## Software Development

 ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/old-protocols-new-pipes?utm_source=blog.peterritchie.com"&gt;Old Protocols, New Pipes&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hbr.org/2026/04/to-succeed-with-ai-youve-got-to-nail-the-basics?utm_source=blog.peterritchie.com"&gt;To Succeed with AI, You’ve Got to Nail the Basics&lt;/a&gt; by Thomas C. Redman&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.techcentral.ie/forget-ai-slop-were-entering-our-generative-smog-era/?utm_source=blog.peterritchie.com"&gt;Forget AI slop. We’re entering our generative smog era&lt;/a&gt; by Niall Kitson&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=yO_TH3R8KMw?utm_source=blog.peterritchie.com"&gt;On .NET Live - AI offers benefits, but at what cost? - YouTube&lt;/a&gt; by Steve Smith&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/04/13/secret-agentic-ai/?utm_source=blog.peterritchie.com"&gt;Secret agentic AI&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.wildermuth.com/2026/04/12/ai-is-it-that-intelligent/?utm_source=blog.peterritchie.com"&gt;How Intelligent is AI?&lt;/a&gt; by Shawn Wildermuth&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - April 5</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-5</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-april-5</guid>
			<pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security
 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/supply-chain-security/securing-the-open-source-supply-chain-across-github/?utm_source=blog.peterritchie.com"&gt;Securing the open source supply chain across GitHub&lt;/a&gt; by Zachary Steindler&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/the-next-big-thing-is-small-redux?utm_source=blog.peterritchie.com"&gt;The Next Big Thing Is Small (Redux)&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/csharp-15-union-types/?utm_source=blog.peterritchie.com"&gt;Explore union types in C# 15&lt;/a&gt; by Bill Wagner&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=WOSrI2cgk10?utm_source=blog.peterritchie.com"&gt;Chris Woodruff and Joe Guadagno on morespeakers com - YouTube&lt;/a&gt; by David Giard&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=CGRGun-Bw40?utm_source=blog.peterritchie.com"&gt;Replace Switch Statements with the Strategy Pattern in C# - YouTube&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/accessing-files-from-the-action-repository-in-a-github-composite-action.htm?utm_source=blog.peterritchie.com"&gt;Accessing files from the action repository in a GitHub Composite Action&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/implementing-the-inbox-pattern-for-reliable-message-consumption?utm_source=blog.peterritchie.com"&gt;Implementing the Inbox Pattern for Reliable Message Consumption&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/04/01/multi-tenancy-in-the-critter-stack/?utm_source=blog.peterritchie.com"&gt;Multi-Tenancy in the Critter Stack&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/04/fastendpoints-vs-minimal-apis/?utm_source=blog.peterritchie.com"&gt;FastEndpoints vs ASP.NET Minimal APIs in 2026&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/dotnetconf-most-popular-sessions-tool/?utm_source=blog.peterritchie.com"&gt;.NET Conf Most Popular Sessions Tool&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/?utm_source=blog.peterritchie.com"&gt;Visual Studio March Update - Build Your Own Custom Agents&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/configuring-contextual-options-with-microsoft-extensions-options-contextual/?utm_source=blog.peterritchie.com"&gt;Configuring contextual options with Microsoft.Extensions.Options.Contextual&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/url-pattern-matching-in-dotnet.htm?utm_source=blog.peterritchie.com"&gt;URL Pattern Matching in .NET&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

 --&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/?utm_source=blog.peterritchie.com"&gt;Improving the Markdown Editor for Work Items&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;!-- ## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

## REST/APIs
 --&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/?utm_source=blog.peterritchie.com"&gt;Azure Developer CLI (azd) - March 2026: Run and Debug AI Agents Locally, GitHub Copilot Integration, &amp;amp; Container App Jobs&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.jsnover.com/blog/2026/03/13/microsoft-hasnt-had-a-coherent-gui-strategy-since-petzold/?utm_source=blog.peterritchie.com"&gt;Microsoft Hasn’t Had a Coherent GUI Strategy Since Petzold&lt;/a&gt; by Jeffrey Snover&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.newardassociates.com/blog/2026/titit-touching-code.html?utm_source=blog.peterritchie.com"&gt;Things I Think I Think... About Touching Code&lt;/a&gt; by Ted Neward&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://futurism.com/artificial-intelligence/wikipedia-editors-ban-ai-content?utm_source=blog.peterritchie.com"&gt;Wikipedia Editors Tried and Tried to Work With AI Content, Eventually Realized It Was Total Trash and Banned It Entirely&lt;/a&gt; by Frank Landymore&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/the-keyboard-was-never-the-bottleneck?utm_source=blog.peterritchie.com"&gt;The keyboard was never the bottleneck&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/run-multiple-agents-at-once-with-fleet-in-copilot-cli/?utm_source=blog.peterritchie.com"&gt;Run multiple agents at once with /fleet in Copilot CLI&lt;/a&gt; by Matt Nigh, Brian LaFlamme&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/agent-driven-development-in-copilot-applied-science/?utm_source=blog.peterritchie.com"&gt;Agent-driven development in Copilot Applied Science&lt;/a&gt; by Tyler McGoffin&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention The Last Two Weeks - March 29</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-29</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-29</guid>
			<pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://arstechnica.com/security/2026/03/supply-chain-attack-using-invisible-code-hits-github-and-other-repositories/?utm_source=blog.peterritchie.com"&gt;Supply-chain attack using invisible code hits GitHub and other repositories&lt;/a&gt; by Dan Goodin&lt;/p&gt;
&lt;p&gt;&lt;a href="https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise?utm_source=blog.peterritchie.com"&gt;Trivy Under Attack Again: Widespread GitHub Actions Tag Comp...&lt;/a&gt; by Philipp Burckhardt&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.adexchanger.com/data-driven-thinking/the-privacy-zealots-were-right-ad-techs-infrastructure-was-always-a-risk/?utm_source=blog.peterritchie.com"&gt;The Privacy ‘Zealots’ Were Right: Ad Tech’s Infrastructure Was Always A Risk&lt;/a&gt; by AdExchanger Guest Columnist&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.howtogeek.com/passkeys-were-supposed-to-replace-passwords-but-theyre-failing-for-the-most-predictable-reason/?utm_source=blog.peterritchie.com"&gt;Passkeys were supposed to replace passwords, but they're failing for the most predictable reason&lt;/a&gt; by Sydney Butler&lt;/p&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/supply-chain-security/investing-in-the-people-shaping-open-source-and-securing-the-future-together/?utm_source=blog.peterritchie.com"&gt;Investing in the people shaping open source and securing the future together&lt;/a&gt; by Kevin Crosby&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/the-one-where-oskar-explains-example?utm_source=blog.peterritchie.com"&gt;The one where Oskar explains Example Mapping&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vladikk.com/2026/03/30/solid-principles-ai-era/?utm_source=blog.peterritchie.com"&gt;Are SOLID Principles Still Relevant in the AI Era?&lt;/a&gt; by Vlad Khononov&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/is-event-driven-architecture-overkill-for-most-apps/?utm_source=blog.peterritchie.com"&gt;Is Event-Driven Architecture Overkill for Most Apps?&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=9zcg206kEoI&amp;amp;utm_source=blog.peterritchie.com"&gt;Make your programs run faster with one click in Visual Studio 2026 - YouTube&lt;/a&gt; by Microsoft Visual Studio&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/aspnet-core-startup-validation-part-4-597d?utm_source=blog.peterritchie.com"&gt;ASP.NET Core startup validation part 4y&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/htmxrazor-v1-4-0-sse-streaming-multi-step-wizard-and-optimistic-ui/?utm_source=blog.peterritchie.com"&gt;htmxRazor v1.4.0: SSE Streaming, Multi-step Wizard, and Optimistic UI&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/03/22/announcing-polecat-event-sourcing-with-sql-server/?utm_source=blog.peterritchie.com"&gt;Announcing Polecat: Event Sourcing with SQL Server&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tabsoverspaces.com/233965-fbnetexternalengine-7-0-released?utm_source=blog.peterritchie.com"&gt;FbNetExternalEngine 7.0 released&lt;/a&gt; by Jiří Činčura&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/scaling-signalr-with-redis-backplane?utm_source=blog.peterritchie.com"&gt;Scaling SignalR With a Redis Backplane&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/accelerating-dotnet-maui-with-ai-agents/?utm_source=blog.peterritchie.com"&gt;Accelerating .NET MAUI Development with AI Agents&lt;/a&gt; by David Ortinau&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/03/17/re-sequencer-and-global-message-partitioning-in-wolverine/?utm_source=blog.peterritchie.com"&gt;Re-Sequencer and Global Message Partitioning in Wolverine&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/rt-assistant-a-realtime-multiagent-voice-bot-using-dotnet-and-open-ai-api/?utm_source=blog.peterritchie.com"&gt;RT.Assistant: A Multi-Agent Voice Bot Using .NET and OpenAI&lt;/a&gt; by Faisal Waris&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/url-pattern-matching-in-dotnet.htm?utm_source=blog.peterritchie.com"&gt;URL Pattern Matching in .NET&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/03/ef-core-global-query-filters/?utm_source=blog.peterritchie.com"&gt;EF Core Global Query Filters - The Soft Delete Pattern You Should Be Using&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/openapi-tools-is-growing/?utm_source=blog.peterritchie.com"&gt;OpenAPI.tools is Growing&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview/?utm_source=blog.peterritchie.com"&gt;Azure DevOps Remote MCP Server (public preview)&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/march-patches-for-azure-devops-server-4/?utm_source=blog.peterritchie.com"&gt;March Patches for Azure DevOps Server&lt;/a&gt; by Gloridel Morales&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-run-invoke/?utm_source=blog.peterritchie.com"&gt;Azure Developer CLI (azd): Run and test AI agents locally with azd&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/introducing-the-azure-cosmos-db-plugin-for-cursor/?utm_source=blog.peterritchie.com"&gt;Introducing the Azure Cosmos DB Plugin for Cursor&lt;/a&gt; by Sajeetharan Sinnathurai&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-march-2026/?utm_source=blog.peterritchie.com"&gt;Azure SDK Release (March 2026)&lt;/a&gt; by Ronnie Geraghty&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/03/30/programming-languages-for-ai/?utm_source=blog.peterritchie.com"&gt;Programming languages for AI&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/product-news/whats-coming-to-our-github-actions-2026-security-roadmap/?utm_source=blog.peterritchie.com"&gt;What's coming to our GitHub Actions 2026 security roadmap&lt;/a&gt; by Greg Ose, Stephen Glass&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/css-todometer/?utm_source=blog.peterritchie.com"&gt;A history of styling choices leading to native CSS&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.josephguadagno.net/2026/03/21/squad-tips-tricks-and-lessons-learned?utm_source=blog.peterritchie.com"&gt;Squad: Tips, Tricks, and Lessons Learned&lt;/a&gt; by Joseph Guadagno&lt;/p&gt;
&lt;p&gt;&lt;a href="https://futurism.com/artificial-intelligence/ai-coding-error-debt?utm_source=blog.peterritchie.com"&gt;A Grim Truth Is Emerging in Employers' AI Experiments&lt;/a&gt; by Victor Tangermann&lt;/p&gt;
&lt;p&gt;&lt;a href="https://futurism.com/future-society/ai-bubble-billionaires-burst?utm_source=blog.peterritchie.com"&gt;Tech Billionaires Are Quietly Rooting for AI Bubble to Collapse&lt;/a&gt; by Joe Wilkins&lt;/p&gt;
&lt;p&gt;&lt;a href="https://getwired.com/2026/03/16/ai-is-sea-monkeys/?utm_source=blog.peterritchie.com"&gt;AI is Sea Monkeys&lt;/a&gt; by Wes Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/unlocking-the-full-power-of-copilot-code-review-master-your-instructions-files/?utm_source=blog.peterritchie.com"&gt;Unlocking the full power of Copilot code review: Master your instructions files&lt;/a&gt; by Ria Gopu&lt;/p&gt;
&lt;p&gt;&lt;a href="https://trailheadtechnology.com/with-ai-writing-code-what-are-developers-for/?utm_source=blog.peterritchie.com"&gt;With AI Writing Code, What Are Developers For?&lt;/a&gt; by J. Tower&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/ai-benefits---but-at-what-cost/?utm_source=blog.peterritchie.com"&gt;AI Benefits - But at What Cost?&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/open-source/maintainers/rethinking-open-source-mentorship-in-the-ai-era/?utm_source=blog.peterritchie.com"&gt;Rethinking open source mentorship in the AI era&lt;/a&gt; by Abigail Cabunoc Mayes&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/?utm_source=blog.peterritchie.com"&gt;Remote MCP Server preview in Microsoft Foundry&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/how-squad-runs-coordinated-ai-agents-inside-your-repository/?utm_source=blog.peterritchie.com"&gt;How Squad runs coordinated AI agents inside your repository&lt;/a&gt; by Brady Gaster&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/coding-isnt-the-hard-part/?utm_source=blog.peterritchie.com"&gt;Coding Isn’t the Hard Part&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/interactive-rubber-ducking-with-genai?utm_source=blog.peterritchie.com"&gt;Interactive Rubber Ducking with GenAI&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/weizenbaums-four-warnings-for-the?utm_source=blog.peterritchie.com"&gt;Weizenbaum’s Four Warnings for the AI Era&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sadukie.com/2026/03/24/is-ai-a-yes-man.html?utm_source=blog.peterritchie.com"&gt;Is AI a Yes Man?&lt;/a&gt; by sadukie&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - March 15</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-15</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-15</guid>
			<pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/htmxrazor-v1-3-0-data-table-accessibility-and-modern-css/?utm_source=blog.peterritchie.com"&gt;htmxRazor v1.3.0: Data Table, Accessibility, and Modern CSS&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/implementing-rfc-compliant-http-caching-for-httpclient-in-dotnet.htm?utm_source=blog.peterritchie.com"&gt;Implementing RFC-compliant HTTP caching for HttpClient in .NET&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/03/15/validation-options-in-wolverine/?utm_source=blog.peterritchie.com"&gt;Validation Options in Wolverine&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/optimizing-bulk-database-updates-in-dotnet?utm_source=blog.peterritchie.com"&gt;Optimizing Bulk Database Updates in .NET: From Naive to Lightning-Fast&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/modernize-dotnet-anywhere-with-ghcp/?utm_source=blog.peterritchie.com"&gt;Modernize .NET Anywhere with GitHub Copilot&lt;/a&gt; by Mika Dumont&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-10-0-5-oob-release-macos-debugger-fix/?utm_source=blog.peterritchie.com"&gt;.NET 10.0.5 Out-of-Band Release - macOS Debugger Fix&lt;/a&gt; by Rahul Bhandari (MSFT)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tabsoverspaces.com/233963-dnsendpoint-where-have-you-been?utm_source=blog.peterritchie.com"&gt;DnsEndPoint – where have you been?&lt;/a&gt; by Jiří Činčura&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-2/?utm_source=blog.peterritchie.com"&gt;.NET 11 Preview 2 is now available!&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-march-2026-servicing-updates/?utm_source=blog.peterritchie.com"&gt;.NET and .NET Framework March 2026 servicing releases updates&lt;/a&gt; by Rahul Bhandari (MSFT)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/03/10/new-improvements-to-martens-linq-support/?utm_source=blog.peterritchie.com"&gt;New Improvements to Marten’s LINQ Support&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://platform.uno/blog/configuring-claude-code-for-real-net-projects/?utm_source=blog.peterritchie.com"&gt;Configuring Claude Code for Real .NET Projects&lt;/a&gt; by Matt Mattei&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile --&gt;
&lt;h2 id="agilework-life"&gt;Agile/Work Life&lt;/h2&gt;
&lt;!-- ## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/openapi-tools-is-growing/?utm_source=blog.peterritchie.com"&gt;OpenAPI.tools is Growing&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/podcast/supergood-is-building-unofficial-apis-for-everything/?utm_source=blog.peterritchie.com"&gt;Supergood is building unofficial APIs for everything&lt;/a&gt; by Mike Bifulco&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-mirroring-fabric-private-networks-ga/?utm_source=blog.peterritchie.com"&gt;Azure Cosmos DB Mirroring in Microsoft Fabric: Private Network Support Now Generally Available&lt;/a&gt; by Jai Maldonado&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/march-patches-for-azure-devops-server-4/?utm_source=blog.peterritchie.com"&gt;March Patches for Azure DevOps Server&lt;/a&gt; by Gloridel Morales&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-logs-status/?utm_source=blog.peterritchie.com"&gt;Azure Developer CLI (azd): Debug hosted AI agents from your terminal&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-conf-2026-preview/?utm_source=blog.peterritchie.com"&gt;Azure Cosmos DB Conf 2026 Preview: What to Expect&lt;/a&gt; by Jay Gordon&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/pushing-skills-to-a-new-level-5cdj?utm_source=blog.peterritchie.com"&gt;Pushing skills to a new level&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vladikk.com/2026/03/15/machine-errors/?utm_source=blog.peterritchie.com"&gt;Machine Errors and Non-Deterministic Humans&lt;/a&gt; by Vlad Khononov&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260313-00/?p=112138?utm_source=blog.peterritchie.com"&gt;Windows stack limit checking retrospective: MIPS&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.mostlylucid.net/blog/behavioural-inference-systems-blog?utm_source=blog.peterritchie.com"&gt;Behavioural Inference: How I Learned to Stop Worrying and Love Probabilistic Systems (English)&lt;/a&gt; by Scott Galloway&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/github-availability-report-february-2026/?utm_source=blog.peterritchie.com"&gt;GitHub availability report: February 2026&lt;/a&gt; by Jakub Oleksy&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/news-insights/company-news/addressing-githubs-recent-availability-issues-2/?utm_source=blog.peterritchie.com"&gt;Addressing GitHub’s recent availability issues&lt;/a&gt; by Vlad Fedorov&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260311-00/?p=112134?utm_source=blog.peterritchie.com"&gt;How do compilers ensure that large stack allocations do not skip over the guard page?&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/03/i-made-an-api/?utm_source=blog.peterritchie.com"&gt;I Made an API&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.xda-developers.com/obsidian-cli-is-the-new-best-way-to-automate-your-notes/?utm_source=blog.peterritchie.com"&gt;Obsidian CLI is the new best way to automate your notes&lt;/a&gt; by Patrick Hearn&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/interactive-rubber-ducking-with-genai?utm_source=blog.peterritchie.com"&gt;Interactive Rubber Ducking with GenAI&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/weizenbaums-four-warnings-for-the?utm_source=blog.peterritchie.com"&gt;Weizenbaum’s Four Warnings for the AI Era&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://thenewstack.io/jetbrains-names-the-debt-ai-agents-leave-behind?utm_source=blog.peterritchie.com"&gt;JetBrains names the debt AI agents leave behind&lt;/a&gt; by Darryl K. Taft&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/the-era-of-ai-as-text-is-over-execution-is-the-new-interface/?utm_source=blog.peterritchie.com"&gt;The era of “AI as text” is over. Execution is the new interface&lt;/a&gt; by Gwen Davis&lt;/p&gt;
&lt;p&gt;&lt;a href="https://futurism.com/future-society/ai-bubble-billionaires-burst?utm_source=blog.peterritchie.com"&gt;Tech Billionaires Are Quietly Rooting for AI Bubble to Collapse&lt;/a&gt; by Joe Wilkins&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - March 8</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-8</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-8</guid>
			<pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/htmxrazor-1-2-0-toast-notifications-pagination-and-the-end-of-css-specificity-fights/?utm_source=blog.peterritchie.com"&gt;htmxRazor 1.2.0: Toast Notifications, Pagination, and the End of CSS Specificity Fights&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;!-- ## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/5-architecture-tests-you-should-add-to-your-dotnet-projects?utm_source=blog.peterritchie.com"&gt;5 Architecture Tests You Should Add to Your .NET Projects&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/parse-dont-guess?utm_source=blog.peterritchie.com"&gt;Parse, Don't Guess&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/vertical-slices-doesnt-mean-share-nothing/?utm_source=blog.peterritchie.com"&gt;Vertical Slices doesn't mean &amp;quot;Share Nothing&amp;quot;&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://irina.codes/async-does-not-mean-scalable/?utm_source=blog.peterritchie.com"&gt;Async Does Not Mean Scalable&lt;/a&gt; by Irina Scurtu&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/03/06/fun-five-year-retrospective-on-marten-adoption/?utm_source=blog.peterritchie.com"&gt;Fun Five Year Retrospective on Marten Adoption&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-dev-essentials-free-practical-tools-for-every-developer/?utm_source=blog.peterritchie.com"&gt;Visual Studio Dev Essentials: Free, Practical Tools for Every Developer&lt;/a&gt; by Jim Harrer&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/extend-your-coding-agent-with-dotnet-skills/?utm_source=blog.peterritchie.com"&gt;Extend your coding agent with .NET Skills&lt;/a&gt; by Tim Heuer&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/release-v10-of-the-official-mcp-csharp-sdk/?utm_source=blog.peterritchie.com"&gt;Release v1.0 of the official MCP C# SDK&lt;/a&gt; by Mike Kistler&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/essential-visual-studio-extensions-4loh?utm_source=blog.peterritchie.com"&gt;Essential Visual Studio Extensions&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/03/value-of-immutability/?utm_source=blog.peterritchie.com"&gt;The Value of Immutability in .NET&lt;/a&gt; by Barret Blake&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile --&gt;
&lt;h2 id="agilework-life"&gt;Agile/Work Life&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://agilepainrelief.com/blog/product-backlog-refinement-hell-solutions/?utm_source=blog.peterritchie.com"&gt;Product Backlog Refinement Hell: 3 Problems and Solutions&lt;/a&gt; by Mark Levison&lt;/p&gt;
&lt;!-- ## Project Management/Administration

## REST/APIs
 --&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-appservice-swap/?utm_source=blog.peterritchie.com"&gt;Azure Developer CLI (azd): One command to swap Azure App Service slots&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/we-are-still-engineers?utm_source=blog.peterritchie.com"&gt;We are still engineers&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/visualize-github-actions-runs-with-meziantou-githubactionstracing.htm?utm_source=blog.peterritchie.com"&gt;Visualize GitHub Actions runs with Meziantou.GitHubActionsTracing&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/security/how-to-scan-for-vulnerabilities-with-github-security-labs-open-source-ai-powered-framework/?utm_source=blog.peterritchie.com"&gt;How to scan for vulnerabilities with GitHub Security Lab’s open source AI-powered framework&lt;/a&gt; by Man Yue Mo, Peter Stöckli&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260309-00/?p=112118?utm_source=blog.peterritchie.com"&gt;Learning to read C++ compiler errors: Ambiguous overloaded operator&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260306-00/?p=112116?utm_source=blog.peterritchie.com"&gt;When Read­Directory­ChangesW reports that a deletion occurred, how can I learn more about the deleted thing?&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/css-wavy-art/?utm_source=blog.peterritchie.com"&gt;Making art with CSS gradients and corner-shape and skew, oh my&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/03/03/in-defence-of-correctness/?utm_source=blog.peterritchie.com"&gt;In defence of correctness&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.architecture-weekly.com/p/the-end-of-coding-wrong-question?utm_source=blog.peterritchie.com"&gt;The End of Coding? Wrong Question&lt;/a&gt; by Oskar Dudycz&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vladikk.com/2026/03/10/ai-ooda/?utm_source=blog.peterritchie.com"&gt;The Missing Link in Vibe Coding: Feedback Loops&lt;/a&gt; by Vlad Khononov&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nick-tune.me/blog/2026-03-04-event-sourced-claude-code-workflows/?utm_source=blog.peterritchie.com"&gt;Event-sourced Claude Code workflows&lt;/a&gt; by Nick Tune&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/signal-ping-skill-still-sets-the?utm_source=blog.peterritchie.com"&gt;Signal ping : Skill still sets the ceiling&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/03/09/which-of-these-languages-are-best-for-ai/?utm_source=blog.peterritchie.com"&gt;Which of these languages are best for AI?&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

--&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - March 1</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-1%20copy</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-march-1%20copy</guid>
			<pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

## Open-source

## Domain-Driven Design, CQRS
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/fencing-tokens-and-generation-clock-in-net-stop-zombie-leaders-from-writing/?utm_source=rss&amp;amp;utm_medium=rss&amp;amp;utm_campaign=fencing-tokens-and-generation-clock-in-net-stop-zombie-leaders-from-writing?utm_source=blog.peterritchie.com"&gt;Fencing Tokens and Generation Clock in .NET: Stop Zombie Leaders From Writing&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://vladikk.com/2026/02/26/coupling-weighed/?utm_source=blog.peterritchie.com"&gt;Coupling Should Be Weighed, Not Counted&lt;/a&gt; by Vlad Khononov&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-february-update/?utm_source=blog.peterritchie.com"&gt;Visual Studio February Update&lt;/a&gt; by Mark Downie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/recording-metrics-in-process-using-meterlistener/?utm_source=blog.peterritchie.com"&gt;Recording metrics in-process using MeterListener&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/02/24/on-debugging-problems/?utm_source=blog.peterritchie.com"&gt;On Debugging Problems&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.nimblepros.com/blogs/validating-benchmarks/#sq_hshvked81h?utm_source=blog.peterritchie.com"&gt;Validating Benchmarks in .NET&lt;/a&gt; by Philippe Vaillancourt&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tabsoverspaces.com/233961-is-it-faster-to-index-into-an-array-or-use-switch-statement-for-lookups?utm_source=paulomorgado.net&amp;amp;utm_medium=bluesky?utm_source=blog.peterritchie.com"&gt;Is it faster to index into an array or use switch statement for lookups?&lt;/a&gt; by Jiří Činčura&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

## REST/APIs

 --&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/updates-to-team-calendar-extension/?utm_source=blog.peterritchie.com"&gt;Updates to Team Calendar extension&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-documentdb-mongodb-compatible/?utm_source=blog.peterritchie.com"&gt;Azure DocumentDB: A Fully Managed MongoDB-Compatible Database&lt;/a&gt; by Khelan Modi&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-february-2026/?utm_source=blog.peterritchie.com"&gt;Azure SDK Release (February 2026)&lt;/a&gt; by Ronnie Geraghty&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-february-2026/?utm_source=blog.peterritchie.com"&gt;Azure Developer CLI (azd) - February 2026: JMESPath Queries &amp;amp; Deployment Slots&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;!-- ## Software Development
 --&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/from-idea-to-pull-request-a-practical-guide-to-building-with-github-copilot-cli/?utm_source=blog.peterritchie.com"&gt;From idea to pull request: A practical guide to building with GitHub Copilot CLI - The GitHub Blog&lt;/a&gt; by Ari LiVigni&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/whats-new-with-github-copilot-coding-agent/?utm_source=blog.peterritchie.com"&gt;What's new with GitHub Copilot coding agent - The GitHub Blog&lt;/a&gt; by Andrea Griffiths&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/vector-data-in-dotnet-building-blocks-for-ai-part-2/?utm_source=blog.peterritchie.com"&gt;Vector Data in .NET - Building Blocks for AI Part 2&lt;/a&gt; by Jeremy Likness&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/generative-ai/multi-agent-workflows-often-fail-heres-how-to-engineer-ones-that-dont/?utm_source=blog.peterritchie.com"&gt;Multi-agent workflows often fail. Here's how to engineer ones that don't.&lt;/a&gt; by Gwen Davis&lt;/p&gt;
&lt;p&gt;&lt;a href="https://garymarcus.substack.com/p/turns-out-generative-ai-was-a-scam?utm_source=blog.peterritchie.com"&gt;Turns out Generative AI was a scam &lt;/a&gt; by Gary Marcus&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nolanlawson.com/2026/02/07/we-mourn-our-craft/?utm_source=blog.peterritchie.com"&gt;We mourn our craft&lt;/a&gt; by Nolan Lawson&lt;/p&gt;
&lt;p&gt;&lt;a href="https://theconversation.com/using-ai-responsibly-means-knowing-when-not-to-use-it-274671?utm_source=blog.peterritchie.com"&gt;Using AI responsibly means knowing when not to use it&lt;/a&gt; by Sam Illingworth&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - February 22</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-22</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-22</guid>
			<pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/passkeys/?utm_source=blog.peterritchie.com"&gt;How passkeys work&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/open-source/maintainers/securing-the-ai-software-supply-chain-security-results-across-67-open-source-projects/?utm_source=blog.peterritchie.com"&gt;Securing the AI software supply chain: Security results across 67 open source projects&lt;/a&gt; by Gregg Cochran&lt;/p&gt;
&lt;h2 id="domain-driven-design-cqrs"&gt;Domain-Driven Design, CQRS&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/read-replicas-are-not-cqrs-stop-confusing-this/?utm_source=blog.peterritchie.com"&gt;Read Replicas Are NOT CQRS (Stop Confusing This)&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/where-vertical-slices-fit-inside-the-modular-monolith-architecture?utm_source=blog.peterritchie.com"&gt;Where Vertical Slices Fit Inside the Modular Monolith Architecture&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;!--## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/02/19/using-the-azure-service-bus-emulator-for-local-wolverine-development/?utm_source=blog.peterritchie.com"&gt;Using the Azure Service Bus Emulator for Local Wolverine Development&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/validating-powershell-script-syntax-in-github-actions-workflows.htm?utm_source=blog.peterritchie.com"&gt;Validating PowerShell script syntax in GitHub Actions workflows&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/ef-core-hasqueryfilter-ii-39gf?utm_source=blog.peterritchie.com"&gt;EF Core HasQueryFilter II&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/creating-standard-and-observable-instruments/?utm_source=blog.peterritchie.com"&gt;Creating standard and &amp;quot;observable&amp;quot; instruments&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/custom-agents-in-visual-studio-built-in-and-build-your-own-agents/?utm_source=blog.peterritchie.com"&gt;Custom Agents in Visual Studio: Built in and Build-Your-Own agents&lt;/a&gt; by Rhea Patel&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/rest-is-dead-again/?utm_source=blog.peterritchie.com"&gt;Is REST Dead... Again?&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-jmespath-query-support/?utm_source=blog.peterritchie.com"&gt;JMESPath support comes to azd JSON output&lt;/a&gt; by Scott Addie&lt;/p&gt;
&lt;!-- ## Software Development
 --&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/shortwave-ai-fatigue-and-the-long?utm_source=blog.peterritchie.com"&gt;Shortwave: AI fatigue and the long middle of adoption&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.xda-developers.com/microsoft-backing-off-its-ai-everywhere-plan-is-too-little-too-late/?utm_source=blog.peterritchie.com"&gt;Microsoft's backing off on its &amp;quot;AI everywhere&amp;quot; plan is too little, too late&lt;/a&gt; by Simon Batt&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cio.com/article/4129620/agentic-ai-fails-without-an-architecture-of-flow-to-eliminate-the-friction-tax.html?utm_source=blog.peterritchie.com"&gt;Agentic AI fails without an architecture of flow to eliminate the friction tax&lt;/a&gt; by David Smith&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - February 15</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-15</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-15</guid>
			<pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/open-source/maintainers/welcome-to-the-eternal-september-of-open-source-heres-what-we-plan-to-do-for-maintainers/?utm_source=blog.peterritchie.com"&gt;Welcome to the Eternal September of open source. Here's what we plan to do for maintainers&lt;/a&gt; by Ashley Wolf&lt;/p&gt;
&lt;!-- ## Software Architecture

## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=KTsyS3rDUgg?utm_source=blog.peterritchie.com"&gt;On .NET Live: Lessons Learned Building Source Generators - YouTube&lt;/a&gt; by Jason Bock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-1/?utm_source=blog.peterritchie.com"&gt;.NET 11 Preview 1 is now available!&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/unlock-language-specific-rich-symbol-context-using-new-find_symbol-tool/?utm_source=blog.peterritchie.com"&gt;Unlock language-specific rich symbol context using new find_symbol tool&lt;/a&gt; by Sinem Akinci&lt;/p&gt;
&lt;p&gt;&lt;a href="https://barretblake.dev/posts/development/2026/02/hangfire/?utm_source=blog.peterritchie.com"&gt;Getting Started with .NET Scheduling in Hangfire&lt;/a&gt; by Barret Black&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/getting-more-information-in-msbuild-binlogs-with-property-tracking.htm?utm_source=blog.peterritchie.com"&gt;Getting more information in MSBuild binlogs with property tracking&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/aspnet-core-warmup-ef-core-58gl?utm_source=blog.peterritchie.com"&gt;ASP.NET Core warmup EF Core&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/02/14/2-weeks-of-claude-code-for-me/?utm_source=blog.peterritchie.com"&gt;2 Weeks of Claude Code for Me ΓÇô The Shade Tree Developer&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/how-to-extract-structured-data-from-images-using-ollama-in-dotnet?utm_source=blog.peterritchie.com"&gt;How to Extract Structured Data From Images Using Ollama in .NET&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

## REST/APIs

 --&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=dsyyvSxL7iM?utm_source=blog.peterritchie.com"&gt;Subscribe E2/2026 - Microsoft Fabric Real-Time Intelligence - YouTube&lt;/a&gt; by Clemens Vasters&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-app-service-slot/?utm_source=blog.peterritchie.com"&gt;Deploy to Azure App Service deployment slots with azd&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/maximize-azure-cosmos-db-performance-with-azure-advisor-recommendations/?utm_source=blog.peterritchie.com"&gt;Maximize Azure Cosmos DB Performance with Azure Advisor Recommendations&lt;/a&gt; by Iria Osara&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/february-patches-for-azure-devops-server-5/?utm_source=blog.peterritchie.com"&gt;February Patches for Azure DevOps Server&lt;/a&gt; by Gloridel Morales&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://blogs.windows.com/windowsdeveloper/2026/02/11/enhanced-developer-tools-on-the-microsoft-store/?utm_source=blog.peterritchie.com"&gt;Enhanced developer tools on the Microsoft Store&lt;/a&gt; by Windows Developer Blog&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.eventsourcingdb.io/blog/2026/02/09/soft-delete-is-a-workaround/?utm_source=blog.peterritchie.com"&gt;Soft Delete Is a Workaround&lt;/a&gt; by Golo Roden&lt;/p&gt;
&lt;!-- ## Windows
 --&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/?utm_source=blog.peterritchie.com"&gt;An AI Agent Published a Hit Piece on Me&lt;/a&gt; by Scott Shambaugh&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ardalis.com/llms-need-mark-as-answer/?utm_source=blog.peterritchie.com"&gt;Llms Need Mark as Answer&lt;/a&gt; by Ardalis (Steve Smith)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/shortwave-human-centered-ai-is-not?utm_source=blog.peterritchie.com"&gt;Shortwave: Human-centered AI is not a new idea&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - February 8</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-8</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-8</guid>
			<pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://clemensv.github.io/stopwatch/?utm_source=blog.peterritchie.com"&gt;Stopwatch Overlay - Always-on-top timer for recordings &amp;amp; presentations&lt;/a&gt; by Clemens Vasters&lt;/p&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;!-- ## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-framework-3-5-moves-to-standalone-deployment-in-new-versions-of-windows/?utm_source=blog.peterritchie.com"&gt;.NET Framework 3.5 Moves to Standalone Deployment in new versions of Windows&lt;/a&gt; by Tara Overfield&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.microsoft.com/blog/winget-configuration-set-up-your-dev-machine-in-one-command?utm_source=paulomorgado.net&amp;amp;utm_medium=bluesky?utm_source=blog.peterritchie.com"&gt;WinGet Configuration: Set up your dev machine in one command&lt;/a&gt; by Kayla Cinnamon&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/lease-pattern-in-net-a-lock-with-an-expiration-date-that-saves-your-data/?utm_source=blog.peterritchie.com"&gt;Lease Pattern in .NET: A Lock With an Expiration Date That Saves Your Data&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/roadmap-for-ai-in-visual-studio-february/?utm_source=blog.peterritchie.com"&gt;Roadmap for AI in Visual Studio (February)&lt;/a&gt; by Rhea Patel&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/creating-strongly-typed-metics-with-a-source-generator/?utm_source=blog.peterritchie.com"&gt;Exploring the (underwhelming) System.Diagnostics.Metrics source generators&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/02/02/building-a-greenfield-system-with-the-critter-stack/?utm_source=blog.peterritchie.com"&gt;Building a Greenfield System with the Critter Stack&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/integrate-keycloak-with-aspnetcore-using-oauth-2?utm_source=blog.peterritchie.com"&gt;Integrate Keycloak with ASP.NET Core Using OAuth 2.0&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.stevejgordon.co.uk/encrypting-properties-with-system-text-json-and-a-typeinforesolver-modifier-part-2?utm_source=blog.peterritchie.com"&gt;Encrypting Properties with System.Text.Json and a TypeInfoResolver Modifier (Part 2)&lt;/a&gt; by Steve Gordon&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

 --&gt;
&lt;h2 id="project-managementadministration"&gt;Project Management/Administration&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.jsnover.com/blog/2026/02/01/welcome-to-the-room/?utm_source=blog.peterritchie.com"&gt;Welcome to the Room&lt;/a&gt; by Jeffrey Snove&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/shortwave-when-institutions-stop?utm_source=blog.peterritchie.com"&gt;Shortwave: When institutions stop thinking for themselves&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://apisyouwonthate.com/newsletter/building-sustainable-apis/?utm_source=blog.peterritchie.com"&gt;Sustainable APIs&lt;/a&gt; by Alexander Karan&lt;/p&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-devcontainer-extensions/?utm_source=blog.peterritchie.com"&gt;Auto-install &lt;code&gt;azd&lt;/code&gt; extensions in dev containers&lt;/a&gt; by PuiChee (PC) Chan&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/how-to-enable-microsoft-entra-id-for-azure-cosmos-db-nosql/?utm_source=blog.peterritchie.com"&gt;How to Enable Microsoft Entra ID for Azure Cosmos DB (NoSQL)&lt;/a&gt; by Sudhanshu Khera&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/azure-boards-integration-with-github-copilot-includes-custom-agent-support/?utm_source=blog.peterritchie.com"&gt;Azure Boards integration with GitHub Copilot includes custom agent support&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://lucisqr.substack.com/p/bjarnes-last-stand-how-the-father?utm_source=blog.peterritchie.com"&gt;Bjarne-s Last Stand: How the Father of C++ Is Fighting a Losing War Against Rust&lt;/a&gt; by Henrique Bucher&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/02/02/code-that-fits-in-a-context-window/?utm_source=blog.peterritchie.com"&gt;Code that fits in a context window&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/essential-rules-of-software-engineering.htm?utm_source=blog.peterritchie.com"&gt;Essential Rules of Software Engineering&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/your-idempotent-code-is-lying-to-you/?utm_source=blog.peterritchie.com"&gt;Your Idempotent Code Is Lying To You&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;h2 id="windows"&gt;Windows&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://tech.slashdot.org/story/26/02/05/0023249/microsoft-adds-sysmon-to-windows?utm_source=blog.peterritchie.com"&gt;Microsoft Adds Sysmon To Windows&lt;/a&gt; by Slashdot&lt;/p&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/gh-copilot-instructions/?utm_source=blog.peterritchie.com"&gt;Using personal instructions in GitHub Copilot Chat&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;p&gt;&lt;a href="https://frontendmasters.com/blog/what-senior-engineers-need-to-know-about-ai-coding-tools/?utm_source=blog.peterritchie.com"&gt;What Senior Engineers Need to Know About AI Coding Tools&lt;/a&gt; by Marc Grabanski&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/?utm_source=blog.peterritchie.com"&gt;How to write a great agents.md: Lessons from over 2,500 repositories&lt;/a&gt; by Matt Nigh&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/ai-and-ml/generative-ai/continuous-ai-in-practice-what-developers-can-automate-today-with-agentic-ci/?utm_source=blog.peterritchie.com"&gt;Continuous AI in practice: What developers can automate today with agentic CI&lt;/a&gt; by GitHub Staff&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - February 1</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-1</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-february-1</guid>
			<pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

 --&gt;
&lt;h2 id="open-source"&gt;Open-source&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/madskristensen/Modes?utm_source=blog.peterritchie.com"&gt;GitHub - madskristensen/Modes: A Visual Studio extension&lt;/a&gt; by madskristensen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.meziantou.net/enable-debug-logging-in-the-github-cli-gh.htm?utm_source=blog.peterritchie.com"&gt;Enable debug logging in the GitHub CLI (gh)&lt;/a&gt; by Gérald Barré&lt;/p&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/patterns-of-distributed-systems-in-c-and-net-a-new-series-for-people-who-ship-real-systems/?utm_source=blog.peterritchie.com"&gt;Patterns of Distributed Systems in C# and .NET: A New Series for People Who Ship Real Systems&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;!-- ## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.Modes?utm_source=blog.peterritchie.com"&gt;Modes - Visual Studio Marketplace&lt;/a&gt; by Mads Kristensen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.josephguadagno.net/2026/01/30/introducing-morespeakers-com?utm_source=blog.peterritchie.com"&gt;Introducing MoreSpeakers.com&lt;/a&gt; by Joseph Guadagno&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/join-us-at-ndc-london-2026/?utm_source=blog.peterritchie.com"&gt;Join Microsoft at NDC London 2026&lt;/a&gt; by .NET Team&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-january-update-enhanced-editor-experience/?utm_source=blog.peterritchie.com"&gt;Visual Studio January Update&lt;/a&gt; by Simona Liao&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.blog/developer-skills/programming-languages-and-frameworks/7-learnings-from-anders-hejlsberg-the-architect-behind-c-and-typescript/?utm_source=blog.peterritchie.com"&gt;7 learnings from Anders Hejlsberg: The architect behind C# and TypeScript&lt;/a&gt; by Aaron Winston&lt;/p&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/creating-and-consuming-metrics-with-system-diagnostics-metrics-apis/?utm_source=blog.peterritchie.com"&gt;Creating and consuming metrics with System.Diagnostics.Metrics APIs&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.mostlylucid.net/blog/doomsummarizer-deep-research?utm_source=blog.peterritchie.com"&gt;DoomSummarizer: DocSummarizer's Younger, Smarter Brother (English)&lt;/a&gt; by Scott Galloway&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/c-14-extension-blocks-1d6k?utm_source=blog.peterritchie.com"&gt;C# 14 extension blocks&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/01/26/wolverine-idioms-for-mediatr-users/?utm_source=blog.peterritchie.com"&gt;Wolverine Idioms for MediatR Users&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/containerize-your-dotnet-applications-without-a-dockerfile?utm_source=blog.peterritchie.com"&gt;Containerize Your .NET Applications Without a Dockerfile&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.stevejgordon.co.uk/the-grand-mystery-of-the-missing-18-bytes?utm_source=blog.peterritchie.com"&gt;The Grand Mystery of the Missing 18 Bytes&lt;/a&gt; by Steve Gordon&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

## REST/APIs

 --&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-sdk-release-january-2026/?utm_source=blog.peterritchie.com"&gt;Azure SDK Release (January 2026)&lt;/a&gt; by Ronnie Geraghty&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/github-copilot-cli-cosmos-db-agent-kit/?utm_source=blog.peterritchie.com"&gt;Accelerate Your Cosmos DB Infrastructure with GitHub Copilot CLI and Azure Cosmos DB Agent Kit&lt;/a&gt; by Sajeetharan Sinnathurai&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/css-corner-shape/?utm_source=blog.peterritchie.com"&gt;Making interesting borders with CSS corner-shape&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;!-- ## Windows

--&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.anthropic.com/research/disempowerment-patterns?utm_source=blog.peterritchie.com"&gt;Disempowerment patterns in real-world AI usage&lt;/a&gt; by Anthropic&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hbr.org/2026/01/when-ai-amplifies-the-biases-of-its-users?utm_source=blog.peterritchie.com"&gt;When AI Amplifies the Biases of Its Users&lt;/a&gt; by Grace Chang and Heidi Grant&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/shortwave-they-just-dont-work-yet?utm_source=blog.peterritchie.com"&gt;Shortwave: They Just DonΓÇÖt Work (Yet)&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apievangelist.com/2026/02/02/why-do-i-need-agents-when-i-have-requests-cron-jobs-and-events/?utm_source=blog.peterritchie.com"&gt;Why Do I Need Agents When I Have Requests, CRON Jobs, and Events?&lt;/a&gt; by Kin Lane&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Things That Caught My Attention Last Week - January 26</title>
			<link>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-january-26</link>
			<description>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/things-that-caught-my-attention-last-week-january-26</guid>
			<pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/caught-i.png" class="img-fluid" alt="caught-my-i" /&gt;&lt;/p&gt;
&lt;!-- ## Security

## Open-source
 --&gt;
&lt;h2 id="software-architecture"&gt;Software Architecture&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/systems-thinking-meets-simplicity-first-a-decision-framework-for-software-architects/?utm_source=blog.peterritchie.com"&gt;Systems Thinking Meets Simplicity-First: A Decision Framework for Software Architects&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codeopinion.com/you-cant-future-proof-software-architecture/?utm_source=blog.peterritchie.com"&gt;You Can't Future-Proof Software Architecture&lt;/a&gt; by Derek Comartin&lt;/p&gt;
&lt;!-- ## Presenting
 --&gt;
&lt;h2 id="net"&gt;.NET&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://andrewlock.net/making-foreach-on-an-ienumerable-allocation-free-using-reflection-and-dynamic-methods/?utm_source=blog.peterritchie.com"&gt;Making foreach on an IEnumerable allocation-free using reflection and dynamic methods&lt;/a&gt; by Andrew Lock&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.woodruff.dev/enterprise-patterns-for-asp-net-core-minimal-api-data-transfer-object-pattern/?utm_source=blog.peterritchie.com"&gt;Enterprise Patterns for ASP.NET Core Minimal API: Data Transfer Object Pattern&lt;/a&gt; by Chris Woodruff&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.mostlylucid.net/blog/simple-ocr-ner-extraction?utm_source=blog.peterritchie.com"&gt;Simple OCR and NER Feature Extraction in C# with ONNX&lt;/a&gt; by Scott Galloway&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dev.to/karenpayneoregon/c-console-menus-with-actions-67n?utm_source=blog.peterritchie.com"&gt;C# Console menus with Actions&lt;/a&gt; by Karen Payne&lt;/p&gt;
&lt;p&gt;&lt;a href="https://jeremydmiller.com/2026/01/22/martens-aggregation-projection-subsystem/?utm_source=blog.peterritchie.com"&gt;Marten's Aggregation Projection Subsystem&lt;/a&gt; by Jeremy D. Miller&lt;/p&gt;
&lt;!-- ## Conferences and Speaking

## Domain Driven Design

 --&gt;
&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/01/19/filtering-as-domain-logic/?utm_source=blog.peterritchie.com"&gt;Filtering as domain logic&lt;/a&gt; by Mark Seemann&lt;/p&gt;
&lt;!-- ## DevOps

## Software Design

## Mobile

## Agile/Work Life

## Project Management/Administration

 --&gt;
&lt;h2 id="restapis"&gt;REST/APIs&lt;/h2&gt;
&lt;h2 id="azure"&gt;Azure&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-tv-ep-110-mcp-toolkit-ai-agents/?utm_source=blog.peterritchie.com"&gt;AI Agents MCP Cosmos DB Transforming Development&lt;/a&gt; by Mark Brown&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/devops/azure-boards-additional-field-filters-private-preview/?utm_source=blog.peterritchie.com"&gt;Azure Boards Additional Field Filters in Preview&lt;/a&gt; by Dan Hellem&lt;/p&gt;
&lt;h2 id="software-development"&gt;Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260123-00/?p=112008?utm_source=blog.peterritchie.com"&gt;C++ has scope_exit for running code at scope exit. C# says &amp;quot;We have scope_exit at home.&amp;quot;&lt;/a&gt; by Raymond Chen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cassidoo.co/post/touch-on-ps/?utm_source=blog.peterritchie.com"&gt;Remaking the Linux &amp;quot;touch&amp;quot; command in PowerShell&lt;/a&gt; by Cassidy Williams&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mamund.substack.com/p/signal-ping-code-is-easy-ownership?utm_source=blog.peterritchie.com"&gt;Signal ping : Code is easy; ownership is not&lt;/a&gt; by Mike Amundsen&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sadukie.com/2026/01/19/cleveland-tech-is-not-dead.html?utm_source=blog.peterritchie.com"&gt;Cleveland Tech is not Dead!&lt;/a&gt; by sadukie&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.milanjovanovic.tech/blog/a-practical-demo-of-zero-downtime-migrations-using-password-hashing?utm_source=blog.peterritchie.com"&gt;A Practical Demo of Zero-Downtime Migrations Using Password Hashing&lt;/a&gt; by Milan Jovanović&lt;/p&gt;
&lt;!-- ## Windows

--&gt;
&lt;h2 id="ai"&gt;AI&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.blog/developer-skills/application-development/context-windows-plan-agent-and-tdd-what-i-learned-building-a-countdown-app-with-github-copilot/?utm_source=blog.peterritchie.com"&gt;Context windows, Plan agent, and TDD: What I learned building a countdown app with GitHub Copilot&lt;/a&gt; by Chris Reddington&lt;/p&gt;
&lt;!-- ## Social Media

## Online Tools

## Databases

## Cloud

## Computing

## Podcasts

## Other Link Collections

 --&gt;
</content:encoded>
		</item>
		<item>
			<title>Introducing Pri.ProductivityExtensions.Source - A .NET Standard Package to Enable Modern C# Language Features</title>
			<link>http://blog.peterritchie.com/posts/Introducing-Pri.ProductivityExtensions.Source</link>
			<description>&lt;p&gt;&lt;img src="../assets/dotnet-standard-errors.png" class="img-fluid" alt=".NET Standard compile errors"&gt;&lt;/p&gt;</description>
			<guid>http://blog.peterritchie.com/posts/Introducing-Pri.ProductivityExtensions.Source</guid>
			<pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
			<content:encoded>&lt;p&gt;&lt;img src="../assets/dotnet-standard-errors.png" class="img-fluid" alt=".NET Standard compile errors" /&gt;&lt;/p&gt;
&lt;p&gt;Targeting .NET Standard for a class library means that the library will be compatible with applications designed for past versions of .NET. E.g., an application targeting .NET Framework 4.8 or .NET Core 2.1 will be able to load a class library targeting .NET Standard 2.0 because it can only rely on the same API surface that the application does.&lt;/p&gt;
&lt;p&gt;There are a few reasons developers need to work in .NET Standard. A popular one is writing Roslyn analyzers, another is writing PowerShell modules (Cmdlets) in C#. .NET Standard is a formal specification of .NET APIs available across multiple .NET implementations. It's like a definition of a slice of APIs that are implemented across .NET versions. Designing for a slice of APIs allows you to design and deploy class libraries that will work across .NET implementations. The latest version of .NET Standard (2.1) was released in September 2020.&lt;/p&gt;
&lt;p&gt;Paradoxically, .NET languages depend on base-class libraries for aspects of their implementation. For example, the C# language feature &lt;code&gt;foreach&lt;/code&gt; depends on the types &lt;code&gt;IEnumerable&lt;/code&gt;, &lt;code&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;IEnumerator&lt;/code&gt;, and &lt;code&gt;IEnumerator&amp;lt;T&amp;gt;&lt;/code&gt;. Specifications like .NET Standard enable C# language features across .NET implementations by including those dependent types in their specification. But languages evolve and improve over time, as do base class libraries.&lt;/p&gt;
&lt;p&gt;Since .NET Standard was last updated in 2020, some new language features that depend on new types in the base class library have been introduced. Some of these new language features aren't necessarily supported in .NET Standard, even though you can use the latest compiler version when building .NET Standard class libraries. For example, Ranges and Indices are a feature added to C# 8.0, released in September 2019. Ranges and Indices depend upon the &lt;code&gt;Range&lt;/code&gt; and &lt;code&gt;Index&lt;/code&gt; types. But to write a PowerShell library that supports Windows PowerShell and PowerShell 7, you have to target .NET Standard 2.0, whose API surface was specified around August 2017--roughly two years before &lt;code&gt;Range&lt;/code&gt; and &lt;code&gt;Index&lt;/code&gt; existed. This means Ranges and Indices aren't supported out of the box in C# code targeting .NET Standard 2.0. &lt;code&gt;var lastWord = words[^1]&lt;/code&gt; or &lt;code&gt;var firstFourWords = words[0..3]&lt;/code&gt; will cause errors (&lt;code&gt;Predefined type 'System.Index' is not defined or imported&lt;/code&gt;, and &lt;code&gt;Predefined type 'System.Range' is not defined or imported&lt;/code&gt;, respectively).&lt;/p&gt;
&lt;p&gt;Fortunately, the compiler is flexible about where those predefined types are defined. Someone can't simply create a .NET Standard 2.0 library with Range and Index as public types, because they will clash with modern versions of .NET (e.g., in an XUnit test project). But the .NET Standard 2.0 library can create internal versions of those classes that the compiler is happy to resolve to. But having everyone who authors a .NET Standard 2.0 library write their own &lt;code&gt;Range&lt;/code&gt; and &lt;code&gt;Index&lt;/code&gt; classes (as well as any other class that modern C# syntax requires, like &lt;code&gt;CallerArgumentExpressionAttribute&lt;/code&gt;, &lt;code&gt;DoesNotReturnAttribute&lt;/code&gt;, etc.) is &lt;em&gt;problematic&lt;/em&gt;, to say the least.&lt;/p&gt;
&lt;h2 id="content-only-nuget-packages"&gt;Content-only NuGet Packages&lt;/h2&gt;
&lt;p&gt;.NET and NuGet packages support content- or source-only packages. Source-only packages are NuGet packages that, instead of packaging binaries like DLLs, package source code. Source-only packages don't add any assembly dependencies that require deployment.&lt;/p&gt;
&lt;p&gt;That's where Pri.ProductivityExtensions.Source comes in. Pri.ProductivityExtensions.Source is a source-only NuGet package that includes the source code for various types created after .NET Standard 2.x to support C# language features (and some helper extensions like &lt;code&gt;ArgumentException.ThrowIfNull&lt;/code&gt; that depend on those features) that aren't available in .NET Standard.&lt;/p&gt;
&lt;p&gt;&amp;quot;Pri.ProductivityExtensions.Source&amp;quot; is also the ID of the package and can be found on NuGet.org &lt;a href="https://www.nuget.org/packages/Pri.ProductivityExtensions.Source" title="Pri.ProductivityExtensions.Source on NuGet.org"&gt;here&lt;/a&gt;. It can be added to a project via the .NET API: &lt;code&gt;dotnet add package Pri.ProductivityExtensions.Source&lt;/code&gt;, or via Package Manager Console: &lt;code&gt;Install-Package Pri.ProductivityExtensions.Source&lt;/code&gt;. It is open source, and the source code is available on &lt;a href="https://github.com/peteraritchie/Pri.ProductivityExtensions.Source" title="Pri.ProductivityExtensions.Source on GitHub"&gt;GitHub&lt;/a&gt;. For an example using Pri.ProductivityExtensions.Source see &lt;a href="https://github.com/peteraritchie/Pri.Essentials.DotnetPsCmds"&gt;Pri.Essentials.DotnetPsCmds&lt;/a&gt;. And if you install &lt;a href="https://www.powershellgallery.com/packages/Pri.Essentials.DotnetPsCmds/" title="Pri.Essentials.DotnetPsCmds in PowerShell Gallery"&gt;DotnetPsCmds&lt;/a&gt;, you can install Pri.ProductivityExtensions.Source in PowerShell: &lt;code&gt;Add-DotnetPackages Pri.ProductivityExtensions.Source&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you reference Pri.ProductivityExtensions.Source, it causes the content (source code) to be considered part of the target project. The source code remains in the &lt;code&gt;.nuget&lt;/code&gt; cache and is not copied alongside the rest of your source code so no new source code needs to be committed to revision control.&lt;/p&gt;
&lt;p&gt;The types included in Pri.ProductivityExtensions.Source are &lt;code&gt;internal&lt;/code&gt;, so they won't clash if Pri.ProductivityExtensions.Source is referenced in a project targeting a modern .NET implementation. Although I don't recommend using Pri.ProductivityExtensions.Source in a .NET Standard class library that is targeting a modern .NET implementation because it will resolve to Pri.ProductivityExtensions.Source instead of the .NET implementation's.&lt;/p&gt;
&lt;p&gt;If you've created a .NET Standard library and have wanted to use the latest version of the compiler but start receiving compiler errors like &lt;code&gt;The type or namespace name 'CallerArgumentExpressionAttribute' does not exist in the namespace 'System.Runtime.CompilerServices' (are you missing an assembly reference?)&lt;/code&gt; or the other aforementioned errors, fear not, you simply need to reference Pri.ProductivityExtensions.Source!&lt;/p&gt;
&lt;p&gt;Pri.ProductivityExtensions.Source enables the following modern C# compiler features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ranges and indices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[CallerArgumentExpression]&lt;/code&gt; &lt;a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/caller-argument-expression" title="Caller argument expression - C# feature specifications"&gt;🔗&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[DoesNotReturn]&lt;/code&gt; &lt;a href="https://github.com/dotnet/roslyn/issues/127" title="Proposal: [DoesNotReturn]"&gt;🔗&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[NotNullWhen]&lt;/code&gt; &lt;a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/attributes/nullable-analysis" title="Attributes for null-state static analysis interpreted by the C# compiler"&gt;🔗&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, Pri.ProductivityExtensions.Source includes the following helper methods that otherwise depend on newer language-dependent types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ArgumentException.ThrowIfNullOrWhiteSpace(string?, string?)&lt;/code&gt; &lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception.throwifnullorwhitespace?view=net-10.0" title="ArgumentException.ThrowIfNullOrWhiteSpace(String, String) Method"&gt;🔗&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ArgumentNullException.ThrowIfNull(object?, string?)&lt;/code&gt; &lt;a href="https://learn.microsoft.com/en-us/dotnet/api/system.argumentnullexception.throwifnull?view=net-10.0" title="ArgumentNullException.ThrowIfNull Method"&gt;🔗&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="understanding-c-timeline-since-last.net-standard"&gt;Understanding C# Timeline Since Last .NET Standard&lt;/h2&gt;
&lt;p&gt;The last version of .NET Standard (2.1) was released in 2020. Since 2020, C# versions 10, 11, 12, 13, and 14 have been released. A lot has changed across 5 versions of C#, including the use of numerous APIs to enable various features. There isn't a complete list of base-class APIs that the C# compiler depends on.&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;&lt;strong&gt;If you find this useful&lt;/strong&gt;&lt;br /&gt;
I'm a freelance software architect. If you find this post useful and think I can provide value to your team, please reach out to see how I can help. See &lt;a href="/about"&gt;About&lt;/a&gt; for information about the services I provide.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;!-- Calendly inline widget begin --&gt;
&lt;div class="calendly-inline-widget" data-url="https://calendly.com/peterritchie/client-meet-greet-zoom" style="min-width:320px;height:700px;"&gt;&lt;/div&gt;
&lt;script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js" async&gt;&lt;/script&gt;
&lt;!-- Calendly inline widget end --&gt;
</content:encoded>
		</item>
	</channel>
</rss>