#​436 — November 11, 2022

Unsub  |  Web Version

Together with  Datadog

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: TestifyTestify 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 git push-driven automated deployment on Render.

Dominic St Pierre podcast

Let's Write a Tiny Chess Engine in Go
Serge Zaitsev

🛠 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 ServerActivityPub 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.
Taro Aoki

Jobs

Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs

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