TOON Format: Token-Oriented Object Notation for LLM-Friendly Data Exchange
Introduction
If you build systems that pass structured data through large language models (LLMs), you eventually hit the same set of issues:
Read Blog PostIf you build systems that pass structured data through large language models (LLMs), you eventually hit the same set of issues:
Read Blog Post.NET 10 is the next Long-Term Support (LTS) release in the .NET family. LTS matters because it’s the version many teams standardize on for the next 2-3 years: you get a stable baseline, predictable support windows, and a natural time to pay down technical debt (tooling, CI images, container base images, dependency bumps).
Read Blog PostYou can find the English version of this guide here: Self-Hosting Vaultwarden (Bitwarden) on Synology NAS with Docker
Passwort-Manager-Dienste sind in den letzten Jahren deutlich teurer geworden. Gleichzeitig ist mein Vertrauen in kommerzielle Anbieter - insbesondere aus den USA - gesunken. Als jemand, der Wert auf digitale Souveränität legt, war es für mich an der Zeit, die Kontrolle über meine Passwörter zurückzugewinnen. Ein Jahr habe ich Proton Pass ausprobiert - aber ich bin nicht wirklich zufrieden: die Features in der App sind eingeschränkt, und die Synchronisation mit Browsern funktioniert nicht immer. Die Browserintegration und die Erkennung von Passwortfeldern scheint noch in den Kinderschuhen zu stecken.
Read Blog PostYou can find the German version of this guide here: Vaultwarden auf Synology mit Docker selbst hosten
Password manager services have become significantly more expensive in recent years. At the same time, my trust in commercial providers - especially from the USA - has decreased. As someone who values digital sovereignty, it was time for me to regain control over my passwords. I tried Proton Pass for a year - but I’m not really satisfied: the features in the app are limited, and synchronization with browsers doesn’t always work. The browser integration and password field recognition still seem to be in their infancy.
Read Blog PostOnce you’ve established your own Root Certificate Authority, the next step is issuing server certificates for your local services. This guide walks through creating HTTPS certificates that are automatically trusted by all devices where your Root CA is installed.
Read Blog PostWhen running multiple services in a local network—whether for smart home automation, home labs, or development environments—HTTPS encryption becomes essential. Instead of accepting browser warnings for every self-signed certificate, creating your own Root Certificate Authority (Root CA) provides a clean, professional solution.
Read Blog PostAzure now provides a unified Realtime API for low‑latency, multimodal conversations over WebRTC or WebSockets. If you’ve used the earlier preview versions (for example the GPT‑4o realtime preview), the new generation model is simply called gpt-realtime
and the API follows the same event-driven pattern: you open a session, configure defaults via session.update, stream input, and receive streaming output (text, function calls, audio, etc.).
Logging is part of the contract of many components: when things fail, when branches are taken, when work completes. If a class owns logic, it should own its log output too. That makes logs worth testing–especially for diagnostics, reliability, and supportability.
Read Blog PostTraining custom models (for example, delivery notes) in Azure Document Intelligence initially worked fine. Suddenly, both training and auto-labeling started failing with “Internal Server Error”. In the model details, the following appeared:
Read Blog PostMicrosoft Fabric consolidates analytics workloads (including Power BI) on a tenant-wide capacity. These Fabric capacities (SKUs F2–F2048) can be provisioned declaratively with Bicep like any other Azure resource. This post covers:
Read Blog PostIf you work with Azure DevOps Git repos, SSH is often the simplest, most secure, and most policy‑friendly way to authenticate. Many organizations disable Personal Access Tokens (PATs) for security reasons, which breaks HTTPS cloning and pushes. If you’ve seen this error when using HTTPS, you’ve run into such a policy:
Read Blog PostTesting hardware-driven projects pays off quickly. Compared to driving a single LEGO motor, controlling a WS2812B lightstrip involves timing constraints, color math, frame buffers, and update sequencing–lots of places where regressions can hide. A focused unit-testing approach helps keep this code reliable and fast to iterate on. For more background on the general pattern, see the Build HAT article: Raspberry Build HAT: Unit Testing Strategies with .NET .
Read Blog PostIn this beginner-friendly guide, you’ll learn how to control a WS2812B (aka “NeoPixel”) LED light strip with a Raspberry Pi using .NET. We’ll enable SPI on the Pi, wire the strip correctly (including best practices like a level shifter and a series resistor), and write a small .NET 9 app using the Iot.Device.Bindings library to animate colors. We’ll also publish the app as a self-contained linux-arm64 binary so no .NET runtime is needed on the Pi.
If you go beyond hobby tinkering and aim for reliable, maintainable software, you need tests. Hardware projects are no exception. In fact, the closer you get to IO, timing, and device state, the more you benefit from having a fast feedback loop and repeatable verification.
Read Blog PostIn this beginner-friendly guide, you’ll learn how to control LEGO motors connected to a Raspberry Pi via the official Raspberry Pi Build HAT – using a simple, pure .NET application. We’ll use the Iot.Device.BuildHat NuGet package, which provides a friendly .NET API for the Build HAT. No Python required. We’ll also publish the app as a self-contained .NET 9 binary for linux-arm64 so you do not need to install .NET on the Raspberry Pi. This approach is easy to set up, reliable, and a great starting point for your own robotics projects.
When configuring path-based triggers or excludes in Azure DevOps pipelines, the pattern you use can have a significant impact on which files or folders will trigger a build. There are subtle but important differences between the patterns docs, docs/, docs/** and docs/**/*.
Static site generators like Hugo do not have a built-in mechanism to automatically publish content–such as blog posts–at a specific time. If you want a post to go live at a certain hour, you need to rebuild and redeploy your site at that moment. This means you have to trigger the build process yourself, which can be inconvenient or easy to forget.
Read Blog PostThe official Microsoft documentation on deploying Azure OpenAI models is generally helpful, but specific examples are often still missing, especially for new models such as gpt-4.1-mini and newer SKU types such as DataZoneStandard. Anyone who wants to provide a current model such as the gpt-4.1-mini programmatically is therefore quickly faced with unanswered questions.
Like many developers, my blogging journey started with WordPress. More than 20 years ago. It was convenient, widely supported, and quick to set up. But over time, the drawbacks began to pile up: security issues, constant updates, performance tuning, plugin juggling, costly – the overhead was real. I wanted something more streamlined, something that gave me control without stealing my time.
Read Blog PostSetting up a local Docker registry is a great way to manage and share container images in your development environment without relying on external services like Docker Hub. This guide walks you through setting up a private Docker registry on your machine using PowerShell on Windows.
Read Blog Post