A realization about shell pipeline steps on multi-core machines

The life of an Ollama prompt

In a previous post I've described how - thanks to standardized tooling - we could use a locally-running Gemma model from a Go program within hours from its public release. This post dives into the internals of Ollama - a popular and extremely convenient open-source Go project tha...

Dysfunctional options pattern in Go

Ever since Rob Pike published the text on the functional options pattern1, there’s been no shortage of blogs, talks, or comments on how it improves or obfuscates configuration ergonomics. While the necessity of such a pattern is quite evident in a language that lacks defaul...

Dysfunctional options pattern in Go

Ever since Rob Pike published the text on the functional options pattern, there’s been no shortage of blogs, talks, or comments on how it improves or obfuscates configuration ergonomics. While the necessity of such a pattern is quite evident in a language that lacks default...

How things work at Charm

#​498 — March 5, 2024 Unsub  |  Web Version Go Weekly 📊 How I Keep Myself Alive Using Go — A look into a fascinating use of open source, medical devices, and Go to help a type 1 diabetic monitor their blood glucose levels and a...

What routes is my `http.ServeMux` listening for?

As I've been looking at adding Go 1.22+'s new net/http routing to oapi-codegen so folks could use the new lightweight functionality built into the standard library, I found that I wanted to make sure that my routes were all configured correctly. I found this StackOverflow answer...

Why is Go 1.22's enhanced routing not working for me?

A few weeks ago, I started looking at adding Go 1.22+'s new net/http routing to oapi-codegen so folks could use the new lightweight functionality built into the standard library. I ended up getting rather frustrated, though, as I thought I'd configured it all correctly, but ended...

Software Architecture Diagrams using the C4 model

A picture is worth a thousand words. If you’ve ever joined a new complex project, you’d know what that means.

The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions

How I solved the One Billion Row Challenge (1BRC) in Go nine times, from a simple unoptimised version that takes 1 minute 45 seconds, to an optimised and parallelised version that takes 3.4 seconds.

Distributed Computing With Dried, Salted Cod Fish, WASM, And (Tiny)Go

You don't need monstrous software orchestration systems for collecting information from distributed data sources. Here is an easy way of sending a Go binary to where the data is.