Go 1.22's improved HTTP routing capabilities

Plus the Go-powered Linux distro, and Lip Gloss turns the tables. |

#​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.

Charm

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

n

Older messages

Considering a v2 of encoding/json

Tuesday, October 10, 2023

Plus getting your head around type inference in Go. | #​479 — October 10, 2023 Unsub | Web Version Together with Crunchydata Go Weekly Thinking About a Better encoding/json — Led by Joe Tsai, but with

It's Go vs Rust again

Tuesday, October 3, 2023

Plus a native Go SSH client, and Rob Pike's off to Australia. | #​478 — October 3, 2023 Unsub | Web Version Together with Three Dots Labs Go Weekly Rust vs Go: A Hands-On Comparison — Despite all

Fixing Go's for loops, for real

Tuesday, September 26, 2023

Plus we say hi to GopherCon 2023, GitHub's support for passkeys, and GoLand's latest EAP. | #​477 — September 26, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Organizing a Go

Explaining Go's WebAssembly System Interface support

Tuesday, September 19, 2023

Plus a simple Go static server, looking at JSON with 'fx', and gocron springs back into life. | #​476 — September 19, 2023 Unsub | Web Version Together with Fusion Auth Go Weekly fx 30: The Go-

Let's get optimizing

Tuesday, September 12, 2023

Plus some love for the Go gopher, and Go takes 8th place in IEEE's language roundup. | #​475 — September 12, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Profile-Guided Optimization

You Might Also Like

Software Testing Weekly - Issue 220

Saturday, May 18, 2024

Software Testing Conferences 📚 View on the Web Archives ISSUE 220 May 18th 2024 COMMENT Welcome to the 220th issue! Have you ever been to a testing conference? They're a great way to learn about

📶 Is a Cellular iPad Worth It? — How to Prevent YouTube From Taking Over Your Screensaver

Saturday, May 18, 2024

Also: This Robot Vacuum Can Clean Stairs, and More! How-To Geek Logo May 18, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your inbox by

Weekend Reading — Objection-oriented programming

Saturday, May 18, 2024

This week we find a power-up box, replace GitHub Actions with Maven XMLs, avoid the worst website in the world, revisit RTO policies, “listen” to OpenAI employees, watch our Slack private messages, do

Daily Coding Problem: Problem #1445 [Easy]

Saturday, May 18, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Jane Street. The United States uses the imperial system of weights and measures, which

You don’t have to take our word for it…

Saturday, May 18, 2024

You can probably tell how excited we are to re-launch our Gigantic courses – which bring on-demand product management training for today's modern Product Managers and Product Leaders. In fact, we

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Visualized | Life Expectancy by Region (1950-2050F) 📊

Saturday, May 18, 2024

This map shows life expectancy at birth for key global regions, from 1950 to 2050F. View Online | Subscribe Presented by Voronoi: The App Where Data Tells the Story FEATURED STORY Life Expectancy by

New Wi-Fi Vulnerability Enables Network Eavesdropping via Downgrade Attacks

Saturday, May 18, 2024

THN Daily Updates Newsletter cover The DevSecOps Playbook: Deliver Continuous Security at Speed ($19.00 Value) FREE for a Limited Time A must-read guide to a new and rapidly growing field in

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Toward 'local' AI w/ Apple's new chip

Saturday, May 18, 2024

faster than the cloud ☁️ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌