#433 — October 21, 2022
The Go Weekly Newsletter
The Go WebAssembly ABI at a Low Level — Go 1.11 added initial support for compiling Go to WebAssembly (something TinyGo also supports) but how does the interaction between WASM-compiled Go and the broader (often JavaScript-based) environment work? A very extensive (and entertaining) writeup of a conference talk given at GoLab 2022 earlier this month.
Xe Iaso
Proposal: A Simple Way to Clear a Map — We’re getting a good run of proposals recently, and Russ Cox is back with a way to more simply clear a map – simply delete(m) – simple enough, you might think, but potential problems have already been raised in the comments.
Russ Cox
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
Scaling Acceptance Tests — The popular Learn Go with Tests resource has sprouted a new chapter on the benefits of acceptance testing, the process of writing (and refactoring) them, and there’s even a bit of gRPC for good measure.
Chris James
FrankenPHP: A Modern PHP App Server — It might be a PHP app server but it’s written in Go and it uses Caddy under the hood too. Go is a perfect language for orchestrating things like this.
Kévin Dunglas
IN BRIEF
-
An experimental 'arena' package has arrived in Go. Memory arenas, as proposed in February, provide an alternative way of allocating memory that can reduce memory management overhead.
-
🎄 The Go Advent Calendar is still looking for bloggers to commit to several days in December.
-
TIL how popular Go trainer William Kennedy got into Go in the first place.
-
Did you know Buf (the Go-powered Protocol Buffers toolkit) has its own custom Protobuf compiler? Even better, as of this week it now has a brand new one called Protocompile.
Some Go Performance Case Studies — We all like more performance, but when you’re building a database system like Dolt, it’s all the more important. This post looks at a couple of Go situations where Dolt’s engineers found some wins.
Zach Musgrave (DoltHub)
Previewing the 'IDE of the Future' as a Go Dev — JetBrains is well known for its GoLand IDE but Fleet is its new ‘next generation’ IDE experiment. This blog post pokes around it a bit, and there’s a ▶️ 40-minute screencast too.
Percy Bolmer
[Early Release] O’Reilly: Identity-Native Infrastructure Access Management — Learn how to move into an entirely passwordless world in the first chapters of the latest O’Reilly book. Download now.
Teleport sponsor
'The HTTP Crash Course Nobody Asked for' — This tutorial ends up leaning heavily on Rust, not Go, alas, but is generically educational enough that any developer could pick up a thing or two.
fasterthanlime
🛠 Code & Tools
pp: A 'Pretty Printer' with Colors — Might be particularly handy if you’re a print-based debugger!
Takashi Kokubun
mirrord 3.0: Run a Local Service in a Cloud (Kubernetes) Context — The idea is that you can connect a local process (such as during dev) into a broader cloud environment so that you don’t need to emulate everything about the production k8s environment locally.
MetalBear
sqlite3vfshttp: Query SQLite DBs over HTTP with Range Headers — In SQLite parlance, a VFS provides the glue between the OS or filesystem and the rest of SQLite, so you can create VFSes to change how SQLite loads or saves data. This Go-powered VFS makes it possible for SQLite to query directly against SQLite database files over HTTP (such as those hosted on S3, say).
Peter Sanford
Schedule Daily Tweets from Markdown Files in a GitHub Repo — A clever use for GitHub Actions here. The idea is simple: clone this repo, add the necessary credentials, write tweets in Markdown files, and a daily GitHub action will post said tweets on your behalf.
reid j sherman
-
Wails 2.1
↳ Cross-platform Electron-a-like for Go developers. -
Buf 1.9
↳ Popular Protocol Buffers toolkit. -
🐐 GoatCounter 2.3
↳ Privacy oriented Web analytics system. -
rqlite 7.8
↳ Distributed database built on SQLite. -
Easegress 2.2
↳ Cloud-native 'traffic orchestration' system. -
retry-go 4.3
↳ Simple retry mechanism.
Jobs
Senior Golang Software Engineer — Seeking Sr Software Engineers to build innovative technology that connects learners with experts in any subject, anytime, anywhere.
Varsity Tutors (Nerdy)
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
🎁 Bonus Item
Mob 4.0: Fast git Handover for Remote Pair/Mob Programming — Interesting idea. It "hides all the version control paraphernalia behind a command-line interface that makes participating in mob programming sessions simpler."
Dr. Simon Harrer
If the term mob programming is new to you, it's the idea of having lots of developers working on the very same thing at once and ideally in the same place and on the same computer at once.