#358 — April 16, 2021
Go Weekly
'My Go Executable Files Are Still Getting Larger..' — Why are my Go executable files so large? was a popular post in 2019 that dug into just what Go executable files contain. The author is back with a look at how things have changed but also how executables remain full of ‘non-useful bits.’
Raphael 'kena' Poss
Encore: A Go API Backend Framework with 'Superpowers' — Encore uses code generation and static analysis to take care of a lot of the boilerplate you’d ordinarily end up with when creating APIs. Version 0.11.0 was just released, and it’s one of those things you need to see to get.
Encore
Meet GoLand 2021.1 — Build and run your program remotely via Docker, SSH, and WSL 2, use newly supported features from Go 1.16, including //go:embed, quickly generate code from JSON, handle errors with ease using new quick-fixes, and more.
JetBrains sponsor
Faster Python with Go Shared Objects — It’s nice to see Go from the perspective of another ecosystem. Here, we see how Go can be used to produce faster code that can be called from Python.
Kevin Chung
What's The sync.Cond? — The author laments that they often hear people say "sync.Cond is difficult to understand" (and, indeed, some people have even suggested the feature be removed from Go) so has set out to address the hows and whys of using condition variables in Go here.
Hidetatsu Yaginuma
- Brad Fitzpatrick is back to strip out unnecessary references to GNU in the Go codebase.
- Is this the Go gopher or Gandalf? 🧙♂️ More like this from GopherStore on Etsy.
📘 Tutorials and Stories
Idiomatic Panics in Go — There is a bit of a "never panic" vibe in the Go community, but panic exists for a reason and is used in the standard library, so is there an idiomatic way to panic?
Stone Code
How to Set Up Vim for Go Development — It’s not too difficult to go beyond vim being a basic editor to something that can work on Go code in an intelligent way.
Preslav Mihaylov
Demystifying pprof Labels — pprof offers a label feature so different parts to the code can be instrumented differently.
Frederic Branczyk
How NOT to Spend 10,000 Hours Maintaining Prometheus
Lightstep sponsor
▶ The Ultimate Guide to Crafting Your GopherCon Proposal — GopherCon 2021 is taking place in person (yes!) in San Diego this December and the Call for Proposals is open for another week. This 80-minute show goes into a lot of depth about how to formulate a proposal, including tips from someone on the CFP review panel.
Go Time Podcast podcast
How Google’s Site Reliability Engineering Team Uses Go — The benefits Go’s SRE team realized in their move from Python and C++ to Go. You’ve probably guessed that simplicity and easy concurrency are on that list.
Pierre Palatin (Google SRE)
Streaming Unzip with Go and AWS Lambda
Piaras Hoban
🛠 Code & Tools
gops: List and Diagnose Currently Running Go Processes — If you’ve got any feature requests, Jaana is listening.
Go Team
ION 1.9: A Distributed Real-Time Communications (RTC) System — Powered by both Go and Flutter, ION supports WebRTC, as you’d expect, as well as a few other protocols for video conferencing, live streaming, etc.
Pion
Log Management for Go, in a Flash — Easily create and manage log events in LogDNA with the Go code library.
LogDNA sponsor
GitLeaks 7.4: Check Git Repos and History for Secrets and Keys — Worried if you’ve got things like AWS details, GitHub tokens or SSH keys hanging around your project’s git history? Find out for sure with this Go-based tool.
Zachary Rice
Gitea 1.14.0 Released — The popular Go-powered git forge software.
Gitea Project
Snowflake: A Lock Free ID Generator Based on Twitter's Snowflake Algorithm — Snowflake is a system Twitter built many years ago to generate unique ID numbers for tweets.
徐连波
Jobs
Back-End Engineer (Bitcoin Mining) — We're looking for experienced Golang engineers to join our team and work on rewarding projects in the crypto mining industry.
Luxor Technologies
Senior Software Engineer at Even (Anywhere) — Help end the paycheck-to-paycheck cycle. Build w/ Go, React Native, GraphQL, Postgres, Bazel. Remote encouraged.
Even