#454 — March 31, 2023 |
ℹ️ 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. |
|
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 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 Ben Boyter |
Tint: 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 |
|
QUICK RELEASES:
|