#​454 — March 31, 2023

Unsub  |  Web Version

ℹ️ A quick scheduling note: The Go Weekly Newsletter is moving to Tuesdays. As such, the newsletter will be taking a break next week and we will be back in your inbox on Tuesday April 11, 2023. Thanks for reading, and we'll see you then.
__
Peter Cooper, Editor

Together with  Ardan Labs

The Go Weekly Newsletter

SwissMap: A Smaller, Faster Hash Table for Go — The creators of the DoltDB database have open-sourced SwissMap, a Go port of a hash map from Google’s Abseil library. It uses less memory than Go’s built-in map and is well-suited for performance-sensitive contexts where memory use for large hash tables is a concern – though, as always, there are tradeoffs to consider. (GitHub repo.)

Andy Arthur (DoltHub)

🎂  Go 1 Released 11 Years Ago — A quick jump back in time to March 2012 when “Go version 1” was officially released. A lot has changed since then, but Andrew ended the post with one thing that is still true: “There has never been a better time to be a Go programmer.”

Andrew Gerrand

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

The Adapter Pattern in Go — How do you test a database without a database? It’s not a trick question. There’s a synergy between testability and good design, and the adapter pattern can help you decouple business logic (“knowing about widgets”) from persistent storage (“knowing about Postgres”).

John Arundel

IN BRIEF:

Go Integration Tests with Postgres — A look at a few ways to use Postgres in testing scenarios, each with their own pros and cons.

Egon Elbre

▶  Cross-Platform Graphical User Interfaces with Go — The creators of Wails and Fyne went on Go Time to talk about the challenges of cross-platform GUI development.

Go Time Podcast podcast

Debugging Dockerized Go Apps with VS Code — It’s reasonably simple to setup a local Docker environment for debugging with Delve and Docker (or Docker Compose), as this step-by-step tutorial demonstrates.

Ken Aqshal

What Is a Saga in Microservices? — Take a deeper dive into the mechanics of sagas and explore how they can be used to manage long-running processes.

Temporal Technologies sponsor

AnyCable Off Rails: Connecting Twilio Streams with Go and Ruby's Hanami — An interesting marriage of Go and Ruby here to create an app to transcribe a chat into text using Vosk (a speech recognition system) and a load of other tools. There’s a great chance you’ll be exposed to something new here.

Evil Martians

🛠 Code & Tools

gotraceui: A GUI App for Viewing Go Execution Traces — Meant to be a faster, more accessible, and more powerful alternative to go tool trace with a Gio UI-powered interface tuned specifically to the unique characteristics of Go traces.

Dominik Honnef

go-nbd: Pure Go NBD Server and Client Library — NBD means Network Block Device and in Linux this provides a mechanism for providing block devices (e.g. a hard drive) over a network rather than in local hardware. With go-nbd, you can build your own abstractions and bridges, such as to turn a file, byte slice, S3 bucket or other io.ReadWriter into a fully-fledged block device.

Felicitas Pojtinger

Tailscale Integrates with 60+ Solutions That Your Team Uses Every Day — Tailscale makes it easy to connect all your team’s devices and development environments in a way that feels like magic.

Tailscale sponsor

gocodewalker: For Walking Directories of Code — If you want to walk through a nested set of directories in a code repo while respecting .gitignore, this is for you.

Ben Boyter

Tint: slog.Handler That Writes Tinted Logs — Tinted, as in colorful. Works alongside the (still experimental) structured logging approach Go is currently considering. Reminds me of that Soft Cell song from the 80s.

lmittmann

pathfind: Path Finding on 2D Polygonal Maps — Finds the shortest path between two points in a polygon set by building a visibility graph and then using the A* search algorithm against it.

Frederik Zipp

Jobs

Software Engineer C++ — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

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.

QUICK RELEASES: