#​424 — August 12, 2022

Unsubscribe  |  Read on the Web

☀️ A heads up that you won't get this newsletter on August 19 as we're taking a week off for summer vacation – we're back as usual on August 26 :-)
__
Peter Cooper, your editor.

The Go Weekly Newsletter

Gopher saboteur

'How I Found a Go Issue on ARM that Crashed the Database Server' — A distributed SQL database like TiDB is a complex piece of software that leans heavily on its environment and a ‘peculiar’ Go bug caused it to crash on ARM platforms. If you like problem solving and post mortems, this is a good one.

Arther Mao (PingCAP)

Rob Pike's Simple C Regex Matcher in Go — In 1998, Rob Pike wrote a regular expression parser in C to use as an example in a book. Ben considers how it would look (and perform) written in Go instead.

Ben Hoyt

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

'I Don’t Like Go’s Default HTTP Handlers' — This seemed to resonate with quite a few people. It boils down to being explicit (or not) with how to handle errors and compares some different approaches to doing just that.

Preslav Rachev

QUICK BITS:

Error Handling with Go Tooling — Newsflash: Your Go code (probably) isn’t perfect! Eli presents us with some deliberately bad code and uses it to demonstrate how Go itself can be used to detect it.

Eli Bendersky

Let's Talk SkipList — Ketan uses some useful visuals to teach us about a probabilistic data structure that competes with binary trees for some use cases and is used in more places than you might guess.

Ketan Singh

Manipulating 'Windows Tokens' with Go — ‘Security tokens’ are used in Windows for identity and privilege reasons. Not my area of expertise at all, but it’s interesting to see how security professionals are using Go to work with such things.

Swapnil (FourCore)

▶  Building Go Executables: Embedding Assets — A look at using the go:embed directive introduced in Go 1.16. (3 minutes.)

Miki Tebeka

Brief Thoughts on Atomic Pointers in Go 1.19
Cheikh Seck

🛠 Code & Tools

Algernon: A Small Self-Contained Pure Go Web Server — With Lua, Markdown, HTTP/2, QUIC, Redis and Postgres support.

Alexander F. Rødseth

HaxMap: A Fast, Memory Efficient Concurrent Hashmap — Early days for this project, but it supports int, uint, uintptr, and strings as keys, and benchmarks well against other options. Requires Go 1.19 and a 64 bit platform.

Anish Mukherjee

Echo 4.8: High Performance, Minimalist REST Framework — A framework aimed at building REST APIs complete with router, middleware framework, HTTP/2 support, automatic TLS, and more. v4.8 lets you add any arbitrary HTTP method as a route and specify custom 404 handlers for specific paths.

LabStack LLC

Automatically Detect and Track Flaky Tests in Go

BuildPulse sponsor

Imagor 1.0: A Docker-Ready Image Processing Server — If you want an image server that can manipulate images on the fly (a la Cloudinary) this is worth a look and, as of v1, uses libvps’ streaming capabilities for more concurrency and throughput. GitHub repo.

Adrian Shum

Revive: A Fast(er), Configurable, Flexible Linter for Go — A drop-in replacement of golint that aims to provide a little more structure and configurability. It now boasts being ‘~6x faster’ too.

Minko Gechev

⚡️ QUICK RELEASES:

JuiceFS 1.0 – Distributed POSIX file system built on Redis & S3.
Sarama 1.36 – Go library for Apache Kafka.
Sonic 1.3.5 – Fast JSON (de)serializing library.
ff 3.3 – Flags-first package for configuration.
FreeCache 1.2.2 – Cache library with zero GC overhead.
RedisShake 3.0 – tool for Redis data migration and filtering.

🎨 Courtesy of OpenAI DALLE·2

The Gopher Lisa

The Gopher Lisa..

Jobs

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

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