James Jackson-South
banner
james-jackson-south.me
James Jackson-South
@james-jackson-south.me
Founder @sixlabors.com | 10x Microsoft MVP | Passionate C# developer | Fitness enthusiast | Always coding, always learning. #Tech #Coding #OpenSource
I'm on the final stretch of adding COLRv1 and SVG support to @sixlabors.com Fonts.

It's taken me a whole month of evenings to build out what I need.

Trust me when I say that this stuff requires a lot of thought and attention to detail to get right. 😵‍💫

#dotnet #oss
October 27, 2025 at 1:58 PM
Huzzah!
Left = COLRv1, Right = SVG

Both rendered from different tables in the same font.

@sixlabors.com Fonts v3 will support both!

#dotnet #oss
October 21, 2025 at 7:42 AM
I gave up on the public gym and bought my own.
October 15, 2025 at 6:28 AM
More fun building SVG + COLR v1 font support in ImageSharp.

Left: DrawText renders with the required brushes.

Right: glyph-path collection from TextBuilder → Fill; per-layer heuristics decide fill vs stroke (customizable).

#dotnet #oss
September 30, 2025 at 7:25 AM
10th Microsoft MVP Award in a row.

I must be doing something right.

#MVPBuzz
July 10, 2025 at 9:59 PM
Does anyone know what "Total Duration" here in @VisualStudio is supposed to be a measurement of as it's sure as hell not actual time?
June 2, 2025 at 10:31 AM
I have never been “triggered” by an image until now. The line breaking!!! The sheer horror!! ⚰️
April 28, 2025 at 11:16 AM
Finally took these guitars out of storage and put them up. It’s been years since I’ve played them (hence busted strings) but I fully intend to be shredding again properly by the end of the year.
April 20, 2025 at 3:17 AM
Three years later and I'm still a villain... 🙄
April 10, 2025 at 12:02 PM
Fuck this attitude. You work for a large fintech, just buy a license! #dotnet
April 8, 2025 at 11:37 PM
ImageSharp builds broken again by some random @github.com CI crappery.

This is becoming incredibly tedious.
April 7, 2025 at 11:55 AM
What an absolute scumbag.
April 3, 2025 at 1:21 PM
One for the Australian Tourist Board
March 31, 2025 at 11:24 AM
Amazing creatures what I saw in my garden today. The stick insect was around 8 inches long, the jungle huntsman around 5.
March 15, 2025 at 10:44 AM
My wife said I should trim my beard but I can’t bring myself to do so. Thoughts?
March 1, 2025 at 9:25 AM
They've targeted #dotnet #oss developers many times now for attempting to monetize years of effort while failing to see the irony that they themselves use advertising in their videos and justify it by saying videos take effort.

Nonsense like this meme should not be rewarded.
February 19, 2025 at 1:11 AM
I nerd sniped myself this week. One of these images is a 32-bit png the other an 8-bit gif.

Coming soon to @sixlabors.com ImageSharp. #dotnet
February 17, 2025 at 10:29 AM
How the fuck do I live here?
February 15, 2025 at 8:49 AM
Whoop! Finally updated the ImageSharp OctreeQuantizer to support alpha components. Here's before/after comparisons to the WuQuantizer. #dotnet #oss
February 14, 2025 at 3:03 AM
@benaadams.me I just updated VS which came with the 9.0.200 SDK and now I'm seeing more of the same.

It looks like some sort of overload resolution change in MemoryMarshal.Cast interpreting the array as a ReadOnlySpan
February 14, 2025 at 12:30 AM
It's so odd. There's only a single version of the method with no overloads. I can build the code and call it from tests with no issue.

However, when I try to do it in BMDN...

I wonder if there's a bug in the preview SDK?
February 11, 2025 at 11:19 PM
Get the fuck outta here MsBuild.

error CS0029: Cannot implicitly convert type 'System.ReadOnlySpan' to 'System.Span'

The code in the image is correct and works but for some reason MSBuild with BenchmarkDotnet will not build it with #dotnet 8
February 10, 2025 at 4:11 AM
I'm updating a site from #dotnet 6 to 8 and this is the only breaking change I've encountered. Not bad at all given the complexity of the site.

learn.microsoft.com/en-us/dotnet...
February 4, 2025 at 12:07 AM
Actually yes! Thank you!

Surprised by this one.
February 3, 2025 at 5:38 AM
Look at this rubbish, it can tell me the package is vulnerable and transitive but cannot tell me what non-transititve package is causing the issue.

There's a Patches O' Houlihan quote that would suit it well. #dotnet
February 3, 2025 at 4:24 AM