Press "Enter" to skip to content

Day: August 31, 2026

Dodging in ggplot2

Zenguo Zhang teaches a lesson:

In ggplot2, when displaying grouped data along categorical axes (such as grouped bar charts, boxplots, or error bars), horizontal dodging is used to prevent elements from overlapping at each categorical position. ggplot2 provides two primary dodging position functions: position_dodge() and position_dodge2().

Click through or else Piccolo is going to yell again.

Leave a Comment

Excel Semantic Table Add-In

Teo Lachev has written a plugin:

It dawned on me that while waiting on Microsoft, I could fill these gaps myself by creating an Excel add-in. That is how the Semantic Table add-in was born. It picks up right where default connected tables leave off.

Others have already explored this path, such as Jörg Schmidt with his PBIXL add-in. However, I’ve taken a different implementation approach focused on these core features:

Click through for the approach, as well as an important warning that this is a very early beta. I think the GitHub repo is this one, as Teo didn’t include the link in his post as of the time my post went live.

Leave a Comment

T-SQL Snapshot Backups and Secondary Replicas

Sean Gallardy looks at the intersection of two SQL Server capabilities:

I was recently asked about T-SQL Snapshot backups on secondary replicas, which I hadn’t looked at for many years as it’s kind of a niche item. I was definitely surprised to find little caveats here and there, thus you get this wonderful post.

If you’re unfamiliar with T-SQL Snapshot backups, it’s a way to flush and hold changes made by IO to a database (your Freeze and Thaw entries in the errorlog) so that a stable disk image can be created and then backed up at the storage or filesystem layer. This can be an extremely fast way to create snapshots of databases that are quite large (assuming you’ve set everything up correctly) even across storage arrays (assuming it supports other options, such as ODX).

Read on to see what you have to do to get both to play nice together.

Leave a Comment

Configurable Retry in Microsoft.Data.SqlClient

Jerry Nixon tries it again:

Based on telemetry, a startling number of applications haven’t read the memo and updated. So, let me take a moment to talk about an incredible feature of SqlClient we previewed in 2021: Configurable Retry Logic for SqlConnection and SqlCommand. This native implementation of resiliency bypassing the need for third-party libraries like Polly, providing incredible handling of transient availability right out of the box.

Click through to see how it works, particularly in light of Polly’s controversial licensing change.

Leave a Comment

Referencing Assets in Power BI Reports via OneLake URLs

Chris Webb wants to load some images:

Several years ago I wrote a very popular blog post about how to store images for your reports inside your Power BI semantic model. It solved the problem of how you could use display images (for example of products) inside your reports without making those images available via a public URL or personal OneDrive Embed Codes. I was very proud of how efficient the M code to do this was but the code was complicated and storing images as text inside a semantic model makes refreshes a lot slower and increases the size of your semantic model in memory, so it’s not ideal. The good news is that, if you have enabled Fabric in your tenant, the August 2026 release of Power BI brings a much better way of solving this problem: you can now store your images (and indeed other files) inside OneLake and reference them from there. This means you can store your images in a secure location, alongside all of your other data, and make them available for use in Power BI. What’s more this doesn’t just work for images, it also works for other types of files such as GeoJSON files used by map visuals.

Click through to see how.

Leave a Comment

The Technology is Not the Telos

Mark Wilkinson explains:

As technologists most of us have a deep curiosity and interest in technology and how it is applied in the world. The volume of tools we have at our disposal to solve both our personal and vocational problems can be overwhelming. But technology is just that, it’s a tool to solve a problem, it should never become the goal itself.

Click through for a well-thought-out take. Also, friggin’ Richard, always having to be different.

Leave a Comment