Go 1.21 will (probably) download newer toolchains on demand by default

Go 1.21 Release Candidate

Go 1.21 RC brings language improvements, new standard library packages, PGO GA, backward and forward compatibility in the toolchain and faster builds.

Trick or treap! Of randomized search trees, intervals, and IP address searches.

Summary goes here

Failing to draw lines between 'script' and 'program'

Using `go.mod` versions to `go install` a binary

In my post Managing your Go tool versions with go.mod and a tools.go I talked about how to track tool dependencies in a tools.go to more easily run your tools without a make setup step or similar. However in the performance section I noted that there can be a slight performance h...

Checking the migration status with `golang-migrate`

If you're using golang-migrate to perform your database migrations, you may wonder how to check what the current state of your migrations is. I recently found myself doing the same, but finding an absence of anything explicitly documenting this, so thought I'd write it as a form...

One temptation of shell scripting is reusing other people's code

Designing Pythonic library APIs

Principles I've found useful for designing good Python library APIs, including structure, naming, error handling, and type annotations.

A retrospective on my thesis about language niches, fifteen years later

Writing a Go fuzz target

Let’s continue our exploration of fuzz testing in Go with a look at how to write a fuzz target for a (nearly) realistic function. This time we’ll try to detect a common kind of bug involving a confusion between runes and bytes.