Recreational Programming with Serverless

Containers Under The Hood

Futures in Go, no package required

Futures are mechanisms for decoupling a value from how it was computed. Goroutines and channels allow implementing futures trivially. Does this approach cover all aspects of a future?

You should not build your own authentication

Welcome in the third and last article covering how to build “Too Modern Go application”. But don’t worry. It doesn’t mean that we are done with showing you how to build applications that are easy to develop, maintain, and fun to work with in the long term....

ZZT in Go (using a Pascal-to-Go converter)

Describes my port of Adrian Siekierka's "Reconstruction of ZZT" to Go, done in a semi-automated way using a Pascal-to-Go converter.

Testing in Go: philosophy and tools

Describes the minimalist philosophy of testing in Go and the built-in testing tools (LWN.net).

Robust gRPC communication on Google Cloud Run (but not only!)

Welcome in the third article form the series covering how to build business-oriented applications in Go! In this series, we want to show you how to build applications that are easy to develop, maintain, and fun to work in the long term. In this week’s article I will describ...

Diamond interface composition in Go 1.14

Per the overlapping interfaces proposal, Go 1.14 now permits embedding of interfaces with overlapping method sets. This is a brief post explain what this change means: Let’s start with the definition of the three key interfaces from the io package; io.Reader, io.Writer, an...

The state of the AWK

Surveys the AWK landscape, looks at new features in GNU Awk, and discusses why AWK is still relevant in 2020 (LWN.net).

Spanner's high availability writes

Spanner is a relational database with 99.999% availability which is roughly 5 mins a year. Spanner is a distributed system and can span multiple machines, multiple datacenters (and even geographical regions when configured). It splits the records automatically among its replicas...