Sign in

iiinova is part of the Atmosphere — an open, public network where you own your identity.

James Jackson-South

@james-jackson-south.me
629 followers 268 following 499 posts

Founder @sixlabors.com | 10x Microsoft MVP | Passionate C# developer | Fitness enthusiast | Always coding, always learning. #Tech #Coding #OpenSource

PostsRepliesMedia
James Jackson-South @james-jackson-south.me · 08/05/2026
Real-time text flow using @sixlabors.com ImageSharp Drawing and Fonts. Fully Unicode v17 compliant. Rendered in WinForms via the new WebGPU backend Coming soon! #dotnet #oss
062 6
James Jackson-South @james-jackson-south.me · 07/03/2026
What's this? ImageSharp rendering on the GPU at ~120FPS #dotnet #oss
0110 11
James Jackson-South @james-jackson-south.me · 23/02/2026
Running some benchmarks comparing clearing a 1280x200px canvas and drawing repeated glyphs using the new CPU backend and experimental WebGPU backend I'm working on with ImageSharp Looking good so far! #dotnet #oss
140 4
James Jackson-South @james-jackson-south.me · 27/10/2025
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
020 2
James Jackson-South @james-jackson-south.me · 21/10/2025
Huzzah! Left = COLRv1, Right = SVG Both rendered from different tables in the same font. @sixlabors.com Fonts v3 will support both! #dotnet #oss
1120 12
James Jackson-South @james-jackson-south.me · 15/10/2025
I gave up on the public gym and bought my own.
120 2
James Jackson-South @james-jackson-south.me · 30/09/2025
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
160 6
James Jackson-South @james-jackson-south.me · 10/07/2025
10th Microsoft MVP Award in a row. I must be doing something right. #MVPBuzz
0200 20
James Jackson-South @james-jackson-south.me · 02/06/2025
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?
200 2
James Jackson-South @james-jackson-south.me · 28/04/2025
I have never been “triggered” by an image until now. The line breaking!!! The sheer horror!! ⚰️
000 0
James Jackson-South @james-jackson-south.me · 20/04/2025
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.
240 4
James Jackson-South @james-jackson-south.me · 10/04/2025
Three years later and I'm still a villain... 🙄
120 2
James Jackson-South @james-jackson-south.me · 09/04/2025
Fuck this attitude. You work for a large fintech, just buy a license! #dotnet
370 7
James Jackson-South @james-jackson-south.me · 07/04/2025
ImageSharp builds broken again by some random @github.com CI crappery. This is becoming incredibly tedious.
020 2
James Jackson-South @james-jackson-south.me · 03/04/2025
What an absolute scumbag.
380 8
James Jackson-South @james-jackson-south.me · 31/03/2025
One for the Australian Tourist Board
120 2
James Jackson-South @james-jackson-south.me · 15/03/2025
Amazing creatures what I saw in my garden today. The stick insect was around 8 inches long, the jungle huntsman around 5.
100 1
James Jackson-South @james-jackson-south.me · 01/03/2025
My wife said I should trim my beard but I can’t bring myself to do so. Thoughts?
Sasquatch
510 5
James Jackson-South @james-jackson-south.me · 19/02/2025
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.
130 3
James Jackson-South @james-jackson-south.me · 17/02/2025
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
120 2
James Jackson-South @james-jackson-south.me · 15/02/2025
How the fuck do I live here?
120 2
James Jackson-South @james-jackson-south.me · 14/02/2025
Whoop! Finally updated the ImageSharp OctreeQuantizer to support alpha components. Here's before/after comparisons to the WuQuantizer. #dotnet #oss
130 3
James Jackson-South @james-jackson-south.me · 14/02/2025
@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<byte>
120 2
James Jackson-South @james-jackson-south.me · 11/02/2025
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?
000 0
James Jackson-South @james-jackson-south.me · 10/02/2025
Get the fuck outta here MsBuild. error CS0029: Cannot implicitly convert type 'System.ReadOnlySpan<byte>' to 'System.Span<byte>' The code in the image is correct and works but for some reason MSBuild with BenchmarkDotnet will not build it with #dotnet 8
310 3
James Jackson-South @james-jackson-south.me · 04/02/2025
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...
030 3
James Jackson-South @james-jackson-south.me · 03/02/2025
Actually yes! Thank you! Surprised by this one.
440 4
James Jackson-South @james-jackson-south.me · 03/02/2025
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
VisualStudio NuGet package manager being worse than useless.
110 1
James Jackson-South @james-jackson-south.me · 30/01/2025
Weird things happening with CI on GitHub. This code, which has been fine for years is suddenly throwing errors. If you change it to not use nameof the damn IDE suggests you use it! #dotnet
120 2
James Jackson-South @james-jackson-south.me · 28/01/2025
I've marked where i think the last break should have taken place in red. There's a space there and no natural break where the example breaks so it should have made the break at the space IMO. I've attached my version. Am I bonkers? #dotnet #oss
100 1
James Jackson-South @james-jackson-south.me · 28/01/2025
I've been staring at this line breaking example on MDN for 20 minutes now wondering how it can possibly match the spec? By my understanding break-word should look for standard breaking opportunities and use them first, only breaking at the wrapping length when exceeded following the length.
100 1
James Jackson-South @james-jackson-south.me · 25/01/2025
How about the Sunshine Coast?
100 1
James Jackson-South @james-jackson-south.me · 24/01/2025
I swear I carried this big bastard out the other day!
230 3
James Jackson-South @james-jackson-south.me · 22/01/2025
I’m hoping I can feed one to the other.
110 1
James Jackson-South @james-jackson-south.me · 21/01/2025
At some point I am going to have to manually check my list of sweep events against this JavaScript version to determine at which point we diverge. This is likely going to kill me. Please avenge my death by burning everything JavaScript based to the ground.
140 4
James Jackson-South @james-jackson-south.me · 18/01/2025
Finally starting to feel like myself again after all my injuries. Did a workout at a hotel gym just there and was smashing the weights. 😀💪
A picture of me posing like a proper gym wanker. Made sure it was empty first though!!
190 9
James Jackson-South @james-jackson-south.me · 16/01/2025
Wanna see a picture of a comet? There’s a few planets in the mix also.
020 2
James Jackson-South @james-jackson-south.me · 15/01/2025
FML
010 1
James Jackson-South @james-jackson-south.me · 14/01/2025
The paper says it's much faster than Vatti algorithm which is what Clipper 2 is based on so I'm hopeful. I know the JS world uses a port of the previous (2009 paper) for some pretty major applications which is also promising.
110 1
James Jackson-South @james-jackson-south.me · 12/01/2025
Really cool clouds in the sky tonight 😍
030 3
James Jackson-South @james-jackson-south.me · 10/01/2025
Here's a question for you. What is the value of "i" on indexing "FooCollection" when "condition" is "true" on the previous iteration? I spent a few hours today debugging some line breaking code due to a bug I'd missed. Annoyed as hell when I realised my mistake! #dotnet
for (int i = 0; i < 100; i++)
{
    Foo item = FooCollection[i];

    if (condition)
    {
        i = 0;
    }
}
400 4
James Jackson-South @james-jackson-south.me · 10/01/2025
Why are there super dodgy ads by Google in the Windows 11 weather app?
000 0
James Jackson-South @james-jackson-south.me · 09/01/2025
MS Teams (web) just greeted me with this. Microsoft needs to look at its hiring policy. This is absolutely shocking.
210 2
James Jackson-South @james-jackson-south.me · 08/01/2025
See that wonky 'Q'. I've been trying to figure out what caused that for years. I thought I'd messed up the maths but could find a fault. Turned out it was a bad value passed by the Fonts library. #dotnet #oss
Demonstration of a bug fix for ImageSharp.Drawing which correctly aligns vertical text drawn along a path.
110 1
James Jackson-South @james-jackson-south.me · 08/01/2025
What the actual fuck is this? I’m on a Mac you clowns!
200 2
James Jackson-South @james-jackson-south.me · 07/01/2025
This is concerning. Looks like I'm hitting a bug fixed two years ago. github.com/dotnet/linke...
000 0
James Jackson-South @james-jackson-south.me · 07/01/2025
I'm testing all sorts of stuff, RTL, LTR, Mixed layout, Vertical, Horizonal, Justification, Wrapping. It's all there! Here's Horizontal, LTR, inter-character justified, Latin text.
100 1
James Jackson-South @james-jackson-south.me · 07/01/2025
Adding some much-needed visual output tests for @sixlabors.com Fonts following a complete rewrite of the line breaking algorithm. Everything seems to be working perfectly now matching browser output. #dotnet #oss
111 1
James Jackson-South @james-jackson-south.me · 18/12/2024
I am so proud of this snippet of code. It's a rewrite of the @sixlabors.com Fonts line-breaking algorithm that uses positions determined by a UAX 14 conforming line-break identifier to do the breaking. It's taken me a few hours to write but it feels super logical to me to read now. #dotnet #oss
.NET code from the Six Labors Fonts library that splits glyphs based upon the Unicode line breaking algorithm and specific rules.
2110 11
James Jackson-South @james-jackson-south.me · 13/12/2024
THIS TOOK ME SO FREAKING LONG!! Lots of refactoring and Unicode specification study. Photoshop on the left @sixlabors.com Fonts on the right. My spacing more closely matches browsers than Photoshop and I'm happy with the alignment. #dotnet #oss
A side by side rendering comparison of a complex mix of Japanese, English, and Chinese text arranged vertically with appropriate rotation. Photoshop on the left, Six Labors Fonts on the right.
1120 12