#​398 — February 4, 2022

Unsubscribe  |  Read on the Web

Go Weekly

Go Performance from Go 1.2 to 1.18 — The creator of GoAWK, an AWK interpreter written in Go, decided to see how compiling GoAWK with numerous versions of Go would affect performance. In short, unless you’re using Go 1.6 (now six years old!) or earlier, there’s not much to worry about.

Ben Hoyt

Go 1.18 Beta 2 Released — 1.18 is the release on everyone’s mind lately and it’s one step closer with this beta. The first beta (which now has the honor of being the most popular Go beta ever) helped the team iron out some bugs in the new support for generics, and you’re encouraged to put beta 2 through its paces as well. Note that gopls and the VS Code Go extension now also support generics.

Jeremy Faller and Steve Francia

Project Management Has Never Been Easier — Whether you're a startup that iterates quickly by giving engineers a free pallet of Red Bull, or a large org that has strict ship dates to hit, Shortcut is the ideal solution for task management, bug tracking, iteration planning, and reporting.

Shortcut (formerly Clubhouse.io) sponsor

Dumpster Diving the Go Garbage Collector — Natalie uses eBPF uprobes (used to instrument userspace functions) to collect data on marks, sweeps, and other metrics and gains a better understanding of the GC’s behavior. Plenty to learn here.

Natalie Serrino

Jobs

Help Us Build and Shape a Tool That Thousands of Developers Use Everyday — We are a differently shaped company that values work-life balance and supports staff to work the ways that make sense for them.
Buildkite

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

Optimizing GoAWK with a Bytecode Compiler and Virtual Machine — If you didn’t pick it up from the title, this is a very technical post that digs through compiler and VM details showing how GoAWK (already mentioned above) gained some performance boosts using data-driven techniques.

Ben Hoyt

Creating a Toy DNS Resolver with Go — Julia, whose explanations are always great, describes what DNS resolvers do by writing a small (80 lines) Go program.

Julia Evans

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring

Stream sponsor

Creating a Quick GUI using FyneFyne is a toolkit for creating GUI apps and it’s easy to whip together a GUI frontend for the command line app or Go library of your choice.

Stuart Scott

TLS Validation: Implementing OCSP and CRL Verifiers in Go
Anatolii Lishchynskyi (Cossack Labs)

🛠 Code & Tools

Wish: Makes Building SSH-Based Apps in Go Easier — If you want to build a system that users can ssh into, Wish brings together a variety of niceties to doing it with Go. Check out this basic BubbleTea-based example, for instance.

Charm

shortuuid: Generator Library for Concise, Unambiguous and URL-Safe UUIDs — If you want short, non-sequential user-facing IDs.

Peter Lithammer

Imagor: A Docker-Ready Image Processing Server — If you want an image server that can manipulate images on the fly (a la Cloudinary, say) this is worth a look. like Uses libvips for performance.

Adrian Shum

Coral: A Cobra Fork with Most Features, But Only 4 DependenciesCobra is a popular library for creating CLI apps in Go, but what if you’re willing to sacrifice a few features in return for a much smaller dependency tree?

Christian Muehlhaeuser

rqlite 7.2.0: A Distributed Relational Database Built on SQLite — 7.2.0 adds new DNS-based auto-clustering functionality.

rqlite

Dominantcolor: Find the Dominant Color in Images
Cenk Altı