What’s New in Go 1.20, Part I: Language Changes

Update: Want to listen to a podcast about Go 1.20 instead of reading a blog post? Check out Go Time episode 267. Well, it’s that time once again. It’s time for a new release of the Go programming language. Go 1.18 in Q1 of 2022 was a major release that featured the long await...

Listing secrets stored in CircleCI

If you've not seen, CircleCI yesterday announced that they had recently had a breach. As part of this, teams are recommended to rotate all of their secrets, but to do that, you need to easily find out what secrets are in place. I've put together a Go CLI project on on GitLab.com...

Ultimate Go: Advanced Engineering Episode 12

Introduction In episode 11, Bill highlighted the issue of identity verification and provided a solution to this problem. The solution proposed was to cryptographically sign a transaction to verify its authenticity. Bill chose to implement a solution making use of the Elliptic Cur...

Ultimate Go: Advanced Engineering Episode 10

Introduction In episode 9, Bill introduced the idea of the genesis record and its role in his blockchain. As a recap, the genesis record will be used to customize the settings of his blockchain. The approach Bill takes here is similar to how Ethereum operates because he is storin...

Ultimate Go: Advanced Engineering Episode 11

Introduction In episode 10, Bill dove into the technical implementation of his genesis record and defined a custom Go type representing the record. While doing so, he provided an in-depth look at the reasoning behind the fields he included.. After declaring this type, Bill wrote...

Some notes to myself on 'git log -G' (and sort of on -S)

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.

More use of Rust is inevitable in open source software

Announcing GoReleaser v1.14 — the Christmas release

Another month, another release! In fact, the last release of the year. This one in particular marks the 6 years anniversary of GoReleaser, and is packed with new features and improvements. GoReleaser Santa Let’s see what’s new: Highlights GoReleaser P...

Detecting missing or bad Go modules and module versions