#318 — June 26, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

fgprof: A Sampling Profiler for Gopprof is the go-to tool for profiling Go code, but it only profiles ‘on-CPU’ time. fgprof can work alongside pprof and measure ‘off-CPU’ time too (such as that spent on IO) so you can get the whole picture.

Felix Geisendörfer

binclude: Another Way to Include Static Files into Go Binaries — Last year we linked to a proposal to make the embedding of static assets/files into Go binaries an official Go feature, but it hasn’t yet come to fruition. binclude boasts various advantages over pkger, go.rice, and Broccoli but you’ll need to see what fits your use case best.


Remote Instructor-Lead Go, Docker, Kubernetes, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, and Python. We’ve trained over 5,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

GoPlus: A 'Go+' Language for Data Science — A more script-like language that is fully Go-compatible and adds some syntactic sugar around collections and data science operations.

Qiniu Cloud

Sourcegraph's Route to Performance Improvements with Go — This is, basically, a detailed changelog of porting some back-end services from TypeScript to Go, resulting in performance improvements across the board.

Eric Fritz (Sourcegraph)

💻 Jobs

Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.


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.


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


📚 Articles & Tutorials

▶  Bitesize Go Syntax Screencasts with Bill Kennedy — Bite sized extracts from training sessions by Go trainer extraordinare Bill Kennedy. So far we get videos on variables, type conversions, strings, struct, and LiteralStruct.

Bill Kennedy

Why You Should Be Using errgroup.WithContext() in Your Go Server Handlers — Parallelizing workers in Go can shave off milliseconds of latency, but can also add some deadlock risks. Mitigating those risks isn’t difficult, thanks to error groups.

Scott Blum

How to Create Your Own Terraform Plugin Provider

Vincent Composieux

Proactively Monitor the Performance of Your Golang Apps End-To-End — Datadog correlates logs and traces at the level of individual requests, allowing you to quickly troubleshoot your Golang application.

Datadog sponsor

In Go, The Compiler Needs to Know The Types of Things When Copying Values — You may be thinking “OK…so?” but this truth has implications for how generics might work.

Chris Siebenmann

How to Handle Signals to Gracefully Shutdown an HTTP Server — Running a Go web server in production? You should read this.

Rafał Lorenz

DigitalOcean's 'How To Code in Go' eBook — Written by Mark Bates, Cory Lanou, and Timothy J. Raymond, this Creative Commons-licensed 600 page book is very much aimed at beginners.


Experimenting with Error Handling via Generics


Playing with Go Schedulers on a Dual-Core RISC-V — This is one to read for fun. The author says: “We have some fun with Go, RISC-V assembler, debugger and underlying hardware which is what you can expect from bare-metal programming.”

Michał Derkacz

🛠 Code & Tools

Worldwide: A GameBoy Color Emulator Written in Go — I downloaded, compiled and ran it on macOS with a classic Tetris ROM and it worked - seems good!

Akihiro Otomo

Compress: Optimized Compression Packages for Go — Covers a variety of compression standards like zstandard, S2, gzip, and zip.

Klaus Post

Beta Launch: Code Performance Profiling - Find & Fix Bottlenecks

Blackfire sponsor

Survey: A Library for Building Interactive Prompts — Got questions to ask your users? Build interactive prompts with full support for Windows and POSIX terminals.

Alec Aivazis

go-imap 1.0.5: An IMAP4 Library for Clients and Servers

Simon Ser

grpc-go 1.30: The Go Language Implementation of gRPC


tcardgen: Generate A Twitter 'Card' (OGP) Image for Your Hugo PostsHugo is a popular Go-powered static site generator if you’ve not yet played with it.

Aya Igarashi