#290 — November 29, 2019

Read on the Web

Golang Weekly

Chroma: A Pure Go General Purpose Syntax Highlighter — Chroma brings most of the features of Pygments, pretty much the Python-based standard in the syntax highlighting field, to Go and can even use the lexers and styles already created for Pygments.

Alec Thomas

Why American Express Has Chosen Go — A look at why American Express decided to use Go for some of its most critical applications. They’ve also written up a case study for the new go.dev site.

Benjamin Cane

Start 2020 Strong. Ultimate Go Training: Charlotte, NC - January 27-29, 2020 — Take advantage of the early bird pricing and attend Bill Kennedy's Ultimate Go Training in Charlotte, North Carolina in January 2020. If you have a team of 5 or more engineers request a group discount here.

Ardan Labs sponsor

Oracle Pits GraalVM Against Google Go? — This seems like a bit of an unusual gauntlet to throw down, but apparently Oracle are positioning GraalVM (a multi-language supporting, polyglot VM they’ve been building) as being better than Go because you get interoperability with the Java ecosystem.. OK, then.. 😬

Paul Krill

▶  Discussing Compilers and Interpreters with Thorsten Ball and Tim Raymond — What are the roles of compilers and interpreters, what do they do, and what’s involved with writing them in Go? As Thorsten is author of the popular Writing an Interpreter in Go book, this is an interesting episode if you have the time.

Go Time Podcast podcast

macOS Go Binaries and Installer Identifiers Are Changing — The macOS Go package identifier namespace is changing from com.googlecode.* to org.golang.*. This is a very minor thing unless your infrastructure is relying upon the macOS Go installer having a specific identifier.

Andrew Bonventre

💻 Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.


Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.


📘 Articles & Tutorials

Simple Dependency Injection in Go with Fx — You don’t see much about dependency injection in Go, but its concepts can apply nicely. Fx is a handy tool to make DI easy.

Yage Hu

What Tracking Down Missing TCP Keepalives Taught Me About Docker, Go, and GitLab — An in-depth recap of debugging a bug in the Docker client library.

Stan Hu (GitLab)

Creating a Bloom Filter with Go — If you’ve never encountered a Bloom filter before, I recommend having a play as they’re not complicated but are rather interesting in how they let you store data in a performance and memory efficient way, at the price of false positives. Here’s another example of how they work.

Dylan Meeus

The Art of PostgreSQL: A Book to Learn How to Best Use SQL from Your Go Application — The book that teaches SQL to developers: learn to replace thousands of lines of Go code with simple SQL queries.

The Art of PostgreSQL sponsor

A Closer Look at The sync Package — If you’re only familiar with sync.Mutex and sync.WaitGroup, then you’ll definitely learn something here. I feel like sync.Cond is something I should use more.

Teiva Harsanyi

▶  How to Shrink a Go Executable by 70% in 30 Seconds — This old tutorial goes into more depth.

Peter Cooper

GraphQL Observability with Go Using Open-Source Tools — IBM’s Watson Media division reveals their GraphQL observability stack that’s built around Go, Prometheus, Jaeger and Grafana.

Szabolcs Gelencsér

go vet's -c Optiongo vet is a built-in command that prints out ‘suspicious constructs’ in Go code.. and it supports a ‘context’ option for showing a number of lines around such constructs.

Damian Gryski on Twitter

▶  From Java to Go, One Team's Journey — Nexuzhealth is a Belgian healthcare software company who provide software to 30 hospitals in Belgium. After 20 years on Java, they did a big rebuild in Go – here’s the how and why.

Dylan Meeus

🛠 Code & Tools

Secure: HTTP Middleware for Some 'Quick Security Wins' — Covers areas like content security policy, SSL redirects, allowing certain hosts, setting a referrer policy, etc.

Cory Jacobsen

TinyGo 0.10 Released: The Go Compiler for 'Small Places' — LLVM 9, improved CGo support, blocking select support, plus support for some new boards like the Adafruit Feather M4 and the X9 Pro and PineTime smartwatches.


Hugo 0.60: The Fast Go Framework for Statically Building Sites — Hugo has switched to a new Markdown library Goldmark.

Hugo Team

Speed Up Frontend Development with FaunaDB's Auth and Native GraphQL

FaunaDB sponsor

go-sqlbuilder: A Flexible SQL String Builder Library — Focused mostly on MySQL and Postgres. Includes basic ORM type support via structs.

Huan Du

Gin 1.5: The Popular Go HTTP Web Framework


gtrace: An Experimental System Call Tracer for Linux x86-64

Agis Anastasopoulos

PNGR: Dockerized (Postgres + Nginx + Go + React) — Starter kit for a web app that includes user and session management, JWT authentication, and a basic CRUD example.

Karl Keefer