Skip to main content

Posts

Guid.CreateVersion7() is NOT a sequential guid for SQL Server

I think that is the clearest blog title I used in years. Why do I mention this? Let me explain... Some time ago we stumbled over a performance issue in our applications. The root cause was a fragmented index, caused by the usage of a standard guid instead of a sequential guid. While looking for the right fix, I had to revisit one of my own posts: Sequential GUIDs with .NET 9 . In that post I mentioned that you can use Guid.CreateVersion7() to create a sequential guid. That is technically correct, but it is NOTa solution for SQL Server. Why does a random guid hurt? A clustered index in SQL Server is a sorted B-tree. When the key is random, every insert lands on a random page. If that page is full, SQL Server has to split it, which leaves you with half-empty pages, a fragmented index and more I/O. A sequential key always appends at the end, so pages fill up and stay put. Why is a version 7 guid not sequential for SQL Server? A UUID version 7 (RFC 9562) starts with a 48-bit U...
Recent posts

GitHub Copilot auto mode: should you disable models?

An architect in one of our teams selected auto mode in GitHub Copilot and ended up on a high-cost model. Nothing was broken, auto did what it is designed to do. But it was the trigger for a broader discussion: Should we disable some (of the more expensive) models? What does auto actually do? Auto looks at every prompt and selects the model that is best suited for it. The choice is based on task complexity and model availability. Usage is charged based on the model auto selects, so a heavy reasoning model means a heavy bill. The models auto can choose from are limited by your plan and by policy. Organization owners can enable or disable a model under Settings > Copilot > Models . However, be aware that by default every model that becomes generally available is on by default for GitHub Copilot Business and Enterprise. If you want to approve every model yourself, disable the "Default availability for released models" policy. Disable a model here and auto will...

Hot Exit in Visual Studio

Hot Exit. It sounds like what you do when the fire alarm goes off. Or like Visual Studio leaving the room in a hurry. It's neither. Hot Exit means you can close Visual Studio with unsaved changes and find everything still there when you start it again. That solves a problem you probably know. You close Visual Studio at the end of the day with a few files half-edited, and it asks what to do with them. Save them and you end up with code that doesn't compile. Discard them and the work is gone. So you click Save All, tell yourself you'll fix it tomorrow, and hope you remember what you were doing. VS Code users stopped worrying about this a long time ago. Hot exit arrived in VS Code 1.8. Visual Studio finally has its own version. What is Hot Exit? When you close Visual Studio, Hot Exit stores the state of your session. The next time you start it, your open documents, edits and unsaved changes are restored, so you don't have to save anything manually. Hot Exit p...

A weekly stocktake for your skills

After my posts about automations, I got some questions about other examples where I use this feature. One I like to share is a weekly check that validates my current list of installed skills. Why do we need this? Skills are easy to add and easy to forget. Over time you collect skills that overlap, skills that point to tools that changed, and skills you no longer use. I wanted a recurring check that tells me how to cleanup my skills list. Starting from an existing skill I didn't start from scratch. The ECC repository contains a skill-stocktake skill for Claude Code. It's a /skill-stocktake slash command that audits the skills in ~/.claude/skills/ and the project-level .claude/skills/ , and it has two modes: Quick Scan: re-evaluates only the skills that changed since the last run. Full Stocktake: a complete review. Under the hood it uses shell scripts, a results.json cache, and subagents that evaluate the skills in batches of about 20. That's a ...

Sharing your VS Code automations

Last week I talked about Continuous AI and how the VSCode Automation feature is one example of this vision My blog posts were just written when a new VS Code update landed on my machine with some Automation improvements included. First the automation feature is no longer in preview but enabled by default. But the feature I want to talk about is that you can start sharing automations; either by shipping automation templates through an agent plugin, or by exporting and importing automations as a file. Let's look at both. What gets shared? An automation is a saved prompt, a session configuration and a schedule. Not all of that travels well between machines, so VS Code only shares the portable part: Name and prompt Schedule (manual, hourly, daily or weekly) File format version and an identifier What is not shared: workspace, provider, model, permissions, enabled state and run history. The person who receives the automation makes those choices locally. Thi...

Continuous AI lands in VS Code too

Yesterday I wrote about Automations in the GitHub Copilot app as a hands-on example of Continuous AI — recurring, event-triggered AI tasks running in the background instead of you kicking them off by hand every time. The inkt is not evey dry, or the same concept landed in the latest VSCode release: the VS Code Agents window now has its own Automations feature (still in preview at the moment of writing this post). Let's take it for a spin. Turning it on Automations live in the Agents window sidebar. Two prerequisites: Have the Agents window set up with an available agent. Enable the chat.automations.enabled setting. Creating one In the Agents window sidebar, select Automations , then Create Automation — or start from one of the templates under Start with a template , which pre-fills a prompt and schedule for you. Give it a Name and write the Prompt . Be specific about scope and expected output. Straight from the docs, a solid example: Review all...

Continuous AI, one automation at a time

In my experience as a software architect, most of what makes CI/CD valuable isn't the "integration" or the "deployment" part. It's the "continuous" part. Things happen in the background, on their own schedule, without someone needing to remember to trigger them. GitHub Next has been pushing a term for what happens when you apply that same idea to AI: Continuous AI , the use of automated AI to support software collaboration on any platform. Not a single tool, not something GitHub owns, just a category. The claim is that this will become as standard a part of software development as CI/CD is today. What Continuous AI actually covers The GitHub Next team lists a handful of recurring patterns: Continuous Triage (labeling and responding to issues), Continuous Documentation (keeping docs in sync with code), Continuous Fault Analysis (explaining failed CI runs), Continuous Summarization, Continuous Code Improvement. Different tasks, same shape. Th...