Kubernetes Memory Limits and Go

Introduction After writing the Kubernetes (K8s) CPU Limits post, I was wondering what happens when a K8s memory limit is set for the same service. I’ve been hearing at workshops and at Ardan how people are experiencing Out Of Memory (OOM) problems with their PODs when setting K...

The Go 'range over functions' proposal and user-written container types

Gemma, Ollama and LangChainGo

Yesterday Google released Gemma - an open LLM that folks can run locally on their machines (similarly to llama2). I was wondering how easy it would be to run Gemma on my computer, chat with it and interact with it from a Go program. Turns it - thanks to Ollama - it's extremely �...

Robust generic functions on slices

Avoiding memory leaks in the slices package.

Microblog: TestMain can cause one to question reality

This morning a one line change had several of us tearing up the fabric of reality trying to understand why a failing test wasn’t failing, or, in fact, being run at all. Increasingly frantic efforts to upgrade/downgrade Go, run the tests on another machine, run the tests in...

gemini-cli: Access Gemini models from the command-line

This post is about a new command-line tool I've recently built in Go - gemini-cli, and how to use it for LLM-based data analysis with Google's Gemini models. Background: I've been reading Simon Willison's posts about LLMs with interest, especially his work on tools that leverage...

Go is popular.. again!

#​496 — February 20, 2024 Unsub  |  Web Version Go Weekly The HTTP Routing Enhancements in Go 1.22 — The Go team’s official take on the new HTTP routing enhancements in Go 1.22: “Go 1.22 brings two enhancements to the net/http packa...

Kubernetes CPU Limits and Go

Introduction I was working on a Go service that was going to be deployed into a managed Kubernetes (K8s) environment on GCP. One day I wanted to look at the logs in the staging environment and got access to the ArgoCD platform. In the process of trying to find the logs, I stumble...

Strategy pattern in Go

These days, I don’t build hierarchical types through inheritance even when writing languages that support it. Type composition has replaced almost all of my use cases where I would’ve reached for inheritance before. I’ve written1 about how to escape the template...

Understanding a recent optimization to Go's <code>reflect.TypeFor</code>