#342 — December 11, 2020

Unsubscribe  |  Read on the Web

Go Weekly

Using Bitmasks for Nicer APIs — Using bitmasks can lead to more concise, readable code when done right. After this read, you’ll be saying, “Color me zli.Cyan!” A well put together and explained argument and example here.

Martin Tournoij

How to Build a Serverless App using Go and Azure Functions — Go isn’t a first-class language on Azure’s serverless platform but the recently added Custom Handlers feature makes it possible to run Go there. This tutorial walks through how it works, how to do it for yourself, and how to build a simple GIF search tool for Slack with Go.

Abhishek Gupta

Redis 6.0 on RedisGreen — SSL encryption, key size tracking, memory mapping, online upgrades, and more.

RedisGreen sponsor

▶  What to Expect When You’re NOT Expecting — A podcast discussion between expert Go debuggers discussing what you need to do when your code simply isn’t doing what you want it to. (52 minutes.)

Go Time Podcast podcast

Benchmarking the Hugo Static Site Generator on Apple's M1 — More fun with Apple’s M1 chip, this time running Hugo’s set of benchmarks showing where one chip clearly outshines the other.

Hugo Team

  • On the topic of the M1, Brad Fitzpatrick is wondering when Apple's promised Apple Silicon patches for Go are going to turn up..
  • FOSDEM — a popular open source event — is taking place online in 2021 and there will a Go specific track (a.k.a. 'devroom'). Want to speak? Submissions are now being accepted.

📘 Tutorials and Stories

Writing Apache Spark UDFs in Go — Go isn’t the most natural fit for working with Spark given its Scala and JVM roots, but with a little tinkering it’s possible to write user defined functions in Go and wrap them up into a JAR!

Karl Matthias

Deploying a Hugo Site to AWS Lightsail Containers — If you’re not an AWS addict like me, Lightsail is AWS’s “EC2 made simple and bundled up with bandwidth like a VPS” service. Lightsail Containers is similar simplification for running containers on AWS.

Jeremy Morgan

How to Build and Push Docker Images with Go — Not just for Go but actually with Go by writing against Docker’s Go SDK.

Andy Yeung

Build a Single-Page App with Go and Vue

Okta sponsor

How to Handle Missing Fields From a Struct? — Pick one: zero value or nil. (Don’t worry, Go will pick one if you don’t…)

Mohammad Aziz

Integration Testing for AWS Lambda in Go with Docker Compose — It’s not a simple setup, but it’s doable and provides a way to end-to-end test your serverless code.

Luciano Mammino (Buddy)

Generating the Repository Pattern in Go
Steven F

💻 Jobs

Join the AWS Lambda Team (Seattle, Washington) — We're looking for gophers who enjoy teamwork, global scale services, and building the next generation of AWS Lambda. #serverless


Find Your Next 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.


🛠 Code & Tools

gosnmp: A Simple Network Management Protocol Library — SNMP is a protocol for managing or monitoring data about devices on IP networks (e.g. routers, servers, printers). gosnmp lets you query and set data right from Go.


Gnomock: Test Without Mocks by Using Ephemeral Docker Containers — The idea here is that rather that mocking services, you can use Docker to spin up an entire dependency stack to test against instead. Presets for things like Redis, MySQL, Postgres, etc. are available.

Yury Fedorov

Automate Invoicing With Golang Using UniPDF — Automate your invoicing system using the power of Golang by using the convenient pre-built methods provided by UniPDF.

UniDoc UniPDF sponsor

phpgrep 1.0: Syntax-Aware grep for PHP Code — I always like to see how Go (and increasingly Rust) can be used to make other programming languages better.

Iskander (Alex) Sharipov

jsondiff: JSON Diffing Library Based on RFC 6902 (JSON Patch)RFC 6902 defines a JSON structure for expressing patching operations on other JSON documents.

William Poussier

OmniParser: A Go ETL System — Ingest CSV, text, JSON, and others, in a streaming fashion, and transform it into JSON based upon a schema. There’s an online demo here showing off some use cases.

JF Technology

basiclander: A Lunar Lander Clone for the Terminal — Lunar Lander was a 1979 Atari game where the player had to land a space craft on a specific spot. Here’s a terminal based version written in Go, or you can ssh direct to a running instance (which uses sshtargate to work).

Trevor Slocum

GoCrest: Hamcrest-like Matchers for Go — Hamcrest matchers are functions that make tests more readable when asserting things like equality, inclusion, and much more.

Matt Corby

go-zero 1.1: A Web and RPC Framework — Seems to be particularly popular in China.