#416 — June 17, 2022 |
The Go Weekly Newsletter |
Go 1.19 Beta 1 Released — This post on the golang-announce group just has the basics of how to download it, but these draft release notes go further into actual features (which are predominantly fixes and tweaks - don’t expect a big 1.18 style release, though the addition of an optional soft memory limit for the runtime is interesting). The Go Team |
Language Proposal: Bring Direct SIMD Support into Go — Language proposals are always interesting to read, particularly when they provoke discussion; here, a Moritz Poldrack |
Troubleshoot and Optimize Golang App Performance with Datadog APM — Datadog’s APM generates detailed flame graphs to help you identify bottlenecks and latency in your Golang code. Navigate seamlessly between app traces, logs and metrics to troubleshoot and optimize performance issues fast. Try Datadog APM free. Datadog APM sponsor |
Go’s New Sorting Algorithm: pdqsort — We first linked to news about this back in issue 408 but here’s a reminder and look at what the source says about it. “Never (significantly) slower, often faster” sounds like a win. Academic paper (PDF) explaining the algorithm. Codejitsu |
Quicker bits:
|
How Static Code Analysis Prevents You From Waking Up at 3AM with Production on Fire — An extensive and well transcribed presentation (with a video version available, too) that discusses the pros of static analysis along with several examples of using Xe Iaso |
How to Deploy a Go Webapp with Docker — A comprehensive look at building a Go web application with Docker, including development environment, production considerations, and building with CI. Kulshekhar Kabra (Semaphore) |
Adventures in AWS Lambda Land: A Migration Gone Well — Lessons learned moving from long-running processes hosted in containers (ECS) to a serverless-based approach, including some annoying-but-still-better-anyway gotchas. Jacob Martin (Spacelift) |
▶ Creating Basic Game Animations with Go and Raylib — Raylib is a cross platform 2D drawing/gamedev library that has Go bindings. Avery Makes Games |
'Don't Put All Your Code in Internal'? — An unsurprisingly controversial self-proclaimed rant about the use of ‘internal’ packages to hide implementation details from end users. Food for thought, even if you disagree. Ido Perlmuter |
🛠 Code & Tools |
Chroma 2.2: A Pure Go General Purpose Syntax Highlighter — Take source code and turn it into syntax highlighted HTML, ANSI colored text, or just grab the raw tokens in JSON. Brings most of the features of Pygments to Go and can use Pygments’ lexers and styles too. There’s an online playground where you can try it out too. Alec Thomas |
Trie: Trie Implementation Targeting Auto-Completion Use Cases — An interesting aspect to this project is there’s a WebAssembly-powered online demo. Certainly feels fast in the browser. shivam mamgain |
Securing Your MongoDB Database Teleport sponsor |
Validate: A Generic Data Validation and Filtering Library — Lots of examples in the README. Validate maps, structs, HTTP requests, add custom error messages, and has about 70 built-in validators. Gookit |
Rope: A Persistent Rope Data Structure — Very new and no docs, so you’ll want to check the tests for examples. A “rope” is basically a binary tree of strings. Rob King |
QUICK RELEASES:
|
|