#​425 — August 26, 2022

Unsubscribe  |  Read on the Web

The Go Weekly Newsletter

Buffalo 1.0: Rapid Web Development in Go — Buffalo has been around for many years, and while 1.0 isn’t a big, feature packed release (indeed, no new code since 0.18.9), it’s a key milestone so congratulations to the team! If you’re new to Buffalo, there are plenty of tutorials to get you going.

Buffalo Team

GopherJS: A Go to JavaScript Transpiler — It’s been a few years since we featured GopherJS but the latest beta brings it up to Go 1.18 (though without generics for now, alas) and ES6/ES2015 standards. There’s an online playground if you want to have a quick play.

GopherJS

Meet GoLand 2022.2 — This version offers new features for generics and go․work. We’ve added support for fuzz tests, and SQL statements are now automatically detected. GoLand also now supports WebSocket connections and can send GraphQL queries out of the box.

JetBrains sponsor

📗  100 Go Mistakes and How to Avoid Them — Note that this is a book – yes, a real life, made of paper book. It’s going to take a couple of months to reach other booksellers or, oddly, to be available in digital form, but if you want something right now the 100 ‘mistakes’ are listed here along with code examples of each.

Teiva Harsanyi (Manning Publications)

What's the Cost of an Integer Cast in Go? — Ben has been interviewing Go developers at work and picked up on one candidate’s comment that casting integers is inefficient. Spoiler: They’re not, and we have a new saying: “‘Free’ as in integer casting in Go.”

Ben E. C. Boyter

'How I Used Go to Control My Radio' — A wonderfully practical story of using Go to control a radio to automatically switch to Aux-in when a specific device is playing audio. You’re unlikely to need to do exactly what Christoph is doing here, but it’s nice to know you can.

Christoph Berger

QUICK BITS:

Fixing Memory Exhaustion Bugs in My Go Web App — This is an excellent guide on how to (and how not to) track down memory issues that involve serious dependencies, such as Platform as a Service and third-party tools.

Michael Lynch

Go Functions as a Service with Kubernetes and OpenFaaSOpenFaaS (itself written in Go) is an open source serverless functions solution on top of Kubernetes. Here we get to see how to deploy a function written in Go on it and get auto-scaling and metrics on top.

Dominik Braun

Shipping Completions for Go CLIs using GoReleaser and Cobra — Covers different ways to distribute your binary, such as Homebrew, AUR, and nFPM, complete with auto-completion and man pages.

Carlos Becker

Building Pong in Your Terminal: Part Two — We linked to part one a month ago, but now Josh fleshes out the game with paddles and controls.

Josh Alletto

Finding Raspberry Pis (to Buy) with.. Raspberry Pis — A simple but useful side project using some Go, FaaS, and a Raspberry Pi (Or a VM, if you prefer.)

Alex Ellis

😍 Alex (above) is also the author of 📘 Everyday Go, an e-book teaching the tools, techniques and approaches involved in real world Go development and he is offering the code golang-weekly to give 20% off to the first 50 folks interested in his book. (Note: We have no financial relationship, he merely reached out to offer this.)

🛠 Code & Tools

Excelize 2.6.1: Work with Excel Spreadsheets from Go — A pure Go library for reading and writing XLAM / XLSM / XLSX / XLTM and XLTX files. Provides a streaming API for working with large datasets. 2.6.1 adds support for 34 further formula functions, improves compatibility, and more.

Xuri Me

gojq: A Pure Go Implementation of jqjq is an incredibly flexible CLI tool for working with JSON data and this Go-powered version promises improved portability, the ability to use it from within other Go apps, and compatibility with the original (mostly – gojq doesn’t maintain object key order, for instance).

itchyny

Golang Transactional Notification Infrastructure Saves Engineering Time

Courier.com sponsor

ZincSearch 0.3: A Lightweight Alternative to Elasticsearch — We linked to this Go-powered drop-in replacement for Elasticsearch (think full text indexing) when it was new, but development has been progressing at a rapid pace and a new release is out.

Zinc Labs

Restic 0.14.0: A Go-Powered Backup ToolRestic is a backup program for Linux, BSD, Mac and Windows that supports numerous backends and, as of 0.14.0, compression. GitHub repo.

axeleroy

Fastmail MaskedEmail CLI: CLI to Create Fastmail Masked Emails — Niche, but if you use Fastmail, it’s one of its neatest features.

David Coffee

GoMerkleTree: A High Performance Merkle Tree
Tommy Tian

⚡️ QUICK RELEASES:

go-vcr 3.0 and 3.1 – Record & replay HTTP interactions for deterministic tests.
Bloom 3.3 – Bloom filter library.
Go Chassis 2.6 – Microservice framework.
go-elasticsearch 8.4 – Official Go client for Elasticsearch.
clickhouse-go 2.3 – Go driver for ClickHouse.

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

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