#314 — May 29, 2020

Unsubscribe  |  Read on the Web

🐱 Some fun side projects at the end of the issue this week, especially if you like dancing gophers.. 😄

Golang Weekly

RobotGo 0.90: Native Cross-Platform GUI Automation — We’ve linked this a few times over the years but it’s just had a huge update. Control the pointer, keyboard, read the screen, etc.. you could use this to automate many computer-based jobs with enough creativity 😁 0.90.0 release notes. The examples give a good sense of the API too.

V Caesar et al.

Diamond Interface Composition in Go 1.14 — Go 1.14 permits embedding interfaces with overlapping method sets (specified here) and Dave quickly looks at what that means.

Dave Cheney

Secure Your Go Application with Sqreen — Join us and learn more about Go application security best practices and how to secure your Go apps with Sqreen.

Sqreen sponsor

Micro: A Go-Powered Terminal-Based Text Editor — Now aiming to be “somewhat of a successor to the nano editor”, Micro is now a pretty mature and good example of building a text editor in Go. 2.0.4 just dropped.

Zachary Yedidia

What Are Goroutines and How Big Are They? — Goroutines are frequently called ‘lightweight’ threads, but just how light? Paschalis goes poking and benchmarking to find out more.

Paschalis Tsilias

💻 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.

SKOOL

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.

X-Team

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

Vettery

📚 Articles & Tutorials

Instrumentation in Go — Thoughts on how Go programs should be instrumented “in a clean and flexible way.” Then once you’ve got the basics down, you could move on to using things like OpenTelemetry.

Sergey Kamardin

Diving Into Go by Building a CLI Application — A straightforward code-heavy tutorial aimed at someone “somewhere between a beginner and an intermediate.”

Eryb

Go and CPU Caches — How can understanding the basics of processor architecture help us in optimizing performance?

Teiva Harsanyi

Find & Fix Code Performance Issues — Install in minutes. Profile & understand Go code’s behavior & performance. Browse through appealing graphs.

Blackfire.io sponsor

A Book Review of Writing an Interpreter in Go — Thorsten Ball’s Writing A Compiler in Go gets lot of kudos but is it worth the money? Joe, a total newcomer to Go, decided to dive in and learnt a lot along the way, much of which he shares here.

Joe Previte

Optional JSON Fields in Go — If you need to set default values, this post points (HA!) out a couple of approaches, along with their pros & cons.

Eli Bendersky

Build a Go Application using OpenShift Pipelines — You only need this if you’re in the OpenShift world. It’s an introduction to using the OpenShift and Tekton-based Pipelines CI/CD system as part of a Go app building process.

Don Schenck

maybedoer: The Maybe Monoid for Go

Christine Dodrill

Immutability Patterns in Go

Raul Jordan

🛠 Code & Tools

Introducing Athenadriver: An Open Source Amazon Athena Database Driver for Go — Amazon Athena is a service for doing analysis directly on data in S3 using standard SQL. Uber has created a Go driver that is database/sql compatible.

Uber Engineering

SDNS: A Lightweight, Fast Recursive DNS Server with DNSSEC Support — We first linked this two years ago but this week it’s reached version 1.0. Congrats.

Yasar Alev

go-git 5.1: An Extensible Git Implementation in Pure Go“Manipulate git repositories at low level (plumbing) or high level (porcelain), through an idiomatic Go API.”

go-git

Optimize Your Golang Apps with End-To-End Tracing in One Place

Datadog sponsor

A Collection of Technical Interview-Style Questions Solved with Go — Things like ‘implement a doubly linked list’, ‘count the number of digits in a number’, etc. Not examples to be taken as the best solution but worth revising if you think you’ll need to code these sorts of things on the fly at some point.

Raed Shomali

go-mod-outdated: A Tool to Find Outdated Dependencies

Pantelis Sampaziotis

🎲 Fun and Side Projects

gopherdance: Some Dancing Gophers in Your Terminal — The creator is working on the PIXterm ANSI art library and this is a neat proof of concept.

80at8

Netris: A Multiplayer Tetris Clone — Built in Go and designed to be played over SSH (indeed, you can ssh netris.rocketnine.space right now, but there were no other players when I tried it).

Trevor Slocum

Go-Powered Autopilot for Docking the SpaceX Dragon Capsule — Calm down, this isn’t for the real SpaceX capsule, but for this official online simulation of the docking process. Still very cool though :-)

Martin Bertschler

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. 😄