---
title: "'Til Tuesday"
publication: "Go Weekly"
issue: 454
published_at: "2023-03-31"
canonical_url: "https://golangweekly.com/issues/454"
---

Plus it's Go 1's 11th birthday, a GUI app for viewing Go execution traces, and a new way to make and use network block devices. |        

#​454 — March 31, 2023 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/454)   

ℹ️ **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\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)  

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zoqh8fi4r71geeniqxqn.jpg)](https://www.dolthub.com/blog/2023-03-28-swiss-map/)  

[SwissMap: A Smaller, Faster Hash Table for Go](https://www.dolthub.com/blog/2023-03-28-swiss-map/) — The creators of the DoltDB database have open-sourced SwissMap, a Go port of a hash map from Google’s [Abseil](https://abseil.io/) 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](https://github.com/dolthub/swiss).) 

Andy Arthur (DoltHub)   

🎂 [Go 1 Released 11 Years Ago](https://go.dev/blog/go1) — 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   [![\](https://copm.s3.amazonaws.com/bcc68a3c.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Experts at Your Service](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — 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](https://bitfieldconsulting.com/golang/adapter) — 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:** 

- The Go team has [announced a plan to release Go 1.20.3 and 1.19.8](https://groups.google.com/g/golang-announce/c/71Wg3N0IZk0/m/xchF2bEZAgAJ) on Tuesday, April 4 in response to some necessary security fixes for some currently private vulnerabilities.
- The Google Cloud team covers [how to connect a Go app to Cloud SQL](https://cloud.google.com/blog/products/databases/how-to-connect-your-go-application-to-cloud-sql/).
- The team at Druva explains [how to work with WebSockets at scale](https://www.druva.com/blog/websockets--scale-at-fractional-footprint-in-go) from Go.    

[Go Integration Tests with Postgres](https://www.storj.io/blog/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](https://changelog.com/gotime/271) — 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](https://www.kenaqshal.com/blog/debugging-dockerized-go-applications) — 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?](https://t.mp/what-is-a-saga-cooperpress) — 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](https://evilmartians.com/chronicles/anycable-goes-off-rails-connecting-twilio-streams-with-hanami) — An interesting marriage of Go and Ruby here to create an app to transcribe a chat into text using [Vosk](https://alphacephei.com/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 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hfabik4ulqhv2l0zssqj.jpg)](https://github.com/dominikh/gotraceui)  

[gotraceui: A GUI App for Viewing Go Execution Traces](https://github.com/dominikh/gotraceui) — Meant to be a faster, more accessible, and more powerful alternative to `go tool trace` with a [Gio UI](https://gioui.org/)-powered interface tuned specifically to the unique characteristics of Go traces. 

Dominik Honnef   

[go-nbd: Pure Go NBD Server and Client Library](https://github.com/pojntfx/go-nbd) — NBD means [_Network Block Device_](https://en.wikipedia.org/wiki/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](https://tailscale.com/integrations/?utm_source=golang&utm_medium=email&utm_campaign=2023-3-31&utm_content=brand) — 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](https://github.com/boyter/gocodewalker/) — If you want to walk through a nested set of directories in a code repo while respecting `.gitignore`, this is for you. 

Ben Boyter  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/o3u1xsgb3kk90hmybggs.jpg)](https://github.com/lmittmann/tint)   

[Tint: `slog.Handler` That Writes Tinted Logs](https://github.com/lmittmann/tint) — Tinted, as in colorful. Works alongside the (still experimental) [structured logging approach](https://pkg.go.dev/golang.org/x/exp/slog) Go is currently considering. Reminds me of that _Soft Cell_ song from the 80s. 

lmittmann   

[pathfind: Path Finding on 2D Polygonal Maps](https://github.com/fzipp/pathfind) — 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++](https://jobs.ashbyhq.com/stickermule/7796c2ed-15b0-47e0-8585-23af8d19fa54?utm_source=Cooperpress) — 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](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=easy-job-hunting) — 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](https://booking.cooperpress.com/jobs)_.     

**QUICK RELEASES:** 

- [wazero 1.0.1](https://github.com/tetratelabs/wazero)
 ↳ Zero dependency WebAssembly runtime for Go devs.
- [TiDB 7.0](https://docs.pingcap.com/tidb/v7.0/release-7.0.0)
 ↳ Distributed MySQL-compatible NewSQL database.
- [D2 0.3](https://github.com/terrastruct/d2/releases/tag/v0.3.0)
 ↳ Diagram scripting language that turns text to diagrams.
- [Ferret 0.18](https://github.com/MontFerret/ferret)
 ↳ Declarative web scraping.
- [Fiber 2.43](https://github.com/gofiber/fiber)
 ↳ Express.js inspired web framework.
- [Hertz 0.6.1](https://github.com/cloudwego/hertz)
 ↳ HTTP framework for microservices.
- [go-elasticsearch 8.7](https://github.com/elastic/go-elasticsearch)
- [NATS - Go Client 1.25](https://github.com/nats-io/nats.go)         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
