#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 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:
-
Akamai's security research team has discovered a botnet written in Go that, they say, uses Go's talents for concurrency to "maximize spreadability."
-
📅 Gophercon Europe is set to take place in Berlin next month (July 28-31) but there'll be an online stream too.
-
LOL: An ▶️ exclusive look at Go from the perspective of 2053 with a rather futuristic looking Ron Evans of TinyGo who claims to be the last Go developer remaining and maintaining all of our code 😂
-
Not taken the Go team's June 2022 Go Developer Survey yet? There's still time.
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:
- go-mysql 1.6 – Pure Go MySQL wire protocol library.
- Tengo 2.12.0 – Small scripting language for inside Go apps.
- Garble 0.7.0 – Obfuscate Go build info.
-
Task 3.13.0 – A Go answer to
make. - RoseDB 1.1 – Bitcask-inspired NoSQL database.
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