Error wrapping in Go

Distinguishing between specific error values and types is easy in Go, thanks to the (relatively) new errors.Is and errors.As functions. Let’s talk about what they do, when and how to use them, and how to know which one is appropriate.

Standalone test scripts

Wouldn't it be nice if we could run test scripts directly from the command line? The standalone testscript tool does exactly that. Let’s see how to use it to create simple, self-contained issue repros.

Comparing Go error values

Usually what matters about an error is that it’s not nil, but what if we want to know whether it’s some specific error value? For example, in a test? Let’s look at some of the right and wrong ways to do that.

Testing errors in Go

How should we test errors in Go? And how does the need for this testing influence the way we construct, handle, and pass around errors within our Golang programs?

Tips for Time Lords

Being a Time Lord isn't about which planet you're born on, or whether you can regenerate. You don't even need a sonic screwdriver. All you need to do is think effectively, and do the right things, in the right way, at the right time. Here’s how.


An API client in Go

The internet is very big, and a vast ocean of network resources lies undiscovered before us. Let's dip a hook into that ocean now and see what we can catch with an API client in Go.

Scripting with Go

The Unix shell is pure wizardry. Why shouldn’t it be as easy to write systems programs in Go as it is in the shell? The script library is the secret spell-book that makes this possible.