#538 — January 15, 2025 |
|
Go Weekly |
An Interactive Tour of Go 1.24 — A list of all the significant new 1.24 features. Each is accompanied by interactive, runnable examples so you can see generic type aliases in action, make (and clean up) weak pointers, play with file access, and see benchmarks for the new faster map implementation. Go 1.24 is expected to land in the next month or two, with RC2 likely later this week. Anton Zhiyanov |
💡 If you've not experienced Anton's Go tours before, you might also enjoy the Go 1.23 interactive tour. |
The First Newsletter Dedicated to Product Engineers — The fastest growing startups increasingly rely on product engineers. They can both figure out what to build and actually build it. Product for Engineers is dedicated to sharing the skills and strategies needed to succeed in this role. PostHog sponsor |
Michael Lynch |
Gophers Pack: A Collection of Gopher Pictures and Design Elements — If you want some handy Go gopher themed images to use for a project, blog post, or presentation, this myriad of cute CC0 (public domainish) elements could be a big help. We use them a lot in this newsletter and Maria has recently added a variety of winter themed options. Maria Letta |
A Practical Example of Dependency Inversion using Plugins — An example of using Clean Architecture principles with Go’s Christian Ekrem |
Realizing Why Go Reflection Restricts What Struct Fields Can Be Modified — Private (unexported) fields can’t be modified, even when using reflection. When looking at this through Rust-colored glasses, it makes more sense. Chris Siebenmann |
📄 How HTTP/2 Works and How to Enable It in Go – One of Phuong’s typically thorough explanations. Phuong Le 📄 Designing a Distributed Circuit Breaker for Disabling Webhook Endpoints – If you’re consuming a lot of third-party APIs, this could help keep your queues from clogging. Raymond Tukpe (Core Gateway) 📺 The Creator of Ghostty Talks Zig over Go – Controversial. Mitchell Hashimoto (of HashiCorp fame) has recently built Ghostty, a fast new terminal emulator, in Zig. But why not Go? ThePrimeTime 📺 Implementing a Random Art Generation Algorithm – A thorough walkthrough of a way to generate curious graphical elements. package main 📄 Making 'Beautiful' API Keys – Making auth tokens/keys more attractive probably shouldn’t be a priority, but if you want/need to, uuidkey may be for you. Jack Spirou (AgentStation) 📄 Modifying Private Variables of a Struct with 📄 Scaling LLMs with Go: How We Serve Millions of LLM Requests John Wang (Assembled) 📄 We Removed 335 LOC with One Go Package – Going from generating a huge number of 📄 How rqlite, a Go-Powered SQLite-Based Database, is Tested Philip O'Toole |
🛠 Code & Tools |
go-mail v0.6: A Library for Sending Emails — If you’ve got email to send, go-mail can do the job. v0.6 adds support for S/IME signing, SMTP auth auto-discovery, Unix domain socket support, and a ‘quick send’ feature. Winni Neessen et al. |
ebpf-go 0.17: A Way to Work with eBPF from Go — A pure Go library to read, modify and load eBPF programs for use directly by the Linux kernel (eBPF is a neat technology worth exploring if you’re not familiar with it yet). The new 0.17 release requires Go 1.22+ and introduces a new API to work with global variables. Beckers et al. |
go-haystack: Track Personal Devices via Apple's 'Find My' Network — An interesting way to track personal Bluetooth devices via Apple’s massive “Find My” network by way of TinyGo and a little extra hardware. Ron Evans |
|