#​416 — June 17, 2022

Unsubscribe  |  Read on the Web

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 simd library to take advantage of SIMD (Single Instruction, Multiple Data) CPU instructions is proposed and has been marked “active” by the core team for now.

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 go vet and staticcheck effectively.

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:

Jobs

Senior Backend Go Engineer - Remote (US) — Petabytes of data, millions of requests a second! Help us build our AdTech platform. Go, GCP, gRPC, Bigquery, Bigtable, Spanner.
MadHive

Roar Studios: Platform Engineer — If you're a passionate musician as well as an experienced Platform Engineer, we'd love to talk. :)
Roar Studios Inc.

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team

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