🇺🇦 #​412 — May 20, 2022

Unsubscribe  |  Read on the Web

The Go Weekly Newsletter

Tim Bray's Go Diaries: Generics — Tim (one of the original co-authors of the XML spec) finds a use case for generics in his Quamima pattern matching library, only to find that there are some ‘bumps in the road’ which he shares here for everyone’s benefit.

Tim concludes: “I don’t hate Go’s generics, which is actually pretty strong testimony given that I spent the best part of a couple of days fighting all the stuff described above. But, my guess is the Go generics story is isn’t finished yet.”

Tim Bray

Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.

Ardan Labs sponsor

Calculating Type Sets Is Harder Than You Think — If you like going into the weeds of typing, this is going to be catnip to you as the author picks up on something in the generics spec and walks us through the math (and code) to show just how hard proving a type set is empty really is.

Axel Wagner

Quick bits:

  • (x, y) => { x < y }? Robert Griesemer has been experimenting with a (long standing) proposal about bringing short function literals to Go and whether or not they would improve matters. An interesting look behind the scenes of a potential future Go feature?

  • Jon Bodner, the author of Learning Go (published by O'Reilly), has rewritten a chapter of the book to cover generics support in Go 1.18+ and you can download that chapter here – whether or not you already own the book. (But if you like it, consider picking up the whole thing - it's a good book.)

Let's Build a Distributed Postgres Proof of Concept — Could you put together a mini Postgres in 600 lines of Go? Another example of some of the complicated things you can get done with just a little bit of code in Go (even where third-party packages do much of the lifting.)

Phil Eaton

A Quick Look at a Real Life Use-Case for Generics in Go — A pagination helper.
Vladimir Varankin

Building Event-Driven Distributed Systems with gRPC, NATS JetStream and CockroachDB
Shiju Varghese

🛠 Code & Tools

Manish Rai Jain

Roaring 1.1: Roaring Bitmap Data Structures in Go — Bitsets/bitmaps are useful data structures but can take up a lot of space if uncompressed. Roaring bitmaps are particularly efficient compressed bitmaps and used in systems like Lucene, ClickHouse, and Spark. If this area interests you, you may also want to check out Dgraph's Sroar which promises even more efficiency as well as their fantastic writeup on the work (illustrated above).

Roaring Team

wazero: Zero Dependency WebAssembly Runtime for Go Devs — A WebAssembly 1.0 spec compliant runtime written in Go and it doesn’t lean on cgo at all. There’s a bunch of sample projects showing off what it can do, but at the minimum you can use it to call code written in other languages (that compile to WASM) from your Go apps.

Tetrate Labs

Breaking Down JSON Web Tokens (JWTs) - Free eBook

FusionAuth sponsor

Sneller: A Vectorized SQL Engine for JSON — Designed to handle (PartiQL-enhanced) SQL queries upon terabytes of JSON without needing a schema, all at speed. Check out the example queries in the README. (Note the AGPL license.)

Sneller Inc.

Cardrank: Go Types and Functions for Working with Cards, Decks, and Poker Hands — Poker is one of those words you tend to avoid in emails like this, but I imagine there are enough of you who are into the game that you’d find this interesting.

cardrank

cli 2.7: A Fast Way to Build Go CLI Apps — The manual outlines all of the key features, but think shell auto-completion, option parsing, help text, etc.

Jeremy Saenz and Contributors

Ffuf 1.5.0: Fast Web Fuzzer Written in Go
Joona Hoikkala

rrip: Bulk Image Downloader from Reddit Subreddits
Mahesh Hegde

Jobs

Senior Backend Software Engineer - Remote — Hiring experienced Go developers interested in building open source software around networking, security and distributed systems.
Teleport

Senior Backend Go Engineer - Remote (US) — Petabytes of data, millions of requests a second! Help us build our AdTech platform. Go, GCP, gRPC, Bigquery, Bigtable, Spanner.
MadHive

Site Reliability and Backend Engineers (f/m/d) — Join our team working on real life solutions for the future of public transport.
ioki

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