#424 — August 12, 2022 |
☀️ 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 :-) |
The Go Weekly Newsletter |
'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 Miki Tebeka |
Brief Thoughts on Atomic Pointers in Go 1.19
|
🛠 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. |
🎨 Courtesy of OpenAI DALLE·2 |
The Gopher Lisa.. |
|