#270 — July 11, 2019

Read on the Web

Golang Weekly

Clear Is Better Than Clever — Dave extracts this post from his GopherCon Singapore talk focusing on how clarity (as distinct from readability) is the attribute of code that matters most to the next programmer.

Dave Cheney

Go Compiler Internals: Adding A New Statement to Go — In two posts (the second is linked in this article), Eli runs through the design of Go with a practical example of adding a until statement. This is an excellent look at Go’s design.

Eli Bendersky

Simplify Event Tracking with a Single API — Integrate 250+ tools with the flip of a switch. Power your entire tech stack with the same data. Segment is all you need — in one tool.

Segment sponsor

CockroachDB/Errors: An Error Library with Network Portability — A drop-in replacement for the standard errors package that adds things like network portability (across versions!) and stripping personally identifiable information out of errors. Check out the feature table to see how it compares to other solutions.


The New(ish) Go Branding Hits golang.org — Things are looking a little cleaner over on the official Go site, but who had 1 year, 2 months in the pool?


The WebAssembly-Based Go Playground — It’s like the official Go playground but Go gets compiled to WebAssembly and run directly within your browser. Performance and stability may vary, so take care. There’s also a version that supports the new ‘try’ error handling feature if you want to play with that. GitHub repo.

Christopher Brown

Should the Google Logo Be Removed from the Go Homepage? — An interesting discussion point following recent debates over who Go really ‘belongs’ to. I think the logo should stay, but you might want to put your own opinion into the mix.


💻 Jobs

Stream Is Hiring a Go Engineer in Beautiful Amsterdam — Enjoy building high-performance infrastructure at scale? Apply to work in our Stream Amsterdam office now.


Land a New Dev Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Articles & Tutorials

How to Use try — The idea of giving Go a try function to reduce the amount of if/return boilerplate around error handling remains controversial but here’s a generous look at how it could be genuinely useful in a contrived scenario.

Michal Štrba

Creating a Basic Web Drawing Experience with Go and WebAssembly — This is clever and a neat, compact, but useful example of actually building something for the Web using Go.

Sendil Kumar N

What Is the Difference Between Metrics and Events? — Gather data from our systems when monitoring technologies & tools. We want to see database logs and network traffic side-by-side.

InfluxData sponsor

Building WebAssembly with Go (and TinyGo) — Essentially the prequel to the tutorial, here’s how to compile Go into WebAssembly that can be used in the browser. Then how, using TinyGo, you can take a 1.3M end result down to just 3.8K.

Sendil Kumar N

How to Add Version Information to Go Binaries — A look at a way to embed information about the current commit hash into a final executable which you can query later.

Preslav Rachev

🔧 Tools & Code

Caddy 2 is Ready for Developers — The creator of Caddy wants it to be “the Go community’s web server” and is hoping many will contribute to its development.

Matthew Holt

Go 1.12.7 and Go 1.11.12 Released — Very minor point releases that include “fixes to cgo, the compiler, and the linker”.

Alex Rakoczy

Bokchoy: Simple Job Queues for Go Backed by Redis — It’s only got about 40 stars, but the author has been using it in production for months.

Florent Messa

Continuous Security Scans for Your Go Repos on GitHub

GuardRails sponsor

Go Tools for Recording and Replaying RPCs — Record interactions of network clients and record the service responses for replay in your tests. Supports HTTP and gRPC, the former with a package and a command line tool.


goqu: An Expressive SQL Builder and Query Library — The DSL used here doesn’t click for me at first glance, but I think the approach could suit many.

Doug Martin

Martian: A Library for Building Custom HTTP/S Proxies — An interesting (unofficial) Google project for inspecting, mocking or otherwise messing with passing HTTP traffic.


Sling: An HTTP Client Library for Creating API Requests — I love the pixelated gopher logo this project has.

Dalton Hubble

🕰 ICYMI (Older stuff that's worth checking out..)

Yup, we're going through a few items from our queue that we didn't quite get the opportunity to include at the time..