<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>SShadowS — Here, it&apos;s always how — not why.</title><description>Developer tools and integrations for Business Central</description><link>https://sshadows.dk/</link><item><title>One Parser, Six Tools</title><link>https://sshadows.dk/blog/one-parser-six-tools/</link><guid isPermaLink="true">https://sshadows.dk/blog/one-parser-six-tools/</guid><description>tree-sitter-al already powers al-perf and the AL Language Server integration. Here are six more tools I&apos;m building on top of it, from structural code search to GitHub code navigation.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate></item><item><title>I Rewrote My Tree-Sitter Grammar From Scratch. It Got 10x Smaller.</title><link>https://sshadows.dk/blog/tree-sitter-al-v2-rewrite/</link><guid isPermaLink="true">https://sshadows.dk/blog/tree-sitter-al-v2-rewrite/</guid><description>The AL parser grammar hit a wall at 106 MB. The fix wasn&apos;t incremental. I rebuilt it from zero with a different architecture, and the result parses more files with 3x fewer symbols in 3x less code.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>AL Perf v2 Drops Friday. Here&apos;s What Changed.</title><link>https://sshadows.dk/blog/al-perf-v2-deep-analysis/</link><guid isPermaLink="true">https://sshadows.dk/blog/al-perf-v2-deep-analysis/</guid><description>Version 2 sends the call tree, source code, SQL queries, and code structure to the AI. The result: findings that reference specific methods, call counts, and time percentages. Here&apos;s what changed and how well it works.</description><pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate></item><item><title>AL LSP for Agents: Now in VS Code, and a New Home</title><link>https://sshadows.dk/blog/al-lsp-for-agents/</link><guid isPermaLink="true">https://sshadows.dk/blog/al-lsp-for-agents/</guid><description>The AL Language Server wrapper now works with GitHub Copilot in VS Code, not just Claude Code. Plus: enriched hover with field and action properties, configurable code quality diagnostics, and a repo rename.</description><pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate></item><item><title>One-Click Performance Analysis Inside Business Central</title><link>https://sshadows.dk/blog/one-click-performance-analysis-bc/</link><guid isPermaLink="true">https://sshadows.dk/blog/one-click-performance-analysis-bc/</guid><description>A BC extension that adds an &apos;Analyze with AL Perf&apos; button to the Performance Profiler page. One click gives you hotspots, anti-pattern detection, and AI-powered insights without leaving Business Central.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate></item><item><title>CentralGauge Benchmark Update: Why the Numbers Changed</title><link>https://sshadows.dk/blog/centralgauge-benchmark-update/</link><guid isPermaLink="true">https://sshadows.dk/blog/centralgauge-benchmark-update/</guid><description>A transparency report on significant fixes to the CentralGauge AL code benchmark infrastructure, including bugs in code extraction, broken tasks, and vague specs, along with updated LLM rankings.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Business Central on Linux? Here, hold my beer!</title><link>https://sshadows.dk/blog/business-central-on-linux/</link><guid isPermaLink="true">https://sshadows.dk/blog/business-central-on-linux/</guid><description>The full story of getting Microsoft Dynamics 365 Business Central running on Linux using Wine, including reverse engineering Windows APIs, fixing HTTP.sys, and achieving 65% faster CI builds compared to Windows.</description><pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How I Benchmark LLMs on AL Code</title><link>https://sshadows.dk/blog/benchmark-llms-al-code/</link><guid isPermaLink="true">https://sshadows.dk/blog/benchmark-llms-al-code/</guid><description>An in-depth look at CentralGauge, an open source benchmark for evaluating LLM performance on AL code generation for Business Central, covering task design, scoring methodology, and cross-model comparison results.</description><pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Native AL Language Server Support in Claude Code</title><link>https://sshadows.dk/blog/al-language-server-claude-code/</link><guid isPermaLink="true">https://sshadows.dk/blog/al-language-server-claude-code/</guid><description>Announcing native AL Language Server Protocol integration for Claude Code, giving the AI assistant real code intelligence for Business Central development including symbol navigation, references, and call hierarchy.</description><pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Exploring AI-Assisted Development: My Journey with Aider, ChatGPT, and Claude</title><link>https://sshadows.dk/blog/ai-assisted-development-journey/</link><guid isPermaLink="true">https://sshadows.dk/blog/ai-assisted-development-journey/</guid><description>Reflections on using AI coding assistants like Aider, ChatGPT, and Claude for Business Central AL development, covering the benefits, challenges, and lessons learned.</description><pubDate>Tue, 30 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Flame graphs of BC call stacks</title><link>https://sshadows.dk/blog/flame-graphs-bc-call-stacks/</link><guid isPermaLink="true">https://sshadows.dk/blog/flame-graphs-bc-call-stacks/</guid><description>Introducing a free web service that converts Business Central call stacks into SVG flame graphs for performance analysis.</description><pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Lazy replication of tables with NodeJS, Custom APIs and Webhooks in Business Central (Part 1)</title><link>https://sshadows.dk/blog/lazy-replication-nodejs-webhooks/</link><guid isPermaLink="true">https://sshadows.dk/blog/lazy-replication-nodejs-webhooks/</guid><description>Part 1 of building a lazy table replication system for Business Central using Custom API pages, webhooks, and NodeJS to replicate data to external databases like MySQL or MongoDB.</description><pubDate>Wed, 26 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Why I had to fix NavTechDays</title><link>https://sshadows.dk/blog/fix-navtechdays/</link><guid isPermaLink="true">https://sshadows.dk/blog/fix-navtechdays/</guid><description>The tale of scraping the NavTechDays attendee list from Business Central using HTML Agility Pack, fixing broken HTML with an Azure Function, and visualising the results in Power BI.</description><pubDate>Tue, 20 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Custom DotNet assemblies in AL</title><link>https://sshadows.dk/blog/custom-dotnet-assemblies-al/</link><guid isPermaLink="true">https://sshadows.dk/blog/custom-dotnet-assemblies-al/</guid><description>A quick guide on using custom .NET assemblies in AL code for Business Central, based on converting an MQTT client example from C/AL using txt2al.</description><pubDate>Sun, 28 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Pushbullet + C/AL + JSON Buffer = Easy notifications on multiple platforms</title><link>https://sshadows.dk/blog/pushbullet-cal-json/</link><guid isPermaLink="true">https://sshadows.dk/blog/pushbullet-cal-json/</guid><description>Demonstrates sending cross-platform push notifications and SMS from Dynamics NAV using Pushbullet&apos;s API, JSON Buffer, and HTTP Web Request Management in C/AL.</description><pubDate>Mon, 02 Jul 2018 00:00:00 GMT</pubDate></item><item><title>How to begin using .Net in C/AL?</title><link>https://sshadows.dk/blog/dotnet-in-cal/</link><guid isPermaLink="true">https://sshadows.dk/blog/dotnet-in-cal/</guid><description>A step-by-step guide to using NuGet .NET packages in Dynamics NAV C/AL, demonstrated by generating QR codes for contacts using the QRCoder library.</description><pubDate>Wed, 06 Jun 2018 00:00:00 GMT</pubDate></item><item><title>NAV as a MQTT client</title><link>https://sshadows.dk/blog/nav-as-a-mqtt-client/</link><guid isPermaLink="true">https://sshadows.dk/blog/nav-as-a-mqtt-client/</guid><description>How to use Dynamics NAV as an MQTT client using a .NET NuGet package to subscribe to IoT sensor topics and process incoming messages in C/AL.</description><pubDate>Mon, 04 Jun 2018 00:00:00 GMT</pubDate></item></channel></rss>