#285 — October 25, 2019

Read on the Web

Golang Weekly

Benchdraw: A CLI to Turn Benchmark Output Into Pictures — Create easier-to-read picture plots from data output in Go’s benchmark output format.

Jack Lindamood

Fuzz Testing in Go — Fuzz testing (or fuzzing) is a testing technique where a program or function is provided with large amounts of random input in order to test its resilience. This post demonstrates the basic use of a fuzzing tool on Go code.

Vincent Blanchon

Try the Fastest CI/CD Solution for Free — Faster CI/CD means greater productivity for your team and a better experience for your users. Automate your CI/CD pipeline with Semaphore to release 2x faster than with other platforms.

Semaphore 2.0 sponsor

Dapr: Microsoft's New, Portable, Event-driven, Runtime for Distributed Apps — Dapr provides building blocks for microservices and is language-agnostic (though it’s built in Go which is kinda cool). It also provides bindings for common infrastructure items, such as pub/sub messaging. There’s more detail in the announcement blog post.


Go 1.13.3 and Go 1.12.12 Released — Two new point releases on the back of those we mentioned last week, though focused on fixes this time rather than security updates.

Alex Rakoczy

Handling Panics in Go — From their “How To Code in Go” series (which is excellent), you’ll learn about the structure of panics along with how to detect and recover from them.


Proposal: Scaling The Go Page Allocator — The claim is the page allocator has scalability issues in apps “with a high rate of heap allocation and a high GOMAXPROCS” This is pretty techy, so govern yourself accordingly.

Michael Knyszek & Austin Clements

💻 Jobs

Software Engineer / Founding Teammate — A well funded, fast-moving startup that is changing the way large teams collaborate on documents. Think: GitHub for documentation.


Stream Is Hiring a Go Engineer in Beautiful Amsterdam — Enjoy building high-performance infrastructure at scale? Apply to work in our Stream Amsterdam office now.


Have You Tried Vettery? — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.


📘 Articles & Tutorials

Creating Tray Icons using Go in Windows — A detailed demonstration of creating a tray icon that persists in the Windows taskbar while your program is running.

Hanjun Kim

Writing a TCP Scanner in Go — Covers the basics of creating a simple port scanner with Go. I’d advise running it against your own machine(s) and not Google though 😬

Bartłomiej Klimczak

Automate Your Release Notes With Next Release — With three clicks, start automatically generating release notes from your GitHub pull requests, share to Slack, and cut releases effortlessly.

Next Release sponsor

▶  Discussing Caching in Go with Manish Jain and Karl McGuire — Four Go developers discuss the role of caching. What are caches, hit rates, admission policies, and why do they matter?

Go Time Podcast podcast

Migrating pkg/errors to Go 1.13 Errors — One developer’s experience in migrating towards Go 1.13’s approach to error handling.

Paweł Słomka

A Small Irritation with Go's crypto/tls Package

Chris Siebenmann

Fun with Concurrency in Golang — Handling multiple web servers, including graceful shutdowns, in order to demonstrate Go’s concurrency story.

Alex Sears

How to Parse a JSON Request Body in Go

Alex Edwards

🛠 Code & Tools

go-sx: Simple SQL Extensions for Go — Aims to eliminate boilerplate around working with transactions, error handling, scanning and iterating over query result sets, and more, but without being an ORM.

travel audience

yaml2go: Convert YAML to Go Type Definitions — You can either use it as an online tool, as here, or grab a copy and deploy it yourself.

Prasad Ghangal

Convert cURL Commands to Go Code — Uses net/http and puts all the headers in, etc. It also supports Python, PHP, Node.js, and other languages.

Nick Carneiro

Managed PostgreSQL by DigitalOcean

DigitalOcean sponsor

Slug: URL-Friendly Slug Creator with Multiple Language Support — For example: slug.Make("Hellö Wörld хелло ворлд") creates "hello-world-khello-vorld".


Go JOSE: An Implementation of JOSE (JavaScript Object Signing and Encryption) Standards — Covers technologies like JSON Web Encryption (JWE), JSON Web Signature (JWS) and the perhaps best known JSON Web Tokens (JWT).


go-imap: An IMAP4 Library for Clients and Servers

Simon Ser

SFTPGo: A Full Featured SFTP Server Built in Go


⚡️ Quick Releases