#352 — March 5, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Creating a Self Contained Blog Server with Go 1.16 — Brian has been playing with the new embedding functionality in Go 1.16 and has come up with a practical way to create a Web server that embeds all the static assets needed to serve up a site in a single binary (though the actual content is pulled from elsewhere, but compiling everything in could be a fun experiment.) :-)

Brian Ketelsen

An Introduction to Generics — A nice tutorial that takes a step approach to teach generics starting from duplicating code for types, then to interface{}, and finally to generics. And you can run it all in the go2go playground.

Learn Go With Tests

Redis 6.2 Now Available on RedisGreen — The new release includes several minor commands and new options, and is available to try for free on RedisGreen.

RedisGreen sponsor

▶  A Practical Understanding of Scheduler Semantics — Esteemed Go trainer Bill Kennedy gave a talk for the Golang NYC meetup recently covering what you need to understand to create effective multi-threaded concurrent code. An hour long session that focuses more on concepts under the hood than Go code itself.

Bill Kennedy

Lift-Off for Wasmer Go Embedding 1.0 — Good news though possibly hard to understand if you’re not into WebAssembly (the portable bytecode format). Basically, Wasmer is a runtime for WebAssembly, and this 1.0 news pushes forward Go as a first-class language for embedding Wasmer to run WebAssembly code within Go programs.

Ivan Enderlin

📖 Network Programming with Go by Adam Woodbeck is a forthcoming book to be published by No Starch later this month. I've been sent an early copy to flick through (with no obligation to post about it) and it looks like it might be appreciated by some of you. I'll do a full review in a future issue.

💻 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 the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.


Find Your Next Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.


📘 Tutorials and Stories

Putting Text on an Image with Go — A developer new to Go decided to use Go to dynamically create images with quotes on them. This is both how he did it and also a project which explains how to use it on Google Cloud Functions, Heroku, or with Docker.

Josemy Duarte

Finding 'Evil' Go Packages — The specific search, in this case, is for packages ‘typosquatting’ popular packages. The search revealed two suspicious repos, one of which has seemingly been taken down by GitHub.

Michael Henriksen

The Definitive Guide to Feature Management

LaunchDarkly sponsor

Take Your First Steps with Go with Microsoft — It might not suit you but could be a handy link to pass on to anyone you know who would like to learn Go. This suite of tutorials from Microsoft goes from absolute basics and covers tooling as well as Go language basics.


Using Delve to Debug Go Programs on Red Hat Enterprise Linux — From RHEL 8.2 onward the Delve debugger will come with the Go toolchain via the go-toolset package.

Derek Parker (Red Hat)

A Few Go JSON Gotchas That Annoyed Me But I Have Learned to Deal With — In short, error checking struct tags and JSON input is on you.

Ulaş Türkmen

🛠 Code & Tools

generativeart: Go Code for Creating Generative Art — Go full psychedelic with this library by creating swirls, skies, mazes, spirals, and more. In related news, Generative Art in Golang is an ebook we've seen recently on this very topic and we hope to review it soon.

Avatar jdxyw

gosec 2.7: A Go Code Security Checker — Runs a series of rules over some Go code’s abstract syntax tree to spot potential issues.

Secure Go

Inlets 3.0: Expose Your Local Endpoints to the Internet — A ‘cloud native tunnel written in Go’ that combines a reverse proxy and WebSocket tunnels to expose local endpoints to the public Internet via an exit node. v3.0.0 dropped recently.

Alex Ellis

A Better Way to Build Internal Tools — Build internal apps without the mundane, boring bits (wrestling with UI libraries or hacking together data sources & APIs).

Retool sponsor

sqlc 1.7.0: Generate Type Safe Go From SQL — sqlc supports a nice set of features, including transactions, array data types, and various migration tools. 1.7.0 adds initial support for Windows.

Kyle Conroy

sq: A General 'Swiss-Army' Tool for Data — There are lot of multi-tool style data tools around (such as xsv for CSV or jq for JSON) – think of this one as being like jq but for all sorts of formats and systems, and it’s written in Go. GitHub repo.

Neil O'Toole

lungoDB: A MongoDB-Compatible Embeddable Database for Go — Imagine something like SQLite but MongoDB-flavored and aimed at Go developers. There are some use cases outlined in the README here.

Joël Gähwiler

RoadRunner 2.0: A High Performance PHP Application Server — PHP, you say? This is a Go-based system that keeps PHP under control with a load balancer and process manager built in. GitHub repo.


Song2: Fast Gaussian Blur in GoWoo-hoo. A linear time Gaussian blur implementation. Nice musical reference in the project name too, although I was more of an Oasis fan...

Masaya Watanabe