Thread-Safe Synchronization with SemaphoreSlim
The sync bug only happened on Mondays. Two sync operations running simultaneously, corrupting data.
Technical notes, project documentation, and lessons learned across software, DIY, writing, and more.
The sync bug only happened on Mondays. Two sync operations running simultaneously, corrupting data.
I fixed the HTTP disposal leaks. Memory dropped 70%. Then the 499s came back. The culprit: a factory pattern that created DbContexts but never properly...
Objects don't dispose themselves when they go out of scope. I believed they did. For three decades. Here's why C# works this way — and why it matters.
Our high-volume API threw timeouts for two years. External consultants missed it. Infrastructure upgrades didn't fix it.
A 1,435-second GPS gap led us to the one Android permission every tracking app needs and nobody mentions in the docs.
I built the same algorithm for an AI companion and an incident monitoring system. Exponential decay with weighted events — same math, different worlds.
How a desire-driven AI presence engine works — the cognitive cycle, memory system, and emotional state that give Ani genuine ambient presence.
Stop thinking about function pointers. Start thinking about bells and notifications. A restaurant analogy that makes C# events actually make sense.
Can I text an AI instead of opening another app? Turns out yes—and it validates a compelling business model.
How I spent days debugging a silent Discord bot, only to discover the application itself was corrupted—and Discord gave zero indication anything was wrong.
No database, no CMS, no admin panel. Just Markdown files, a JSON registry, and a thin C# service.
Your translations work, but users have to dig through browser settings to change languages. Let's build a dropdown that remembers their choice with cookies.
I built a Discord bot to summarize hundreds of messages using OpenAI - then discovered that all Discord bots run as a single instance serving every server.
Adding invisible bot protection to a contact form with Google reCAPTCHA v3 and a honeypot field - no puzzles, no friction, no spam.