#344 — January 8, 2021

Unsubscribe  |  Read on the Web

Go Weekly

A Few Bytes Here, A Few There, Pretty Soon You’re Talking Real Memory — The addition of a 24-byte ‘size class’ in Go 1.16 may not seem like a big deal, but it is, and Dave explains what size classes are and why this particular size is so useful.

Dave Cheney

▶  Debugging Code Generation in Go — A talk from GopherCon 2020 by one of the Go community’s smartest thinkers right now. Here, she teaches us how Go generates machine code and how and why you might dig around in what the Go compiler outputs.

Jaana Dogan

Learn How to Move Fast from Code to Kubernetes — Get our free eBook - “CI/CD with Docker and Kubernetes eBook”. Learn how to deliver high-quality cloud apps rapidly and consistently.

Semaphore sponsor

Ebiten UI: A UI Engine and Widget Library for Ebiten — It’s no secret we’re huge fans of Ebiten, a popular 2D game development library for Go. Now you can go a step further by making it possible to more easily create UIs for such games. It’s early days and not recommended for production yet though.

Maik Schreiber

Go Modules Are Soon Going to Be The Only Future — The author picks up on a point from Eleven Years of Go where it was said: “We will also finally wind down support for GOPATH-based development: any programs using dependencies other than the standard library will need a go.mod.”

Chris Siebenmann

📘 Tutorials and Stories

How to Structure a Go Command-Line Project — We’ve linked to numerous posts about structuring Go projects before, but CLI apps can add some extra things to think about. This is one developer’s approach.

Benjamin Cane

▶  A Go 1.16 Embedded File(s) Tutorial — Go 1.16 is still in beta (final release due next month) but one new feature will be native support for embedding files into your executable – here’s a 5-minute screencast showing how it works.


The Elegance of Go's Error Handling — A positive take on Go’s error handling along with an example of using it to make code simple and communicative. 2021 is more positive already.

Ville Hakulinen

When cmd.Run Fails Without /dev/nullcmd.Run can fail in environments where /dev/null isn’t present (or isn’t accessible).

Paul Kuruvilla

An Engineering Leader’s Guide to OpenTelemetry

Lightstep sponsor

Learn Go in (About) 5 Minutes — Might not be useful for you but may be the sort of thing you’d forward to someone on your team, say. It’s short and sticks to the bare basics.

James Mills

Introducing WTF Dial (Again) — Ben started a series on building a Go application from scratch years ago but then abandoned it for… reasons. Here, he takes lessons learned and relaunches the effort.

Ben Johnson

▶  Serverless Go in Azure Functions with Custom Handlers
Anthony Chu

Debugging in Go with Delve
Eleni Fragkiadaki

▶  Pardon the Interruption: Loop Preemption in Go 1.14
Austin Clements

🛠 Code & Tools

go2cs: A Go to C# Converter — Why? Well, some folks are using it to be able to use Go as a scripting language with the Unity and Godot game engines (which both support C#) such as with GoUnity.

Grid Protection Alliance

Excelize 2.3.2: A Library for Reading and Writing Excel Files — Read and write XLSX files, set and read cell values, add charts. The latest release improves pivot table support and adds a variety of new formula functions.

360 Enterprise Security Group, Endpoint Security, inc.

Measure the Health and Performance of Your Golang Applications with Datadog APM — Trace requests across service boundaries and optimize bottlenecks by drilling into individual traces end-to-end. Try Datadog APM free.

Datadog APM sponsor

Oto: Low-Level Library to Play Sound on Multiple Platforms — Windows, macOS, Android, iOS, and even the browser (via GopherJS).

Hajime Hoshi

go-merge: A Tool to Quickly Merge Pull Requests from the Terminal
Cian Gallagher

Clair: Vulnerability Static Analysis for Containers

DockerStats: Plot Your Docker Image's Pull Count Over Time From Docker Hub

💻 Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.


Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.


Find Your Next Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.


Elsewhere: In this week's StatusCode, we covered the most clicked developer stories of 2020 including why senior engineers get nothing done, a harrowing tale of a young coder's health decline, things more developers should know about databases, and why Discord was switching from Go to Rust.