#321 — July 17, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

Generics and Parentheses — Using parentheses () to declare or instantiate types raised numerous concerns but the core team is now experimenting with square brackets [] instead – can you find any issues with this? For example, what might have previously been func f((T(int)) could instead be func f(T[int]) which, frankly, reads a lot better to us.

(Note: Annoyingly, a Google login is required to read Groups posts. If you don’t want to do this, here’s a screenshot of the post you can read instead with the text in the description.)

Robert Griesemer

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

Making Pong with Go and WebAssembly — Another fantastic example of using Go to build something that works in the browser by way of WebAssembly.

David Stoikovitch

Go 1.14.6 and Go 1.13.14 Released — 1.14.5 and 1.13.13 also came out a few days ago which covered two security fixes: data race in net/http and a X.509 verification issue on Windows. These two extra releases are more focused on minor fixes. More info here.

Go Forum

⚡️ Quick bytes:

  • We've not had time to go through them yet but 21 talks from GopherCon Europe 2020 are now up to watch on YouTube.
  • The Go core team are considering a change that would make Go's minimum requirement on x86 to be.. the Pentium 4 😁 Luckily gccgo would continue to support 387 floating point if you really need it.
  • GoLand 2020.2 is now in beta and here's everything that's new.
  • Hugo 0.74.0 is a significant release of the popular Go-based static site builder with huge JavaScript improvements including native and 'very fast' JavaScript bundling.

💻 Jobs

Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.

CrowdStrike

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.

X-Team

Find a Job Through Vettery — Use Vettery to connect with growing tech teams at startups and Fortune 500 companies.

Vettery

📚 Articles & Tutorials

How Are Deadlocks Triggered? — Go has a deadlock detector, but how does it work? And what are its limitations?

Vincent Blanchon

Unit Test Outbound HTTP Requests — Go makes it very easy to mock services, but Erik goes one step further and records external service responses so you can run your tests dependency-free.

Erik Winter

"Interface Smuggling", a Go Design Pattern for Expanding APIs — In short, check to see if a type supports a broader API and use it.

Chris Siebenmann

The Golang Security Checklist

Sqreen sponsor

PopCount on ARM64 in Go Assembler — A useful CPU extension, a really interesting architecture, and Go’s offbeat assembler

Barak Michener

Under The Hood of context — A guided tour through context’s source with the intention being to reduce the author’s worries about when and why to use it.

Vishnu Bharathi

Use Cases for Channels — This isn’t new but you might find it useful nonetheless and it’s delightfully code and example heavy.

Go101

▶  Your First Week with Go — Two developers (Jacquie Grindrod and DaShaun Carter) join Jon Calhoun to talk about their first week with Go, what worked for them and what didn’t.

Go Time Podcast podcast

🛠 Code & Tools

Afero: A Filesystem Abstraction System for Go — A single consistent API for accessing a variety of filesystems. Also lets you create mock and testing filesystems that don’t rely on disk at all.

Steve Francia

errcheck: Checking That You Checked for Errors 🐞 — Checking for errors is a fundamental part of the Go experience and this tool will help you check that you checked!

Kamil Kisiel

CockroachDB + GoLang — CockroachDB is a highly available distributed SQL db written in Go. Start building your Go app with CockroachDB for free.

Cockroach Labs sponsor

go-ordered-map: An Implementation of Ordered Maps — Think of a map that remembers the order key-value pairs were added, so you can iterate over map.Newest().

Jean Rougé

gRPCurl: Like curl, But for gRPC — A command line tool for interacting with gRPC servers.

Engineering at FullStory

oapi-codegen: Generate Go Client and Server Boilerplate From OpenAPI 3 Specifications

DeepMap, Inc

gorush: A Push Notification Server Written in Go — Supports APNS (Apple Push Notification Service) and Firebase. Now supports concurrent pushes for iOS.

Bo-Yi Wu

Testify: Assertions and Mocks That Play Nicely with testing

Stretchr, Inc.

go-tagexpr: An Interesting Way to Add Tag Expressions to Structs — The main use case so far is to define validations.

Bytedance Inc.