#436 — November 11, 2022 |
|
The Go Weekly Newsletter |
Thirteen Years of Go — It’s now an annual tradition for Russ Cox to blog about the past year of happenings (e.g. on Go’s 10th, 11th, and 12th birthdays) and now that Go is a teenager, there’s a lot to celebrate including fuzzing, improvements to generics, and soft memory limits. Russ Cox |
The Official Structured Logging Proposal — Go may be a teenager but that only means it’s continuing to grow! And so it goes with this formal proposal (which started life as this discussion) for bringing structured logging with levels to the standard library. Want to play? Try it here. Jonathan Amsterdam |
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 |
IN BRIEF
|
Thoughts on the 'Guard' Proposal for Error Handling — The topic of improving error handling syntax in Go has reared its head again after being a commonly cited point of concern in this year’s Go community survey. Lane isn’t a fan of all the added syntactic sugar but proposes a lighter weight option. Lane Wagner |
A Case for Code Generation: Testify — Testify adds assertions, helper functions and mocking to the Go testing mix. This post digs into how it works under the hood and how code generation helps with all the boilerplate. Fred Bittencourt |
Building a BitTorrent Client from the Ground Up — We linked this back in 2020 but it’s been doing the rounds on social media again and it’s truly worth revisiting. Jesse Li |
Forget Everything You Know About SSH — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices. Tailscale sponsor |
▶ Let's Talk About Debugging in Go — The Go Time podcast is back with Liran Haimovitch (Rookout) and Tiago Queiroz (Elastic) talking about debugging practices, how the cloud affects debugging, the importance of logging, and more. (53 minutes.) Go Time Podcast podcast |
▶ Thinking About Where to Deploy Your Go HTTP APIs — Dominic shares the tale of how he moved from a simple VPS to Dominic St Pierre podcast |
Let's Write a Tiny Chess Engine in Go
|
🛠 Code & Tools |
Canvas: Vectors to SVG, PDF, EPS or Rasterized Images — Provides a ‘common vector drawing target’ that can output in various formats, including to a canvas in the browser via WASM. “It can be considered a Cairo or node-canvas alternative in Go.” There are lots of example programs to show off the API. Taco de Wolff |
GoToSocial: A Go-Powered ActivityPub Server — ActivityPub is the standard behind open federated social networks such as Mastodon. This is not Mastodon but does offer some compatibility with its API. Super Serious Business |
Argo CD as a Managed Service from the Creators of Argo — Akuity's architecture increases security, improves scalability, provides insights, and saves money. Available on free trial. Akuity sponsor |
Chroma: A General Purpose Syntax Highlighter in Pure Go — Based on Python’s Pygments which is kinda the big cheese in this space. Alec Thomas |
Notify: Send Notifications to Various Messaging Services — Supports about thirty different services including Discord, AWS SES and SNS, Microsoft Teams, Slack, and Telegram. Niko Köser |
Katana: A New Crawling and Spidering Tool — This project is only days old, but already shows promise. Note that it’s a crawler aimed at general CLI use, not a Go library. ProjectDiscovery |
Slashbase 1.0: A Collaborative IDE for Your Databases — Built with Go and Next.js, but distributable as a single binary, this is basically a client for Postgres and MongoDB. It’s open source too. Slashbase |
Joker 1.1: A Small Interpreted Dialect of Clojure Written in Go — A small interpreter, linter and formatter for the popular Lisp dialect. GitHub repo. Roman Bataev |
Evans: An Expressive Universal gRPC Client — Want a REPL for working with gRPC? Here you go.
|
|
|