Evidence so far suggests that it’s easier to discover previously unknown proofs in math and make new scientific discoveries than it is to make UI tests in Xcode pass reliably
I haven't found a good answer to this yet. When exposing a seed for a PCG RNG, is it better to accept both the state seed and stream value or accept one seed and derive the other? I'm using it for a finite Zipf generator.
A great take. Why should we care? Why are we here? Many will think AI does a better job at this, but chances are you haven't told it why.
I don’t care whether an agent wrote your code. But please please please write the readme yourself. At least the first part—the “what does it do and why do I care” part.
Another great post by @rednafi.com for go lang devs. This time all about modernizers and `go fix` CLI tool. "Modernizers & go fix" rednafi.com/go/gofix/ #golang
Modernizers & go fix
Go 1.26 rebuilt go fix on the analysis framework. It modernizes your code and respects the Go version your module declares. The post covers the modernizers, the bigger x/tools suite, and what //go:fix inline can and can't migrate.
rednafi.com
Co-worker asked what programming languages I learned in high school. I said Borland Delphi and they asked if I went to high school in the 90s. A fair but devastating burn.
Sorry for the delay, here is the link. docs.google.com/presentation...
2026-06-16 The Heap Profile is a Lie (GopherConEU)
The heap profile is a lie* Felix Geisendörfer, Datadog Hello, and welcome to my presentation: The heap profile is a lie. My name is Felix Geisendörfer … 1 * Truthful, but not burdened by the whole tru...
docs.google.com
used this for the first time today and it rocks. incredibly powerful go.dev/blog/synctest
Testing concurrent code with testing/synctest - The Go Programming Language
Go 1.24 contains an experimental package to aid in testing concurrent code.
go.dev
Enjoyed my post being discussed on Hacker News. Consensus on the principle, then turned into a fight over whether Go's type system should have optional types. Also an opinion that null dereferences are rare and that complex type systems freeze semantics too early news.ycombinator.com/item?id=4858...
Most nil checks I see in Go aren't defensive programming. They're a sign that the code lost track of what can and cannot be nil. A nil check is good when it enforces a real boundary. It's suspicious when it silently handles a state your program claims is impossible konradreiche.com/blog/excessi...
Excessive nil pointer checks in Go
Let’s talk about nil pointer checks in Go. You want to prevent panics in production, but that doesn’t start with a deferred recover. It starts with defensive programming. Check your inputs, check your...
konradreiche.com
Google Maps the moment you start directions: "There's a 20 minute delay, but you're still on the fastest route." Nothing you can do about it. Just thought you should know.
I got to meet Steve Yegge in Montreal. Super nice guy and we had a short but interesting conversation. TL;DR We need to recognize developers are writing code even when a tool is performing the work. Engineering means the developer steers the model, not the other way around.
i wrote a post about the growing divide between AI skeptics and AI enthusiasts. wins and costs are both real, but too often fall on different groups of people. when you're only experiencing half the story, it's too easy to write each other off. charitydotwtf.substack.com/p/ai-enthusi...
AI enthusiasts are in a race against time, AI skeptics are in a race against entropy
Both sides are grappling with a real existential threat, and both sides feel like they are screaming into the void. Here's how to close the gap and get everyone pulling in the same direction.
charitydotwtf.substack.com
Sway 1.12 is out, and we're getting showered in features: HDR10 output, individual window capture, a friendlier approach to NVIDIA GPUs, and new Wayland protocol support tying together color management, workspaces, and more github.com/swaywm/sway/...
Releases · swaywm/sway
i3-compatible Wayland compositor. Contribute to swaywm/sway development by creating an account on GitHub.
github.com
I just published a proposal for a new RSS profile type for Go. It aims to solve the issue that the heap profile typically shows < 50% of process RSS, which is very confusing. It should also help to quickly identify when memory usage is dominated by cgo. github.com/golang/go/is...
proposal: runtime/pprof: add a rss profile type · Issue #79179 · golang/go
This is a proposal to introduce a new "rss" profile type to runtime/pprof to provide Go users with a holistic breakdown of their program's memory usage. Problem Statement As part of incident respon...
github.com
We need to talk about excessive nil pointer checks in Go. Writing code that's safe and prevents panics is excellent, but when we reach the point where no pointer can be trusted, we've dug ourselves into a hole.
It's only a discussion right now but opaque + sum types = efficient oneofs github.com/golang/go/is...
proposal: sum types as a non-interface union type · Issue #76920 · golang/go
This is an issue to discuss yet another form of sum type to Go. This is not a full proposal, and not a language change that I expect will be adopted in the near future. I am filing this issue as a ...
github.com
Interesting finding from benchmarks, protobuf's Go opaque API was a win for elementary fields, but the gains fell off once those fields were wrapped in oneof.
What's new in gopls 22: go.dev/gopls/release/v0.22.0 Please try it out: $ go install golang.org/x/tools/gopls@latest
Gopls release v0.22.0 (May 2026) - The Go Programming Language
go.dev
Ideally, middleware execution order shouldn't matter, but consider caching, error wrapping, and concurrency limiting. go-redis changed: 2020 FIFO to LIFO: github.com/redis/go-red... 2023 LIFO to FIFO: github.com/redis/go-red... The lesson: in lack of order-invariance, have a test to check for it.
Quality-of-life improvement: adding a test helper package that lets you construct context variants in one line, without anonymous functions in table-driven tests: ctxtest.New(t, ctxtest.WithCanceled(true)) The kind of package you create after wishing it existed for the fifth time.
I don't always make open source contributions, but when I do, it feels like this.
One of my favorite Go proverbs: write code, don't design types.
I find it increasingly judgmental to state that something is an anti-pattern without additional context. It moves the conversation to: you're obviously doing it wrong. I think we can do a lot better.
Before concluding that the fix for issues seen with agentic programming is design by contract, or focusing on writing clear specs that can be thrown over the wall, it is worth revisiting the history of the waterfall model.
The longer you maintain a large Go codebase with lots of contributors, the more appealing gofumpt gets. Fewer choices, fewer style nit comments, less time wasted.
overdue for a gofumpt release, so I took the chance to close a bunch of issues too! #golang