This essay explores the transition from Go's built-in net/rpc package to gRPC, highlighting the benefits and trade-offs of each approach. By examining the basics of gRPC and Protocol Buffers, readers can gain a deeper understanding of how these technologies enhance communication between services.
https://victoriametrics.com/blog/go-net-rpc/index.html
https://victoriametrics.com/blog/go-net-rpc/index.html
VictoriaMetrics
From net/rpc to gRPC in Go Applications
The net/rpc package in Go demonstrates basic RPC concepts by establishing TCP connections between clients and servers, using sequence numbers to match requests with responses, and supporting both gob (Go-specific) and JSON codecs for data serialization. While…
A PostgreSQL database explorer TUI (Terminal User Interface) application written in Go.
https://github.com/ddoemonn/go-dot-dot
https://github.com/ddoemonn/go-dot-dot
GitHub
GitHub - ddoemonn/go-dot-dot: A PostgreSQL database explorer TUI (Terminal User Interface) application written in Go.
A PostgreSQL database explorer TUI (Terminal User Interface) application written in Go. - ddoemonn/go-dot-dot
This video tutorial delves into the implementation of Server-Sent Events (SSE) using Go for the server and JavaScript for the client, showcasing how SSE facilitates real-time, unidirectional communication. By exploring the key components of SSE, viewers can learn how to effectively integrate this technology into their applications.
https://www.youtube.com/watch?v=nvijc5J-JAQ
https://www.youtube.com/watch?v=nvijc5J-JAQ
YouTube
How to implement Server-Sent Events in Go
Server-Sent Events (SSE) is a powerful web technology that enables real-time, unidirectional communication from servers to clients. In this video we implement a server in Go and a client in JS and explore the main building blocks.
Code: https://github.c…
Code: https://github.c…
Forwarded from DevOps & SRE notes (tutunak)
The article focuses on the importance of handling termination signals gracefully in applications deployed in orchestrated environments like Kubernetes. Graceful shutdowns are crucial to prevent data loss and system instability that can occur with abrupt terminations, ensuring that applications can exit cleanly and maintain consistency even when they are stopped or scaled down.
https://packagemain.tech/p/graceful-shutdowns-k8s-go
https://packagemain.tech/p/graceful-shutdowns-k8s-go
packagemain.tech
Terminating elegantly: a guide to graceful shutdowns
Let's dive into the world of graceful shutdowns, specifically for Go applications running on Kubernetes.
This blogpost delves into the implementation of session-based authentication in Go, highlighting its simplicity and security benefits. By exploring the process of creating and managing sessions, readers can understand how to effectively authenticate users and protect their applications from common security threats.
https://themsaid.com/session-authentication-go
https://themsaid.com/session-authentication-go
Themsaid
Session-Based Authentication in Go
This essay discusses the challenges of dealing with import cycles in Go, a language that strictly prohibits them. It outlines three strategies—introducing interfaces, restructuring packages, and using function pointers—to resolve these cycles, each with its own trade-offs. The author reflects on the complexity and frustration these restrictions can cause in large codebases, advocating for more flexibility in handling import cycles.
https://www.dolthub.com/blog/2025-03-14-go-import-cycle-strategies/
https://www.dolthub.com/blog/2025-03-14-go-import-cycle-strategies/
Dolthub
Go import cycles: three strategies for how to deal with them, and a plea for a fourth
Blog for DoltHub, a website hosting databases made with Dolt, an open-source version-controlled SQL database with Git-like semantics.
This essay delves into the mysteries of the quantum double-slit experiment, questioning whether particles or their wave functions pass through the slits. It argues that neither the particle nor its wave function physically traverses the slits, challenging common interpretations of quantum mechanics. By exploring the concept of superposition and the distinction between physical and possibility spaces, the essay sets the stage for understanding how interference patterns emerge without physical traversal.
https://profmattstrassler.com/2025/03/13/did-the-particle-go-through-the-two-slits-or-did-the-wave-function/
https://profmattstrassler.com/2025/03/13/did-the-particle-go-through-the-two-slits-or-did-the-wave-function/
Of Particular Significance
Did the Particle Go Through the Two Slits, or Did the Wave Function?
In the quantum double-slit experiment, did the particle go through the slits or did the wave function? 1920's quantum physics has a simple answer: "NO".
This tutorial video demonstrates how to create a basic database proxy in Go, inspired by Figma's approach to handling SQL queries dynamically. It shows how to intercept and modify SQL queries, highlighting the benefits of using a proxy for security, observability, and performance improvements. The video guides viewers through setting up a simple proxy that rewrites table names in queries, illustrating the core concepts of database proxying.
https://www.youtube.com/watch?v=DU7_MQmRDUs
https://www.youtube.com/watch?v=DU7_MQmRDUs
YouTube
Coding a database proxy for fun
Coding a very basic database proxy in Go.
LINKS:
- Code: https://github.com/plutov/packagemain/tree/master/dbproxy
- Article: https://www.figma.com/blog/how-figmas-databases-team-lived-to-tell-the-scale/
- MySQL Message Packet: https://www.oreilly.com/l…
LINKS:
- Code: https://github.com/plutov/packagemain/tree/master/dbproxy
- Article: https://www.figma.com/blog/how-figmas-databases-team-lived-to-tell-the-scale/
- MySQL Message Packet: https://www.oreilly.com/l…
This blogpost critiques Go's handling of multiple return values, arguing that they interact poorly with other language features and should be promoted to full-blown tuple types. The lack of tuples in Go leads to complexities in error handling and data passing, requiring workarounds like defining custom structs to manage function results effectively.
https://herecomesthemoon.net/2025/03/multiple-return-values-in-go/
https://herecomesthemoon.net/2025/03/multiple-return-values-in-go/
MOND←TECH MAGAZINE
Were multiple return values Go's biggest mistake?
Yet another article complaining about Go’s error handling.
👍1
A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
https://github.com/deckarep/golang-set
https://github.com/deckarep/golang-set
GitHub
GitHub - deckarep/golang-set: A simple, battle-tested and generic set type for the Go language. Trusted by GoogleCloudPlatform…
A simple, battle-tested and generic set type for the Go language. Trusted by GoogleCloudPlatform, Docker, 1Password, Ethereum and Hashicorp. - deckarep/golang-set
This blogpost explores the process of integrating authentication into an API using the Encore.go framework. It demonstrates how to create an API endpoint that requires authentication, leveraging Encore's built-in features to handle token validation and user data retrieval. The post also covers testing strategies for authenticated APIs, showcasing Encore's support for mocking authentication data during test scenarios.
https://dev.to/eminetto/creating-an-api-with-authentication-using-encorego-3lak
https://dev.to/eminetto/creating-an-api-with-authentication-using-encorego-3lak
DEV Community
Creating an API with authentication using Encore.go
This text is the second part of a series of posts about the Encore.go framework : Creating an API...
This article introduces two new features in Go 1.24: runtime.AddCleanup and weak.Pointer. These tools enhance efficiency by allowing developers to manage resources more effectively. The runtime.AddCleanup function schedules a function to run when an object is no longer reachable, while weak.Pointer allows safe references to objects without preventing garbage collection. Together, they provide powerful alternatives to traditional finalizers and can be used to build custom resource management solutions.
https://go.dev/blog/cleanups-and-weak
https://go.dev/blog/cleanups-and-weak
go.dev
From unique to cleanups and weak: new low-level tools for efficiency - The Go Programming Language
Weak pointers and better finalization in Go 1.24.
This blogpost chronicles the author's journey in creating their first Zig program, "zigping," a terminal-based utility similar to gping. Coming from a background in Go, the author highlights the challenges of manual memory management in Zig and explores its build system, error handling, and multithreading capabilities. The project serves as a learning ground for understanding Zig's unique features and overcoming the hurdles of transitioning from a garbage-collected language like Go.
https://pliutau.com/my-first-zig-program-zigping/
https://pliutau.com/my-first-zig-program-zigping/
Pliutau
My first Zig program - zigping
A brief note on my first experience with Zig
This article explores why Go uses pointers instead of references, a choice that often puzzles developers transitioning from languages like Java or Python. It explains that pointers provide explicit control over memory, enhancing code clarity and speed by avoiding unnecessary data copies. By using pointers, Go developers can ensure that changes to data are intentional and visible, making the language more efficient and easier to understand once mastered.
https://blog.cubed.run/most-people-dont-understand-why-go-uses-pointers-instead-of-references-bad755dea39f
https://blog.cubed.run/most-people-dont-understand-why-go-uses-pointers-instead-of-references-bad755dea39f
Medium
Most People Don’t Understand Why Go Uses Pointers Instead of References
Let’s figure out why Go sticks to pointers and how they work in real code
The GoAdBlock project is written entirely in Go and is designed for network level DNS ad-blocking functionality. The project is public, under the MIT License.
https://github.com/vivek-pk/GoAdBlock/
https://github.com/vivek-pk/GoAdBlock/
GitHub
GitHub - vivek-pk/GoAdBlock: The GoAdBlock project is written entirely in Go and is designed for network level DNS ad-blocking…
The GoAdBlock project is written entirely in Go and is designed for network level DNS ad-blocking functionality. The project is public, under the MIT License. - vivek-pk/GoAdBlock
This article discusses Microsoft's ambitious project to create a native port of the TypeScript compiler and tools, aiming to significantly improve performance. The native implementation promises to reduce build times by up to 10 times and enhance editor responsiveness, making it ideal for large codebases and AI-driven development tools. By mid-2025, a preview of the native tsc is expected, with a full release planned by the end of the year as TypeScript 7.0.
https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/
https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
This blogpost delves into the core concepts of Go's structs and interfaces, highlighting how they differ from traditional object-oriented programming (OOP) languages. It explores Go's philosophy of favoring composition over inheritance and using interfaces to define behavior rather than specify implementation. The article provides practical examples and patterns for using structs and interfaces effectively, emphasizing their role in creating more maintainable and flexible code.
https://getstream.io/blog/go-structs-interfaces/
https://getstream.io/blog/go-structs-interfaces/
getstream.io
Go Structs and Interfaces Made Simple
Learn how Go's structs and interfaces work, how they differ from traditional OOP, and how to leverage composition over inheritance for cleaner, more maintainable code.