Increasing Cohesion in Go with Generic Decorators

Cohesion is part of the low coupling, high cohesion principle that’s supposed to keep your code maintainable. While low coupling means few dependencies, high cohesion roughly translates to single responsibility. Highly cohesive code (a module or a function) is focused on a...

@TwitterDev x @Charmcli: Developer Tools discovery session

Twitter Spaces with Twitter and Charm folks, discussing favorite developer tools. This Space was not recorded.

Announcing GoReleaser v1.9 — the 10k stars release

This release contains several minor improvements and a couple of new features! Let’s have a look! goreleaser changelog preview. Highlights goreleaser changelog was added to GoReleaser Pro — you can use it to preview your next release changelog added more b...

Using SSH Certificates with Go’s SSH Client

A couple of weeks ago I was working on adding SSH Certificate Authentication support to Wish, and did not find any good, to the point documentation on how to use certificates from the Go SSH client — hence this post. In short, we need to parse the user’s private key and t...

All About the Move to Hugo

I finally got done, moving the blog from Nikola to Hugo today. I already wrote about why I did it. These are a few more thoughts about what went into the endeavour; and some colophonesque details. One, really small hope, is that it will help me learn Go. The DevOps world that I n...

All About the Move to Hugo

I finally got done, moving the blog from Nikola to Hugo today. I already wrote about why I did it. These are a few more thoughts about what went into the endeavour; and some colophonesque details. One, really small hope, is that it will help me learn Go. The DevOps world that I n...

How to use go run to manage tool dependencies

When you're working on a project it's common for there to be some developer tooling dependencies. These aren't code dependencies, but rather tools that you run as part of the development, testing, build or deployment processes. For example, you might use golang.org/x/text/cmd/...

Modernizing AWK, a 45-year old language, by adding CSV support

Why and how I added proper CSV support to GoAWK, my POSIX-compatible AWK interpreter.

Solving a problem I had with the Unix date command in the right way

Joining the split keyboards club: a Moonlander story

This post will describe my experience with a couple of firsts: first mechanical keyboard first split keyboard first orthogonal keyboard first time in my adult life being able to touch type And all of them are related to the same keyboard: a ZSA Moonlander. This will not be a ha...