#397 — January 28, 2022
Go Weekly
go-binsize-treemap: Render a Visualization of Go Executable Space Usage — This is easier to look at than explain in writing! Essentially it’s a tool that generates an SVG treemap of how the space inside a Go-produced executable is used. Not necessarily super useful, but fun to look at and could throw up some surprises. Bloaty is another tool that can help in this area and does a deeper analysis.
Nikolay Dubina
'I’m Porting the TypeScript Compiler to Go' — The author here is a big-time Rust advocate (who created swc) but recognizes that Go might be a better tool particularly for the type checker and explains why here. This post also fuelled a rather extensive Hacker News discussion on the complications involved and on Go vs Rust for such work.
DongYoon Kang
Run Go Unikernels 2X as Fast on GCP and 3X as Fast on AWS — Run your first open source go unikernel in seconds. Go unikernels aren't just faster than docker - they are faster than Linux itself. Unikernels are easier to debug, orchestrate and safer too. Try it now.
NanoVMs sponsor
What Happens When You Profile a Continuous Profiler? — Pyroscope made a presumption about the performance of Go’s binary search algorithm implementation only to find it lacking through profiling and trial and error.
Ryan Perry (Pyroscope)
BRIEF BYTES:
-
TinyGo 0.22 has been released with support for several new devices, M1 / macOS ARM support, LLVM 13 as the new default, and more. This Twitter thread digs deep into the release.
-
JetBrains has started the 'early access program' for GoLand 2022.1, the next major version of its popular Go IDE.
-
GoReleaser can now support AUR (Arch User Repositories) as used by Arch Linux based distros.
Jobs
Backend / API Engineer at Textile (Remote) — Written primarily in Go, built on top of protocols like Libp2p, IPFS, & Filecoin, and is deployed to Google Kubernetes Engine. You'll interact with layers throughout the stack and own responsibilities from R&D to implementation and production monitoring.
Textile
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
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
How to Build a Web App with Go and SQLite — A five-part series that uses the Gin Web Framework to build a CRUD API that includes versioning and handling OPTIONS requests properly.
Jeremy Morgan
learning-go: Minimal Working Examples of Go's Unique Features — All in one long file.
Mathieu Desrochers
256 Shades of Gray: Converting Color Images to Grayscale — Not only that, but monochrome as well. Some fun image fiddling afoot here.
Unknown
🛠 Code & Tools
City Limits: A SimCity-esque Game in Go — A small Go and Ebiten powered isometric city-building sim produced for a game jam. The source is here. I’m impressed just how realistic the "Lego" blocks used here look. A fun use of Go!
Trevor Slocum
rueidis: A New Performance Oriented Go Redis RESP3 Client — If you’re a heavy Redis user, this might be worth a look as it supports auto pipelining of non blocking commands, connection pooling, (optional) client side caching, and more.
Rueian
timediff: Produce Human Readable, Relative Time Differences — For example: timediff.TimeDiff(time.Now().Add(-3 * time.Minute)) would produce "3 minutes ago". English only at this point.
MergeStat
Build Video for Your Go App That Just Works
Mux sponsor
eBPF 0.8: A Pure Go eBPF Library — Utilities for loading, compiling, and debugging eBPF programs.
Cloudflare and Cilium
termle: The Wordle Word Game in the Terminal — Every language seems to be getting its own Wordle implementation and Go is no exception.
Jeremy Loy
wasm-maze-generator: A Simple WASM Maze Generator in Go — Neat minimal but practical example of writing Go code to be run on the Web.
Rob King
Milvus 2.0: A Vector Database for Scalable Similarity Search
The Milvus Project
ClickHouse: A Go SQL Database Driver for ClickHouse
Kirill Shvakov
🕰 ICYMI (Older stuff you may have missed...)
-
John Stupka shows how to build your own URL shortener with Go.
-
Here's a nice tutorial detailing building a CLI that includes calls-outs to decisions made and learnings encountered.
-
Kenta Takeuchi shares how to go about making your own Go-powered load balancer, distributing the load in a round-robin style.