#434 — October 28, 2022
The Go Weekly Newsletter
VHS: A 'Home Video Recorder' for Your CLI — Put away those Blurays, VHS is back - this time, it’s a tool plus scripting language for performing various actions on the terminal which are then recorded into an animated GIF (or an MP4, webm file, or series of PNG frames). Ideal for creating quick demos of your CLI tools you could add to your READMEs, perhaps.
Charm
Incremental Parsing Explained in Go — aretext is a small text editor built in Go and its creator explains how it uses functional programming patterns in its parsing of syntax for syntax highlighting purposes.
Will Daly
Build Resilient Apps from the Word Go(lang) — Learn to build cloud-native, cost-effective applications in these free chapters from O’Reilly’s Cloud Native Go.
Cockroach Labs sponsor
rand: A Faster Alternative to math/rand and x/exp/rand — I pine for a catchier name, but rand boasts significantly more performance, simpler initialization, and remains otherwise API compatible with math/rand (except for Seed()). Benchmarks included.
Gregory Petrosyan
IN BRIEF
-
The Go team has preannounced the release of Go 1.19.3 and 1.18.8 on November 1 (next Tuesday) – they'll include private security fixes to the standard library.
-
The folks at Tailscale have, amazingly, built a Web-based SSH client for Tailscale using Go and WebAssembly. Nice work.
-
GitHub's CodeQL code scanning now supports customizing build configs for Go code analysis (aligning it with the C/C++, C# and Java support).
-
👻 The Go Time Podcast crew came together to ▶️ tell 'spooky stories to scare devs'.
Some Undocumented Changes in Go 1.18 and 1.19 — "This article lists several missing changes in Go 1.18 and 1.19 release notes." Some of these are a bit esoteric, but the GoTV (Toolchain Version, not television, alas) is a nice addition.
Tapir Liu
Scaling WebRTC with a Globally Distributed Mesh Network — A technical look at the architecture of LiveKit Cloud and how their team scaled it up to supporting real-time, 100K-user events. On Go, of course. Regular LiveKit is open source and available to all.
David Zhao (LiveKit)
'No Safe Efficient Ways to Do Three-Way String Comparisons' — What was a pretty bite-sized post making an observation about strings.Compare, and how Go doesn’t really want you to use it, turned into quite an extensive discussion on Hacker News.
Tapir Liu
▶ Building a Decentralized P2P Card Game — All this decentralized stuff isn't really our cup of tea, but there aren’t many people putting out long, detailed Go livestreams, so hats off to the author.
Anthony De Meulemeester
🛠 Code & Tools
Carbon 2.2: Simple, Semantic Datetime Package — Carbon offers a massive number of functions that make handling date and time creation, parsing, comparison, etc. much easier and more semantic.
gouguoyin
Forget Everything You Know About SSH — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices.
Tailscale sponsor
Quill: Sign Mac Binaries from Any Platform — Give it a signing private key and certificate from Apple, Quill does the rest to sign and notarize macOS binaries.
Anchore, Inc.
aretext: Minimalist Text Editor with Vim-compatible Key Bindings — We mentioned an article by its author above, but here’s the editor itself. A text editor is a fantastic side project and the source is here.
Will Daly
Tart: A Gitlab CI Runner Backed by the Firecracker MicroVM — Billed as an educational toy, it’s worth a look if you want to tie together such technologies at under 2k LOC. Why ‘tart’? "I like egg tarts." Quite.
Li Zhennan
FerretDB 0.6: A Go-Powered MongoDB Alternative — But it uses Postgres as the storage engine. v0.6 is the first alpha release.
FerretDB
Argo CD as a Managed Service from the Creators of Argo — Akuity's architecture increases security, improves scalability, provides insights, and saves money. Free trial available.
Akuity sponsor
-
CCache 3.0
↳ LRU cache focused on high concurrency use cases. -
Ginkgo 2.4
↳ Modern testing framework for Go. -
Vitess 15.0
↳ Clustering system for horizontally scaling MySQL. -
Hertz 0.4
↳ HTTP framework for building microservices. -
Micro 3.14 – Ditto!
-
Caire 1.4.5
↳ Content aware image resizing library. -
SFTPGo 2.4
↳ Flexible SFTP server built in Go.
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
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