#504 — April 23, 2024 |
|
Go Weekly |
How Dolt Uses GitHub Actions to Create Performance-Guided Optimization Builds — A look behind the scenes at Dolt's build process and how their team has introduced profile-guided optimization (PGO) into theie pipeline. There’s some complexity, but ready-to-deploy performance-tuned binaries are a powerful reward. Dustin Brown (DoltHub) |
📈 The folks at Dolt have previously written about their experiences in using PGO on their builds and the small but notable performance improvements seen. |
From Zero to Production: Go's Journey at Google — The author worked as an SRE at Google for nine years and shares some of the story of how he saw Go grow and be adopted there over its formative years. Some interesting background that I’ve not seen mentioned elsewhere. Yves Junqueira |
Go Event-Driven: Your Unfair Advantage to Tame Chaos — Microservices promised simplicity but brought more complexity? Domino failures and performance bottlenecks got you down? Don't fall behind. Learn about well-proven patterns for creating truly decoupled and scalable services. Three Dots Labs sponsor |
What’s New in Go 1.22: Carlana Johnson |
QUICK BITS:
|
How Render Enforces Access Controls with Go Generics — Render is a modern hosting and deployment platform with a role system for users and admins to have specified, defined privileges. Their engineers wanted to get compile-time guarantees in their Go codebase to reduce the chance of dangerous flaws and loopholes getting into their role system. Shawn Moore (Render) |
📄 CLI UX Best Practices: 3 Patterns for Improving Progress Displays Roman Shamin 📄 Go gRPC Servers with Bazel in One Command – The only real downside is having to use Bazel. Uros Popovic 📄 How to Use Tailscale for gRPC Authentication in Go Khash Sajadi 📄 An Introduction to Using Delve for Debugging Adam Gordon Bell |
🛠 Code & Tools |
makefile-graph: Turn a Makefile into a Graph — Usable as both a library and CLI tool, this parses makefiles and generates graphs representing the relationships between the various targets (then rendered by Graphviz's Marin Atanasov Nikolov |
State Machines Simplified — Discover the simplicity and durability of Temporal, your solution to complex state machine challenges. Unlock efficiency now! Temporal Technologies sponsor |
elem-go: A Type-Safe Way to Create and Manipulate HTML Elements — Easily create HTML elements with Go code and work with elements, attributes and properties in a type-safe way. v0.25.0 introduces a new StyleManager feature for managing CSS styles programatically too – check out the examples. Chase Fleming |
go-size-analyzer: Analyze the Size of Dependencies in Compiled Go Binaries — If analyzing your Zxilly |
💎 Gemfast: A Drop-In 'Gem' Server for Ruby Developers — A new self-hosted Rubygems (Ruby’s package management system) server, written in Go for easier deployment, that lets Rubyists mirror and cache gems from official registries, as well as serve up their own private gems. Gemfast |
Gnet 2.5: High-Perf, Non-Blocking, Event-Loop Networking Library — “Built from scratch by exploiting Andy Pan |
Opengist: A Self-Hosted Pastebin App — A Git-powered Gist-like pastebin app with more features than you might expect. Here’s a live demo – it certainly looks very GitHubby. Thomas Miceli |
Muffet: A Fast, Recursive Website Link Checker — A CLI tool for scraping and inspecting pages across a site recursively. Yota Toyama |
spark-connect-go: Apache Spark Connect Client for Go — A ‘highly experimental’ Spark Connect for Apache Spark client for Go. Apache |
q: A Quantum Computation Simulator for Go — For people a lot smarter than me. itsubaki |
|
|
🔭 A Quick Experiment? |
Works with any Go-built processes, but if your program can start the diagnostics agent then extra information can be obtained. The tool itself is quite straightforward, but the fun 'experiment' comes in running it on your system and seeing what processes you have running that you didn't realize were Go apps! You can run it easily, like so:
|