#400 — February 18, 2022
Go Weekly
Go’s Version Control History — Did you know the first commit in the Go repository is from 1972? Or is it..? Russ starts there and walks us through relevant commits, revision control tool changes, and pranks will be enjoyable to any gopher.
Russ Cox
Go 1.18 Release Candidate 1: The Release Notes — There’s no official blog post but the first release candidate of Go 1.18 is now out (if you want to try it out, follow the instructions in this golang-announce post) so it’s a good time to skim the release notes and prepare for the final release any week now (and hopefully not five minutes after we send this newsletter...)
Go Team
Build Video for Go That Just Works — Mux is an API-first platform that makes it easy to build video into your apps. Live and on-demand video stream beautifully to any device, plus analytics are built-in so you can track engagement.
Mux sponsor
▶ The Other Features in Go 1.18 — Had quite enough of hearing about generics and fuzz testing? No more. Michael Matloob and Daniel Martí join Mat Ryer on Go Time to talk about anything else Go 1.18 has to offer, such as workspaces. (59 minutes.)
Go Time Podcast podcast
In brief:
-
Preslav Mihaylov reflects on lessons learnt from publishing a Go programming course, including how much he made.
-
godocs.io is a fork of the old godoc site (now pkg.go.dev) and one year into the project, the creator shares some updates.
Jobs
Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs
Backend Engineer | Remote within CET (-3/+3 hours) | Full-Time — Europe's leading business finance solution. You will help us simplify everything from everyday banking and financing, to bookkeeping and spend management.
Qonto
Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired
Continuous Building and Deployment of Go Apps with Google Cloud Build — Cloud66 uses Google Cloud Build (Google’s CI/CD service) to build its Go apps and this is how it all works.
Khash Sajadi (Cloud66)
File-Driven Testing in Go — If you’re familiar with table-driven tests, this is just the next step along that path (pun fully intended).
Eli Bendersky
▶ Mastering Your Error Domain: Graceful Error Handling in Go — A 20 minute talk (followed by Q&A) given at FOSDEM 2022 about the errors.As helper added in Go 1.13 and using it to improve both how you handle errors and think about their role in your apps.
Carl Johnson
Moving Pinterest’s iOS Builds to Autoscaled EC2 Mac
Buildkite sponsor
GoF Design Patterns That Still Make Sense in Go — While there are people who think the classic book on patterns is obsolete, there are plenty of patterns used in Go today, and your code could probably use them.
Maurício Linhares
How To Use Dates and Times in Go — A comprehensive, introductory tutorial from DigitalOcean’s article writing program.
Kristin Davidson
🛠 Code & Tools
fq: Like jq But for Binary Formats — This is quite a neat idea. It’s a Go-powered tool (that is, admittedly, ‘early in development’) for working with non-text formats, such as graphics, audio, archives, etc. It’d be neat to see this improve and there’s even a list of to-dos if you want to get involved.
Mattias Wadman
Bubble Tea 0.20.0: A Powerful Elm-Inspired TUI Framework — Based on the Elm architecture, this is aimed at building slick terminal applications.
Charm
gRPC UI: An Interactive Web UI for Working with gRPC — Bills itself as being "sort of like Postman" but for gRPC APIs instead of REST.
Engineering at FullStory
😎 A Cool One..
TCG: Terminal Cell Graphics Library — An interesting way to render monochrome graphics in the terminal by way of using special Unicode block symbols. You can, however, work at ‘pixel’ level, making it quite flexible for certain kinds of use case. The only big downside? You have to use a special font in your terminal to make it work.
Sergey Mudrik