#​456 — April 18, 2023

Unsub  |  Web Version

Together with  JetBrains

The Go Weekly Newsletter

Go's Error Handling is a Form of Storytelling — That’s probably one of the kindest ways I’ve heard Go’s approach to error handling described, but the author makes the argument that good error messages add up and tell a story.

Preslav Rachev

Staying on the theme of errors, Dolthub's Max Hoffman also wrote about where panics have their place, how panicking is faster than raising errors, and the tradeoffs you need to consider between the two.

Try GoLand 2023.1! — This version introduces the vulnerability checker and better navigation through gRPC code. We’ve also updated the Code Vision feature so that GoLand now shows both the number of implementations for an interface and its method specifications.

JetBrains sponsor

Improving Tailscale via Apple’s Open Source — This is only related to Go in as much as Tailscale’s client is written in it, but it’s an interesting tale of how digging through some of Apple’s code has paid dividends in improving Tailscale’s own functionality.

Mihai Parparita (Tailscale)

Tailscale's Jordan Whited also wrote about optimizations made to push Tailscale into the '10Gb/s club' and where some loop unwinding in Go helped.

The Tao of Go“If we were to approach software development in Go in a sensitive, intelligent way, following the natural contours of the language and the problem rather than trying to bulldoze them out of the way, what would that look like? Let’s try to establish a few general principles.”

John Arundel

IN BRIEF:

An Indepth Look at Go's Windows Calls — After analyzing a variety of Go malware, the author ended up picking up a lot about how Go calls Windows’ APIs under the hood. This is detailed and not for the faint of heart.

Leandro Froes

Six Best Practices for Kubernetes Audit Logging — Cohesive auditing policies? Reliable backends? Here’s why you need all that plus RBAC, consistent log formats, and more.

Teleport | goteleport․com sponsor

▶  Why Go is Great for Command-Line Tools — The latest in a line of short YouTube videos from Google selling the benefits of Go, we assume, to companies and teams considering Go but not yet using it. (3 minutes)

Go Team

How Go Fixed Everything That Was Wrong with Programming — A bold claim, but unsurprisingly this is an opinion piece ;-)

Jan Kammerath

🛠 Code & Tools

llama.go – It's Like llama.cpp in Pure Go — This is exciting, but there’s a lot to unpack if you’re not into modern large language models. If you’ve heard of ChatGPT, it relies on a ‘large language model’ (LLM) and LLaMA is Facebook/Meta’s attempt at producing one of their own. llama.cpp is a C++ app to use the LLaMA model efficiently, and now llama.go is a Go attempt. Oh, and you need a lot of memory. Phew.

Serge Gotsuliak

Queue 1.2: Generic, Thread-Safe Queue Implementations — Specifically, blocking, priority and circular queues.

Adrian Brad

Domain Names for Go Programmers at Porkbun.com — Porkbun has the best domain names for Go programmers to show off your work. Get .app, .dev, and more at the best prices.

Porkbun Domain Registrar sponsor

Opengist: A Self-Hosted Pastebin — A git-powered Gist-like pastebin app with more features than you might exepct.

Thomas Miceli

go-mask: Library for Masking Sensitive Information — Mask sensitive information or data that you don’t want to output by setting tags on structs.

showa

µDiff: A Small Diffing Library — Implements the 📄 Myers’ algorithm for finding differences between strings.

Ayman Bagabas

QUICK RELEASES:

Jobs

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired

🧑‍💻 Got a job listing to share? Here's how.