Golang Weekly - Russ Cox makes the case for coroutines

Plus Gorilla is back, IBM takes over Sarama, a Go powered TUI feed reader, and Go 1.21rc3. |

#​469 — July 18, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

A Rationale for Using Coroutines in Go — Many of the initial reactions to this suggestion by Russ Cox to introduce coroutines to Go were negative, with folks instead preferring Go’s existing channels based approach for the problems coroutines can solve. Nonetheless, there are some interesting and specific use cases for coroutines in Go, such as when iterating over generic collections, and Russ tries to convince us of their merit here. Luckily, it's all possible "without language changes".

Russ Cox

govulncheck 1.0 Released — We featured Go’s new vulnerability management tool last year when Julie Qiu gave an overview of the project. Now she’s back with a release ready to put into production. It statically analyzes your code and uses the Go Vulnerability Database to highlight relevant, known vulnerabilities.

Julie Qiu (The Go Security Team)

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 Gorilla (Project) ReawakensGorilla is/was a suite of packages for building Go webapps (Mux remains a popular HTTP router option) but the packages sadly went into an “archive only” mode last year. A team of developers is in the early stages of resurrecting the project – watch this space.

Gorilla Web Toolkit Maintainers

Analyzing Go Build Times — Go’s compiler is pretty quick, but John was curious was what factors affect compile times. In this article he used the 350,000 lines of the Istio project to put Go through its paces, try out some ideas, and ultimately came up with some tips.

John Howard

IN BRIEF:

Monitor, Test and Debug your APIs with APIToolkit — A toolbox for building and maintaining APIs better than ever. Test and validate all API requests, and spot bugs faster.

APIToolkit sponsor

Event-Driven Architecture: What You Need to Know — The first in a series of posts on event-driven architecture and building a system using this paradigm in Go. This first post covers the what and why?

Matt Boyle

5 Ways to Write a Go Database Model — Paul covers the vanilla approach, using struct mapping, SQL generators (like squirrel), a code generator (sqlc), and ORMs, pointing out pros and cons for each approach.

Paul Boyd

🛠 Code & Tools

Pop: Charm's Latest Project Tackles Email — The Charm folks have a well earned reputation for producing useful Go powered tools and libraries and Pop, essentially a modern way to send emails from the terminal, looks to be no exception.

Charm

ntp 1.2: A Simple NTP Client Package for Go — For querying your Network Time Protocol server of choice for the current time.

Brett Vickers

So You’re Still Using Infrastructure as Code? — With Encore's Infrastructure SDK: No manual work to run locally, Preview Environments for each PR, and zero tedious IaC.

Encore sponsor

Sarama 1.40: A Go Library for Apache Kafka — Originally created by Shopify, it appears IBM has now taken over the reins as Shopify wants to bind against librdkafka in future instead.

IBM

Go Rate Limiter 0.3: A Blocking 'Leaky-Bucket' Rate Limit Implementation — The ‘bucket’ gets refilled based upon the time elapsed between requests. v0.3 sees a return to development after a pause for a couple of years and offers a “more efficient internal implementation” without any external changes.

Uber

Jobs

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

📰 The Go-powered RSS reader

goread: A Terminal-Based RSS / Feed Reader — If you're tired of social news sites like Twitter or Reddit chopping and changing about, following a variety of RSS or Atom feeds remains a great option, and there's a Go-flavored terminal client built around Bubble Tea you can try.

P.S. Go Weekly has its own RSS feed if you want to test it out.

Adam Piaseczny

n

Older messages

Go, meet Python. Python, meet Go.

Tuesday, July 11, 2023

Plus using fuzz testing in practice, working with eBPF from Go, and how it feels to be a solo gopher. | #​468 — July 11, 2023 Unsub | Web Version Together with Teleport logo Go Weekly Finding Bugs with

Answering all the big questions

Tuesday, July 4, 2023

Plus a big GoReleaser release, all the GopherCons, and an MIT workshop on concurrency that uses Go. | #​467 — July 4, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Frequently Asked

Go's three new builtin functions

Tuesday, June 27, 2023

Plus running Go in Jypyter Notebooks, a Go app generator, and using htmx with Go. | #​466 — June 27, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Go 1.21 Release Candidate — Despite

Random numbers in Go, version 2

Tuesday, June 20, 2023

Plus how and when to use Go pointers effectively, Mergo 1.0, and just how much Go is 'admired and desired.' | #​465 — June 20, 2023 Unsub | Web Version Together with Courier logo Go Weekly

Go toolchain changes in Go 1.21+

Tuesday, June 13, 2023

Plus talking to Matt Boyle about DDD, Ebitengine turns 10, and building traffic lights and fractals with Go. | #​464 — June 13, 2023 Unsub | Web Version ✍️ If you're intrigued about domain-driven

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 ☁️ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌