Go Interfaces: Why, How and When | nyadgar.com

golang
Blog · Applied Go
Go beyond the Go tutorials
4 Ways of Bumping Major Versions in Your Go Project
I've recently found myself in a rabbit hole of Go major version bumping to v2. What started as a simple task quickly turned into hours of sifting through conflicting information. Should I use a v2 directory? Create a new v2 branch? What about creating a new repository altogether?
The more
Writing secure Go code | Jakub Jarosz
What does it mean to keep security in mind when writing Go code? Answering this question in one short article seems impossible. For this reason, we will narrow it down to a few specific practices.
The Business of Go - Cameron Balahan, Google
Millions of developers love Go for its features, performance, ecosystem, and community. But there’s another, perhaps more compelling reason as well: Go is go...
ML in Go with a Python sidecar - Eli Bendersky's website
Why is Golang's Compilation Speed So Fast? | PixelsTech
OverviewWhen I started learning the Go language, I already had experience with three statically typed languages—C/C++ and Java—and two dynamically typed languages—PHP and JavaScript.
Russ Cox on passing the torch with Austin Clements & Cherry Mui (Go Time #333)
• Introduction of guests and their roles on the Go team
• Russ Cox’s decision to step down as tech lead of the Go project
• Transition of leadership roles: Austin Clements taking over as Go project tech lead and Cherry Mui becoming tech lead of the Go core team
• Discussion on the personal backgrounds of Austin and Cherry, including how they got into Go
• Austin and Cherry’s initial thoughts and goals for their new leadership roles
• Russ Cox’s explanation of the importance of leadership transition for the Go project
• Austin’s perspective on the role of a tech lead and its responsibilities
• Cherry’s explanation of what the Go core team is and her thoughts on leading it
• Russ Cox’s new role in exploring AI applications for the Go project, particularly in aiding software maintenance
• Austin’s focus on stability, engineering at scale, and potential improvements in performance engineering in Go
• Cherry’s focus on scaling Go to handle modern hardware trends and user needs
• Community engagement and communication between the Go team at Google and the broader Go community
• Discussions on the barriers between the Go team and the community, and how to reduce them
• How to get involved or stay updated on Go’s development (forums, proposals, code reviews, conferences)
• Unpopular opinions from the guests, including Russ’s preference for Boston as the best place for software engineers, Cherry’s dislike of the GitHub pull request workflow, and Austin’s view on tech debt being manageable and sometimes beneficial.
Show HN: Go Plan9 Memo | Hacker News
Go Plan9 Memo, Speeding Up Calculations 450% | Jacob_Ray_Pehringer
samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...) - samber/lo
packagemain #28: How to work with GitHub API in Go - YouTube
In this episode we create a GitHub OAuth application in Go that lets users authenticate with GitHub and calls GitHub API on their behalf.
Code: https://github.com/plutov/packagemain/tree/master/28-github-api
GitHub API Go Client: https://github.com/google/go-github
Fun project I built recently: https://gitprint.me
Our Substack: https://packagemain.tech
Follow me on X: https://x.com/pliutau
When I told 4,091 writers they weren’t getting paid
Subtle database errors and how we recovered
Writing a TOTP client in Go
A TOTP1 based 2FA system has two parts. One is a client that generates the TOTP code. The
other part is a server. The server verifies the code. If the client and the server-generated
codes match, the server allows the inbound user to access the target system. The code
usually expires after 30 seconds and then, you’ll have to regenerate it to be able to
authenticate.
As per RFC-62382, the server shares a base-32 encoded secret key with the client. Using
this shared secret and the current UNIX timestamp, the client generates a 6-digit code.
Independently, the server also generates a 6-digit code using the same secret string and its
own current timestamp. If the user-entered client code matches the server-generated code,
the auth succeeds. Otherwise, it fails. The client’s and the server’s current timestamp
wouldn’t be an exact match. So the algorithm usually adjusts it for ~30 seconds duration.
Ten Years of “Go: The Good, the Bad, and the Meh”
I wrote a blog post ten years ago. How do I feel about it now?
The Smallest Go Binary (5KB)
This whole adventure began because I wanted to write a C compiler in Go. I wanted to use Chibicc, a tiny C compiler, as a basis since I could start with the first commit and add each feature since each one is a separate commit. However, Chibicc uses ...
The Tao of Go — Bitfield Consulting
What is the Tao of Go, and how can we work with it, like a surfer going with the waves instead of struggling against them? By being kind, simple, humble, and not striving; here’s how.
They're called Slices because they have Sharp Edges: Even More Go Pitfalls
Blog for DoltHub, a website hosting databases made with Dolt, an open-source version-controlled SQL database with Git-like semantics.
Speeding up a Go cli application with concurrency
Premise A few months ago I worked with a company which provided fully functional backend for online multiplayer games. As part of their product portfolio, they provided their customers with a cli utility, called ds-uploader (dedicated server uploader).
Written in Go, this CLI helped the customer:
Process all files and assets in a directory of their choice containing their game server. Synchronize each file to a remote object storage bucket (meaning to upload only files that are new or modified).
start fast: booting go programs quickly with `inittrace` and `nonblocking[T]`
Unmasking a Go HTML Parser Bug with Differential Fuzzing
In this write-up, we’ll delve into how, through differential fuzzing, we uncovered a bug in Go’s exp/net HTML’s tokenizer. We’ll show potential XSS implications of this flaw. Additionally, we’ll outline how Google assessed this finding within their VRP program and guide how to engage and employ fuzzing to evaluate your software.
Introduction Reminisce with me the discussion boards of 2005. Open to all, searchable from every corner, with no account needed to peek in.
Random testing in Go — Bitfield Consulting
Choosing good test cases for our Go programs can be a bit hit-and-miss. What if we could automate that process? Let’s talk about randomisation, property-based testing, and Go’s built-in fuzz testing feature.
Real World Golang Concurrency Examples
Blog for DoltHub, a website hosting databases made with Dolt, an open-source version-controlled SQL database with Git-like semantics.
Organising Database Access in Go - Alex Edwards
Proposal: Less Error-Prone Loop Variable Scoping
Implementing Go stream API
What is Stream Processing
Logging in Go with Slog: The Ultimate Guide | Better Stack Community
Learn everything about the new Slog package which brings high-performance structured, and leveled logging to the Go standard library
How to troubleshoot memory leaks in Go with Grafana Pyroscope | Grafana Labs
Explore common causes of memory leaks in Go and learn to use Grafana Pyroscope, an open source continuous profiling solution, to find and fix these leaks.
How We Scaled to 100 Million Active Users Using Kafka and Golang — Eventual Consistency
Nowadays, we have reached an era where the most popular startups reach millions of users within less than a year. During my experience as…
Efficiently writing binary data in Go - Javier Honduvilla Coto
Or, speeding up writing binary data in Go by 14x. Code here.