🇺🇦 #​405 — March 25, 2022

Unsubscribe  |  Read on the Web

The Go Weekly Newsletter

An Introduction to Generics — It’s brief but it’s as official an introduction as it gets with two Go project members introducing generics (as now generally available in Go 1.18) focusing on type parameters, type sets/constraints, and type inference in a well-explained set of examples. Some caution is advised, however, to tread carefully when deploying generic code in production. There’s a 30-minute talk from last year’s GopherCon, too, if you prefer video.

Robert Griesemer and Ian Lance Taylor

Implementing a Toy Version of TLS 1.3 — Julia is well known for her educational blog posts, and she’s currently interested in creating simple versions of various protocols and tools – this one covers TLS and exposes the design and mystery of it. All done in Go, too.

Julia Evans

Free Activity Feeds & Chat APIs for Qualifying Teams — The Stream Maker Account provides qualifying teams with full and free access to Stream's Chat and Activity Feed APIs, making them accessible to side projects and new startups. No credit card is required.

Stream sponsor

Why Bitly Writes (Almost) Everything in Go — Bitly is a well known URL shortening service and Go seems to be a natural fit for them with (nearly) all their back-end code written in it since 2015.

Michael Richman

How Glean Analyzed and Fixed a Go 'Memory Leak' (Sort Of) — It looked like a memory leak, smelled like a memory leak, and while it was ultimately down to a quirk of memory management that you’re not going to run into in Go 1.16+, you might enjoy this little look under the covers.

Sharva Pathak

Quick bits:

Jobs

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

AI & Software Engineers — Sticker Mule is the Internet's most "kick ass" brand. Our software team operates from 17 countries, and we're always looking for more exceptional engineers.
Sticker mule

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

What Are Go Workspaces and How Do I Use Them? — While a lot of the excitement over Go 1.18 was, and still is, around generics, workspaces were another new feature that could help with organizing projects.

Matt Boyle

A Case Study in End-to-End Testing with Go — Through a case-study, Alex demonstrates real life unit tests and end to end tests, along with how to overcome challenges around speed and brittleness.

Alex Ellis

đź›  Code & Tools

chromedp 0.8: Drive Browsers using the Chrome DevTools Protocol from Go — This week’s version brings things up to Go 1.18 standards. Thorough docs and also an entire repo of examples of how to use it too.

Kenneth Shaw

Lo: A Lodash-Style Library for Go 1.18+ — Linked a couple of weeks ago, but perhaps now more relevant since 1.18 has been released. This library, inspired by JavaScript’s Lodash, brings similar utility methods for working with slices, maps, and more.

Samuel Berthe

Project Management for Today's (and Tomorrow's) Software Team

Shortcut (formerly Clubhouse.io) sponsor

GoReleaser 1.7: Release Go Binaries As Fast and Easily As Possible — Handles cross compilation, releasing to GitHub, GitLab or Gitea, create Docker images, nightly builds, packages, and more. GitHub repo.

Goreleaser

Garble: A Toolchain to Obfuscate Go Builds — Obfuscation has a deservedly awkward reputation given it can’t guarantee security but if you want to distance your binaries from your source as far as possible, Garble provides some ways to do that.

Miscellaneous

Bloom 3.2: A Package for Implementing Bloom Filters — Bloom filters are memory efficient data structures for determining set membership with a defined potential rate of false positives.

Will Fitzgerald

Joker: A Small Clojure Interpreter (and Linter) Written in Go — Linked this a couple of times over the years, but it’s just hit 1.0.

Roman Bataev

LotusDB: Fast File-Based Key/Value Storage Library — No, not as in Lotus 1-2-3.
FlowerCorp

Skopeo: Work Directly with Remotely Hosted Container Images
Miscellaneous

ctop: A top-Like Interface for Container Metrics
VektorLab

CDS: Data Syncing in Go ClickHouse
go-zero team