#300 — February 21, 2020

Unsubscribe  :  Read on the Web

Golang Weekly

pkg.go.dev To Be Open Sourced — The “central source of information about Go packages and modules” is set to have its code released in a few months/weeks, and there is some rejoicing. Here’s more on where pkg.go.dev is headed.

Russ Cox

Advanced Go Concurrency — Goes beyond the usual candidates (goroutines, using context and sync) and digs into x/sync and things like singleflight and errgroup. If you’ve not dug far into concurrency in Go, you should pick up a thing or two here.

André Eriksson

Do You Need Go, Docker or Kubernetes Training? — We offer on-site corporate training for engineers that want to learn Go, Docker and/or Kubernetes. Having trained over 5,000 engineers, we have carefully crafted these classes for students to get as much value as possible.

Ardan Labs sponsor

Go Tops List of In-Demand Software Skills — The IEEE have picked up on a report from Hired (the recruiting marketplace) which places Go at the top of the pile when it comes to ‘most in-demand coding languages’ worldwide, though Scala(!) just pips it in the Bay Area.

IEEE Spectrum

ESR's Notes on the Go Translation of Reposurgeon — A few years ago, Eric S Raymond thought Go could replace C in most situations, but now he’s done a rather extensive write up of his experiences in porting a complex program from Python to Go. The result is faster and easier to read, but he ran into a variety of problems.

Eric S Raymond

What's Involved in Building a 'Roguelike' in Go — A “roguelike” is a type of fantastical game, a la NetHack or Diablo. Hunter wrote this enjoyable conversational piece on game design in Go just prior to being eaten by a dragon.

Hunter Loftis

💻 Jobs

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


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


📘 Articles & Tutorials

Moving Towards Domain Driven Design in Go — An abstract (meaning, not runnable) tutorial where the DDD code evolves from the tightly coupled version and why evolving to the domain approach is recommended.

Jon Calhoun

What's New In Go 1.14: Test Cleanup — 1.14 adds a Cleanup() method to the testing objects that is run at the end of each test. This is good for cleaning up a database, for example.

Gopher Guides

Rendering a Bloom Effect in Go — Basically makes things look like they’re glowing.

Rémy Mathieu

▶  Modeling MongoDB Documents with Native Go Data Structures — How to use the MongoDB Go driver to add BSON annotations to your native Go data structures, providing a way to seamlessly interact with data in the app as well as the database.

Nic Raboy

Video for Your Go App — Integrate seamlessly into your product's UI. Mux Video is an API-first platform that makes it easy to build beautiful video that streams everywhere.

Mux sponsor

Running GoLand on a Raspberry Pi 4 — Someone at JetBrains wanted to see if they could get GoLang (a popular commercial Go IDE) running on a Raspberry Pi 4.. turns out, you can, if you’re okay with a pretty lengthy startup time.

Florin Pățan (JetBrains)

▶  Discussing Interfaces in Go — The latest episode of the Go Time podcast digs into interfaces at length, what they are, how they’re being used, plus tips for how you can use them too.

Go Time Podcast podcast

🛠 Code & Tools

Spinner: 70+ Configurable Terminal Spinner/Progress Indicators — If you want to add a little pizazz to your CLI app when it’s processing or loading something, you can’t ask for more variety than this. Check out all of the GIF demos!

Brian Downs

Operator: Go Operators as Functions — Implements logical, arithmetic, bitwise and comparison operators as functions (like Python’s operator module). Includes unary, binary, and nary functions with overflow checked variants.

Ben Golightly

Hugo 0.65.0: The Go-Based Static Site Builder — If you’re a fan of Hugo for building sites, this seems to be a significant release if you want more flexibility in how pages are managed.

Hugo Team

Learn How Pact Makes Testing Your APIs and Microservices Fast + Easy

Pactflow sponsor

Nodebook: A Minimalist Multi Language REPL with a Web-Based UI — I think this started life as a Node specific REPL but it now supports Go, C, C++, Elixir, and more. It’s principally written in Go, though.

Jérôme Schneider

go-memdb: An In-Memory Database Built on Immutable Radix Trees


goxygen: Generate a Go and MongoDB-Backed React Project in Seconds — An opinionated full stack app generator that builds a skeleton backend that uses Go and MongoDB with React on the front end.

Sasha Shpota

Kivik: A Common Interface to CouchDB or CouchDB-like Databases for Go — A mature library that has just been updated to use modules.


go-blurhash: A 'BlurHash' Implementation in Pure Go — A BlurHash is an ultra compact representation of a placeholder for an image that, as a blur, vaguely represents the original image visually.


REST: An HTTP Client Specifically for RESTful APIs — SendGrid uses this in their own client library.

Twilio SendGrid

Twirp: A Simple RPC Framework with Protobuf Service Definitions — Think gRPC but without the HTTP server and transport stuff. This runs direct on net/http and can even run over HTTP 1.1.


SeqKit 0.12: A Go Toolkit for FASTA/Q File Manipulation — Perhaps a handful of you will find this useful but it’s neat to see Go being used for working with biochemistry. FASTA/FASTQ are formats for storing “nucleotide and protein sequences”..

Wei Shen