#​519 — August 20, 2024

Unsub  |  Web Version

🏖️ If you missed last week's issue, don't worry - you didn't. I took a week off for a summer break, but now we're back ;-) Thanks to everyone who sent in links for us to check out.
__
Peter Cooper, your editor

Together with  Frontend Masters logo

Go Weekly

Go 1.23 Released — We’ve been hearing about (and linking to) 1.23 for weeks in its various pre-release guises, but now it's here. You could call 1.23 a 'major minor' release, as it's mostly a gentle step forward but with some new features, like for range iteration and tooling additions (including the now opt-in telemetry system). Head to the official release notes for all the details.

The Go Team

💡 For a more practical look at language improvements, don't forget Anton Zhiyanov's fantastic interactive release notes and examples.

Structs are Copied on Assignment (and Other Things About Go I'd Missed) — This gotcha likely catches many new-to-intermediate gophers, along with the other issues Julia also mentions. By the way, these are based on a few of the 100 Go Mistakes and How to Avoid Them site and book.

Julia Evans

A Complete Introduction to Containers — Join Brian Holt for this extensive video course covering the now industry standard approach for developing and deploying apps. You'll learn about core container technology, Docker Images, multi-container projects, and much more.

Frontend Masters sponsor

▶  12 Talks from GopherCon UK 2024GopherCon UK took place just a few days ago, but you can already enjoy a variety of talks including Matt Boyle on debugging Go apps, Jesús Espino digging into Go’s runtime, Beth Anderson on AI, and Google’s Michael Pratt look at profile guided optimization. We'll feature more talks in future issues as we watch them, as there's a lot of gold in here.

GopherCon UK

💡 If you want to get more of a feel for what the event was like, Jamie Tanna did a write up of the GopherCon UK 2024 experience.

HTTP/1.0 From Scratch — We recently featured Kevin’s HTTP/0.9 From Scratch, a first step into reimplementing the basics of HTTP, step by step, in Go. Now we get to fast forward five years to 1996 and HTTP/1.0 which introduced things like the POST action, status codes, and content negotiation.

Kevin McDonald

'An Unordered List of Things I Miss in Go' — A solid list with some doable and not-so-doable items. On the doable side, there are ordered maps and default arguments. On the not-so-doable, null/nilability is a long-time contentious subject that likely would break backward compatibility.

kokada

Go Maps Explained: How Key-Value Pairs Are Actually Stored — A comprehensive, illustrated tutorial to how things are represented under the hood.

Phuong Le

🛠 Code & Tools

go-vcr 4.0: Record and Replay Your HTTP Interactions — Record and replay API interactions for faster, deterministic testing of potentially flaky endpoints – here’s the v4.0 changelog. (If you’ve used Ruby, you might recognize its inspiration: the popular VCR library.)

Marin Atanasov Nikolov

GoNB: A Go Notebook Kernel for JupyterNotebooks make it easy to do literate programming where you see results immediately like a REPL but with persistence and control over the source code. Common in Python, GoNB brings Go into the picture too. The latest release adds Jupytext support.

Jan Pfeifer

FusionAuth. Auth Built for Devs, by Devs — Choose self-hosting or cloud, scale from 10 to 10 million users, and enjoy unlimited IDPs. Trusted by industry leaders with 10M+ downloads.

FusionAuth sponsor

Pie 2.9: A Utility Library for Dealing with Slices — Ways to work with slices with a focus on type safety, performance and immutability. Now with a a new UniqueStable operation.

Elliot Chance

Lo: A Lodash-Style Library for Go 1.18+ — Inspired by JavaScript’s Lodash and brings similar utility methods for working with slices, maps, and more.

Samuel Berthe

kubetrim: Trim Your KUBECONFIG Automatically — Takes your kubeconfig and trims out all the old / unused clusters and contexts.

Alex Ellis

  • Bubble Tea 0.27 – The powerful, popular TUI framework adds support for programmatically suspending and resuming programs.

  • GoLand 2024.2 – The latest release of JetBrains' popular commercial Go IDE.

  • Pion TURN 4.0 – Toolkit for building TURN clients and servers.

  • GoReleaser 2.2 – Build/release binaries for multiple platforms.

  • wazero 1.8 – Zero dependency WebAssembly runtime for Go.

  • NATS.go 1.37 – Go client for the NATS messaging system.

  • gofumpt 0.7 – A stricter gofmt.