I moved my local Firefox changes between Git trees the easy way

Gophercon Latam 2025 - Serving TUIs over SSH using Go ✨

My talk at Gophercon Latam 2025, showing a brief history of terminals, an introduction to ANSI escape sequences, a briefer introduction to SSH, and finally, how to build and serve a TUI using Bubble Tea and Wish.

Tricking `oapi-codegen` into working with OpenAPI 3.1 specs

As has been noted before, oapi-codegen doesn't (yet) support OpenAPI 3.1. So how do you end up working with an API that's producing an OpenAPI 3.1 spec? This weekend, I've been migrating dependency-management-data to use the new V1 API for endoflife.date, which now requires OpenA...

Bloom filters

The original motivation for the creation of Bloom filters is efficient set membership, using a probabilistic approach to significantly reduce the time and space required to reject items that are not members in a certain set. The data structure was proposed by Burton Bloom in a 19...

Being reminded that Git commits are separate from Git trees

Unpopular opinions about Go

Quick takeaways Simplicity isn’t enough for complex applications - while Go’s syntax is simple, complex applications still need proper design patterns; primitive code easily becomes spaghetti code in large projects. Reading the standard library isn’t the best w...

A Go-powered TUI email client

#​552 — April 30, 2025 Unsub  |  Web Version Go Weekly The Draft Go 1.25 Release Notes — We’re still about four months away from the final Go 1.25 release (expected in August) but, as always, the release notes are being worked on...

Getting nothing done

You don't need a special place, or a special time, or even special clothes, to meditate. It's just letting the mind rest when it's not needed, and that's the case more often than you might think.

Announcing GoReleaser v2.9

This release introduces support to Python builds through Poetry and UV!

The glass box/opaque box unit testing argument in light of standards