In his post, Thomas Paschalis discusses the design trade-offs between using shallow versus deep interfaces in software architecture. He argues that thoughtful consideration of interface depth is crucial for creating maintainable and scalable systems.
https://tpaschalis.me/shallow-vs-deep-interfaces/
https://tpaschalis.me/shallow-vs-deep-interfaces/
tpaschalis.me
Deep vs Shallow Go interfaces
I recently read A Philosophy of Software Design by John Ousterhout (of Tcl/Tk, Raft, Sprite fame).
The Storj blogpost dives into a low-level performance optimization question related to integer multiplication in Go. It carefully analyzes whether a specific compiler optimization provides a tangible benefit in real-world scenarios.
https://storj.dev/blog/two-mul-or-not-two-mul
https://storj.dev/blog/two-mul-or-not-two-mul
storj.dev
Two mul or not two mul: how I found a 20% improvement in ed25519 in golang | Storj Engineering Blog
Low level optimizations are tricky and sometimes unintuitive. We'll take a look at a story of optimizing ed25519 signing and verification.
A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily integrate with your Go project to create visual avatars for users.
https://github.com/MuhammadSaim/goavatar
https://github.com/MuhammadSaim/goavatar
GitHub
GitHub - MuhammadSaim/goavatar: A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily…
A lightweight Go package to generate unique, symmetric identicons based on an input string. Easily integrate with your Go project to create visual avatars for users. - MuhammadSaim/goavatar
This guide provides a straightforward method for embedding the current Git hash into a Go binary at compile time. Following these steps ensures that application versions can be easily and accurately identified.
https://blog.carlana.net/post/2023/golang-git-hash-how-to/
https://blog.carlana.net/post/2023/golang-git-hash-how-to/
blog.carlana.net
How to include Git version information in Go
It's easy to automatically include a Git revision with every Go build
🔥1
A research paper from Russ Cox introduces a novel approach to measuring code coverage based on changes in a diff. This method, diffcover, aims to make code reviews more effective by focusing testing on new and modified code.
https://research.swtch.com/diffcover
https://research.swtch.com/diffcover
This story from HackerNoon showcases the power and simplicity of Go by demonstrating how to build a fully functional load balancer in just 150 lines of code. It breaks down the noscript to show how standard library packages can be combined to create powerful networking tools.
https://hackernoon.com/this-150-line-go-noscript-is-actually-a-full-on-load-balancer
https://hackernoon.com/this-150-line-go-noscript-is-actually-a-full-on-load-balancer
Hackernoon
This 150-Line Go Script Is Actually a Full-On Load Balancer
This article will show you how to create a simple HTTP load balancer in Go, using only the standard library.
❤1
A recent piece on Devtrovert explains how to use the SIGHUP signal to gracefully reload application configurations without downtime. This technique is a classic Unix pattern that remains highly relevant for modern server applications.
https://blog.devtrovert.com/p/sighup-signal-for-configuration-reloads
https://blog.devtrovert.com/p/sighup-signal-for-configuration-reloads
Devtrovert
SIGHUP Signal for Configuration Reloads
SIGHUP is a signal caught between two worlds. It was born from the physical "hang up" of terminal lines, and its original meaning—the loss of a controlling terminal—still applies.
This tutorial explains how to use Go's new tool directive to manage dependencies for build noscripts and other development tools. It clarifies how this feature helps separate application dependencies from tooling dependencies.
https://packagemain.tech/p/how-to-use-the-new-tool-directive
https://packagemain.tech/p/how-to-use-the-new-tool-directive
packagemain.tech
How to use the new "tool" directive
Go 1.24 new "tool" directive.
❤2