#440 — December 9, 2022
The Go Weekly Newsletter
A Look Back at 2022 for Go Gamedev with EbitengineTM — Formerly known as Ebiten, newly trademarked EbitengineTM is a popular 2D game engine for Go and one of our favorite Go projects generally. It’s had a good year with improved Windows support, full games published and released on the Nintendo Switch, and productive game jams.
Ebitengine Team
New in Go 1.20: Wrapping Multiple Errors — The final release of Go 1.20 (draft release notes) is still a while away, but comes with a change that can improve error wrapping, as demonstrated in this post.
Lukáš Zapletal
💡 If you want to play with Go 1.20, the first release candidate came out yesterday.
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
Some Useful Patterns for os/exec — These patterns are great if you’re invoking OS commands for running tests, connecting tools together, etc. Covers things like capturing output, piping, and process groups.
Aaron Son (Dolt)
New Language Issue: Runtime: Diagnostics Improvements — A group of Gophers is focusing on improving runtime diagnostics starting with runtime traceability and heap analysis tooling, which is exciting for anyone that uses the trace command. This link tracks their progress and meeting minutes.
Michael Knyszek (Google)
IN BRIEF:
-
Go 1.19 is now available on Google's App Engine, Cloud Functions and Cloud Run services.
-
A developer has made a mind map of the Go standard libary.
-
Go popped up in an Ars Technica story about a piece of Go-based malware that broke because of a typo. Botnet creators clearly don't use fuzz testing!
-
🎵 Someone has turned the Go proverbs into Go limerick poems.
Functional Table-Driven Tests in Go — The tables in table driven tests can become cumbersome and hard to read when complex structs get involved. What to do? Get functional and build those data structures more dynamically.
Fatih Arslan
▶ Writing Apps More Securely with Go — A brief introduction to vulnerability management coupled to a less brief live coded demo of Go 1.18’s fuzz testing feature.
Cody Oss (Google)
Forget Everything You Know About SSH — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices.
Tailscale sponsor
When to Use gRPC vs GraphQL — A fair comparison of two popular API protocols to see where each works best.
Loren Sands-Ramshaw
▶ Building a CLI Tool with Go that Calls Stripe's HTTP API — Built upon Cobra. (26 minutes.)
Maximilien Andile
🛠 Code & Tools
D2: Declarative Diagramming System — A particularly featureful ‘text to diagram’ system. Declarative because you describe what you want to see, and D2 does the work. The output looks fresh, clean and modern – no janky old Unix rendering style here. v0.1 just dropped with Windows support, sequence diagrams, and even LaTeX formula support. GitHub repo.
Terrastruct Inc.
Marmot: A Distributed SQLite Replicator atop NATS — There are lots of interesting SQLite replication projects right now (such as Litestream) but this one takes an interesting approach by being built on top of NATS.
Zohaib Sibte Hassan
Argo CD Architectures, Solved! — Explore the pros and cons of the three most common architectures when implementing Argo CD.
Akuity sponsor
-
Task 3.19
↳ Go-backed task runner /makealternative. -
Dragonboat 3.3.6
↳ Pure Go Raft consensus library. -
Horahora 0.4
↳ Self-hosted media server and YouTube download archive manager. -
Hertz 0.4.2
↳ High-perf microservice focused HTTP framework. -
FerretDB 0.7
↳ A MongoDB clone but on top of Postgres. -
GoBGP 3.9
↳ The Border Gateway Protocol, in Go.
Jobs
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
Site Reliability Engineer — Join our "kick ass" team. 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