HTML, CSS and Go, Together at Long Last: Vugu Premise and Example

Huh, what’s a Vugu? Vugu is a Go library that makes it easy to write HTML markup and Go code which is compiled and run in the browser using WebAssembly.

Some Thoughts on Library Design

As programmers we use libraries a lot. But library design is hard. In this article, I will walk through some considerations in designing a library.

Modules Part 03: Minimal Version Selection

Series Index Why and What Projects, Dependencies and Gopls Minimal Version Selection Mirrors, Checksums and Athens Gopls Improvements Vendoring Introduction Every dependency management solution has to solve the problem of picking a version of a dependency. Many of the version sel...

API Clients for Humans

Most developers, at one point or another, have either built a web API or have been a consumer of one. An API client is a package that provides a set of tools that can be used to develop software that consumes a specific API.

Using MySQL as a Pub/Sub

If you compare MySQL or PostgreSQL with Kafka or RabbitMQ, at first, it seems they are entirely different software. And usually, that’s true, as you would use them for quite different tasks. What they have in common is processing streams of data, and they specialize in spec...

Navigating the uncharted waters of SSL/TLS certificates and gRPC with Go

There are different ways to establishing a secure TLS connection with Go and gRPC. Contrary to popular belief, you don’t need to manually provide the Server certificate to your gRPC client in order to encrypt the connection.

Control packet flow with TCP_NODELAY in Go

Writing web services requires a lot of effort and thinking to make them robust and performant. There’s a wide range of areas to look in order to improve the performance of our service.

Test Driven Advent of Code

By now most of you have probably heard of Advent of Code. If not, go check it out. I’ll give you a few moments…

Benchmark Surprises

I love a good mystery. If you really want my undivided attention, present me with a program which does a thing, and also a proof that it can’t possibly do that thing.

Dynamically scoped variables in Go

This is a thought experiment in API design. It starts with the classic Go unit testing idiom: func TestOpenFile(t *testing.T) { f, err := os.Open("notfound") if err != nil { t.Fatal(err) } // ... } What’s the problem with this code? The assertion. if err != nil { ... } is r...