thepudds
thepudds.bsky.social
thepudds
@thepudds.bsky.social
Go contributor.

Posts tend to be about #golang, performance, fuzzing, and Go Modules. He/him.

https://github.com/thepudds
Reposted by thepudds
“Go’s Sweet 16” by Austin Clements, for the Go team — https://go.dev/blog/16years

#golang
November 14, 2025 at 10:30 PM
Reposted by thepudds
I'm proud to officially announce CUE Labs!

I co-founded CUE Labs with @myitcv.io to build a Configuration Control Plane, solving config chaos with CUE. Our work also provides the stewardship for the @cuelang.org open source project.

Read our launch post: cue.dev/blog/announc...
A World Without Configuration Chaos: The Configuration Control Plane
Imagine a world where you can answer, with absolute confidence, the critical question: “What is the full impact of this change?” A world where configuration isn’t a source of fear, but a source of rel...
cue.dev
October 30, 2025 at 11:41 AM
Reposted by thepudds
So excited to finally share what we've been building at CUE Labs!

Proud to be on this mission with @mpvl.io, @myitcv.io, @rog.bsky.social, @hylomorphism.bsky.social, and @dominikdm.bsky.social.
A World Without Configuration Chaos: The Configuration Control Plane
Imagine a world where you can answer, with absolute confidence, the critical question: “What is the full impact of this change?” A world where configuration isn’t a source of fear, but a source of rel...
cue.dev
October 30, 2025 at 11:50 AM
Reposted by thepudds
For some added fun, also see go.dev/cl/715362, wherein I discover that VPCOMPRESSQ is horrifically slow on AMD Zen 4, but only with a memory destination.

And thanks to @lemire.bsky.social for writing about this, which made this much faster to track down!
Gerrit Code Review
go.dev
October 29, 2025 at 7:20 PM
Reposted by thepudds
If you have an interest in understanding garbage collection better, or in how Go's new GC works under-the-hood, I highly recommend reading @michael.express's thorough guide through Go's current and Green Tea GC.
“The Green Tea Garbage Collector” by Michael Knyszek and Austin Clements — https://go.dev/blog/greenteagc

#golang
October 29, 2025 at 7:20 PM
Reposted by thepudds
I am using it to test our Go modules against the latest versions of their dependencies (with "go get -u") on a schedule, to be notified early of compatibility issues, but without the supply chain attack risk or the Dependabot churn.
October 24, 2025 at 12:59 PM
Reposted by thepudds
Resurrecting an old post about how I write HTTP clients in Go since I am doing this again for the 89432894023 time.

blainsmith.com/articles/how...

#GoLang #HTTP
How I Write HTTP Clients - Blain Smith
blainsmith.com
October 23, 2025 at 3:51 PM
Reposted by thepudds
I see a future in jj
Blog post: I see a future in jj by Steve Klabnik
steveklabnik.com
October 22, 2025 at 5:22 PM
Reposted by thepudds
I really do like Golang being "batteries included".

It took only a few hours to write a moderately featureful TLS-terminating reverse HTTP proxy that used nothing outside the built-in libraries.

The only compromise was using JSON for the configuration file. I would have preferred textproto…
October 21, 2025 at 8:42 AM
Reposted by thepudds
Oh my god it actually worked.

This might be my funniest—but totally serious—cryptography engineering contribution.
October 17, 2025 at 10:53 PM
@simonwillison.net with some commentary on the new CrossOriginProtection CSRF protection in the http package for #golang 1.25...

🚀
Does widespread browser implementation of the Sec-Fetch-Site HTTP header mean we can protect against CSRF attacks without needing those hidden form tokens? It looks like the answer may be a cautious "yes"! simonwillison.net/2025/Oct/15/...
A modern approach to preventing CSRF in Go
Alex Edwards writes about the new http.CrossOriginProtection middleware that was added to the Go standard library in version 1.25 in August and asks: Have we finally reached the point where …
simonwillison.net
October 15, 2025 at 1:54 PM
@andreabarisani.bsky.social is the author of the new-ish proposal for bare metal support for Go, which seems to be gathering some momentum AFAICT.

Andrea continues to share some fairly exciting progress... 🚀

( #golang proposal: github.com/golang/go/is... )
First ever boot of a TamaGo unikernel in the cloud, here on Google Cloud Compute Engine, automatically deployed from remote userspace!

Looking forward to polish and publish this.
October 1, 2025 at 2:43 PM
Reposted by thepudds
Fun little Go compiler CL merged today: go.dev/cl/706655

Uninlined generic functions have a "dict" arg, since Go generics are neither erased nor monomorphized, but instead instantiated for each "GC shape" (e.g. T=*int and T=*float64 get the same code, but T=int32 and T=int64 do not).
September 30, 2025 at 7:42 PM
Reposted by thepudds
OK, I love this. tl;dr using knowledge of your allocator, speed up linked list traversal by adding a branch that guesses where the next linked list element is and pre-populates the "next" variable to eliminate stalls if the allocations are well-behaved.
September 28, 2025 at 1:31 AM
Reposted by thepudds
If you haven't been keeping up, Go 1.21 reduced overhead from ~10% to ~1%. 1.22 overhauled the format to improve reliability and add information. 1.25 has a built in trace flight recorder. And we have an active proposal (go.dev/issue/62627) for a trace parsing package to enable arbitrary tooling.
proposal: x/debug/trace: add package for parsing execution traces · Issue #62627 · golang/go
As part of #60773 (tracking issue #57175) I've been working on a new parser for the execution tracer, and to save work down the line I've also been trying to come up with a nice API that would work...
go.dev
September 26, 2025 at 7:32 PM
Reposted by thepudds
Go's execution tracer is a woefully underutilized tool. It contains tons of information about what is happening at any given moment that you won't get with a profile.

In addition to showing flight recording capabilities, this post provides a nice example of how to use tracing to diagnose a problem.
golang.org Go @golang.org · Sep 26
“Flight Recorder in Go 1.25” by Carlos Amedee and Michael Knyszek — https://go.dev/blog/flight-recorder

#golang
September 26, 2025 at 7:32 PM
Reposted by thepudds
I recently spoke at GopherCon UK 2025 about the hidden power of #Go’s `-toolexec` flag. How it can turn every `go build` into a programmable pipeline for things like error-handling enforcement and observability hooks. Here’s the recording:
Unleashing the Go Toolchain - Kemal Akkoyun
The -toolexec flag hides a super-power in the Go toolchain: it lets you turn every go build into a programmable pipeline. In this session we’ll reveal how a simple wrapper command can inject custom…
youtu.be
September 23, 2025 at 12:10 PM
Reposted by thepudds
My talk from #gopherconuk is up on YouTube!
My take on how map is implemented in Go, and what changed from Go 1.23 to 1.24 and 1.25.

youtu.be/M05t7Q6LbFs

* Talk contains no AI, but does contain pictures of cats.
Swiss Maps in Go - Bryan Boreham
YouTube video by GopherCon UK
youtu.be
September 18, 2025 at 1:13 PM
Reposted by thepudds
Reposted by thepudds
Screw PXE, this means the entire Go TLS and networking stack is available under UEFI.

In seconds I added DHCP and an SSH server to remotely manage my pre-boot environments.

I see much potential.
Adding networking to go-boot through UEFI Simple Network Protocol.

It took 77 LOCs of pure Go to add the UEFI driver and bridge it to gVisor stack.
September 15, 2025 at 1:52 PM
Reposted by thepudds
This talk is like the solstice, it appears twice a year :)
September 9, 2025 at 9:41 AM
Reposted by thepudds
I've been eager to get more context and commentary on those slides. Fortunately, @dave.cheney.net gave the talk again at GopherCon Europe 2025, and the recording is now live! www.youtube.com/watch?v=RZe8...
September 3, 2025 at 2:54 PM
Reposted by thepudds
My GopherCon EU talk about Swiss Table maps is now available!

youtu.be/aqtIM5AK9t4
Faster Go Maps With Swiss Tables - Michael Pratt | GopherCon EU 2025
YouTube video by GopherCon Europe
youtu.be
September 1, 2025 at 1:39 PM