#316 — June 12, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

The VS Code Go Extension Joins the Go Project — This brings the Visual Studio Code (allegedly the most popular editor in the Go world) extension into line with other editor-based initiatives from the core team and should prove to make that popular IDE even more so amongst Gophers.

The Go Team

Go 1.15 Beta 1 Released — Four months on from the release of Go 1.14 comes a glimpse at the next version of Go: 1.15. You’re encouraged to test this on your code and report any issues found. The draft Go 1.15 release notes show this to be a rather gentle, evolutionary release, although there is a new package time/tzdata for bringing platform independent timezone info into your app.

Alex Rakoczy

Remote Instructor-Lead Go, Docker, Kubernetes, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, and Python. We’ve trained over 5,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

The Use of Some Problematic Words Replaced in Go“There’s been plenty of discussion on the usage of these terms in tech. I’m not trying to have yet another debate. It’s clear that there are people who are hurt by them and who are made to feel unwelcome by their use due not to technical reasons but to their historical and social context. That’s simply enough reason to replace them.”

If this move stirs opinions in you, check out Russ Cox's response to the debate around it.

Filippo Valsorda et al.

▶  Phil Wadler on Featherweight Go and Go GenericsPhilip Wadler is a prolific computer scientist and programming language designer (Haskell, Orwell), particularly in the functional space. He was also involved in adding generic types to Java and here he discusses a potential design for generics in Go. Be warned, this is not entry level stuff! :-)

Phil Wadler

💻 Jobs

Want to Build a Platform Ecosystem in Go? — Skool is hiring its 2nd backend engineer in Los Angeles, CA. Go, PostgreSQL, Redis, Elasticsearch, Docker. Apply now.


Golang Developer at X-Team (Remote) — Join X-Team and work on projects for companies like Riot Games, FOX, Coinbase, and more. Work from anywhere.


Find A Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.


📚 Articles & Tutorials

Communicating Between Python and Go with gRPC — An example of defining a gRPC service with Python and a gRPC client in Go. The next post (not yet released) will flip the script.

Miki Tebeka

Containerize Your Go Developer Environment: Part 1 — The official Docker blog has kicked off a series about using Docker to bring some of the benefits of containers to Go development.

Chris Crone (Docker Inc.)

An Intro to Go for Non-Go Developers — Unless you just subscribed to this newsletter for research purposes, this probably isn’t for you, but it’s a pretty nice programmer-focused introduction you could forward to others, perhaps.

Ben Hoyt

Optimize Your Golang Applications In One Place With Datadog APM — Datadog APM enables you to visualize how requests propagate through your distributed infrastructure end-to-end. Try it for free today.

Datadog sponsor

Générer Un 'Flux' RSS en Go! — I saw Thibaut Barrère suggest you could train your French language muscles by enjoying a Go tutorial in French, and I thought.. why not! So here’s how to create an RSS feed with Go.. en Français. There’s plenty of code so you don’t really need to read it, either.

Adrian Tombu

Fatih’s Question: Fun With json.Unmarshal — The question is quite perplexing, showing what seems to be an inconsistency in unmarshalling. However, Dave straightens it out, pointing (HA!) us in the right direction.

Dave Cheney

Google Authentication with Goth — Interacting with Google’s APIs never feels straightforward to me, but Goth seems to help make it a bit easier from Go.

Puneet Singh

Exploring the Container Packages (list, ring, and heap) — Examples of the three collections, including how to iterate through them and some reasons to be cautious. The Ring struct is quite interesting.

▶  How Does it Feel to Develop Critical Web APIs in Go? — An online 20 minute talk from Women Who Code.

Alessandra Anyzewski

Handling Multidomain Requests with Simple Host Switch — This short example showcases the HTTP interface quite nicely.

Rafał Lorenz

🛠 Code & Tools

bimg: Fast High Level Image Processing Powered by libvips — Inspired by Sharp in the Node.js space, if you’ve got graphics you want to convert, crop, resize, watermark, or more, bimg may be for you.

Tomas Aparicio

GoFakeIt: A Random Fake Data Generator — A Go answer to Ruby’s exhaustive Faker library. GoFakeIt has over 120 functions for generating things like names, emails, locations, user agents, and more.

Brian Voelker

Colly 2.1: A Fast and Elegant Web Scraping Framework — Somehow we missed the v2.0 release of this popular Web scraping library so here’s 2.1. Colly now has Go module support, improved user agents, a way to check if a URL has already been visited, and more. GitHub repo.


Beta Launch: Code Performance Profiling - Find & Fix Bottlenecks

Blackfire sponsor

chess: Chess Package for Go — Provides common chess utilities such as move generation, turn management, checkmate detection, PGN encoding, and more.

Logan Spears

LearnGo: A Large Collection of Go Examples, Exercises, and Quizzes — A repo full of resources for a (paid) course but which you could use independently.

Inanc Gumus

🎲 Fun and Side Projects

George MacRorie sent this in to us:

Adagio: A Workflow Orchestrator

“Adagio is a workflow orchestrator written in Go and currently backed by etcd. Though it is intended to be extensible in regards to the backing database. Think of it like Sidekiq for workflows. Define your workflow as a directed acyclic-graph and send it to the control plane API. Then Adagio orchestrates the steps of your workflow across a distributed set of nodes.”

George MacRorie

If you want to get into a section like this in a future issue, let us know if you work on any interesting Go related projects you think we should include. Bonus points for games, musical, or anything with a nice visual angle we can include, but everything welcome. 😄