#339 — November 20, 2020

Unsubscribe  |  Read on the Web

Go Weekly

Go Standard Library Benchmarks: Intel i5 vs Apple's M1 — If you’ve wondered how Apple’s newest Arm-based CPU fares with Go, these results are promising. As with all benchmarks, though, maintain a critical eye, especially as these are microbenchmarks against an older i5 CPU(!) but it's still worth reporting and there's more info below..

Roland Shoemaker

The Pros of Conds — If you’ve never used sync.Cond (and it’s not that popular in Go code) Luke wants to sell you on why and where it’s useful. If you have events you need to sit around and wait for, this article is for you.

Luke Champine

Support for Geospatial Data - Written in Go — The most upvoted feature in the history of CockroachDB was support for geospatial data & indexing. And now it’s here. We’ve rebuilt all spatial data types and libraries in Go and we’d love for the Go community to test it out.

Cockroach Labs sponsor

🐦  Thread: "Let's See How The New M1 Chips Do On Go Benchmarks!" — Filippo Valsorda of the Go team does eventually get to the benchmarks but the real takeaway here is his journey (signed binaries are mandatory on arm64?) to get there. If you’re thinking of buying a new Mac, read this.

Filippo Valsorda

Go’s Recurring Security Problemgo get does a lot under the hood, including invoking third-party tools like git and clang in ways that are heavily influenced by package configurations. Ensuring that these invocations are safe is an uphill battle that Go hasn’t quite won yet.”

Chris Brown

💻 Jobs

Mux Is Hiring Across the Board to Help Build the Stripe for Video

Mux

Find a 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.

Vettery

📘 Tutorials and Stories

Writing a Postgres Foreign Data Wrapper for Clickhouse in Go — Foreign data wrappers (FDWs) provide a way for Postgres servers to interact with external services (including other database systems), such as the ClickHouse OLAP DBMS covered here.

Arun Sori

Using 'Dot Imports' in Views — Dot imports let you import a package into the local namespace (so no prefixing is needed!) – it’s not a good practice, but also not super commonly known, and Markus has speculated on an interesting use case for them at least.

Markus Wüstenberg

Good and Bad Practices - A Limiting Perspective? — Certain patterns or approaches can get painted as being ‘good’ or ‘bad’ practices (see ‘dot imports’ above!) but is it always so binary? No, says Preslav.

Preslav Mihaylov

Storing Telegraf Telemetry in New Relic One — Learn how to use an output plugin that extends the Golang Telemetry SDK to ingest data with Telegraf and New Relic One.

New Relic sponsor

An Introduction to AWS Lambda Functions in Go — This detailed look includes forays into logging, triggers (including API Gateway), using Context, and versioning the functions.

Paschalis Tsilias 3rd degree connection

Refactoring for Better Testability — The first in a series of posts on refactoring existing code for testability. This is good practice! ;-)

Bartłomiej Klimczak

How to Build Your Own Serverless Subscriber List with Go and AWS — How to build an email subscription sign up flow (complete with double opt in) using Lambda and DynamoDB. Can’t be bothered? Simple Subscribe is Victoria’s project with it all done for you ;-)

Victoria Drake

Go Constants and JSON: To Iota and Back — Constants and iota are very useful…up until you combine them with JSON serialization. Thankfully, there’s a Marshal (and Unmarshal) in town to help.

Bojan Živanović

Checking If The Pi Is Done — Build a basic cluster monitoring system using a laptop, some Raspberry Pis, and Go’s RPC package.

Alex Ellis

Building a WebRTC Video and Audio Broadcaster in Go using ION-SFU and Media Devices
Tanner Gabriel

🛠 Code & Tools

go-getter: Download Things from Various Sources with a URL — Reading the title you might think.. “so it’s an HTTP client then?” Not exactly. A GitHub URL can become a git URL, local filenames work, S3, Mercurial and BitBucket URLs all work as intended too.

HashiCorp

Peer Calls: Group Peer-to-Peer Video Call System — Want to get in on the action of rolling out a video chat service? The core of this one is written in Go. You can play with an example deployment here.

Peer Calls

eBPF: A Pure Go eBPF Library — Utilities for loading, compiling, and debugging eBPF programs.

Cloudflare and Cilium

Live Workshop: Getting Started with OpenTelemetry in Go

Lightstep sponsor

p5: An Initial Port of Processing to Go — It’s early days for this project, but this brings some initial concepts from Processing, a popular visual programming system, to Go.

Binet and de Carvalho

Fleets: Automatically Delete Tweets, Retweets, and Likes — A new, craftily-named library for cleaning up your Twitter account that leans heavily on the Anaconda Go Twitter library.

Karan Goel

gdriver: Download Large Files From Google Drive — A command-line tool for downloading large files from Google Drive (using API v3).

Marcin Tojek

h2go: Apache H2 Go SQL Driver — Experimental, right now.

JM Robles