#487 — December 5, 2023 |
|
Go Weekly |
errtrace: An Alternative to Stack Traces for Your Errors — Inspired by Zig, errtrace is an experimental package to trace an error’s return path through a Go program, i.e. the code path that the error took to get to the user, which may well be different to the code path that led to an error. Luckily, the repo has a comparison, if you’re confused. Braces |
▶ Russ Cox on Open Source Supply Chain Security at Google — Last week, Go’s Russ Cox gave a remote keynote to ACM’s software supply chain conference. It’s not exclusively about Go but it naturally forms the basis for many of Russ’s examples. (45 minutes.) Russ Cox |
Add Fully-Featured Auth to Your Go App with Two Lines of Code — Easy, secure, and affordable: pick three. FusionAuth is auth built for devs, by devs. FusionAuth sponsor |
Optimizing Go String Operations with Practical Examples — It’s Advent of Code time again, so string wrangling becomes of utmost importance: “I’m going to show you how I took a very simple program and made it run almost 5 times faster, with very minimal adjustments.” Alex Bledea |
Turning a Go App into a 'Static' WASM-Powered Site — The author built a tool in Go to convert CRDs (custom resources in Kubernetes) into YAML and wanted to offer the tool online. Compiling it all into a WebAssembly powered app that can be hosted in a static fashion, while offering dynamic features (that aren't reliant upon a server), wasn’t easy, but it works. Gergely Brautigam |
QUICK BITS:
|
Ebitengine's 2023 Retrospective — Ebitengine (formerly Ebiten) is a popular 2D game engine for Go that lets you build experiences across numerous platforms, including mobile and the Nintendo Switch. This post celebrates the project’s tenth anniversary with a month by month roundup of what happened with the project this year, as well as shares videos of some of the Ebitengine-powered games that were released. Hajime Hoshi |
Why Are Go Heaps So Complicated — Why an experienced Gopher finds the standard lib ( Max Hoffman (DoltHub) |
▶ Replace Kafka, RabbitMQ, Redis and More with NATS JetStream? — A straightforward introduction to NATS JetStream (a subsystem of the NATS distributed app messaging system) and how to create a publisher and consumer application in Go with its new client API. Jeremy Saenz |
Enhanced Workflow Control and Observability with Temporal Schedules — Now available: Temporal Schedules provide a more reliable and scalable solution where traditional Cron jobs fall short. Temporal Technologies sponsor |
Visualizing Map Data with Go and Leaflet — A way to parse and plot a GPX file (a format used and exported by apps like Strava) onto a Web-based map. Miki Tebeka (Ardan Labs) |
🛠 Code & Tools |
Sloc, Cloc and Code (scc) 3.2: A Fast, Accurate 'Code Counter' — For multiple languages, it can count lines of code and estimate code complexity. Ben Boyter |
golang-set: Simple, Well-Tested and Generic Set Type — A generic set collection for Go: “Until Go has sets built-in…use this.” Ralph Caraveo |
Gabs: Parse, Create and Edit 'Unknown' or Dynamic JSON in Go — A wrapper for navigating hierarchies of Ashley Jeffs |
|
Goiabada: An Authentication and Authorization Server — A new user management system that implements the OAuth2 and OpenID Connect protocols. Leonardo D'Ippolito |
Gorse: A Universal Open Source Recommender System — Gorse uses ML to provide a RESTful API of recommendations based on the data you feed it. It includes a dashboard and API docs. zhenghaoz |
|