#213 — May 31, 2018

Read on the Web

Golang Weekly

The 'vgo' Proposal Is Accepted. Now What? — If you missed last week’s epic vgo roundup issue, you might want to catch up. The acceptance of the vgo proposal gave many programmers many feelings, but what does proposal acceptance actually mean? Hint: Probably not what you think.

Russ Cox

How The Go Runtime Implements Maps Efficiently (without Generics) — This post starts by addressing what a map is, how it works, how other languages implement maps, and the balance Go’s designers struck.

Dave Cheney

How Twilio Improves 'Mean Time To Discovery' with Rollbar — "The worst thing that can happen is a customer writes in to the support team to say something is broken... If my 'Mean Time To Discovery' is based on a customer support ticket, I’ve failed." Learn more how Twilio uses Rollbar.

ROLLBAR sponsor

Revive: A New Fast, Extensible, Configurable Go Lintergolint is quite opinionated and minimalistic but Revive takes a more extensible approach.

Minko Gechev

Tracking the Status of Go 2.0 — A wiki page has been created to collect links from the core team about the status of Go 2.0. Not much to see yet, however. Core team member Brad Fitzpatrick says he’s “rooting for generics & better error handling.”

Official Go Repository

Why Cant I Pass This Function As An HTTP Handler? — I’ve always wondered why I can’t pass a function that looks like an http.Handler as an argument without using http.HandlerFunc. Now I know.

Jon Calhoun

On Failure Modes — An interesting treatise on minimal version selection (MVS) as used by tools like vgo and how game theory helps show some weak spots in using such systems at scale.

sam boyer

💻 Jobs

Data Engineer: Go & Python | Fresh8 Gaming | Bristol UK, Relocate — Friendly team serious about tech, building in open source. Grow your skills across analytics, data science and scaling.


Go Expert? Sign Up for Vettery — Top companies use Vettery to find the best tech talent. Take a few minutes to join our platform.


📘 Tutorials

An Algorithm to Generate Color Palettes

Christian Muehlhaeuser

eBook: Efficient Project Management for Small Engineering Teams

Codeship sponsor

Writing gRPC Interceptors in Go

Shiju Varghese

Go Test Your Tests in Go with 'go test' — Four tips about how Go runs tests and some tricks you can use.

Mike Choi

Building Scalable Web Services in Go — A few best practices aggregated from around the world of Go.

Hriddhi Dey

How to Setup gRPC Service to Service Communication

Ryan McCue

Go Garbage Collection and Files — An interesting bug and fix around what happens to a file descriptor when the backing file object is garbage collected.


Access Powerful CPUs with Dedicated Hyper-Threads at the Lowest Rates

DigitalOcean sponsor

Delve CLI Debugging Cheatsheet

Thomas Stringer

🔧 Code & Tools

fastjson: Fast JSON Parsing for Go

Aliaksandr Valialkin

WTF: A Personal Information Dashboard for Your Terminal

Chris Cummer

Monitoring, Alerting, and Distributed Tracing for Go Apps — Get full-stack monitoring for your Go apps, logs, and 200+ infrastructure integrations. Try Datadog free.

Datadog sponsor

Golimit: A Distributed and Decentralized Rate Limiter


phi-editor: An Work-in-Progress Go-Powered Text Editor

Felix Angell

v8worker2: A (Very) Minimal Golang Binding to the V8 JavaScript Engine

Ryan Dahl

Deno: A Secure TypeScript Runtime on V8 6.8 — An interesting idea from the original creator of Node.js, Ryan Dahl. It’s built with Go, is not Node or npm compatible, and is.. ‘segfaulty’ :-)

Ryan Dahl

frp: Fast Reverse Proxy to Expose A Local Server Behind A NAT