Ranging over functions in Go 1.23

Go 1.23 shipped with a new major feature: ranging over functions (also known as "iterators"), per this proposal. This feature is nicely covered in the official Go blog post from August. This article is a rewrite of my older post that described this feature when it was s...

Announcing GoReleaser v2.4

New release coming in hot! new: create macOS app bundles. Initially they are only usable with dmgs, more uses might be added in the future. (only on pro) Example: # .goreleaser.yml app_bundles: - bundle: com.goreleaser.goreleaser icon: www/docs/static/goreleaser.icns if: '{{e...

Constraints in Go

Freedom is nothing without constraints, and Go’s generics gives us a powerful way to build polymorphic types and functions constrained by type sets. Let’s geek out.

Generic types in Go

Golang generics open up a lot of exciting new possibilities for us as programmers. In this tutorial, we’ll look at ways we can use type parameters to define customised generic types.

Using AI to aid color scheme migrations

Recently I found a good use case for AI when migrating my dotfiles to another theme. This is a short post about it.

Managing JSON Field Tags and Value Handling in Go - Ep.3

Introduction: Welcome to Episode 3 of JSON for Engineers! In this episode, Miki Tebeka explores the intricacies of JSON field mapping and value handling, especially when working in strongly typed languages like Go. This session covers the practical challenges of matching JSON fie...

Rust vs Go in 2024

Which is a better choice, Rust or Go? Which language should you choose for your next project, and why? How do the two compare in areas like performance, simplicity, safety, features, scale, and concurrency?

Awesome Go gets even more awesome

#​529 — October 29, 2024 Unsub  |  Web Version Go Weekly Awesome Go: Almost 3000 Categorized Go Resources — A perennially useful resource that continues to get frequent updates (almost non-stop), and well worth revisiting in this...

Transitioning from C and C++ to Rust: A Beginner’s Guide

Introduction: As you embark on the journey from C or C++ to Rust, you’ll discover a world of exciting possibilities. Rust’s emphasis on safety, concurrency, and performance can significantly enhance your programming toolkit. This beginner’s guide on transitionin...

Watermill 1.4 Released (Event-Driven Go Library)

It’s Autumn over here, and it usually means another release of Watermill! 🍂 It’s hard to believe it’s already been five years since the v1.0 release. In case you’re new to Watermill, here’s TL;DR. Watermill is a Go library for building message-dri...