#312 — May 15, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

What's Coming in Go 1.15 — We linked to a Go 1.15 slidedeck a couple of weeks ago, but I know most of you prefer articles, so here you go! You know about smaller binaries, but did you know there’s a new linker?

Benjamin Hoyt

'Ensmallening' Go Binaries by Prohibiting Comparisons — Most people don’t need to squeeze Go binary sizes by this mild extent, but it’s an interesting spelunk nonetheless into how Go’s compilation process feeds a lot of sugar to your app, causing it to be a bit fatter and how you can put it on a (very modest) diet.

Dave Cheney

Find & Fix Code Performance Issues — You can’t improve what you can’t measure. Install in minutes. Profile and understand Go code’s behavior and performance. Browse through appealing graphs. Blackfire.io is now available as Public Beta.

Blackfire.io sponsor

go-elasticsearch: The Official Go Client for ElasticsearchElasticsearch is a verrry popular search engine/document database used to implement search features in apps, and with v7.7.0 the Go client has added support for efficient, parallel ‘bulk indexing’ with very high ingest rates (example here.)

elastic

immudb: A Lightweight, High-Speed Immutable Database — Data can’t be changed in this database so it’s well suited for storing every update to other databases for auditing purposes, perhaps, or maybe log streams or public certificates. Written in Go.

CodeNotary

Go 1.14.3 and Go 1.13.11 Released — Minor point releases fixing a handful of minor bugs.

Andrew Bonventre

💻 Jobs

Golang Developer at X-Team (Remote) — Join X-Team and work on projects for companies like Riot Games, FOX, Coinbase, and more. Work from anywhere.

X-Team

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

Vettery

📚 Articles & Tutorials

Faking stdin and stdout in Go — Redirecting standard input and output is common in testing situations but has other use cases as well.

Eli Bendersky

A Beginner Friendly Introduction to PrometheusPrometheus is a popular system monitoring and alerting system that’s built in Go and which you can therefore extend and enhance with Go too.

S Santhosh Nagaraj

How I Write My Unit Tests in Go Quickly — This covers everything from designing for easy testing to mocks to helpful libraries.

Ilya Kaznacheev

The Go Security Checklist

Sqreen sponsor

Building Uber’s Go Monorepo with Bazel — Uber’s monorepo is the largest that’s using Bazel, leading to many challenges leading to many opportunities for Uber to work with Bazel and improve the platform.

Uber Engineering

Getting My Head Around What Things Aren't Comparable in Go — Builds upon Dave Cheney’s featured article above.

Chris Siebenmann

🛠 Code & Tools

Termdash: A Go Terminal Based Dashboard System — A terminal-based dashboard before that supports window resizing, customizable layouts, dynamic layout changes at runtime, and more.

Jakub Sobon

goaction: Write GitHub Actions in Go“The idea is: write a standard Go script, one that works with go run, and use it as a GitHub action.”

Eyal Posener

Getting Started with OpenTelemetry in Go

Lightstep sponsor

Shotizam: Analyze The Size of Go Binaries — Shotizam gives you a SQLite prompt with the results so you can use SQL to query them.

Brad Fitzpatrick

Excelize 2.2: A Library for Reading and Writing Excel Files — Read and write XLSX files, set and read cell values, add charts. 2.2 is a key step forward with easier access to numerous features.

360 Enterprise Security Group, Endpoint Security, inc.

jsonparser 1.0: An Alternative JSON Parser for Go — Schema-less so it’ll parse whatever you throw at it. Claims to be 10 times faster than encoding/json.

Leonid Bugaev

Squirrel 1.4.0: Fluent SQL Generation for Go — Think about chainable methods to build a SQL query. For example: sq.Select("*").From("users").Join("emails USING (email_id)")

Masterminds

sqlc 1.3.0: Generate Type Safe Go From SQL — sqlc supports a nice set of features, including transactions, array data types, and various migration tools. 1.3.0 just dropped.

Kyle Conroy

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

🎲 Fun and Side Projects

Profefe: Continuously Collect Profiling Data for Long-Term Postmortem Analysis — Vladimir writes in:

“For the past couple years I’ve been working on profefe, a system and an agent-library for continuous profiling for Go, initially inspired by Google’s Stackdriver Profiler. (..) Since this is a hobby project, I’m interested in feedback and collecting use cases, outside of those I came up for my personal needs.”

Vladimir Varankin

Orchestra: A New Library to Manage Long Running Go Processes

Stephen Afam-Osemene

If you want to get into a section like this in a future issue, let us know if you work on any interesting Go related projects you think we should include. Bonus points for games, musical, or anything with a nice visual angle we can include, but everything welcome. 😄