#350 — February 19, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Go 1.16 Released — A significant release for our favorite language! The release notes cover the details but faster and more efficient builds, the use of Go modules by default, macOS Arm64 support, and native file embedding support in executables are the order of the day.

Matt Pearring and Dmitri Shuralyov

A Go Security Cheatsheet: 8 Security Best Practices — Covers things like the use of modules, reflection, containers, and crypto packages.

Eric Smalling and Gerred Dillon

Remote Instructor-Led Go, Docker, Kubernetes, Terraform, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, Terraform, and Python. We’ve trained over 10,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

Block Profiling in Go — Block profiling tracks when goroutines are put into a waiting state, so think select or chan receive but not time.Sleep or garbage collection.

Felix Geisendörfer

New Module Changes in Go 1.16 — A key change in Go 1.16 is that module-aware mode is enabled by default even if no go.mod is present. This is in preparation for the old GOPATH mode being dropped completely in Go 1.17. There are several other changes to take into account, however.

Jay Conrod

Quick Bits

  • GoLand 2021.2 EAP 3 (a preview release of a commercial Go IDE) is out with go:embed support and can also now compile for remote targets.
  • esbuild is a JavaScript bundler that's rapidly becoming popular and it credits Go with why it's faster than the alternatives.

📘 Tutorials and Stories

Generic Functions on Slices with Go Type Parameters — Cue up the articles on how generics make things better/easier in Go! Here, Eli revisits an older post (which we linked in issue 349) to do just that.

Eli Bendersky

Compiling a Gameboy Advance ROM with TinyGo — Did you know that TinyGo can target the Gameboy Advance?

Remy Ramium

A (Maybe) Unexpected Usage of the -count Flag in Go Testsgo test -count 3 will run your tests three times, but what about -count 1? Once. But it also disables test caching.

Michele Caci

Why Upgrade from Dep to Go Modules — We used to use the dep vendoring tool for managing package dependencies - learn how & why we switched to go.mod.

CockroachDB sponsor

Preventing SQL Injections in Go (and Other Vulnerabilities) — Handle your errors, kids, and use open-source tools to scan your code and projects for vulnerabilities.

Jonathan Hall

How Buffer Pool Works: An Implementation in Go — Exploring how buffer pool management works in databases by building one.

Bruno Calza

'My Go Mistakes' — We learn more from failure than success, right? So why not share your learnings with other devs? Be like Henrique.

Henrique Vicente

▶  Go 1.16's embed Package Explained in 5 Minutes — If you like to learn things from videos then this is the embed content you’ve been waiting for.

Mathis Van Eetvelde

Leveraging the Go Type System — A specific example around getting the efficiency of numeric constants with the readability of strings.

Cory LaNou

🛠 Code & Tools

EGo: A Way to Build 'Confidential' Go Apps for Intel SGX EnclavesSGX is a set of security oriented instructions on Intel CPUs to manage private regions of memory called ‘enclaves.’ EGo wants to bring all of this to Go developers. Plus it has a cute logo :-)

Edgeless Systems GmbH

Logrus 1.8: A Feature Rich Structured Logger — Supports JSON formatting, hooks (for sending certain log entries to external services, say), plus it’s API compatible with the standard library’s logger too, so try dropping it in.

Simon Eskildsen

OpenTelemetry + Go: All You Need to Know - March 3

Lightstep sponsor

pgCenter: Command Line Tool for Observing and Troubleshooting Postgres — Imagine something like top but for Postgres. You can keep your eye on vital statistics and running queries in real time. Linux only but written in Go.

Lesovsky Alexey

Dapr 1.0: A Portable, Event-Driven, Runtime for Distributed Apps — Dapr, an open source project out of Microsoft, provides best practices and building blocks for microservices and is language-agnostic (though it’s built in Go itself). It also provides bindings for common infrastructure items, such as pub/sub messaging. There’s more detail in the original announcement blog post from 2019.


textnote: Simple Tool for Daily Note-Taking from the Command Line — Supports monthly archiving of notes, as well.

Daniel Kaslovsky

💻 Jobs

Sr Back-End Software Engineer at Mode (Remote) — Mode is a powerful analytics platform, turning data into actionable insights in one, central location. To learn more, apply here.


Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.


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