Golang Weekly - Test gains and memory drains

Plus a real time strategy game built in Go, and a mutation testing tool. |

#​457 — April 25, 2023

Unsub  |  Web Version

Together with  Courier logo

Go Weekly

How to Troubleshoot Memory Leaks with Grafana Pyroscope — Explore common causes of memory leaks in Go and learn to use Pyroscope, an open source continuous profiling solution, itself written in Go, to find and fix such leaks.

Cyril Tovena (Grafana Labs)

Go Integration Testing with Courage and Coverage — A tale of integrating test coverage tracking into an active Go project as part of pushing the overall coverage from a worrying 50% to a somewhat better 76%. Go 1.20’s new coverage profiling support is also showcased.

Vladimir Dementyev

Add a Full-Featured Notification Center to Your Go App in Minutes — With out-of-box user preferences and inbox, comprehensive API, web-based template designer, and automated delivery flows.

Courier.com sponsor

IN BRIEF:

⏪  Revisiting Some Greatest Hits

When To Use Generics — Some general guidelines for when to use generics that boils down to one simple guideline: If you find yourself writing the exact same code multiple times, where the only difference between the copies is that the code uses different types, consider whether you can use a type parameter.

Ian Lance Taylor

Getting Familiar with Workspaces — Remember Go 1.18’s other big feature? Workspaces. Workspaces “let you work on multiple modules simultaneously without having to edit go.mod files for each module.” Beth broke down how to get started.

Beth Brown (Go Team)

A Simple Overview of Authentication Methods for Kubernetes Clusters — Kubernetes has a wide range of authentication methods. We will detail each of them and their uses in this article.

Teleport | goteleport.com sponsor

▶  How to Monitor Your Go App with Prometheus
Anthony GG

🛠 Code & Tools

Ooze: A Go Mutation Testing Tool — Fuzz testing messes around with the input to a testing scenario, but mutation testing goes one step further and changes the actual implementation of the code! The key idea is that if code can be changed but tests still pass, there’s something amiss.

Guilherme J. Tramontina

gops: List and Diagnose Currently Running Go Processes — Works with any Go-built processes but if your program can start the diagnostics agent then extra information can be obtained.

Go Team

“Our Backend Team Loves Encore!” — See how Lizza used Encore's development platform to 3x delivery speed and save 100+ hours of DevOps work per month.

Encore sponsor

Jet 2.10: Type Safe SQL Builder with Code Generation — A database access solution consisting of a type-safe SQL builder with code generation and automatic query result data mapping. It supports PostgreSQL, MySQL, CockroachDB, MariaDB and SQLite.

Jet

Hermes: A Document Management System — The folks at Hashicorp have open-sourced a tool to support their writing culture, including workflow approval, full-text search, and more. This introductory blog post shows off what it looks like.

HashiCorp

Cobra 1.7: A Framework for Building Modern CLI Apps — A significant project in the Go CLI space oriented around structure, subcommand based CLIs, flags, generating man pages, etc. It was originally created for Hugo but is now used by numerous projects.

Steve Francia

QUICK RELEASES:

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

🧑‍💻 Got a job listing to share? Here's how.

🕹 And for after work hours..

Roboden: A Real Time Strategy Game — An 'indirect control' real-time strategy game about robot colonies written in Go using the Ebitengine 2D game library. Thanks to WebAssembly you can play it in the browser but native downloads are available, as is the source code.

Iskander

n

Older messages

What do you get when you cross a LLaMA with a Gopher?

Wednesday, April 19, 2023

Plus when TinyGo beats C++, domain driven design in Go, and how Go calls Windows' APIs. | #​456 — April 18, 2023 Unsub | Web Version Together with JetBrains The Go Weekly Newsletter Go's Error

The smallest Go binary

Tuesday, April 11, 2023

Plus what's new in GoLand, how to parse spreadsheets from Go, GoReleaser 1.17, and treating ourselves to some Gin. | #​455 — April 11, 2023 Unsub | Web Version ℹ️ As mentioned last time, Go Weekly

'Til Tuesday

Friday, March 31, 2023

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 | Web Version ℹ️ A quick

Go on the Xbox?

Friday, March 24, 2023

Plus the power of single method interfaces, a new way to optimize structs, and a simple parser package built upon struct field tags. | #​453 — March 24, 2023 Unsub | Web Version Together with Ardan

Structured logging is a go

Friday, March 17, 2023

Plus real world Go concurrency examples, flame graphs, and there's more than one way to structure a Go project. | #​452 — March 17, 2023 Unsub | Web Version Together with Shortcut The Go Weekly

You Might Also Like

The Sequence Opinion #504: Does AI Need New Programming Languages?

Thursday, March 6, 2025

And some old computer science theories that can become sexy again in the era of AI-first programming languages. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

U.S. Charges 12 Chinese Nationals in State-Backed Hacking Operations

Thursday, March 6, 2025

THN Daily Updates Newsletter cover ⚡ LIVE WEBINAR ➟ ASPM: The Future of AppSec -- Boom or Bust? Discover How ASPM is Redefining Application Security with Smarter, Unified Solutions. Download Now

Is it time for you to get a VPN?

Thursday, March 6, 2025

Hello there, Most people don't think twice about online tracking. But the truth is, it's not just about targeted ads. Cybercriminals and scammers have ways of using your internet traffic

🚴🏼‍♂️ Apple Should Make an Electric Bike — 10 Cars That Were Technologically Ahead Of Their Time

Thursday, March 6, 2025

Also: iPhone 16e Review, and More! How-To Geek Logo March 6, 2025 Did You Know The cat in the opening scene of The Godfather purred so loudly that some of the lines in the scene had to be redubbed. 💻

📧 Did you want this discount?

Thursday, March 6, 2025

​ Hey, it's Milan. I want to make sure you see this today because it may be gone this weekend: There are 29 coupons left to join Pragmatic REST APIs with 30% off. After that, the price goes back to

Tiny Type On Yellow Pages ☎️

Thursday, March 6, 2025

That time phone books got a font upgrade. Here's a version for your browser. Hunting for the end of the long tail • March 5, 2025 Tiny Type On Yellow Pages Why AT&T had to redesign its primary

Simplify Kotlin Error Handling

Thursday, March 6, 2025

View in browser 🔖 Articles Goodbye try-catch, Hello runCatching! Exception handling in Kotlin just got cleaner! This article explores how runCatching can replace traditional try-catch blocks, making

JSK Daily for Mar 5, 2025

Wednesday, March 5, 2025

JSK Daily for Mar 5, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Unions and intersections of object types in TypeScript In this blog post, we explore what

Daily Coding Problem: Problem #1709 [Medium]

Wednesday, March 5, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Facebook. Given an array of integers, write a function to determine whether the array

How Swiss Tables make Go 1.24 faster

Wednesday, March 5, 2025

Plus a way to call external library functions without Cgo. | #​544 — March 5, 2025 Unsub | Web Version Together with pgAnalyze Go Weekly Faster Go Maps with Swiss Tables — One of Go's newest