#​480 — October 17, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

Better HTTP Server Routing in Go 1.22 — Back in May, we linked to a discussion about enhancing http.ServeMux’s routing capabilities. In July, it became a proposal, and now Eli Bendersky gives a practical example of what the new multiplexer can offer and compares it against gorilla/mux. Hacker News hosted an extensive discussion too, with debate over the pros and cons of having a panic occur when multiple routes match and the use of magic strings vs. verb-specific methods. Go 1.22 is expected in early 2024, so expect to see more on this topic before then.

Eli Bendersky

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

Why Gokrazy is Really Cool — Did you know there’s a minimal, Go-focused Linux implementation targeting the Raspberry Pi? gokrazy lets you deploy Go programs as ‘appliances’ on such devices (think something minimal like Alpine Linux but just for Go).

Xe Iaso

Retries: An Interactive Study of Common Retry Methods — A fantastic article packed with visual examples that explore different methods of retrying requests to show why some methods are better than others, concluding in some Go code implementing an ideal strategy.

Sam Rose

🚨 Go 1.21.3 and 1.20.10 were released. The main fix was for a widely-discussed HTTP/2 vulnerability where malicious clients could easily overwhelm HTTP/2 servers.

👥 Garrit Franke demonstrates how to organize multiple git identities, perhaps as a way to maintain separation between work and personal use.

🎤 The Go Time podcast discussed their experiences at GopherCon which took place last month in San Diego.

▶️ Popular Go YouTuber Anthony GG explained how he structures his new Go projects.

🏢 The Go team has been maintaining a collection of Go case studies covering companies like American Express, Dropbox, Cloudflare, and Uber.

📗 The Go101.org books have all been updated to Go 1.21 standards.

🛠 Code & Tools

Lip Gloss 0.9: 'My, How the Tables Have Turned'Lip Gloss provides a ‘fluent’-style API for stylizing text output from your programs, and has just added support for drawing tables (see above). The release post (linked) helpfully includes a quick tutorial to creating your own tables. GitHub repo.


Go OpenAI 1.16.0: Use OpenAI's APIs from Go — Provides access to ChatGPT, GPT-3, GPT-4, DALL-E, Whisper, and OpenAI’s embeddings. They maintain a nice collection of example uses in the README, and have just added one showing how to do semantic similarity comparisons between embeddings.

Sasha Baranov

📰 Classifieds

🗣️ Introducing: Timeline view for your Temporal Workflows! Learn more about visualizing Workflows in your own cluster, or in Temporal Cloud.

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

▶  Gosh: Writing Go at the Command Line“I’ve written a tool called gosh which I think fills a hole in the Go toolkit. Many languages offer a way to write code and execute it directly at the command line, Go doesn’t so I wrote gosh.”

Nick Wells

log/slog Handler Interface to Correlate with OpenTelemetry Spans — If you use both slog and OpenTelemetry, this may be for you. It adds various bits of information to the log record to assist in correlating against OTel spans.

Remy Chantenay

TruffleHog: Finds Leaked Credentials All Over The Place — Much as pigs will hunt for truffles, this Go-powered ‘hog’ will work its way through git repos, S3, your file system, and elsewhere, looking for secrets and other such nuggets you might not want out in the wild.

Truffle Security

Algernon: A Small Self-Contained Pure Go Web Server — With Lua, Markdown, HTTP/2, QUIC, Redis, MySQL and Postgres support.

Alexander F. Rødseth