#​413 — May 27, 2022

Unsubscribe  |  Read on the Web

The Go Weekly Newsletter

Bud: A New Web Framework for Gophers — And in a classic Ruby on Rails-esque style, the creator has a fantastic 15-minute screencast showing off how to use it – not to build a blog, but a Hacker News client of sorts.

Matt Mueller

Google's Greedy Go Module Mirror? — The owner of Sourcehut, a popular open source forge, claims that the changes to Go modules in 1.16 resulted in his git service receiving tons of redundant and expensive traffic from Google and his pleas for help appear to have not gotten him too far yet.

Drew DeVault

How Teleport Works — Teleport provides secure access to SSH or Windows servers, Windows Desktops, Kubernetes clusters, Databases, and Web Applications. Teleport is trivial to set up as a Linux daemon or in a Kubernetes pod. Learn more.

Teleport sponsor

▶  Making an Animal Crossing-Type Game for Beginners — The creator of these videos is only two episodes in so far, but has made it as far as moving a character around. It’s an uncommon use of Go, but it works well and leans on Go bindings to Raylib for all the interesting parts.

Avery Makes Games

IN BRIEF:

  • 👾 Ever use QBasic on DOS back in the 90s? You might remember a snake game called Nibbles – someone has faithfully recreated it in Go. (Trivia: My first 'newsletter' was a QBasic one on Usenet in the mid 90s!)

  • Typioca is an elegant terminal-based typing speed tester written in Go.

  • A team rewrote a service in Go (from Node.js) and saw huge increases in throughput and a 40% reduction in memory use.

  • The latest episode of Go Time looks at the Berlin tech scene's ▶️ adoption of Go and the Go community there.

RELEASES:

The Functional Options Pattern is Slow — Functional options are often held up as a gold standard for configuring objects, but they are slower and have some other real disadvantages compared to other approaches.

Evan Jones

How To Bootstrap a Quality Go Backend — Miscellaneous initial thoughts on picking an HTTP framework, laying out files, and some testing best practices.

Emmanuel Byrd

Go Nulls and SQL — Dealing with zero values, nilables, nil, and null can lead to bugs and frustration, but the standard library does help us out here.

Ente

🛠 Code & Tools

Gocache 3.0: A Cache Abstraction Library — If you’ve got caching to do, Gocache can handle it. It can use numerous backends (including Redis, Memcache, and some purely memory based options), it can marshal and unmarshal your values, handle invalidation in multiple ways, let you chain caches in a priority order, and more.

Vincent Composieux

Concurrent Map 2.0: A Thread-Safe Concurrent Map for Go — Go has sync.Map but this option may better suit maps with a lot of churn. As of v2.0, generics are used too.

Or Hiltch

eBPF 0.9: A Pure Go eBPF Library — Utilities for loading, compiling, and debugging eBPF programs. v0.9 introduces the btf package which lets you read type information embedded in eBPF ELF objects and vmlinux so you can inspect the kernel’s types and function signatures at runtime.

Cloudflare and Cilium

God: A Tool to Deploy and Manage Go Services using systemd — A tool that puts your Go binary on to a remote Linux server then creates a systemd file to let you start/stop/restart the process.

Enrico

Issue Tracking Has Never Been Easier With Shortcut

Shortcut (formerly Clubhouse.io) sponsor

Kind: Run Local Kubernetes Clusters using Docker Containers as Nodes — You can get a basic Kubernetes cluster running locally very quickly with this approach.

Kubernetes Project

Rqlite 7.5.0 Released with Queued Write Support — Rqlite is a distributed database that uses SQLite as its storage engine and with queued writes you can now get much higher write performance in return for a little less durability.

Philip O'Toole

Sish: HTTP(S)/WS(S)/TCP Tunnels to localhost Using Only SSH — If you’ve used something like ngrok before, it’s like that.

Antonio Mika

go-quartz: Simple, Zero-Dependency Scheduling Library — Inspired by the similarly named Quartz scheduler for Java.

Eugene R.

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

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

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

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