#257 — April 11, 2019

Read on the Web

Golang Weekly

▶  Go 2 Error Values Today — At dotGo 2019, Marcel spoke about changes coming to Go in relation to error handling (originally outlined in this proposal) and how you can play with them right now.

Marcel van Lohuizen

Go Memory Ballast: How I Learnt to Stop Worrying and Love The Heap — Twitch recently rolled out a small change that reduced the CPU utilization on their frontend servers by 30%. This post digs into that change, how they came up with it, and why it works.

Ross Engers (Twitch)

Deploy Your Favorite Dev Tools with 1-Click Apps on DigitalOcean — Improve devops workflows and self-host Docker, Grafana, GitLab, OpenFaaS and more in just one click.

DigitalOcean sponsor

Lessons Learned Porting 50k Lines of Code from Java to Go — This provoked a lengthy discussion on Hacker News.

Krzysztof Kowalczyk

▶  Discussing Go 2 and The Future of GoGo Time was a popular Go podcast until last year when it went on hiatus, but.. it’s back! Mat Ryer, Johnny Boursiquot, Jaana B. Dogan, and Mark Bates discuss Go 2, the future of Go, and what they like and dislike.

Go Time podcast

Vulcanizer: A Library for Operating Elasticsearch — Handles common tasks when dealing with an Elasticsearch cluster along with offering a ChatOps-friendly interface.

Github Engineering

AWS Elastic Beanstalk Adds Support for Go 1.12

Amazon Web Services

💻 Jobs

Go Engineering Roles at Chronicle — Love writing Go? Want to help Give Good the Advantage and fight back against cybercrime? Join us at Chronicle.

Chronicle

Find A Golang Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

📘 Articles & Tutorials

Bloom Filters Explained — Bloom filters are an interesting data structure that provide a fast and efficient way to test set membership (at the cost of occasional false positives).

YourBasic

▶  Videos from the dotGo 2019 ConferencedotGo is a popular European Go conference that always puts out some great talk videos. Five have been released so far, with more surely to come.

dotConferences

Do You Need Help Building & Migrating in an Application to Go?

Ardan Labs sponsor

Why 'Wire' is Great for Dependency Injection in Gowire seems like a perfect fit for the go community. I sincerely hope wire becomes a de facto choice for any large Go application.”

Drew Olson

Idiomatic Go Resources“These articles represent only a fraction of the words that have been written about Go style, and this is by design my own opinionated list.” Opinionated or not, it’s a good list.

Damian Gryski

🔧 Tools & Code

Hugo 0.55.0: The Early Easter Egg Edition — Easter eggs, in this case, are not silly, hidden tricks, but new and improved features for the popular static site generation tool.

Hugo

Go 1.12.3 and Go 1.11.8 Released — Only applies to Linux users as it just fixes a bug in the Linux binary release.

Andrew Bonventre

Get the Fastest App Deployments. Ever. — Learn the most effective way to build better apps faster.

Buddy sponsor

go-toml: Go Library for the TOML FormatTOML is a configuration file format invented by one of GitHub’s founders. Here’s what it looks like.

Thomas Pelletier

Interpol: A String Generation Library — Uses special interpolators to generate custom strings. You need to see the examples. It’s a neat idea.

Arash Vahidi

Gizmo: A Microservice Toolkit from The New York Times — Several packages brought together to help you build server and pubsub daemons with things like standardized configuration and logging, metrics, health checking, and more.

The New York Times

grpc-go 1.20: The Go Language Implementation of gRPC

grpc

Algernon: A Small Self-Contained Pure Go Web Server — With Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL Support.

Alexander F. Rødseth

Jackal: An XMPP Server Written in Go

Miguel Ángel Ortuño

🤬 The challenges Go developers face the most

Source: Go 2018 Survey

Last week's results from the latest Go Survey show that Go developers are still having issues over modules and vendoring (though future Go versions will be ironing this out) and a lack of generics remains a pain point for many.

If any of the above pain points give you any ideas for tutorials or tools to help Go developers out, let us know and we might be able to link you up :-)