Autopool: Speeding Up gRPC With Finalizers

Introduction It might be the fever talking, but I have found a new use for the much maligned runtime.Finalizer. Between urgent care runs through the holidays for my family members and trying to adapt songs about Christmas into songs about coughing (aka "Hard Candy Christmas" becomes "Hard Coughing Christmas"), this little problem popped into my head: How do you use a *sync.Pool to recover [Read More]

Not Required: gRPC Client Certs in Go

A little about TLS use in gRPC When you look at most examples for gRPC client and server, there are two examples given: Set grpc.WithInsecure for the client, turning off TLS Create a self-signed certificate for the server and supply the public cert to the client Both of these are bad practices. WithInsecure just says: "Hey! Please man in the middle me". There are plenty of websites [Read More]

HalfPike: A framework to avoid problems with standard regexes in operational tooling

Introduction It is my contention that naked regular expression use (regexes) within SRE and DevOps software and tooling provides for: Hard to read code Difficult to reason when errors occur Bad matches that are assumed to be good data Causing outages or unintentional consequences in tooling It is not the contention that regexes are bad in nature, but that their ease of use combined with abilities to match large and [Read More]

Go Language Basics

Today I am announcing a Go Language Basics class. The class is provided as a free video and accompanying class materials in PDF format. The class is meant to bring new programmers up to speed with Go. It is heavy on exercises and because its video, it provides animated illustrations of slice internals, pointers, ... This class provides similar materials to what I taught at Google and Microsoft around the globe. [Read More]